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
brandPure brand colorDerived directly from the branding. Typically reserved for logos or identity elements.
on-brandContent on brand surfacesFor text and icons displayed on brand-colored surfaces.
primaryCentral system colorUsed for interactive accents, central surfaces, borders, and text.
on-primaryContent on primary surfacesText/icons on primary-colored surfaces with sufficient contrast.
primary-containerSubdued primary surfaceBackground for interactive components with primary context.
on-primary-containerContent on primary containersText/icons on primary-container surfaces with good readability.
successPositive/confirmation colorSignals success or positive feedback.
on-successContent on success surfacesText/icons on success surfaces with clear contrast.
success-containerSubdued success surfaceSofter positive background.
on-success-containerContent on success containersText/icons on subdued success backgrounds.
dangerError/destructive colorMarks errors or destructive actions.
on-dangerContent on danger surfacesText/icons on danger backgrounds with contrast.
danger-containerSubdued danger surfaceSubtle error emphasis.
on-danger-containerContent on danger containersReadable text/icons on subdued error contexts.
warningWarning/notice colorMarks warnings or notices.
on-warningContent on warning surfacesText/icons on warning surfaces.
warning-containerSubdued warning surfaceSofter warning background.
on-warning-containerContent 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
surfaceNeutral 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-lowestContainer level – lowestVery close to surface, with minimal elevation. Suitable for large background areas that should feel calm and neutral.
surface-container-lowContainer level – lowSlightly differentiated from surface. Provides subtle separation of areas without dominating the overall layout.
surface-containerContainer level – mediumDefault layer for most UI elements. Offers balanced elevation for content containers and interactive surfaces.
surface-container-highContainer level – highNoticeably elevated above surface. Used to highlight important areas and bring them visually to the foreground.
surface-container-highestContainer level – highestForeground-near layer with maximum visual dominance. Supports UI elements requiring top-level attention, such as active states or modal contexts.
surface-appApplication backgroundBase surface of the application. All other surfaces (panes, containers, bars) are layered on top. Neutral in appearance to avoid competing with content.
on-surfaceContent color on surfacesDefault color for text, icons, and symbols on all surface and surface-container layers. Ensures readability and sufficient contrast.
on-surface-type-subtleSubtle 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-surfaceHigh-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-90Semi-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-surfaceContent 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-surfaceStandard pane surfaceBase surface for app panes. Panes divide the viewport into work areas and provide a neutral background for content.
on-pane-surfaceContent color on pane surfacesDefault color for text, icons, and controls displayed on pane surfaces. Ensures contrast and readability.
pane-surface-blankTransparent pane surfacePane without a background color. Reveals underlying layers. Suitable for structural grids.
pane-surface-floatingFloating 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-inverseInverse floating paneDerived from inverse-surface-90. Ensures maximum contrast to stand out clearly from regular content surfaces.
on-pane-surface-floating-inverseContent 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-handleDrag 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-surfaceBar 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-surfaceContent color on barsDefault color for text, icons, and controls on bars. Ensures clear visibility of interactive elements.
bar-surface-blankTransparent 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-widthOutline line widthStandard width for borders, outlines, and dividers. Ensures visual consistency and clear separations across the UI.
outlineNeutral outline colorColor value for visible yet restrained borders. Provides functional separation without competing with primary or brand colors.
outline-variantSubtle outline colorLess dominant than outline. Suitable for large structures, grids, or container divisions.
outline-variant-emphasizedMedium 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-fullFully rounded cornersPart of the defined corner range. Use intentionally for extreme rounding (e.g., pills, circular shapes).
corner-xlExtra-large roundingPart of the defined corner range. Suitable for high-level surfaces like dialogs or modals.
corner-lLarge roundingPart of the defined corner range. Often used for prominent containers or cards.
corner-mMedium roundingSystem reference within the corner range. Default for most components.
corner (alias)Alias to corner-mDefault corner value, refers to the medium reference.
corner-sSmall roundingPart of the defined corner range. Suitable for functional elements like inputs or buttons.
corner-xsExtra-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-3xsSmallest size levelPart of the defined sizing range.
sizing-2xsVery small size levelPart of the defined sizing range.
sizing-xsExtra-small size levelPart of the defined sizing range.
sizing-sSmall size levelPart of the defined sizing range.
sizing-m (reference)Medium size levelCentral reference point of the sizing range.
sizing-lLarge size levelPart of the defined sizing range.
sizing-xlExtra-large size levelPart of the defined sizing range.
sizing-2xlVery large size levelPart of the defined sizing range.
sizing-3xlAbove-average large sizePart of the defined sizing range.
sizing-4xlStrongly enlarged size levelPart of the defined sizing range.
sizing-5xlExtreme size levelPart of the defined sizing range.
sizing-6xlOver-proportional size levelPart of the defined sizing range.
sizing-7xlMaximum 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-0Zero spacingUsed intentionally where no spacing is required.
spacing-4xsSmallest spacingPart of the defined spacing range.
spacing-3xsVery small spacingPart of the defined spacing range.
spacing-2xsExtra-small spacingPart of the defined spacing range.
spacing-xsSmall spacingPart of the defined spacing range.
spacing-sSmall to medium spacingPart of the defined spacing range.
spacing-m (reference)Medium spacing (reference)Central reference point of the spacing range.
spacing-lSlightly larger spacingPart of the defined spacing range.
spacing-xlLarge spacingPart of the defined spacing range.
spacing-2xlVery large spacingPart of the defined spacing range.
spacing-3xlExtra-large spacingPart of the defined spacing range.
spacing-4xlMaximum 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
scrimDarkened 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-colorDefault scroll thumb colorColor value for the thumb in its resting state. Neutral design for visibility without distraction.
scrollbar-thumb-color-hoverHover scroll thumb colorStronger color for the thumb in hover state. Improves discoverability and indicates readiness for interaction.
scrollbar-track-colorScroll track background colorColor value for the track the thumb moves along. Designed subtly to keep focus on content and thumb.
focus-indicator-sizeFocus band widthDefines the width of the inner and outer lines forming the focus indicator. Ensures consistent rendering across the system.
focus-indicator-innerInner focus bandColor value for the line directly adjacent to the component. Provides clear visual separation from the surrounding area.
focus-indicator-outerOuter focus bandColor value for the outer focus line. Adds extra contrast to the environment and strengthens focus visibility.