Skip to main content

What it governs

Every gap, pad, inset, and control height. Two token families do all of it: spacing-* (11 usable steps) and control-height-* (2 steps).

Vocabulary

Sourced from Invoca’s design-token naming specification, confirmed by its owner as the baseline the design language is being built on. This is the vocabulary of record — not inferred from token names.

The scale is ordinal, not arithmetic

This is the thing to internalize before anything else.
The number is a position, not a multiplier. spacing-5 is 16px, not 20px. spacing-10 is 56px, not 40px. The scale accelerates: 2px steps at the bottom, 4px in the middle, 8px at the top.If you are computing a value — “I need 20px, so spacing-5” — you are using the scale wrong. Pick by role, using the table below.

Choosing a token

Left column is what you are trying to express. Right column is the token.

Space between things

Control heights

There is no large control height. Titan ships two, sm and md. A large size can still be requested and will render — at a size no Titan token defines and no design decision covers. Two heights is the system’s surface; use them.

Token reference

Constraints

Retired

Accessibility

  • Both control heights clear the AA target size minimum. control-height-sm is 32px and control-height-md is 36px, against the 24×24px of Target Size (Minimum, AA). Neither reaches the 44×44px of Target Size (Enhanced, AAA). Height is one dimension — an icon-only control must also meet 24px in width.
  • Spacing carries grouping information. Users relying on magnification see a fraction of the screen at a time and rely on proximity more heavily than sighted users at 100%. Keep the gap hierarchy intact: related < grouped < sectioned < region.

Known issues

Space: open issues

Divergences, open decisions, and undocumented gaps for Space.
30 core components consume this foundation — derived from token usage in components/core/src/components, not assumed: Accordion · AddList · Alert · Button · ButtonGroup · Card · Checkbox · Chip · DatePicker · Drawer · Dropzone · EmptyState · Footer · Form · FormInput · Header · List · Modal · Radio · SearchableSelect · Select · Tabs · TextField · TextFieldWithSearchIcon · TextLink · Tile · Toast · Toggle · Tooltip · Typography

Why it works this way

The scale accelerates because perception does. The difference between 2px and 4px is large and meaningful; the difference between 48px and 50px is not visible. A linear scale wastes its middle on distinctions nobody can see and runs out of room at the top. Steps of 2, then 4, then 8 give roughly even perceptual increments. Eleven steps is deliberately few. Every additional step is a decision a builder has to make and a reviewer has to check. A scale with 20 values does not produce more precise layouts; it produces layouts where no two authors picked the same gap for the same job.
Last modified on September 7, 2026