Spacing, sizing, and layout
Rhythm, control dimensions, breakpoints, grids, gutters, and reading measures.
Principles
- Compose with the token scale; avoid one-off gaps.
- Use 44px as the default minimum interactive target.
- Let content trigger layout changes; breakpoint names do not name devices.
Usage boundaries
- Compact 32px controls still require a 44px hit area.
- Reading measures should remain near 70 characters.
- Use logical properties so gutters and columns mirror in RTL.
Interactive reference
Token explorer
30 tokens
space.00Explicit zero avoids magic values.
Use: Intentional edge removal.
space.10.25remFour-pixel base unit supports fine alignment.
Use: Tight icon and text relationships.
space.20.5remTwo units create compact internal rhythm.
Use: Compact gaps.
space.30.75remThree units bridge compact and default density.
Use: Control internals.
space.41remSixteen pixels is the default component rhythm.
Use: Default gaps and padding.
space.51.25remSupports comfortable content groups.
Use: Compact surface padding.
space.61.5remSeparates related sections without fragmentation.
Use: Default surface padding.
space.82remCreates a clear section boundary.
Use: Section and layout gaps.
space.102.5remProvides medium layout separation.
Use: Page regions.
space.123remSupports large responsive sections.
Use: Page section padding.
space.164remCreates strong page hierarchy.
Use: Large-screen section breaks.
space.205remLargest standard tier prevents arbitrary gaps.
Use: Hero and major page regions.
size.control.compact2remThirty-two pixels supports dense pointer-led contexts.
Use: Dense desktop only; preserve a 44px hit target.
size.control.default2.75remForty-four pixels meets the pointer-target baseline.
Use: Default interactive control height.
size.control.large3remForty-eight pixels supports primary and touch-heavy actions.
Use: Prominent controls and mobile.
size.icon.small1remSixteen pixels fits supportive inline icons.
Use: Decoration; not standalone controls.
size.icon.default1.25remTwenty pixels balances clarity and density.
Use: Default control and status icons.
size.icon.large1.5remTwenty-four pixels supports standalone recognition.
Use: Navigation and large controls.
size.content.readable70chLimits prose to a comfortable line length.
Use: Long-form reading regions.
size.content.wide90remBounds wide shells on large screens.
Use: Maximum application canvas.
breakpoint.compact30remSeparates narrow phones from larger compact layouts.
Use: Content-led progressive enhancement.
breakpoint.medium48remSupports common split-layout transitions.
Use: Two-column and navigation changes.
breakpoint.expanded64remIntroduces persistent structure when space permits.
Use: Side navigation and multi-column layouts.
breakpoint.wide80remBounds wide grids without assuming a device.
Use: Large content canvases.
layout.columns.compact4Four columns make narrow composition predictable.
Use: Compact layout planning.
layout.columns.medium8Eight columns support medium composition.
Use: Medium layout planning.
layout.columns.expanded12Twelve columns support flexible desktop division.
Use: Expanded layout planning.
layout.gutter.compact1remProtects content from narrow viewport edges.
Use: Compact page gutters.
layout.gutter.medium1.5remAdds breathing room as width grows.
Use: Medium page gutters.
layout.gutter.expanded2remKeeps desktop content aligned without waste.
Use: Expanded page gutters.