Workspace
Deployments
Requests
184,204
Error rate
0.42%
Budget used
4%
Build
Passing
Pipeline progress
72%
Recent activity
-
Nina promotedNedge-cacheto productionLive -
Theo opened a rollback onTapi-gatewayReview -
Ida archivedIlegacy-workerArchived
Deploy settings
Buttons
Status
Feedback
Inputs
Type
Display
Heading
Body text carries the prose weight and line height.
Section label
Muted supporting copy.
const theme = synthesize(tokens); Surfaces
deep
surface
base
card
elevated
Accent, composed
None of these read an accent token directly — they read the gradients, glows and focus rings that compose from it. They move because the base tokens moved.
glow-primary glow-secondary gradient-accent-text
Composed accent
Contrast
| Pair | Dark | Light | Needs |
|---|---|---|---|
| Body text on card The single most-read pairing in the system. | 4.5:1 text | ||
| Body text on base Page-level prose. | 4.5:1 text | ||
| Secondary text on card Descriptions, table cells, helper copy. | 4.5:1 text | ||
| Muted text on card Timestamps and captions still have to be readable. | 4.5:1 text | ||
| Ghost text on card The faintest step. Fails easily — reserve it for decoration. | 4.5:1 text | ||
| Accent text on card Links and accent labels are read, not just seen. | 4.5:1 text | ||
| Accent on deep Focus rings and glows against the deepest ground. | 3:1 non-text | ||
| Secondary accent on card Gradient endpoints and secondary emphasis. | 3:1 non-text | ||
| Success on card Status color carrying meaning without text. | 3:1 non-text | ||
| Warning on card Status color carrying meaning without text. | 3:1 non-text | ||
| Error on card Status color carrying meaning without text. | 3:1 non-text | ||
| Info on card Status color carrying meaning without text. | 3:1 non-text | ||
| Bright border on card Structure, not state — no threshold applies. Below about 1.3:1 the edge stops being findable. | — | ||
| Default border on card Structure, not state. Shown so you can see how far your surfaces and borders have drifted apart. | — |
Note
Export
Note
:root,
so they re-derive on their own.