Skip to content

Token Usage Guidelines


Additional Notes
All tokens in the system are semantically defined – their meaning is stable and must not be changed. “Repurposed” tokens cause misunderstandings within the team, broken consistency, weakened accessibility.


Typography tokens define the semantic role of text styles in the application, beyond their visual size or weight. They describe how strongly a text element should stand out in the visual hierarchy — from highly emphasized titles down to subtle supporting text.

By default, the title-* tokens are mapped to native HTML heading elements (h1–h6) to provide a consistent baseline. However, typography tokens (title, headline, body) are not identical to HTML headings — the mapping is an implementation detail, while the tokens themselves remain design-semantic typography roles.


Additional Notes
Typography tokens are not inherently tied to HTML headings (<h1>, <h2>, …). Their default mapping ensures consistency, but the tokens themselves remain design-semantic typography roles.

Semantics and visual hierarchy usually align, but they do not always need to be identical. Deviations should be rare and intentional to avoid confusion and accessibility issues. If layout or branding requires different emphasis (e.g., section title appearing larger than a pane title), do it intentionally and keep token roles intact.



TokenPurposeRecommended Usage
title-largeMaximum emphasisStrongest visual title style for short, prominent text (e.g., primary pane titles).
title-mediumHigh emphasisSecondary title style for shorter text elements, providing strong but less dominant emphasis.
title-smallMedium emphasisTertiary title style for concise supporting text, often in nested or smaller structures.
title-smallest (custom)Compact emphasisVery compact title style for short labels or titles in limited space.
headline-largeStrong emphasis (Content)Marks entry points in content-heavy contexts (e.g., articles, pages). Still short-form text.
headline-mediumMedium emphasis (Content)Structures content with concise section headers (e.g., chapters, larger sections).
headline-smallLower emphasis (Content)Subsections in text-heavy layouts. Short supporting headers below larger structures.
bodyDefault body textLong-form text for reading: descriptions, paragraphs, labels, and general content.
body-subtleReduced emphasisLower-priority body text such as hints, meta-information, or supplementary labels.
app-name (custom)Branding emphasisReserved for brand-related naming (e.g., app name in top bar).
(Label Tokens – planned)Functional emphasisReserved for short, functional texts such as button labels, form field labels, or UI tags. Not covered by current tokens.

Titles

Title · Large
Maximum emphasis
The quick brown fox jumps over
Title · Medium
High emphasis
The quick brown fox jumps over
Title · Small
Medium emphasis
The quick brown fox jumps over
Title · Smallest (custom)
Compact emphasis
The quick brown fox jumps over

Headlines

Headline · Large
Strong emphasis (Content)
The quick brown fox jumps over
Headline · Medium
Medium emphasis (Content)
The quick brown fox jumps over
Headline · Small
Lower emphasis (Content)
The quick brown fox jumps over

Body

Body
Default body text
The quick brown fox jumps over
Body · Subtle
Reduced emphasis
The quick brown fox jumps over

Branding

App Name (custom)
Branding emphasis
The quick brown fox jumps over

These tokens combine branding, key interactions, and status communication. They differ from surfaces in that they are not intended for neutral surfaces, but rather for signaling and action orientation.


Additional Notes

  • All colors are semantically defined – what matters is their meaning, not the raw color value.
  • Accessibility is mandatory: on-* colors ensure contrast and legibility.
  • The brand / on-brand tokens form an exception: they are not required to meet accessibility standards. They have to be used with care.


Token NamePreviewPurpose (Intent)Recommended Usage
brand Pure brand colorDerived directly from the branding. Typically reserved for logos or identity elements.
on-brand Content on brand surfacesFor text and icons displayed on brand-colored surfaces.
primary Central system colorUsed for interactive accents, central surfaces, borders, and text.
on-primary Content on primary surfacesText/icons on primary-colored surfaces with sufficient contrast.
primary-container Subdued primary surfaceBackground for interactive components with primary context.
on-primary-container Content on primary containersText/icons on primary-container surfaces with good readability.
success Positive/confirmation colorSignals success or positive feedback.
on-success Content on success surfacesText/icons on success surfaces with clear contrast.
success-container Subdued success surfaceSofter positive background.
on-success-container Content on success containersText/icons on subdued success backgrounds.
danger Error/destructive colorMarks errors or destructive actions.
on-danger Content on danger surfacesText/icons on danger backgrounds with contrast.
danger-container Subdued danger surfaceSubtle error emphasis.
on-danger-container Content on danger containersReadable text/icons on subdued error contexts.
warning Warning/notice colorMarks warnings or notices.
on-warning Content on warning surfacesText/icons on warning surfaces.
warning-container Subdued warning surfaceSofter warning background.
on-warning-container Content on warning containersReadable text/icons on subdued warning.

Surface tokens define the neutral base layers of the application — the visual foundation for all structural and interactive elements. They serve as calm, unobtrusive backgrounds for main content areas and help to organize hierarchy through subtle tonal steps.

While Interaction & Status Colors convey meaning, surface colors stay intentionally neutral, ensuring that content and actions remain in focus.

Surfaces form the background for semantic layout areas such as panes, bars, and other containers as well.


Additional Notes

  • surface-app is the outermost structural frame of the interface.
  • surface defines the standard base layer for content regions that sit on top of surface-app.
  • Surface containers (e.g., surface-container-low, surface-container-high) help to differentiate visual depth and build hierarchy across layout layers.



Token NamePreviewPurpose (Intent)Recommended Usage
surface Neutral base surfaceDefault background for content and containers. Acts as a stable foundation for the UI, visually restrained to keep focus on content and interactions.
surface-container-lowest Container level – lowestVery close to surface, with minimal elevation. Suitable for large background areas that should feel calm and neutral.
surface-container-low Container level – lowSlightly differentiated from surface. Provides subtle separation of areas without dominating the overall layout.
surface-container Container level – mediumDefault layer for most UI elements. Offers balanced elevation for content containers and interactive surfaces.
surface-container-high Container level – highNoticeably elevated above surface. Used to highlight important areas and bring them visually to the foreground.
surface-container-highest Container level – highestForeground-near layer with maximum visual dominance. Supports UI elements requiring top-level attention, such as active states or modal contexts.
surface-app Application backgroundBase surface of the application. All other surfaces (panes, containers, bars) are layered on top. Neutral in appearance to avoid competing with content.
on-surface Content color on surfacesDefault color for text, icons, and symbols on all surface and surface-container layers. Ensures readability and sufficient contrast.
on-surface-type-subtle Subtle content colorLess dominant variant of on-surface. Suitable for secondary content such as labels, hints, or meta-information. Provides reduced weight while remaining accessible.
text-color (alias) Alias to on-surfaceStandard color for text and icons, functionally identical to on-surface.
text-color-subtle (alias) Alias to on-surface-subtleMatches the subtle content color. Used for secondary or supporting content.
text-color-primary (alias) Alias to primaryMatches the primary color. Highlights text or icons with primary importance.

Inverse surface tokens provide high-contrast background layers that invert the usual surface logic. They are used in situations where elements must stand out strongly from the standard UI, such as toolbars, overlays, or floating panels.

Unlike neutral surfaces, inverse surfaces are designed to create strong visual separation while still maintaining accessibility and readability.


Additional Notes

  • Inverse surfaces follow the Material Design pattern for high-contrast backgrounds.
  • Ideal for toolbars, overlays, or floating components that must remain visually distinct.
  • Transparency adds depth and layering while preserving contrast.


Token NamePreviewPurpose (Intent)Recommended Usage
inverse-surface High-contrast inverse surfaceSolid background surface designed to contrast strongly with standard surfaces. Used for components or areas that require visual inversion, such as toolbars or high-contrast overlays.
inverse-surface-90 Semi-transparent inverse surfaceA translucent variant of inverse-surface (90%). Allows subtle background visibility while maintaining strong contrast. Useful for overlays or floating elements.
on-inverse-surface Content color on inverse surfacesDefault text and icon color used on inverse-surface and inverse-surface-90. Ensures readability and sufficient contrast against darkened or inverted backgrounds.

These tokens define the surface and behavior of application work areas. They segment the viewport into functional zones and provide a stable surface for content.

While Surfaces establish the general neutral layers of the system, Panes are more specific: they represent interactive and structural containers that can be static, floating, or transparent.


Additional Notes

  • Panes are the primary organizational unit of the application’s layout.
  • Standard panes use the surface token to stay visually consistent.
  • Floating panes follow a similar logic to dialogs but allow greater flexibility within a workspace.
  • Drag handles improve usability by supporting docking and rearrangement, enabling adaptable work environments.


Token NamePreviewPurpose (Intent)Recommended Usage
pane-surface Standard pane surfaceBase surface for app panes. Panes divide the viewport into work areas and provide a neutral background for content.
on-pane-surface Content color on pane surfacesDefault color for text, icons, and controls displayed on pane surfaces. Ensures contrast and readability.
pane-surface-blank Transparent pane surfacePane without a background color. Reveals underlying layers. Suitable for structural grids.
pane-surface-floating Floating panePane not part of the regular layout, layered above all other surfaces. Used temporarily or permanently, e.g., for tools or dialog areas.
pane-surface-floating-inverse Inverse floating paneDerived from inverse-surface-90. Ensures maximum contrast to stand out clearly from regular content surfaces.
on-pane-surface-floating-inverse Content color on inverse floating panesDefault color for text, icons, and controls displayed on pane-surface-floating-inverse. Ensures readability even under extreme contrast.
pane-drag-handle Drag handle for pane controlVisible anchor point for moving, docking, or rearranging panes. Supports flexible workspaces within the app layout.

Bar-surface tokens define the surface treatment of linear UI elements such as navigation bars, toolbars, or status bars. While pane-surfaces structure larger work areas, bar-surfaces are functional control surfaces that provide space for navigation and actions. They integrate into the surrounding layout while ensuring clarity and contrast for interactive elements.


Additional Notes

  • Bar-surfaces are always part of the UI control layer, not the content layer.
  • Transparent variants (bar-surface-blank) support immersive layouts where controls should not distract from content.
  • Consistent use of bar-surface tokens ensures that controls are visually distinct yet harmonized with pane- and neutral surfaces.


Token NamePreviewPurpose (Intent)Recommended Usage
bar-surface Bar surfaceBackground surface for linear control bars. Can appear within a pane (e.g., toolbars) or across the viewport (e.g., top bar, navigation bar).
on-bar-surface Content color on barsDefault color for text, icons, and controls on bars. Ensures clear visibility of interactive elements.
bar-surface-blank Transparent bar surfaceVariant without its own background color. Keeps underlying pane content visible, allowing bars to integrate subtly into immersive layouts.

Outline tokens define the lines and borders that provide structure, separation, and emphasis within the UI. Unlike surfaces, which build visual layers, outlines are linear elements that frame or divide areas. They ensure clarity, guide focus, and support accessibility by differentiating interactive from non-interactive zones.


Additional Notes

  • outline ensures accessibility and clear separation, especially in inputs and focus states.
  • Variants (outline-variant, outline-variant-emphasized) can be used decoratively or structurally, depending on the visual weight required.
  • outline is reserved for system use: it should not be reassigned or used for purely decorative purposes.


Token NamePreviewPurpose (Intent)Recommended Usage
outline-width Outline line widthStandard width for borders, outlines, and dividers. Ensures visual consistency and clear separations across the UI.
outline Neutral outline colorColor value for visible yet restrained borders. Provides functional separation without competing with primary or brand colors.
outline-variant Subtle outline colorLess dominant than outline. Suitable for large structures, grids, or container divisions.
outline-variant-emphasized Medium outline colorColor value between outline and outline-variant. Used when outline is too strong and outline-variant too weak. Allows for moderate emphasis.

Corner tokens define the rounding of component edges. They establish a consistent visual language for how surfaces, panes, and interactive elements appear in terms of softness or sharpness.


Additional Notes

  • corner (alias for corner-m) is the system reference value.
  • Extreme values (corner-full, corner-xl) should be used intentionally, not by default.
  • Consistent corner usage helps maintain recognizability and brand character across applications.


Token NamePreviewPurpose (Intent)Recommended Usage
corner-full Fully rounded cornersPart of the defined corner range. Use intentionally for extreme rounding (e.g., pills, circular shapes).
corner-xl Extra-large roundingPart of the defined corner range. Suitable for high-level surfaces like dialogs or modals.
corner-l Large roundingPart of the defined corner range. Often used for prominent containers or cards.
corner-m Medium roundingSystem reference within the corner range. Default for most components.
corner (alias) Alias to corner-mDefault corner value, refers to the medium reference.
corner-s Small roundingPart of the defined corner range. Suitable for functional elements like inputs or buttons.
corner-xs Extra-small roundingPart of the defined corner range. Best for subtle rounding in compact UI elements.

Sizing tokens define the scalable size range for components and UI elements. They provide a consistent system from very small to very large, ensuring balance and predictability across the design.


Additional Notes

  • Jumps within the range are allowed to create clear differentiation.


Token NamePreviewPurpose (Intent)Recommended Usage
sizing-3xs Smallest size levelPart of the defined sizing range.
sizing-2xs Very small size levelPart of the defined sizing range.
sizing-xs Extra-small size levelPart of the defined sizing range.
sizing-s Small size levelPart of the defined sizing range.
sizing-m (reference) Medium size levelCentral reference point of the sizing range.
sizing-l Large size levelPart of the defined sizing range.
sizing-xl Extra-large size levelPart of the defined sizing range.
sizing-2xl Very large size levelPart of the defined sizing range.
sizing-3xl Above-average large sizePart of the defined sizing range.
sizing-4xl Strongly enlarged size levelPart of the defined sizing range.
sizing-5xl Extreme size levelPart of the defined sizing range.
sizing-6xl Over-proportional size levelPart of the defined sizing range.
sizing-7xl Maximum size levelTop-defined size level of the sizing range.

Spacing tokens define the consistent distance system for arranging elements. They structure relationships between components and create rhythm, readability, and clarity in the UI.

Unlike sizing, which controls component dimensions, spacing defines the white space around and between elements.


Additional Notes

  • Spacing is key for rhythm, readability, and information architecture.
  • Consistent spacing makes layouts calmer and more coherent.
  • Spacing derives from semantic proximity and visual hierarchy — not from rigid, uniform values.
  • Rule of thumb: equal relationships → equal spacing; different relationship strength → graded spacing.
  • Consistency does not mean uniformity — it means a recognizable pattern that supports hierarchy and semantic grouping.


Token NamePreviewPurpose (Intent)Recommended Usage
spacing-0 Zero spacingUsed intentionally where no spacing is required.
spacing-4xs Smallest spacingPart of the defined spacing range.
spacing-3xs Very small spacingPart of the defined spacing range.
spacing-2xs Extra-small spacingPart of the defined spacing range.
spacing-xs Small spacingPart of the defined spacing range.
spacing-s Small to medium spacingPart of the defined spacing range.
spacing-m (reference) Medium spacing (reference)Central reference point of the spacing range.
spacing-l Slightly larger spacingPart of the defined spacing range.
spacing-xl Large spacingPart of the defined spacing range.
spacing-2xl Very large spacingPart of the defined spacing range.
spacing-3xl Extra-large spacingPart of the defined spacing range.
spacing-4xl Maximum defined spacingTop-defined level of the spacing range.

Transient Elements & States tokens define the temporary UI elements and state indicators that support interaction.

Token NamePreviewPurpose (Intent)Recommended Usage
scrim Darkened background surfaceSemi-transparent overlay that darkens the background when modal dialogs, overlays, or popups are open. Helps direct focus to the foreground and reduces distractions.
scrim-opacityScrim transparency levelDefines how much of the background remains visible. Higher opacity increases separation, lower opacity creates a subtler effect.
disabled-opacityDisabled state transparencyReduces visibility of non-interactive content. Clearly signals inactive state without breaking the layout structure.
scrollbar-outer-sizeScrollbar track widthSets the outer dimension of the scrollbar. Ensures sufficiently large interaction targets without covering content excessively.
scrollbar-inner-sizeScroll thumb widthDefines the actual draggable area of the scrollbar. Should be clearly visible and easy to use.
scrollbar-thumb-color Default scroll thumb colorColor value for the thumb in its resting state. Neutral design for visibility without distraction.
scrollbar-thumb-color-hover Hover scroll thumb colorStronger color for the thumb in hover state. Improves discoverability and indicates readiness for interaction.
scrollbar-track-color Scroll track background colorColor value for the track the thumb moves along. Designed subtly to keep focus on content and thumb.
focus-indicator-size Focus band widthDefines the width of the inner and outer lines forming the focus indicator. Ensures consistent rendering across the system.
focus-indicator-inner Inner focus bandColor value for the line directly adjacent to the component. Provides clear visual separation from the surrounding area.
focus-indicator-outer Outer focus bandColor value for the outer focus line. Adds extra contrast to the environment and strengthens focus visibility.