Help Us Improve
—
(—)
Material 3 color palette generator
Generate Material 3 role tokens from a seed color. Copy CSS variables. Local-first, no signup.
What is a Material 3 color palette generator?
Material 3 palette features
Seed to M3 roles
Primary, secondary, tertiary, error, surface, and outline tokens update as you pick a color.
On-color pairs
Each fill gets a contrast-checked on-color for text and icons.
CSS variables
Copy :root custom properties that match the token names.
Local-first
Palette math runs in the tab. Nothing is uploaded.
How to generate a Material 3 palette
Pick a seed
Use the color picker or paste a hex value.
Review roles
Click a swatch to copy its hex. Check on-color contrast.
Copy CSS
Paste the variables into your theme or design tokens file.
Great for
App theming
Bootstrap a light Material 3 token set from a brand hex.
Design handoff
Give engineers named roles instead of a loose swatch list.
Quick exploration
Try several seeds without opening Android Studio.
Why use this generator
Free to use
No signup. The palette updates as you edit the seed.
Role names, not a ramp
You get primary/onPrimary pairs, not only tints and shades.
CSS ready
Export custom properties you can drop into a stylesheet.
Technical details
- Color model
- HSL approximation of Material 3 roles from a seed hue. Not a full HCT/CAM16 Dynamic Scheme.
- Contrast
- On-colors pick white or near-black using WCAG relative luminance.
- Export
- CSS custom properties on :root. Hex only.
Sources & References
“The Material 3 color system uses dynamic color built from a source color.”
Material Design 3 — Color: This tool names tokens after those roles so a seed color can become a starter theme. m3.material.io/styles/color/system/overview
“The visual presentation of text and images of text has a contrast ratio of at least 4.5:1.”
W3C — Contrast (Minimum): On-colors are chosen by relative luminance so text on each role can meet a basic contrast check. w3.org/WAI/WCAG22/Understanding/contrast-minimum.html