Foundations

Spacing and size

One spacing scale, a radius set, control heights and a minimum target. Nothing off scale.

Spacing scale

TokenValueSize
--space-00px
--space-22px
--space-44px
--space-88px
--space-1212px
--space-1616px
--space-2424px
--space-3232px
--space-4040px
--space-4848px
--space-6464px

Radius

Use the roles: control for buttons, inputs and nav items, card for cards and panels, cardLg for dialogs, pill for chips and avatars.

TokenValuePoints atShape
--radius-xs4pxramp step
--radius-sm8pxramp step
--radius-md12pxramp step
--radius-lg16pxramp step
--radius-pill9999pxramp step
--radius-control8pxradius.sm
--radius-card12pxradius.md
--radius-card-lg16pxradius.lg

Controls, icons and targets

TokenValueUse
--control-sm32pxCompact controls
--control-md40pxDefault buttons and inputs
--icon-size-sm16pxIcons
--icon-size-md20pxIcons
--icon-size-lg24pxIcons
--target-min24pxThe smallest anything clickable may be (WCAG 2.5.8). Aim for 40px on anything used often; 44pt on iOS.

Density

Set data-density="compact" to tighten inset and gap by one step. Control heights, icon sizes and the minimum target stay the same, so a denser layout never shrinks a target.

TokenComfortableCompact
--inset-sm8px4px
--inset-md12px8px
--inset-lg16px12px
--inset-xl24px16px
--gap-sm8px4px
--gap-md12px8px
--gap-lg16px12px