Skip to main content Skip to docs navigation

Size Tokens

Comprehensive guide to size tokens defining consistent dimensions for component sizing, icon sizes, and layout measurements.

This documentation is a work in progress. Some information may be incomplete, outdated, or differ from the current product behavior.

Overview

Size tokens define consistent dimensional values used for component sizing, icon dimensions, and layout measurements throughout the design system. They ensure visual harmony and predictable scaling across all interface elements.

Architecture

Size tokens are organized into a two-layer system where base sizing values are defined in the metric-base token set and then referenced by contextual and component-specific size tokens in the App group.

How it works:

The system progresses from foundational to applied:

  1. Base sizes (size.unit.*) provide raw dimensional values (0-1024px)
  2. Contextual sizes (size.context.*) assign semantic meaning (xsmall, small, medium, large, etc.)
  3. Component sizes (size.[component].*) define specific dimensions for UI components

Benefits:

  • Consistent sizing scale across all components
  • Predictable visual rhythm through systematic increments
  • Easy to adjust component sizes globally
  • Semantic naming clarifies sizing intent

Size tokens use an 8-point grid system (8, 16, 24, 32, 40, 48...) as the foundation, with additional values for fine-tuning. This system ensures visual consistency and makes it easier to align elements.

Organization

Size tokens are organized into three categories:

Base Sizes: Raw dimensional values in pixels, primarily using an 8-point grid system with additional increments.

Contextual Sizes: Semantic size scales (2xsmall through 2xlarge) for general use.

Component Sizes: Specific dimensional values for individual UI components (buttons, badges, icons, etc.).

This organization provides flexibility while maintaining consistency.

Base Sizes

Base size tokens provide foundational dimensional values. These reference the underlying dimension.base.* tokens defined in metric-base.json.

Standard Scale

The primary sizing scale follows an 8-point grid with additional values:

Token NameValue (px)Use Cases
size.unit.00Zero size, no dimension
size.unit.11Minimal size, separator lines
size.unit.22Very small elements, fine borders
size.unit.44Small indicators, compact elements
size.unit.88Base grid unit, small icons
size.unit.1212Small component dimensions
size.unit.1616Small-medium elements
size.unit.2020Small icons and badges
size.unit.2424Medium icons, compact buttons
size.unit.2828Medium-large icons
size.unit.3232Standard button height
size.unit.3636Medium-large elements
size.unit.4040Standard component height
size.unit.4848Large buttons and inputs
size.unit.5656Extra large components
size.unit.6464Hero elements, large avatars

Extended Scale

For larger dimensions:

Token NameValue (px)Use Cases
size.unit.7272Collapsed navigation
size.unit.9696Large spacing, section heights
size.unit.120120Menu widths, medium containers
size.unit.128128Medium-large containers
size.unit.160160Large containers
size.unit.192192Extra large containers
size.unit.256256Expanded navigation, sidebars
size.unit.320320Modal widths, content areas
size.unit.512512Large content areas
size.unit.10241024Maximum content widths

Fractional and Negative Sizes

For fine-tuning and special cases:

Token NameValuePurpose
size.unit.050.5pxHalf-pixel adjustments
size.unit.d050.05emRelative fractional size
size.unit.d151.5px1.5-pixel increments
size.unit.d252.5px2.5-pixel increments
size.unit.n1 through size.unit.n24Negative valuesNegative margins, adjustments

Contextual Sizes

Contextual size tokens provide semantic sizing scales for general application.

Token NameValuePurpose
size.context.2xsmall16pxExtra small elements
size.context.xsmall24pxVery small elements
size.context.small32pxSmall components
size.context.medium40pxStandard component size
size.context.large48pxLarge components
size.context.xlarge56pxExtra large elements
size.context.2xlarge64pxMaximum size elements

Icon Sizes

Icon size tokens ensure consistent icon dimensions throughout the system.

Token NameValueUse Cases
size.icon.glyph.3xsmall8pxTiny indicators
size.icon.glyph.2xsmall12pxSmall inline icons
size.icon.glyph.xsmall16pxCompact UI icons
size.icon.glyph.small20pxStandard small icons
size.icon.glyph.medium24pxDefault icon size
size.icon.glyph.large28pxLarge UI icons
size.icon.glyph.xlarge32pxExtra large icons
size.icon.glyph.2xlarge36pxHero icons
size.icon.glyph.3xlarge40pxFeature icons
size.icon.glyph.4xlarge48pxLarge feature icons
size.icon.glyph.5xlarge56pxExtra large features
size.icon.glyph.6xlarge64pxMaximum icon size

Component Sizes

Component-specific size tokens define exact dimensions for UI elements.

Button Sizes

Token NameValueApplied To
size.button.small-main32pxSmall button height
size.button.small-icon20pxIcon in small button
size.button.medium-main40pxStandard button height
size.button.medium-icon24pxIcon in medium button
size.button.large-main48pxLarge button height
size.button.large-icon28pxIcon in large button

Badge Sizes

Token NameValueApplied To
size.badge.small-main20pxSmall badge height
size.badge.small-icon12pxIcon in small badge
size.badge.medium-main24pxStandard badge height
size.badge.medium-icon16pxIcon in medium badge
size.badge.large-main28pxLarge badge height
size.badge.large-icon20pxIcon in large badge

Form Input Sizes

Token NameValueApplied To
size.form-input.small-icon16pxIcon in small input
size.form-input.medium-icon20pxIcon in medium input
size.form-input.large-icon24pxIcon in large input
Token NameValueApplied To
size.modal.window-small-w360pxSmall modal width
size.modal.window-medium-w560pxMedium modal width
size.modal.window-large-w800pxLarge modal width
size.modal.window-xlarge-w1140pxExtra large modal width
Token NameValueApplied To
size.nav-left.wdith-collapsed72pxCollapsed sidebar width
size.nav-left.width-expanded256pxExpanded sidebar width
size.nav-top.height64pxTop navigation height

Usage Guidelines

Choosing the Right Token

For components: Use component-specific tokens (size.button.*, size.badge.*, etc.)

For icons: Use icon size tokens (size.icon.glyph.*)

For semantic sizes: Use contextual tokens (size.context.*)

For custom dimensions: Use base size tokens (size.unit.*)

Design Principles

Touch Targets: Minimum 32px (size.unit.32) for interactive elements on touch devices

Icon Sizing: Keep icon sizes at 24px (size.icon.glyph.medium) or larger for clarity

Visual Rhythm: Stick to 8-point grid increments for harmonious layouts

Consistency: Use the same size token for similar elements across components

Accessibility

  • Interactive elements should be at least 32×32px for touch accessibility
  • Icons conveying important information should be at least 24×24px
  • Ensure sufficient size for users with motor impairments
  • Test touch targets on actual devices, not just in design tools

Best Practices

Do:

  • Use contextual size tokens for flexible, semantic sizing
  • Reference component size tokens for specific UI elements
  • Stick to the 8-point grid when possible
  • Document the purpose when using non-standard sizes

Don't:

  • Create arbitrary size values—always use tokens
  • Use sizes smaller than 32px for primary interactive elements
  • Mix sizing systems inconsistently
  • Use pixel values directly in component styles