Accessibility
Honest contrast
Every figure here is computed from the token source by the same code that gates CI
(contrast-pairs.mjs) — no hand-typed numbers. Brand pairs are held to
AAA (≥ 7); status pairs target
AA (≥ 4.5).
Light theme
| Pair | Ratio | Grade |
|---|---|---|
| text.body on surface.base | 17.5 | AAA |
| text.heading on surface.base | 17.5 | AAA |
| accent(default/self) on surface.base | 9.7 | AAA |
| hero.text on hero.surface | 9.7 | AAA |
| action.primary.text on action.primary.bg | 9.7 | AAA |
| Pair | Ratio | Grade |
|---|---|---|
| link.default on surface.base | 5.0 | AA |
| feedback.success.fg on feedback.success.tint | 6.8 | AA |
| feedback.warning.fg on feedback.warning.tint | 6.4 | AA |
| feedback.error.fg on feedback.error.tint | 6.8 | AA |
| feedback.info.fg on feedback.info.tint | 6.6 | AA |
Dark theme
| Pair | Ratio | Grade |
|---|---|---|
| text.body on surface.base | 13.9 | AAA |
| text.heading on surface.base | 16.7 | AAA |
| accent(default/self) on surface.base | 9.1 | AAA |
| hero.text on hero.surface | 9.7 | AAA |
| action.primary.text on action.primary.bg | 8.1 | AAA |
| Pair | Ratio | Grade |
|---|---|---|
| link.default on surface.base | 8.1 | AAA |
| feedback.success.fg on feedback.success.tint | 10.2 | AAA |
| feedback.warning.fg on feedback.warning.tint | 10.4 | AAA |
| feedback.error.fg on feedback.error.tint | 10.5 | AAA |
| feedback.info.fg on feedback.info.tint | 11.2 | AAA |