Design system
The tokens everything else is built from. Colour, typography and spacing live in one variable collection with a Dark default and a Light mode. Components only ever reference these tokens.
Nine semantic colours. These are the only colours components use. Each card shows the same token in both modes: the left half is the Dark default, the right half is inside a theme-light wrapper.
Page Background
Card Background
Border
Text Primary
Text Secondary
Accent
Accent Hover
Button Background
Button Text
Primitives. The raw palette the semantic colours point at. Reference these from tokens only, never from an element.
Cherry
#F53971
Cherry Light
#FF5786
Black
#000000
Off Black
#1D1D1D
Border Grey
#292929
White
#FFFFFF
Light Grey
#E9F0F1
Montserrat carries headings, Helvetica carries body copy. Every size is a token and every sample below is a live instance of a text element.
H1. Font/Heading 600. Size/Text H1 clamp 40 to 76px. Line Height Heading 1.05.
H2. Font/Heading 600. Size/Text H2 clamp 32 to 56px. Line height 1.
H3. Font/Body 500. Size/Text H3 clamp 24 to 32px. Line height 1.
H4. Font/Heading 600. Size/Text H4 20px. Line height 1.3.
Body. Font/Body 400. Size/Text Body 16px. Line Height Body 1.5.
The quick brown fox jumps over the lazy dog near the riverbank, then rests in the shade.
Small. Font/Body 400. Size/Text Small 14px. Line Height Body 1.5.
The quick brown fox jumps over the lazy dog near the riverbank.
Caption. Font/Body 400. Size/Text Caption 12px. Line Height Body 1.5.
The quick brown fox jumps over the lazy dog. Sept 10, 2025.
Eyebrow. Font/Body 400 uppercase. Size/Text Eyebrow 12px. Line height 1.7.
Eyebrow label
Stat. Font/Heading 600. Size/Text Stat 22px. Line height 1.1, tabular numerals.
200,000
Spacing scale (Size/Space 2XS to XXL)
4 / 8 / 16 / 32 / 56 / 80 / 120 px
The same element instances in both variable modes. The left panel carries theme-dark, the right carries theme-light. Nothing else differs.
theme-dark (default mode)
Dark theme
Body text. The quick brown fox jumps over the lazy dog near the riverbank.
Muted body text for secondary copy.
Small text for captions and meta.
Accent eyebrow