Measured contrast

Generated from repository-root DESIGN.md frontmatter by design/brs-169/tools/contrast_sweep.py. Ratios are WCAG 2.2, computed OKLCH to sRGB to relative luminance. Re-run the script after any token change.

Baseline pairs

Pairs the design actually uses. 17 of 17 pass.

UsePairMeasuredRequiredVerdict
Body textAa foreground on background17.31:14.5:1Pass
Body text on muted substrateAa foreground on muted16.1:14.5:1Pass
Secondary textAa muted-foreground on background6.41:14.5:1Pass
Secondary text on muted substrateAa muted-foreground on muted5.96:14.5:1Pass
Link text on canvasAa brand on background4.79:14.5:1Pass
Link text on muted substrateAa brand-on-muted on muted4.85:14.5:1Pass
Positive status textAa positive on background7.54:14.5:1Pass
Positive status pillAa positive on muted7.02:14.5:1Pass
Warning status textAa warning on background7.97:14.5:1Pass
Warning status pillAa warning on muted7.42:14.5:1Pass
Destructive status textAa destructive on background7.01:14.5:1Pass
Destructive status pillAa destructive on muted6.52:14.5:1Pass
Primary button labelAa primary-foreground on primary16.97:14.5:1Pass
Control boundaryAa border-strong on background3.29:13.0:1Pass
Focus ring against ink fillAa brand on primary3.61:13.0:1Pass
Dark hero body textAa landing-foreground on landing-ink18.16:14.5:1Pass
Dark hero linkAa brand-on-dark on landing-ink8.11:14.5:1Pass

Misuse guards

Pairs that are not baseline and must not be. The status roles (positive, warning, destructive) and brand are defined for light surfaces only; landing-ink is the dark marketing canvas and carries its own landing-foreground and brand-on-dark tokens. These rows measure what would happen if a future implementer reached for a light-surface token on the dark canvas. They are recorded as evidence for the existing DESIGN.md rule “do not put light-surface semantic text directly onto the dark canvas”, not as defects in the baseline set.

MisusePairMeasuredWould needVerdict
Light-surface brand on dark canvasAa brand on landing-ink4.1:14.5:1Fail
Light-surface positive on dark canvasAa positive on landing-ink2.6:14.5:1Fail
Light-surface warning on dark canvasAa warning on landing-ink2.46:14.5:1Fail
Light-surface destructive on dark canvasAa destructive on landing-ink2.8:14.5:1Fail
Light-surface ink on dark canvasAa foreground on landing-ink1.13:14.5:1Fail

Proposed replacements for the two baseline failures

Owner decision required. These values are not in DESIGN.md; they are candidates.

UsePairMeasuredRequiredVerdict
Proposed link token on muted substrateAa brand-on-muted on muted4.85:14.5:1Pass
Proposed control boundaryAa border-strong on background3.29:13.0:1Pass