Roles01
bgGround
surfaceCards, tiles
surface-raisedElevated cards
accentThe signal
Text opacity ladder02
displayHero numbers100%
primaryBody copy~90%
secondaryLabels & captions~60%
disabledTimestamps & hints~40%
Accent — one moment per screen03
Signal01
Rule

The accent is an interrupt — “look HERE, NOW.” One per screen as a UI element. Never decorative. If nothing is urgent, no accent on the screen.

Tonal ramps04
Neutral
Accent

Generated in OKLCH on a shared perceptual-lightness scale — the same step of any ramp carries the same visual weight. Regenerate with scripts/generate-ramps.mjs.