Skip to main content

Design system components

ProofBlock

Metrics band that presents headline numbers with labels under a required title and an optional subtitle and caption, with tight spacing and dark metric cards.

Status: stable. Group: structure. Markdown version: /design-system/components/proof-block.md

When to use

ProofBlock is the numbers band: a set of headline metrics with labels under a required title and an optional subtitle; an optional caption sits in the header beside the title, above the metrics. tight narrows the gap between metric cards and dark switches each metric card to the dark treatment (the band itself does not change). Use it to evidence outcomes on case-study or marketing pages; metrics are data props so copy stays with the page.

When not to use

The contract records no forbidden uses.

Look-alikes

The contract names no look-alike with a deciding condition.

Props

ProofBlock props
PropTypeDefaultDescriptionRequired
ariaLabelstringnoneAccessible name for the proof section landmark.No
titlestringnoneSection heading.Yes
subTitlestringnoneSupporting line under the title.No
captionstringnoneSmall print in the header, beside the title block and above the metrics grid (source, timeframe).No
metricsProofMetric[]noneProof metrics: value + label pairs.Yes
tightbooleanfalseTighten the gap between metric cards. The band padding is unchanged.No
darkbooleanfalseApply the dark treatment to each metric card. The section band itself is unchanged.No
classNamestringnoneAdditional CSS classes on the section.No

Variants

No variant dimensions and no props with a fixed set of values.

Invalid combinations

The contract records no invalid combinations.

Keyboard

The contract records no keyboard interaction.

Rules

Every item under When not to use is a MUST NOT. MUST and SHOULD follow RFC 2119.

ProofBlock rules
LevelRuleHow it is checked
MUSTARIA: Renders a section named by ariaLabel, falling back to title. The title is the only heading (h2); metric values are plain text read with their labels, so heading navigation never lists bare numbers.Not yet verified: no evidence record. WCAG 4.1.2.
MUSTRequired stories produce no axe violations at the configured severity.Automated by npm run test:stories:matrix:ci. WCAG 2.5.8.
MUSTThe accessibility tree (role, name, state) matches the committed snapshot for every required story.Automated by npm run test:stories:matrix:ci. WCAG 1.3.1, 4.1.2.
MUSTThe component remains legible and operable under a real browser forced-colors: active pass.Automated by npm run test:stories:hc.
MUSTA human completed an end-to-end accessibility review of this component.Manual review, last on 2026-11-04.
MUST NOTMaintainers: Do not bypass design tokens or skip forced-colors verification at beta.Release review; not machine-checked.

Install and import

  • In-repo only. ProofBlock is not exported from @digitaltableteur/react, so there is no public import path.