Satin light
the defaultPlanes
Inks
Accents
States
Series
Palettes · solved, not picked
Nothing in src/pages or src/components names a colour. Both palettes below were solved in OKLCH against four contrast rules, and both are measured on this page rather than asserted. Swapping one edits a single file.
01 · The sheets
Every chip is background: var(--token) inside a wrapper carrying that palette's classes — so these are the live values, not a picture of them. The hex beside each chip is read from the generated tokens.json.
Planes
Inks
Accents
States
Series
Planes
Inks
Accents
States
Series
Planes
Inks
Accents
States
Series
Planes
Inks
Accents
States
Series
02 · The rules
Accent ≥ 4.5:1 on ground and band. Ink ≥ 15:1, never achromatic. An ink on a fill ≥ 4.5:1 — measured, not assumed. Running text ≥ 7:1. Rows marked·ext extend a rule to the raised plane, which is the lightest plane in dark mode and so the weakest place for text there.
satin
| pair | min | light | dark |
|---|---|---|---|
| --accent on --ground | 4.5 | 5.04 | 4.73 |
| --accent on --band | 4.5 | 4.50 | 4.51 |
| --accent-deep on --ground | 4.5 | 6.23 | 7.02 |
| --accent-deep on --band | 4.5 | 5.57 | 6.70 |
| --ink on --ground | 15 | 16.06 | 16.45 |
| --ink on --panelext | 15 | 17.16 | 15.08 |
| --gate-ink on --gate | 15 | 15.26 | 17.20 |
| --accent-ink on --accent | 4.5 | 5.46 | 4.52 |
| --warm-ink on --warm | 4.5 | 4.58 | 5.45 |
| --run on --ground | 7 | 7.87 | 7.64 |
| --run on --band | 7 | 7.03 | 7.29 |
| --run on --panelext | 7 | 8.40 | 7.00 |
| --gate-run on --gate | 7 | 7.43 | 7.99 |
| --ok on --ground | 4.5 | 5.39 | 9.65 |
| --ok on --band | 4.5 | 4.82 | 9.21 |
| --warn on --ground | 4.5 | 5.23 | 9.62 |
| --warn on --band | 4.5 | 4.67 | 9.17 |
| --bad on --ground | 4.5 | 5.43 | 6.97 |
| --bad on --band | 4.5 | 4.85 | 6.65 |
| --info on --ground | 4.5 | 6.08 | 7.57 |
| --info on --band | 4.5 | 5.43 | 7.22 |
matte
| pair | min | light | dark |
|---|---|---|---|
| --accent on --ground | 4.5 | 5.03 | 6.74 |
| --accent on --band | 4.5 | 4.55 | 6.43 |
| --accent-deep on --ground | 4.5 | 6.10 | 6.82 |
| --accent-deep on --band | 4.5 | 5.51 | 6.51 |
| --ink on --ground | 15 | 16.67 | 16.47 |
| --ink on --panelext | 15 | 17.23 | 15.11 |
| --gate-ink on --gate | 15 | 17.27 | 17.97 |
| --accent-ink on --accent | 4.5 | 5.26 | 6.45 |
| --warm-ink on --warm | 4.5 | 4.54 | 8.66 |
| --run on --ground | 7 | 7.79 | 7.64 |
| --run on --band | 7 | 7.04 | 7.29 |
| --run on --panelext | 7 | 8.05 | 7.01 |
| --gate-run on --gate | 7 | 8.46 | 8.34 |
| --ok on --ground | 4.5 | 5.59 | 9.61 |
| --ok on --band | 4.5 | 5.05 | 9.16 |
| --warn on --ground | 4.5 | 5.42 | 9.57 |
| --warn on --band | 4.5 | 4.90 | 9.13 |
| --bad on --ground | 4.5 | 5.63 | 6.93 |
| --bad on --band | 4.5 | 5.09 | 6.61 |
| --info on --ground | 4.5 | 6.30 | 7.53 |
| --info on --band | 4.5 | 5.69 | 7.18 |
Every rule passes, both finishes, both modes
Regenerated with npm run tokens; the numbers above come from that run, not from this page.
03 · Kept sets
Earlier palettes survive under renamed tokens rather than in a git history. Nothing reads them; map one onto the live set —--accent: var(--donor-accent) — to go back.
Legacy
--legacy-*
The cool corporate blue this tree shipped with before the one-token-set refactor.
Donor
--donor-*
The original walnut and stone palette of the atelier donor, with its Archivo and IBM Plex Mono faces.
Swapping one