Foundations

Color

Colour is built in two layers. Primitive scales hold the raw values. Semantic tokens give each value a role, such as a surface, a text colour or a border, with a light and a dark mode. Components only use the semantic layer, so a theme can change without touching them.

Palette#

Eight scales of eleven steps, from 950 (darkest) to 50 (lightest). Click a swatch to copy its hex.

Grey

A balanced spectrum of neutral tones designed to support layout, hierarchy, and readability without drawing attention away from content.

Blue

A versatile range of blues that conveys clarity, trust, and focus, suitable for primary actions, links, and informational elements.

Purple

A refined purple spectrum that adds depth and distinction, often used to highlight premium features or expressive brand moments.

Pink

A controlled range of pink tones that introduces warmth and personality while remaining suitable for structured UI applications.

Green

A clear and balanced green spectrum used to communicate success, confirmation, and positive system feedback.

Yellow

A bright but restrained yellow range used for highlights and caution states where visibility and attention are critical.

Orange

A strong, attention-focused orange spectrum commonly used for warnings and emphasis without the severity of error states.

Red

A decisive range of reds designed for error states, destructive actions, and critical system feedback.

Alpha#

Black and white at fixed opacities, for overlays, pressed states and layered effects. They keep the colour underneath visible.

Alpha Black

Opacity-based values used to create overlays, interaction feedback, and layered effects while preserving underlying color context.

Alpha White

Opacity-based values used to create overlays, interaction feedback, and layered effects while preserving underlying color context.

Roles#

Every colour is grouped by its role rather than its hex value, with a target share of the interface for each.

Neutral

The structural backbone of the interface, providing balance, hierarchy, and readability without competing for attention.

Use for:

Backgrounds, surfaces, text, borders, dividers, disabled states.

Usage:

55–65% of your entire design.

Grey

Brand Identity

The core color (or set of colors) that represents the product’s visual identity and establishes brand recognition.

Use for:

Brand moments, navigation highlights, key visuals, and identity-driven elements.

Usage:

Varies by product, typically low and intentional.

BluePurplePinkGreenYellow

Primary

The main color that guides users to the most important actions.

Use for:

Primary buttons, key CTAs, selected states, and high-priority interactions.

Usage:

8–12% of your entire design.

Blue

Secondary

A supporting color that complements the primary color without overpowering it.

Use for:

Secondary actions, supporting UI elements, highlights where primary would be too strong.

Usage:

5–8% of your entire design.

Purple

Accent

A high-impact color used sparingly to draw attention or add emphasis.

Use for:

Badges, indicators, highlights, and subtle visual cues.

Usage:

2–4% of your entire design.

PinkYellow

Status

Purpose-driven colors used to communicate system feedback and state changes.

Use for:

Success, warning, error, and informational feedback.

Usage:

3–5% of your entire design (combined).

GreenOrangeRed

Brand themes#

A brand theme maps eleven named tones onto one scale. Components use the tone names, so switching the theme rebrands the interface without touching a component.

NameBrand BlueBrand PurpleBrand Yellow

Extra Soft

The lightest tone, used for barely-there backgrounds and minimal visual presence.

Blue/ 50
Purple/ 50
Yellow/ 50

Soft

A gentle tone that adds subtle separation without drawing attention.

Blue/ 100
Purple/ 100
Yellow/ 100

Subtle

A low-contrast tone used to support hierarchy while remaining unobtrusive.

Blue/ 300
Purple/ 300
Yellow/ 300

Muted

A restrained tone that reduces emphasis while maintaining visibility.

Blue/ 400
Purple/ 400
Yellow/ 400

Default

The standard tone used most frequently as the baseline color.

Blue/ 600
Purple/ 600
Yellow/ 600

Base

The core reference tone of the color, representing its true identity.

Blue/ 700
Purple/ 700
Yellow/ 700

Strong

A high-contrast tone used for emphasis and important UI elements.

Blue/ 800
Purple/ 800
Yellow/ 800

Bold

A saturated, attention-forward tone used sparingly for prominence.

Blue/ 900
Purple/ 900
Yellow/ 900

Deep

The darkest tone, used for maximum contrast, depth, or dark surfaces.

Blue/ 950
Purple/ 950
Yellow/ 950

Content-On-Base

Text color used on solid or filled surfaces, optimized for high contrast and readability.

Grey/ 50
Grey/ 50
Grey/ 950

Content-On-Inverse

Text color used when the surrounding surface is inverted, automatically adapting to maintain readable contrast.

Grey/ 950
Grey/ 950
Grey/ 50

Semantic tokens#

Components use semantic tokens, never raw scale values. Each token has a value for light mode and one for dark mode.

Surface8 tokens

NameLight modeDark mode

Clear

The lightest surface value, often pure white or near-transparent.

Neutrals/Surface/Clear

Grey/ 50
Grey/ 950

Subtle

A very light surface used to gently separate content without creating strong contrast.

Neutrals/Surface/Subtle

Grey/ 100
Grey/ 900

Default

The primary surface level used most frequently throughout the interface.

Neutrals/Surface/Default

Grey/ 200
Grey/ 800

Soft

A slightly stronger surface that introduces clear separation without feeling heavy.

Neutrals/Surface/Soft

Grey/ 400
Grey/ 600

Muted

A restrained surface that adds structure while staying unobtrusive.

Neutrals/Surface/Muted

Grey/ 600
Grey/ 400

Strong

A high-contrast surface used to emphasize sections or draw attention.

Neutrals/Surface/Strong

Grey/ 800
Grey/ 200

Inverse

A surface that flips contrast relative to the surrounding context.

Neutrals/Surface/Inverse

Grey/ 950
Grey/ 50

Disabled

A low-emphasis surface indicating non-interactive or inactive states.

Neutrals/Surface/Disabled

Grey/ 300
Grey/ 700

Overlay3 tokens

NameLight modeDark mode

Medium

A moderate overlay used to clearly communicate active or pressed states.

Neutrals/Overlay/Medium

Black/ 12
White/ 12

Strong

A high-intensity overlay used for prominent emphasis or layered focus.

Neutrals/Overlay/Strong

Black/ 24
White/ 24

Heavy

A high-intensity overlay used to create strong emphasis or visual depth, typically applied in pressed states, selected surfaces, or moments requiring clear feedback.

Neutrals/Overlay/Heavy

Black/ 40
White/ 40

Content6 tokens

NameLight modeDark mode

Secondary

Supporting content color for less prominent text (e.g., body and paragraphs).

Neutrals/Content/Secondary

Grey/ 700
Grey/ 300

Muted

A low-emphasis content tone used to reduce visual priority while remaining readable.

Neutrals/Content/Muted

Grey/ 600
Grey/ 400

Faint

The lightest content tone, used for barely visible or reference-only text.

Neutrals/Content/Faint

Grey/ 500
Grey/ 500

On-solid

High-contrast content used on solid or filled surfaces.

Neutrals/Content/On-solid

Grey/ 50
Grey/ 950

Inverse

Content color used on surfaces with inverted contrast, automatically adapting to light or dark backgrounds to maintain readability.

Neutrals/Content/Inverse

Grey/ 950
Grey/ 50

Disabled

Content color indicating non-interactive or inactive states.

Neutrals/Content/Disabled

Grey/ 400
Grey/ 600

Border6 tokens

NameLight modeDark mode

Light

The lightest border tone, used for minimal separation and low visual weight.

Neutrals/Border/Light

Grey/ 100
Grey/ 900

Subtle

A low-contrast border for gentle grouping without drawing attention.

Neutrals/Border/Subtle

Grey/ 200
Grey/ 800

Soft

A restrained border used to define structure while remaining unobtrusive.

Neutrals/Border/Soft

Grey/ 400
Grey/ 600

Focused

High-contrast border used to indicate keyboard or accessibility focus.

Neutrals/Border/Focused

Grey/ 500
Grey/ 500

Strong

A prominent border used to emphasize selection or importance.

Neutrals/Border/Strong

Grey/ 950
Grey/ 50

Disabled

A muted border indicating non-interactive or inactive elements.

Neutrals/Border/Disabled

Grey/ 200
Grey/ 800