TomTom Design System

Colors

Colors

Introduction

Color tokens are vital in our design system to ensure consistency, accessibility, and flexibility, enhancing the overall visual structure and brand identity.

Global tokens

Global colors represent the base palette that defines the TomTom brand identity.
These foundational tones serve as the building blocks for both product aesthetics and system-level semantics.

These colors are neutral, versatile, and brand-aligned. TomTom’s base colors include palettes such as:

Global color examples
  • Blue – Our primary brand color, used to signal primary actions and key features.
  • Grey – A neutral palette for UI surfaces, text, and structural layout.
  • Black & white – Pure values for high-contrast scenarios.
  • Red, green, yellow, orange – Functional accents used for alerts, confirmations, and warnings.
  • Localized colors – Region-specific tones, especially for road signage (e.g. EU Blue and USA Green) to reflect local conventions, as well as APAC-specific tones (e.g. Purple, Pink, Aqua, and Olive) used to distinguish multiple route options in a routing list.
  • Transparent (alpha) variants – Several color families include alpha variants, spanning Black & White, Grey, Green, Red, Orange and Yellow.
  • Extended color sets – To distinguish search categories.
  • EV Tones – Reserved for electric vehicle (EV) related features.

System tokens

The System color tokens are semantic design tokens that adapt automatically across light and dark themes. Instead of using fixed color values, these tokens ensure your UI remains consistent, accessible, and maintainable as the design system evolves. The color categories tell more about the purpose of the color that belongs to the group.

Across the color catagories we also differentiate between hierarchy Levels:

  • Primary: Main content, highest emphasis
  • Secondary: Supporting content, medium emphasis
  • Tertiary: Subdued or disabled content, lowest emphasis

Color categories

a. Surfaces

Surface tokens define the foundational layers that UI is built upon. Each surface includes dedicated foreground tokens to ensure accessible contrast.

When to Use

  • Use surface_primary for main app backgrounds, modals, and full-screen layouts
  • Use surface_secondary for elevated components like cards, input fields, and menus
  • Always pair surfaces with their corresponding onSurface tokens for text and icons

Primary surface The primary surface is the background layer used for panels, modals, toasts, and full-screen views.

TokenUsageExample Components
surface_primaryMain background layerPanels, Modals, Toasts
surface_primary_pressedActive/pressed stateInteractive surface areas on touch
surface_primary_strokeBorders and dividersSeparators, outlines, structural lines
onPrimarySurface_primaryHigh-emphasis contentHeadings, primary text, main icons
onPrimarySurface_secondaryMedium-emphasis contentBody text, supporting labels
onPrimarySurface_tertiaryLow-emphasis contentPlaceholder text, disabled states, captions

Secondary surface UI elements such as search input fields, option cards, and route overview items are layered over the primary surface using secondary surface tokens to create visual distinction.

TokenUsageExample Components
surface_secondaryElevated container backgroundsCards, input fields, dropdown menus, list items
surface_secondary_pressedActive/pressed stateSelected menu items, pressed buttons
surface_secondary_strokeComponent bordersCard outlines, input borders, dividers
onSecondarySurface_primaryHigh-emphasis contentText on cards, input values
onSecondarySurface_secondaryMedium-emphasis contentLabels, hints, secondary information
onSecondarySurface_tertiaryLow-emphasis contentDisabled text, subtle annotations

b. Brand

The brand group is used as an accent color throughout the app.
Selected states, primary actions, and core map elements are styled using this group.

The secondary brand color is used in conjunction with the primary brand color.
Unselected states, secondary actions, and alternative map elements are styled using this group.

When to Use

  • Use brand_primary for primary CTAs (calls-to-action), key highlights, and important interactive elements
  • Use brand_secondary for secondary actions, supporting UI, and neutral brand presence
  • Use brand_tertiary for lesser, supplementary actions, typically smaller buttons, such as a “More” button that expands additional options
  • Reserve brand colors for intentional emphasis. Overuse diminishes their impact

Primary Brand High-emphasis brand accent for primary actions.

TokenUsageExample Components
brand_primaryPrimary brand accentPrimary buttons, FABs, selected states, key map elements
brand_primary_pressedActive stateButton press feedback, active selections
brand_primarySelectedSelected/filled stateToggle switches (on), selected chips, active tabs
brand_primarySelected_pressedActive selected statePressed state of selected elements
brand_primary_strokeBrand component bordersButton outlines, focus rings, brand dividers
onBrandPrimary_primaryHigh-contrast foregroundText and icons on brand backgrounds
onBrandPrimary_secondaryMedium-contrast foregroundSecondary text on brand surfaces

Secondary Brand Supporting brand presence with lower emphasis.

TokenUsageExample Components
brand_secondarySecondary brand backgroundSecondary buttons, unselected UI controls
brand_secondary_pressedActive statePressed secondary actions
brand_secondary_strokeStroke colorBorders on secondary brand elements
onBrandSecondary_primaryPrimary foregroundText on secondary brand backgrounds
onBrandSecondary_secondarySecondary foregroundSupporting text, de-emphasized icons

Tertiary Brand Supporting brand presence for lesser, supplementary actions.

TokenUsageExample Components
brand_tertiaryTertiary brand accentSupplementary actions, “More” buttons that expand additional options
brand_tertiary_pressedActive statePressed state of tertiary actions
brand_tertiary_strokeTertiary component bordersBorders on tertiary brand elements
onBrandTertiary_primaryHigh-emphasis foregroundText and icons on tertiary brand surfaces
onBrandTertiary_secondaryMedium-emphasis foregroundSecondary text on tertiary brand surfaces
onBrandTertiary_tertiaryLow-emphasis foregroundSubdued text/icons on tertiary brand surfaces

c. Guidance

Guidance colors support navigation cues and map-based directional instructions. These tokens adapt by region to match real-world conventions and user expectations. Regional Variations:

  • World Guidance: Default system for international markets
  • USA Guidance: Localized for United States navigation conventions (e.g., green for guidance vs. blue in other regions)

Both follow the same token structure and automatically apply based on user location.

d. Alerts and warnings

Alert tokens communicate system status, feedback, and urgency levels. Each severity level includes primary and secondary variants to support different UI patterns.

Severity levels:

LevelUsage
AlertNeutral information, general notifications
WarningCaution, requires attention
Critical WarningUrgent issues, immediate action needed
PositiveSuccess, confirmation, completion

e. Actions

Accept and decline options use this set of tokens.

Used for user decision-making or system choices:

  • accept, decline, favorite – Action indicators
  • onAccept – Supporting foreground colors

f. UI controls

UI control tokens define colors for navigation elements and structural components that organize interface hierarchy.

Used for interactive navigation elements.

TokenUsageExample Components
uiControls_navigation_primaryPrimary navigation actionsBack buttons, close icons, menu toggles
uiControls_navigation_secondarySecondary navigationOverflow menus, dropdown indicators
uiControls_navigation_pressedActive navigation stateActive back button, pressed menu icon

Structural Controls

Used for visual organization and hierarchy.

TokenUsageExample Components
uiControls_structure_strongHigh-contrast dividersSection separators, major boundaries
uiControls_structure_mediumMedium-contrast structureGroup dividers, card borders
uiControls_structure_subtleLow-contrast separatorsList item dividers, subtle rules

g. Road signage

Any UI that represents real-world signage, such as incident pins, highway road shields, and exit numbers, uses this set of tokens. Used for map UI layers reflecting real-world sign conventions (e.g., signageRed, signageBlack).

Note: These tokens follow international traffic signage conventions for immediate user recognition. They do not have pressed states or foreground pairs as they represent static signage.

h. POI categories

To make search categories easier to recognize, we use this set of POI category colors on labels, icons, and markers.

Place of Interest (POI) tokens are themed by category (e.g., education, foodDrink, entertainment).
These use expressive, recognizable tones.

i. Gradient swatches

Gradient swatches are the most open-ended color group in the system, intentionally left without a fixed semantic meaning so you can define your own use cases. Gradients aren’t token-driven and are applied directly using CSS gradient syntax at the component level.

The collection contains 9 groups (swatchGroupA through swatchGroupI), each with three tokens: _100, _200, and _300.

A gradient supports a linear direction, up to 5 color stops, and an angle. Each color stop references one swatch group and only one color group per stop is allowed. The gradient angle is not tokenized and remains the same across color modes; only the swatch colors change when the active mode changes.

When to use

  • Apply gradient swatches directly at the component level using CSS gradient syntax
  • Assign your own semantic meaning to each group and token as your gradient use case requires
Token patternUsage
tt_sys_color_swatchGroupA_100 through tt_sys_color_swatchGroupI_300Raw color slots for custom gradients; 9 groups × 3 tokens each, no fixed semantic meaning

j. Shadows and inner shadows

Shadow color tokens are used as part of composite effect tokens defined in the Effects collection. They aren’t applied directly to components, but are referenced internally by those composite effect tokens.

Drop shadow colors come in three variants:

  • Standard — a neutral shadow color used for general elevation
  • Glow — a colored drop shadow used for active or highlighted states, such as an active FAB floating over the map
  • EV glow — a second colored drop shadow reserved for a specific use case: the active state of the EV charge-finder FAB

Inner shadow colors come in two variants, selected and unselected, used to create the impression of depth on extruded (raised) or depressed (inset) surfaces.

When to use

  • Don’t apply shadow color tokens directly to a component. Use the composite effect tokens in Effects, which reference these colors internally
  • Reserve glow / evGlow for their specific active-state use cases rather than as general highlight colors
TokenUsage
tt_sys_color_shadowNeutral shadow color for general elevation
tt_sys_color_glowColored glow for active/highlighted states (e.g. active FAB)
tt_sys_color_evGlowColored glow reserved for the EV charge-finder FAB active state
tt_sys_color_innerShadow_selectedInner shadow color for selected/extruded surfaces
tt_sys_color_innerShadow_unselectedInner shadow color for unselected/depressed surfaces

Theming

Colors are color-mode aware. The Design System supports Light and Dark modes. System-level color tokens automatically map to their appropriate values for each mode. Components built using semantic tokens adapt without any additional handling at the component level.