Skip to content

Sizes and space

Sizes depend on the input device, not on the width of the screen.

Token Pointer Touch Use
size.control.sm 28px 40px
size.control.md 36px 48px
size.control.lg 44px 56px
size.target-min 24px 48px The smallest area that reacts to a press, whatever the control looks like.
size.switch.width 36px 52px
size.switch.height 20px 32px
size.checkbox 18px 24px The box, not the pressable area.
size.list-row 40px 56px The least height of a row in a list.
size.bar 48px 56px Top bars and tab bars.
size.button-radius 10px 9999px Buttons are rounded rectangles where a pointer is used.
size.icon.sm 16px 16px
size.icon.md 20px 20px Icons beside text.
size.icon.lg 24px 24px Icons that stand alone: tab bars, top bars.
size.avatar.sm 24px 24px
size.avatar.md 32px 32px
size.avatar.lg 40px 40px
size.badge 24px 24px The height of a badge.
size.progress 8px 8px The thickness of a progress bar.
size.spinner.sm 16px 16px
size.spinner.md 24px 24px
size.spinner.lg 32px 32px
Token Value Use
space.1 4px
space.2 8px
space.3 12px
space.4 16px
space.5 20px
space.6 24px
space.8 32px
space.10 40px
space.12 48px
space.16 64px
space.0-5 2px
space.1-5 6px
space.2-5 10px
Token Value Use
radius.sm 6px Small parts inside a control: badges, checkboxes.
radius.md 10px Controls: buttons, fields.
radius.lg 16px Containers: cards, dialogs.
radius.xl 24px Surfaces that float free of the screen edges: sheets, floating bars.
radius.full 9999px Pills and circles.
Token Value Use
border.width.thin 1px
border.width.thick 2px Selected and invalid states that must not rely on color alone.
focus.width 2px Focus ring thickness. WCAG 2.2 asks for an indicator at least 2px thick.
focus.offset 2px Gap between a control and its focus ring, so the ring reads against the control’s own fill.