Notes

How this site pairs Stellar's tokens, and why.

Pairing tokens

Each shade comes with an -on for text that reads on it and a -dim for quieter text, both tuned to that exact shade. For an accent on a different surface, like a link on the page background, pick a shade from another ramp with enough contrast.

Built on a neutral-1 surface

The three pairs this site runs on, over the neutral-1 background. Contrast is measured live, so flip the theme and it updates.

Primary text
headings, body
--neutral-1--neutral-1-on
Secondary text
ledes, notes, captions
--neutral-1--neutral-1-dim
Link / accent
links, focus, active
--neutral-1--primary-7

Making -dim readable: dimTargetLc 30 -> 65

-dim is the secondary text here: ledes, notes, captions. At the default 30 it is decorative, 1.7:1 in light mode, below the 4.5:1 body text needs. 65 is the lowest that makes light readable: 4.4:1 in light, 9.9:1 in dark, still softer than -on.

dimTargetLclightdark
30 (before)1.74.0decorative
502.87.0light still fails
603.88.9
65 (after)4.49.9readable, still muted
705.211.0dark nears -on

WCAG contrast of --neutral-1-dim on --neutral-1, light / dark.

secondary text washed out
Before: Lc 30 (1.7:1)
secondary text readable
After: Lc 65 (4.4:1)