Skip to content

Spacing and radius

Space comes from a 4px base unit in eight steps. Corners come from a short scale where each radius has a job.

Major bands of a page sit --space-section apart, always the same distance; a page never tightens it. Inside cards the padding depends on the card: 32px for feature and comparison cards, 24px for content windows, 20px for grid tiles. Grids drop columns rather than shrinking cards.

TokenValueDescription
--space-xxsspace.xxs4px
--space-xsspace.xs8px
--space-smspace.sm12px
--space-mdspace.md16px
--space-lgspace.lg24px
--space-xlspace.xl32px
--space-xxlspace.xxl48px
--space-sectionspace.section96pxBetween major bands, uniformly.

Content caps at --container-max. A content page with both side rails uses --container-wide instead, which keeps the main column at the reading measure, --container-reading, with a rail either side. Body text never runs wider than the reading measure.

The system has two breakpoints and no others: at --break-rails the right rail drops, and at --break-stack everything stacks, with the main column first.

TokenValueDescription
--container-maxcontainer.max1200pxContent width.
--container-readingcontainer.reading680pxSingle-column reading measure: article body, about page.
--container-widecontainer.wide1360pxThree-column content pages: two rails and gutters around a full reading column.
--nav-heightnav-height64pxTop navigation bar height.
--control-heightcontrol-height40pxInputs and buttons.
--icon-button-sizeicon-button-size36pxIcon-only buttons.
--rail-leftrail.left200px
--rail-rightrail.right280px
--break-railsbreak.rails1080pxBelow this the right rail drops.
--break-stackbreak.stack768pxBelow this everything stacks, main column first.
--tap-mintap-min44pxMinimum touch target below 768px. Elements opt in with data-ds-tap.

Radii say what something is: 8px for buttons and inputs, 12px for content cards, 16px for a large artifact such as a hero image, a pill for badges and full for avatars and icon buttons. 4px and 6px are kept for badge accents and menu items.

TokenValueDescription
--radius-xsradius.xs4px
--radius-smradius.sm6px
--radius-mdradius.md8px
--radius-lgradius.lg12px
--radius-xlradius.xl16px
--radius-pillradius.pill9999px
--radius-fullradius.full9999px