A Complete Guide to Google Material Design 3 Colors

Category: Design Systems ยท Published: 2026-08-08 ยท Updated: 2026-10-18

With the release of Android 12 and modern web interfaces, Google revolutionized how digital software handles color by introducing Material Design 3 (M3), affectionately known as Material You. Instead of forcing rigid, static corporate color palettes onto users, M3 introduced algorithmic personalization: dynamic color extraction, mathematical tonal palettes, and semantic surface container roles that guarantee digital accessibility across light and dark modes.

1. Introduction to Material Design 3

In traditional web design, a designer chooses 3 or 4 static brand colors, manually creates light and dark variations, and hopes that text contrast passes accessibility audits. Material Design 3 replaces this manual friction with algorithmic color science using the HCT (Hue, Chroma, Tone) color space.

HCT unites the scientific color modeling of CIELAB with the intuitive hue organization of Cam16. Unlike HSL (where colors with identical "lightness" values actually have drastically different perceived brightness to human eyes), HCT's "Tone" mathematically correlates 1:1 with relative luminance. If two colors in HCT have a Tone delta of 40 or greater, they are mathematically guaranteed to meet WCAG AA contrast compliance.

2. The Philosophy of Dynamic Color

Dynamic color bridges the gap between branding and user preferences. The Android operating system extracts a single "seed color" from the user's wallpaper using quantization algorithms. It then calculates its chroma and hue coordinates and generates five separate tonal palettes:

3. Understanding Tonal Palettes (13 Tonal Steps)

Every palette in Material 3 consists of 13 specific tones stepped from 0 (absolute black) to 100 (pure white):

Tone Steps: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 95, 99, 100

Because Tone represents pure perceived lightness, contrast is calculated programmatically:

4. Core Color Roles and Container Variants

M3 divides design systems into explicit semantic roles:

5. Implementing Material 3 Colors in CSS

Here is how you structure a production-ready Material 3 color system using CSS Custom Variables:

:root { /* Light Theme M3 System Tokens */ --md-sys-color-primary: #6750a4; --md-sys-color-on-primary: #ffffff; --md-sys-color-primary-container: #eaddff; --md-sys-color-on-primary-container: #21005d; --md-sys-color-surface: #fef7ff; --md-sys-color-on-surface: #1d1b20; --md-sys-color-surface-variant: #e7e0ec; --md-sys-color-outline: #79747e; } [data-theme="dark"] { /* Dark Theme M3 System Tokens */ --md-sys-color-primary: #d0bcff; --md-sys-color-on-primary: #381e72; --md-sys-color-primary-container: #4f378b; --md-sys-color-on-primary-container: #eaddff; --md-sys-color-surface: #141218; --md-sys-color-on-surface: #e6e1e5; --md-sys-color-surface-variant: #49454f; --md-sys-color-outline: #938f99; }

6. Accessibility Architecture in Material Design 3

The tonal palette system enforces contrast compliance mathematically. By locking the rule that text must always be placed on a container with a minimum 40-tone delta (for Level AA) or 60-tone delta (for Level AAA), designers cannot accidentally create unreadable interfaces.

You can test seed colors and tonal variations using our Color Palette Generator and verify ratios using the WCAG Contrast Checker.

7. Frequently Asked Questions

What is an "On-Color" in Material Design 3?

An "On-Color" is a color role explicitly paired with a surface or container (e.g., text or icon color rendered on top of a primary button). It is engineered to maintain guaranteed contrast against its matching container.

What is the HCT color space?

HCT stands for Hue, Chroma, Tone. It is Google's color space that combines CAM16 hue modeling with CIELAB perceived lightness (Tone), making contrast calculations mathematically linear and reliable.

How does M3 handle dark mode without manual redesigns?

Because tonal scales are mapped from 0 to 100, dark mode simply inverts the tone roles: backgrounds flip from Tone 90-99 to Tone 10-20, while primary buttons flip from Tone 40 to Tone 80.

โ† Back to Blog Browse Web Colors Database โ†’