06 / 07

Tokens

The shadcn → Lexi bridge — every semantic token and what it maps to.

TokenValuePreviewUsage
--color-backgroundvar(--lexi-bg)Page and surface ground
--color-foregroundvar(--lexi-fg)Primary text
--color-primaryvar(--lexi-accent)The one action that matters — Signal
--color-primary-foreground#151715Always dark on Signal — never flips
--color-muted-foregroundvar(--lexi-fg-muted)Secondary text
--color-accentvar(--lexi-surface-card)Neutral hover surface — not Signal
--color-bordervar(--lexi-border-subtle)Borders and dividers
--color-ringvar(--lexi-accent)Focus rings
--radius8pxBase radius (sm 4 / md 8 / lg 16)
--font-sansFounders Grotesk300 Light · 400 Regular — no heavier
--font-monoFounders Grotesk MonoLabels, code, data

Dark by default

:root is the dark theme; light opts out via [data-theme="light"]. Every semantic token flips automatically — components never carry their own theme logic.

Signal discipline

Signal is reserved for primary and ring. Text on Signal is always #151715 — Signal on white fails WCAG (~1.2:1); on black it clears 12.9:1.