Spacing

A 4px base scale and the rhythm rules that keep sections breathing evenly.

v1.0.0·Updated Jul 10, 2026 · 23:00
A four-pixel base

Every gap, pad and margin is a multiple of 4px. One small scale, used everywhere, is what makes unrelated screens feel like one product. When whitespace can do the work, it does — a line is added only when spacing alone doesn't read as a break.

The scale
space-00px
space-14px
space-28px
space-312px
space-416px
space-520px
space-624px
space-832px
space-1040px
space-1248px
space-1664px
space-2080px
space-25100px
Section rhythm

Page sections breathe on a fluid rhythm, measured against real reference sites so the cadence never feels cramped or empty.

TokenValueRole
--section-padclamp(64px, 8vh, 100px)Vertical padding each side of a section
--section-statementclamp(100px, 14vh, 156px)Deliberate breathing room around a statement
--inline-padclamp(24px, 5vw, 64px)Horizontal page gutter
--cta-padclamp(80px, 10vh, 128px)A step up, for the closing call to action
Rules
Stay on the scale

Reach for a token, not an arbitrary pixel. If a value isn't on the 4px grid, it's almost always the wrong value.

Spacing before lines

Separate content with whitespace first. A #1E1E1E hairline is a last resort, not a default.

Pad from the inside

Cards and controls own their padding; layouts own the gaps between them. Never fake spacing with empty elements.