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.
Pairs the design actually uses. 17 of 17 pass.
| Use | Pair | Measured | Required | Verdict |
|---|---|---|---|---|
| Body text | Aa foreground on background | 17.31:1 | 4.5:1 | Pass |
| Body text on muted substrate | Aa foreground on muted | 16.1:1 | 4.5:1 | Pass |
| Secondary text | Aa muted-foreground on background | 6.41:1 | 4.5:1 | Pass |
| Secondary text on muted substrate | Aa muted-foreground on muted | 5.96:1 | 4.5:1 | Pass |
| Link text on canvas | Aa brand on background | 4.79:1 | 4.5:1 | Pass |
| Link text on muted substrate | Aa brand-on-muted on muted | 4.85:1 | 4.5:1 | Pass |
| Positive status text | Aa positive on background | 7.54:1 | 4.5:1 | Pass |
| Positive status pill | Aa positive on muted | 7.02:1 | 4.5:1 | Pass |
| Warning status text | Aa warning on background | 7.97:1 | 4.5:1 | Pass |
| Warning status pill | Aa warning on muted | 7.42:1 | 4.5:1 | Pass |
| Destructive status text | Aa destructive on background | 7.01:1 | 4.5:1 | Pass |
| Destructive status pill | Aa destructive on muted | 6.52:1 | 4.5:1 | Pass |
| Primary button label | Aa primary-foreground on primary | 16.97:1 | 4.5:1 | Pass |
| Control boundary | Aa border-strong on background | 3.29:1 | 3.0:1 | Pass |
| Focus ring against ink fill | Aa brand on primary | 3.61:1 | 3.0:1 | Pass |
| Dark hero body text | Aa landing-foreground on landing-ink | 18.16:1 | 4.5:1 | Pass |
| Dark hero link | Aa brand-on-dark on landing-ink | 8.11:1 | 4.5:1 | Pass |
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.
| Misuse | Pair | Measured | Would need | Verdict |
|---|---|---|---|---|
| Light-surface brand on dark canvas | Aa brand on landing-ink | 4.1:1 | 4.5:1 | Fail |
| Light-surface positive on dark canvas | Aa positive on landing-ink | 2.6:1 | 4.5:1 | Fail |
| Light-surface warning on dark canvas | Aa warning on landing-ink | 2.46:1 | 4.5:1 | Fail |
| Light-surface destructive on dark canvas | Aa destructive on landing-ink | 2.8:1 | 4.5:1 | Fail |
| Light-surface ink on dark canvas | Aa foreground on landing-ink | 1.13:1 | 4.5:1 | Fail |
Owner decision required. These values are not in DESIGN.md; they are candidates.
| Use | Pair | Measured | Required | Verdict |
|---|---|---|---|---|
| Proposed link token on muted substrate | Aa brand-on-muted on muted | 4.85:1 | 4.5:1 | Pass |
| Proposed control boundary | Aa border-strong on background | 3.29:1 | 3.0:1 | Pass |