section-012

Customer Proof Ledger

Included in the VaultGet the Vault

A photography-led customer story section pairing three clear customer choices with a large workplace image, illustrative result, quote and expandable working note.

intermediate
6 more details
accessible-tabsgenerated-photographycrossfadequeued-transitionsprogressive-enhancementresponsive-section
Customer Proof Ledger - website section preview

This section reads better at your own screen size than in the frame below:

About this section

Customer Proof Ledger turns customer evidence into an editorial case-study spread rather than another row of testimonial cards. Three fictional customer stories pair a large photograph of the work with one legible outcome, a concise quote and a native working-note disclosure. Every image, claim and attribution is explicitly presented as sample content.

Read the full section overview

A horizontal customer index sits above a spacious two-column spread. The photograph and outcome have their own space, while the quote and attribution form a separate full-width testimonial below. Warm paper, restrained labels and serif-led headlines establish the hierarchy without a boxed card. Generated workplace photography makes each example specific without implying a real customer portrait.

Selection is accessible by pointer, touch and keyboard. Motion connects the chosen index entry to its photograph and story with a smooth photo blend and sequential text reveal; repeated input settles on the latest request, and reduced motion changes stories instantly. Without JavaScript or GSAP, all three complete stories remain readable in document order.

What's included

8 items
  • Three complete fictional customer stories with large generated workplace photographs
  • Spacious image-and-outcome spread with a separate full-width testimonial and expandable working note
  • Clear customer index with Arrow key, Home and End navigation
  • Smooth photo blends and sequential story reveals that settle on the latest choice
  • Native details disclosures for longer challenge and change notes
  • Complete stacked fallback with no JavaScript or blocked GSAP
  • Instant reduced-motion state changes and visible keyboard focus
  • Root-scoped brand tokens, container-aware layouts, independent instances and teardown

Perfect for

4 use cases
  • SaaS and platform customer-story sections
  • Agency and consultancy outcome-led case studies
  • Manufacturers documenting workflow improvements
  • Nonprofits presenting programme stories with verified evidence

How it works

3 sections

Each story combines its own customer identity, photograph, outcome, quote and working note. The customer index changes that complete composition as one state, so the selected image and evidence never drift apart. A smooth photo blend and sequential text reveal keep the evidence and testimonial areas steady during each exchange, while rapid changes always resolve to the final choice.

The section keeps every story in the page as real semantic content. With enhancement available, the index becomes an accessible tab interface and only the chosen spread is shown. Reduced motion keeps the same selection experience without transition, while a missing dependency or disabled JavaScript leaves all three stories available as a readable sequence.

The worked example uses generated concept photography and explicitly fictional claims. Buyers replace those ordinary local images and the adjacent story copy with authorised customer material; adding or removing a complete story automatically updates the selector and count.

Difficulty Intermediate
Includes HTML + JS + CSS source, documentation, AI setup prompt, lifetime updates

Lighthouse, as measured

Google Lighthouse on this website section's demo, 15 September 2026. A measurement of the demo as shipped, not a promise for your page.

Accessibility
100
Best practices
100

No performance score, on purpose. That figure depends on how you deploy: your server's compression and caching, your CDN, the connection and the device doing the test, none of which the code controls. The same page can score very differently on two consecutive runs, so measure it where it will live.

Included in the Vault

Get the Vault to use this section.

The Vault includes Customer Proof Ledger, the HTML, CSS and JavaScript source, the full documentation, an AI setup prompt for your editor, and every update we ship to it. Standard license: unlimited personal and commercial projects. Sections are available only in the Vault for now while the collection is small.

Documentation

Quick Start

Load the stylesheet, GSAP core and the section script:

Code snippet omitted: it ships with the download.

Copy from <section class="cpl" data-customer-proof-ledger> through its matching closing tag, including the small inline boot script. That script hides the later stories before the first paint and releases them automatically if the enhancement does not mount. The body background in index.html is preview context, not section code.

Make it yours

Each [data-proof-story] article is one complete edit point. Change its data-customer, data-sector, data-proof and data-announcement values, then edit the photograph, result, heading, quote, attribution and native details content inside the same article. The selector and count are built from those articles, so there is no separate content array to maintain.

The bundled images are ordinary local files:

Story File Bundled size Suggested replacement Crop control
Tern Cycles assets/img/tern-cycles.webp 1536 × 1024 Landscape, at least 1536px wide --cpl-focus: 47% 48% on its article
Redwood Bakery assets/img/redwood-bakery.webp 1536 × 1024 Landscape, at least 1536px wide --cpl-focus: 55% 50%
Northlight Press assets/img/northlight-press.webp 1536 × 1024 Landscape, at least 1536px wide --cpl-focus: 50% 52%

Replace an image by overwriting the WebP at the same path, or change the src, width, height and alt attributes in that story. Adjust its local --cpl-focus value to keep the subject in the flexible desktop and mobile 4:3 crops. A portrait or unusually wide source still works because the frame uses object-fit: cover; check both crops and write alt text for the replacement. No animation code refers to the photographed subject.

To add a customer, duplicate one complete [data-proof-story] article and update all content and image fields. To remove or reorder customers, remove or move complete articles. One article is supported; its redundant selector is hidden. There is no fixed maximum, although a short set of three to five choices keeps the comparison easy to scan.

Rebrand the variables at the top of assets/style.css:

Code snippet omitted: it ships with the download.

Retest text, focus and accent contrast after changing the palette. The main result works best as a short value plus a short qualifier; longer story headings wrap naturally in the evidence column. The quote and attribution live in the separate .cpl__testimonial below the photograph and evidence. The horizontal customer choices keep the full width available to the active story.

Behaviour and options

data-duration="0.54" on the root controls the photo blend and sequential text reveal in seconds. Set it to 0 for an instant change. Reduced-motion preferences always use the instant path.

Every root mounts independently and exposes an instance API:

Code snippet omitted: it ships with the download.

activate(index, focusTab, announce) uses a zero-based story index. destroy() removes generated controls, IDs, listeners, observer and owned GSAP work, then restores the complete stacked document. Repeated input keeps the current blend smooth and queues only the latest requested story. Photographs blend over an opaque backing; old text fades out before new text appears in the evidence and testimonial areas. Inactive stories reserve the shared grid height while remaining invisible and unavailable to keyboard and assistive technology.

Accessibility and integration

  • Pointer, touch and keyboard use the same selection path. Arrow keys wrap; Home and End jump to the first and last story.
  • The active button uses roving focus and a polite live region announces the selected fictional customer and result.
  • Native working-note disclosures remain operable with keyboard, touch, no JavaScript and blocked GSAP.
  • With no JavaScript all three articles are visible. If GSAP is unavailable, the boot gate is removed and the same complete fallback remains.
  • Reduced motion changes stories immediately and can change while mounted.
  • The section uses an h2; change that tag to fit the host page outline without changing its class.
  • The layout is container-aware and works in a narrow host column. It does not pin, intercept scrolling, install smooth scrolling or require full viewport width.
  • Two instances can coexist because controls, IDs, measurements and teardown remain inside each root. Destroy an instance before a framework removes it.

Dependencies and credits

  • GSAP 3.12+; the demo is pinned to 3.15.0.
  • Tern Cycles, Redwood Bakery and Northlight Press are fictional examples. Their quotes and results are illustrative and must be replaced with verified, authorised evidence before publication.
  • The three workplace photographs were generated with OpenAI's image generation tool on 20 September 2026. They are concept scenes and do not depict real customers or testimonial subjects. Baked WebP files ship in assets/img/; compressed JPEG masters and prompts remain authoring inputs in assets/img-src/ and are excluded from the buyer download.

Worked examples, the events and programmatic API, and the class reference ship with the download, alongside the full source.

Your cart

Your cart is empty

The Vault £99

The Vault library, plus future additions to the library.