Tint & Shade Generator
Generate perceptually uniform color scales in sRGB, Oklab, or LCH color space. Compare all three mixing methods side by side. WCAG contrast badges on every stop. Exports CSS custom properties, Tailwind config, SCSS maps, or JSON with Lab D50 values.
Tint & Shade Generator
What is a tint and shade scale?
A tint is a color mixed toward white; a shade is a color mixed toward black. A tint-shade scale — typically 10–12 stops from near-white to near-black — is the standard way to represent a single brand color across all the use cases in a UI system. Lighter stops (50, 100, 200) are used for backgrounds, hover states and subtle borders. Mid-range stops (500, 600) are the primary interactive colors for buttons and links. Dark stops (700, 800, 900) are used for text on light backgrounds. This structure is used in Tailwind CSS, Material Design, Radix UI Colors and most design system frameworks.
Why Oklab produces better color scales than sRGB
When you mix a color toward white or black in sRGB, the perceived saturation changes unevenly — some stops look washed out or muddy relative to others. Oklab is a perceptually uniform color space where equal numerical steps correspond to equal perceived color differences. Interpolating toward white and black in Oklab keeps the saturation consistent across the scale and produces stops that feel evenly spaced visually. The practical result is a scale you can use at any stop without needing to manually push saturation up on the lighter stops — something you frequently have to do when generating scales in sRGB tools like the Figma color picker.
How to use a color scale in Tailwind CSS
The Tailwind export from this tool generates an object you paste into the extend.colors section of tailwind.config.js. Each stop becomes a utility class: bg-brand-500, text-brand-700, border-brand-200. Use stop 500 or 600 as your primary interactive color, stop 100 as a subtle background tint, and stop 800 or 900 for accessible text. The WCAG badges shown in this tool tell you exactly which stops can be used for text on white (white bg) and which can be used for text on dark backgrounds (dark bg).
Exporting to CSS custom properties and design tokens
The CSS export generates a block of --color-name-50 through --color-name-950 custom properties for use in any CSS file or design system. The JSON export follows the W3C Design Tokens Community Group format, compatible with Style Dictionary and Theo for automated multi-platform token distribution. The SCSS export generates a Sass map ($color-name: (50: ..., 100: ..., ...)) for use in SCSS-based design systems.
Frequently asked questions
How many stops should a color scale have?
Which color space should I choose — Oklab, LCH or sRGB?
Can I generate a semantic color system from multiple base colors?
--color-danger-500) so the scales work together as a system.