Design Tokens

Tokens are the named decisions the system is built from, in three tiers. Base tokens are the raw palette and scales. Semantic tokens say what a value is for, and they're what components read. Component tokens hold a component's own departures. This page lists the semantic tokens.

For the theory behind them (the tiers, the naming grammar and how the colour ramps work), read thetoken documentation.

Borders separate content and mark edges. A divider uses the default border, which is quiet (1.53:1). A control's edge uses the input border, which is at least 3:1, so it shows where the control is. There is one near-black focus ring. Radius matches the size of the object: small controls, cards, then modals.

How to choose border tokens

Border

Token NameValueUsageExample
border.default0.0625rem solid #d1d1d1Hairline in the default border colour: dividers and decorative outlines, such as Breadcrumbs, CodeBlock and Divider. 1.53:1 on white, so never a control edge (decision 0025).
Sample
border.focus0.125rem solid #222222The focus ring every component draws, with border.focusOffset; never blue (decision 0029).
Sample
border.focusOffset0.125remGap between an element and its focus ring; negate it to inset the ring inside the element.
Sample
border.input-hover0.0625rem solid #636363Firm hairline that must read as a boundary, such as a hovered text input.
Sample

Radius

Token NameValueExample
radius.none0
Sample
radius.xs0.125rem
Sample
radius.sm0.25rem
Sample
radius.md0.5rem
Sample
radius.lg0.75rem
Sample
radius.xl1rem
Sample
radius.2xl1.5rem
Sample
radius.3xl2rem
Sample
radius.full10rem
Sample