Material Design 3 Color Generator - Online Dynamic Tonal Palettes
Pick a source color and generate a complete M3 tonal palette with light/dark schemes. Export as CSS custom properties.
UD5 Toolkit
color-mix() Playground
Visual generator for the CSS Color Level 5 color-mix() function — blend colors in any color space
.my-element {
background-color: color-mix(in oklch, #3b82f6 50%, #eab308);
}
color-mix()?
color-mix() is a CSS function introduced in CSS Color Level 5 that allows you to blend two colors together in a specified color space. It returns a new color that is the weighted average of the two input colors. Unlike traditional opacity-based blending, color-mix() lets you choose the interpolation color space, which dramatically affects the visual result. This is a game-changer for creating dynamic color systems, hover states, and design tokens directly in CSS without preprocessing.
For the most perceptually uniform and natural results, use oklch or oklab. These modern color spaces are designed to match human perception, avoiding the "gray zone" problem that occurs in sRGB when mixing complementary colors (like blue and yellow). oklch is especially recommended for UI design because it preserves hue better during blending. Use srgb only when you need consistent results with legacy rendering or when matching existing sRGB-based designs.
mix()?
Sass's mix() function only blends in the sRGB color space and works at compile time. CSS color-mix() is native to the browser, supports 14+ color spaces, and can work with CSS custom properties (variables) at runtime. This means you can dynamically update colors based on user interaction, theming, or real-time data — something impossible with preprocessors. Additionally, modern color spaces like oklch produce far superior perceptual blends compared to sRGB.
color-mix()?
As of 2024, color-mix() is supported in all major modern browsers: Chrome 111+ (March 2023), Firefox 113+ (May 2023), Safari 16.2+ (December 2022), and Edge 111+. Internet Explorer does not support it. For older browsers, consider providing a fallback color. You can use @supports (color: color-mix(in srgb, red, blue)) for feature detection. Note that some wide-gamut color spaces like display-p3 and rec2020 may render differently depending on the user's display hardware.
color-mix() with CSS custom properties?
Yes! This is one of the most powerful features. You can define colors as CSS variables and mix them dynamically: color-mix(in oklch, var(--brand-primary) 80%, var(--brand-secondary)). Combined with :hover, :focus, or JavaScript-driven variable updates, you can create entire dynamic color systems without writing a single line of JavaScript color manipulation. This is ideal for design systems, dark mode theming, and accessibility-driven color adjustments.
According to the CSS specification, if the percentages sum to less than 100%, they are normalized proportionally. For example, color-mix(in srgb, red 20%, blue 30%) is treated as red 40% and blue 60% (20:30 ratio normalized to sum 100%). If percentages sum to more than 100%, they are also scaled down proportionally. If no percentages are specified, each color defaults to 50%. If only one color has a percentage, the other gets the remainder (100% minus the specified percentage).
color-mix()?
Common use cases include: (1) Hover/active states — mix a base color with white or black for instant button variants. (2) Design tokens — create entire color ramps from a few base colors. (3) Theming — blend brand colors for light/dark modes. (4) Accessible contrast — dynamically adjust text color by mixing with backgrounds. (5) Gradients — use color-mix() inside gradient stops for smoother transitions. (6) Component variants — generate subtle color variations for cards, badges, and alerts without writing extra CSS classes.
This is the classic demonstration of perceptual non-uniformity in sRGB. In the sRGB color space, blue and yellow are mathematical opposites on the color wheel, so averaging their RGB values produces a neutral gray. However, human perception doesn't follow sRGB math — we perceive blue+yellow as greenish (like mixing paint). The oklch color space was designed to match human perception, so it blends through the hue spectrum naturally, producing a vibrant green at 50%. This is why oklch is recommended for UI color blending.
Pick a source color and generate a complete M3 tonal palette with light/dark schemes. Export as CSS custom properties.
Discover beautiful color palettes for your projects. Generate random, complementary, or trendy schemes and copy hex codes. Useful for designers and developers.
Generate tints (add white) and shades (add black) for any base hex color. Copy values for design systems. Instant local generation.
Design custom radio buttons and checkboxes using pure CSS. Choose sizes, colors, and animation. Copy the code.
Generate the <meta name='color‑scheme'> tag and CSS property to enable native dark/light rendering. Quick copy.
Build a palette and simulate how it appears to various color deficiencies. Also generate pre-vetted accessible palettes. Local processing.
Find complementary, triadic, analogous, and split-complementary color combinations. Interactive color wheel. Essential for UI design.
A simple 5x5 or 7x7 crossword with clues. New one daily or generate random. Works offline.
Enter a color palette and see how it looks for different types of color vision deficiency. Get warnings on conflicting colors.
Customize Bootstrap 5 variables visually. See the live preview. Download the generated SCSS or CSS file.
Convert between whole fruit, juice volume, and zest quantity. Never wonder how many lemons for 1/4 cup.
Choose colors and knot types to design a bracelet pattern. See visual guide. Save locally.
Adjust material types (leaves, grass) to achieve the ideal 30:1 C:N ratio. Improve compost bin performance. Local only.
Input a hex color and adjust its lightness by a percentage. Get tristimulus shades for CSS. Quick and visual.
Generate random Scattergories‑style lists with a random letter and 12 categories. Great for online game night.
Check the contrast ratio between foreground and background colors to ensure web accessibility compliance. Get WCAG 2.1 AA/AAA pass/fail results instantly.
Paste a set of hex colors and simulate how they appear with common color vision deficiencies. Get contrast warnings.
Create custom flat or plastic badges for your GitHub README. Choose label, message, color, and export as Markdown, HTML, or SVG.
Take a perfectly fine phrase and insert realistic-looking typos. For pranks or testing spell‑checkers.
Create a clear, structured bug report or support ticket with environment, steps, and expected result. Copy/paste.
Answer simple questions (color, size, beak shape) to narrow down common North American backyard birds. No photo needed.
Enter a phrase and instantly generate spoonerisms by swapping initial consonants of words. Silly linguistic fun. Fully local processing.
Paste a list of foreground/background color pairs and instantly see which pass AA/AAA. Perfect for checking entire style guides.
Enter a topic and get a list of suggested hashtags. Mix popular and niche tags. Copy all with one click. Local only.
Generate comprehensive HTML meta tags for SEO and social sharing (Open Graph, Twitter Cards). Copy ready-to-use code. Boost your search visibility.
Get a random, clean, and silly joke perfect for children. Guaranteed giggles. No offensive content.
Add services like Node, Postgres, Redis, and Nginx. Configure ports, volumes, and env vars. Download the docker‑compose.yml.
Write JavaScript code and see the output or console.log results immediately. Safe iframe sandbox. For quick experiments.
Calculate how much fabric you need for a quilt based on block size, number, and sashing. Supports metric and imperial. No upload, local.
Start with a word and find synonyms, then synonyms of synonyms. Build a chain and explore language. Local thesaurus.