Google's cross-platform language and the default many teams reach for. Broad, well-documented, and heavily themeable.
Why we like it
Material 3's dynamic color is the most mathematically grounded theming model in wide use, and it's a lovely thing to take apart. It starts from a single seed color, converts it in the perceptual HCT space of hue, chroma and tone, and generates five key colors, each a thirteen-tone palette, that map onto color roles defined by use. Because tone drives contrast, accessibility is built into the color by construction.
Change one seed and the whole app re-themes without touching component code, and the engine is open source as Material Color Utilities, available across languages for anyone to build on.
Where it fits
Material 3's color model fits Android-first and cross-platform teams who want personalized or dynamic theming with contrast baked in.
One caveat if you're picking a web stack: Google's own Material Web components are in maintenance mode, so choose your implementation with that in mind, even though the spec and color system stay active.
Ideas to borrow
- 01.
Theming
Generate your whole palette from one seed through a perceptual space (HCT), tone-mapped to roles, so contrast is structural rather than hand-checked per color.
- 02.
Theming
Reuse the open-source Material Color Utilities to go from seed to palettes to roles, instead of building a color engine yourself.