--font-heading
Systems that work on Monday morning.
Space Grotesk, system-ui, sans-serif
About the system
The design system keeps the site plain, measurable, and consistent. Tokens define color, type, spacing, radius, motion, and elevation. Components consume those tokens through shared Astro and Starwind primitives.
The point is control. When a card, button, form field, or CTA changes, it should change from one source of truth, not from a dozen one-off classes.
Color tokens
Values below come from the OKLCH tokens in `src/styles/global.css`. Light theme overrides exist in the same file; this page shows the canonical dark set.
--color-bg
oklch(0.13 0.01 250)
Page background
--color-surface
oklch(0.19 0.012 250)
Cards and footer surface
--color-surface-2
oklch(0.225 0.012 250)
Hover and secondary surface
--color-surface-3
oklch(0.27 0.012 250)
Active surface
--color-primary
oklch(0.63 0.105 167)
Primary action fill
--color-primary-hover
oklch(0.54 0.105 167)
Primary hover fill
--color-primary-active
oklch(0.46 0.105 167)
Primary pressed fill
--color-primary-glow
oklch(0.60 0.105 167 / 0.15)
Low-opacity primary glow
--color-primary-text
oklch(0.70 0.105 167)
Small teal text
--color-secondary
oklch(0.74 0.15 64)
High-intent CTA fill
--color-secondary-hover
oklch(0.66 0.15 64)
CTA hover fill
--color-secondary-active
oklch(0.59 0.15 64)
CTA pressed fill
--color-tertiary
oklch(0.18 0.02 250)
Navy text on brand fills
--color-text
oklch(0.96 0.01 270)
Primary text
--color-text-muted
oklch(0.62 0.03 250)
Body support text
--color-text-dim
oklch(0.66 0.01 250)
Eyebrows and metadata
--color-border
oklch(0.30 0.012 250)
Default border
--color-border-active
oklch(0.60 0.105 167 / 0.32)
Active border tint
--color-success
oklch(0.68 0.17 145)
Success state
--color-warning
oklch(0.67 0.17 52)
Warning state
--color-error
oklch(0.62 0.22 25)
Error state
--color-info
oklch(0.65 0.15 250)
Info state
--band-critical
oklch(0.57 0.13 40)
Helix Score critical band
--band-developing
oklch(0.68 0.10 70)
Helix Score developing band
--band-functional
oklch(0.72 0.06 165)
Helix Score functional band
--band-strong
oklch(0.65 0.09 165)
Helix Score strong band
--band-leading
oklch(0.78 0.06 165)
Helix Score leading band
--band-optimal
oklch(0.88 0.04 165)
Helix Score optimal band
Typography
--font-heading
Systems that work on Monday morning.
Space Grotesk, system-ui, sans-serif
--font-body
Plain copy carries the page. It names the point, gives the proof, then gets out of the way.
Inter, system-ui, sans-serif
--font-editorial
The gap is between what got deployed and how people actually work.
Source Serif 4, Charter, serif
--font-mono
CTGA / 100-900 / TOKEN LOCK
ui-monospace, SFMono-Regular, Consolas, monospace
Spacing and radius
Desktop section rhythm
Mobile section rhythm
Components
The demos use the shared Button and Starwind primitives already wired into the site. Focus rings, disabled states, overlays, and motion come from the same tokens as production pages.
Starwind maps its chrome variables to Helix tokens in `src/styles/starwind.css`. Brand colors stay owned by `global.css`.
Component state changes use `--motion-state` and `--ease-snap`. Reduced motion collapses durations at the token layer.
Patterns
Score the gap before naming the fix.
Use the fewest pieces that make the workflow clear.
Brand voice
Helix Stax copy is direct because the work is practical. It names the point, backs it with a detail, and ends with a consequence.