Geist for product/body, Geist Mono for code and machine labels. The hierarchy is compact, not airy.
h1
h2
h3
body-lg
body-md
label-caps
mono-body
Every value below is a resolved token. Toggle theme/accent/density up top — the swatches are live CSS variables, not screenshots.
Action is the single interaction color — every CTA, active tab, selected row. Accent is brand/highlight only; never an action.
radius.control12pxradius.card16pxradius.panel20pxradius.pill9999px| Token | Comfortable | Compact |
|---|---|---|
--control-h | 46px | 40px |
--control-h-sm | 38px | 34px |
--panel-pad | 28px | 20px |
--card-pad | 18px | 14px |
--cell-pad-y | 14px | 10px |
--cell-pad-x | 16px | 12px |
--stack-gap | 14px | 10px |
Status fills use dark or contrast text so the latent §3 contrast traps never surface. Focus is a visible 3px ring.
The button grammar: one primary (indigo), a quiet secondary, and a tertiary text action. Inputs and pills share the control radius.
Depth comes from contrast and containment — thin borders, soft surface shifts, very little blur.
Default surface for grouped content on light backgrounds.
Developer panels, previews, advanced flows.
// emitted from one schema const action = '#4F46E5'; const radius = 12;
Sidebar and segmented nav use the action color for the selected state — never the accent.