Skip to content

Foundations

Space & shape

The page gutter, the measures, and the four radii.

Measures are capped in ch rather than px, so they track the type they are set in. --measure-record is a ceiling on a listed record’s description, not a width: a narrower column still wins.

There are four radius steps and there is no fifth. A 50% circle is geometry rather than a corner and is not a step here.

Layout

Layout tokens
TokenValueNotes
--padclamp(18px, 4.4vw, 64px)─── Space & measure ───
--secclamp(54px, 7vw, 96px)
--sec-tightclamp(40px, 5vw, 68px)
--maxw1288px
--col8.3333%
--row52px
--secondary-textvar(--ink-3-aa)
--page-padvar(--pad)─── Layout ─────────────────────────────────────────────────────────────
--w-pagevar(--maxw)
--w-reading46remCaps the prose track only, which is what a 73ch measure is for.
--measure-record66chThe cap on a listed record's description — a row, a card, a CV entry. In `ch` rather than px so it tracks the type it is set in, and one token rather than the six hand-picked widths surfaces had drifted into. A ceiling, not a width: a narrower column still wins.
--scroll-offset88pxHow far below the viewport top an anchored heading comes to rest — a fixed masthead plus a line of air.

Radius

Radius tokens
TokenValueNotes
--radius-sm6px─── Radius ───────────────────────────────────────────────────────────── Four steps, and there is no fifth. The old law was "0 everywhere"; the White Reset replaces that with a scale small enough to stay quiet on a white page. A 50% circle is geometry rather than a corner and is not a step here.
--radius8pximages, thumbnails, media frames
--radius-lg14pxinputs, buttons, small plates
--radius-pill999pxfeature panels, dark plates

Icons

Icons tokens
TokenValueNotes
--ico-s14px─── Icons ─── one stroke weight, three sizes.
--ico-m16px
--ico-l20px
--ico-stroke1.5

Stacking order

Stacking order tokens
TokenValueNotes
--z-rule1─── Stacking ─── seven ranks, named for what sits at each.
--z-sticky10
--z-drawer100
--z-scrim200
--z-modal210
--z-palette220
--z-toast300
--z-dropdownvar(--z-drawer)─── Stacking ─── five component-facing names onto the seven ranks. ─────
--z-overlayvar(--z-scrim)