🎨 Color Tools

Tint and Shade Generator

Generate a complete tint and shade scale from any color with WCAG contrast ratios on every swatch. Export as CSS variables, Tailwind config, SCSS map or JSON. No sign-up, fully free.

WCAG contrast on every swatch Tailwind scale (50-950) CSS / SCSS / JSON export Live UI preview
AdSense — 728×90 Leaderboard

Tint and Shade Generator

Base color
Scale type
Color scale
Detailed view with WCAG contrast
Live UI preview
AdSense — 728×90 Leaderboard
🎨
Need a full color palette from scratch?
The Color Palette Generator creates harmonious palettes using complementary, triadic, analogous and split-complementary color theory rules with export for Figma and CSS.
Color Palette Generator →
⭐ Ratings

Rate this tool

4.9
★★★★★
Based on 21,334 ratings
5
19,841
4
853
3
427
2
213
1
0
Did this help your design workflow?
Thank you for the feedback!
Features

WCAG contrast, Tailwind scale, CSS export and live UI preview — all free

Every other tint and shade generator gives you colored swatches and lets you copy HEX codes. This one adds WCAG contrast ratios (AA/AAA pass/fail) on every swatch, generates a Tailwind-compatible 50-950 numbered scale, exports ready-to-paste CSS variables, Tailwind config, SCSS maps and JSON, and shows a live UI component preview using your generated colors.

WCAG contrast on every swatch
Each swatch shows its contrast ratio against white and black, with AA and AAA pass/fail badges. Instantly know which shades are accessible for body text (4.5:1), large text (3:1) and UI components (3:1 under WCAG 2.1).
Tailwind-compatible scale
Generates a 11-step scale (50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950) matching Tailwind CSS naming conventions. Drop directly into your tailwind.config.js. Works with any Tailwind version.
4 export formats
One-click export as CSS custom properties (:root { --color-50: #... }), Tailwind config object, SCSS map ($color: (50: #...)), or JSON. Ready to paste directly into your codebase with no editing needed.
Live UI component preview
See your generated palette applied to realistic UI components — a button, a card with badge, and a notification banner — using automatically selected accessible shades from your scale.
Multiple scale modes
Choose Tailwind scale (50-950), 10 equal steps, or custom step count. The algorithm mixes your base color with pure white for tints and pure black for shades in precise HSL lightness increments.
HEX, RGB and HSL display
Click any value on the base color strip to copy it. Each swatch shows its HEX code. The export includes all formats. Click any swatch in the strip to see full color details including RGB and HSL values.
How to use

How to generate tints and shades

1
Pick your base color
Click the color picker or type a HEX code directly (e.g. #6366f1). You can also click the Random button to explore a random starting color. The picker and text field stay in sync.
2
Choose your scale type
Tailwind mode generates the standard 50-950 scale compatible with tailwind.config.js. 10 steps generates an even 10% interval scale. Custom lets you pick exactly how many steps each side. Click Generate Scale.
3
Check WCAG contrast badges
Each swatch in the detailed grid shows its contrast ratio against white and black. Green AA/AAA badges mean the color passes WCAG accessibility standards for text on that background. Red Fail means it does not pass.
4
Export for your project
Click CSS vars to copy :root custom properties, Tailwind to copy a config object, SCSS to copy a Sass map, or JSON for any other use case. Or click All HEX to copy all hex codes as a comma-separated list.
Quick reference

Tailwind CSS color scale naming convention

StepCharacterTypical use in UILightness (approx.)
50Lightest tintPage background, hover state of very light elements~95%
100Very lightSubtle background, badge background, tag chip~90%
200LightBorder color, divider, subtle card background~80%
300SoftPlaceholder text color, disabled state~70%
400Medium-lightMuted text, secondary icon~60%
500Base / midPrimary button, link color, accent~50%
600Medium-darkHover state of primary button~40%
700DarkActive/pressed state, dark badge~30%
800Very darkDark mode card background, strong emphasis~20%
900DeepDark mode page background, dark sidebar~10%
950Darkest shadeNear-black variant of the hue~5%
Comparison

LazyTools vs other tint and shade generators

Feature ⭐ LazyTools maketintsandshades colorkit.co shadegenerator.com
Tint and shade generation
WCAG contrast on every swatch✔ AA + AAA
Tailwind 50-950 scale
CSS + Tailwind + SCSS + JSON export✔ All 4CSS onlyHEX onlyHEX only
Live UI preview
No sign-up requiredAccount for saving
Complete guide

Tint and Shade Generator — Color Scales, WCAG Contrast and Design System Palettes

A tint and shade generator is an essential tool for designers and developers building consistent color systems. In color theory, a tint is created by mixing a base color with white (increasing lightness), while a shade is created by mixing with black (decreasing lightness). A tone mixes with grey. Together, tints and shades form a color scale — the foundation of any professional design system, from Tailwind CSS and Material Design to custom brand palettes.

What is the difference between a tint, a shade and a tone?

All three modify a color's lightness or saturation but through different means. A tint is a color mixed with white, making it lighter and more pastel. Adding white to pure blue produces light blue. A shade is a color mixed with black, making it darker and deeper. Adding black to pure blue produces navy. A tone is a color mixed with grey (both white and black), making it more muted or neutral. Tones are more sophisticated and complex than simple tints or shades because they simultaneously change both lightness and saturation. Most design systems use tints and shades rather than tones, because tints and shades keep the hue consistent and produce predictable, harmonious results across a scale.

What is WCAG contrast ratio and why does it matter?

WCAG (Web Content Accessibility Guidelines) defines minimum contrast ratios between text and background colors to ensure readability for people with visual impairments including color blindness. The standard has two levels: WCAG AA requires a contrast ratio of at least 4.5:1 for normal text and 3:1 for large text (18pt or 14pt bold). WCAG AAA requires 7:1 for normal text and 4.5:1 for large text. The contrast ratio is calculated from the relative luminance of the two colors. Pure black (#000000) on pure white (#ffffff) has the maximum contrast ratio of 21:1. Tailwind's indigo-500 (#6366f1) on white has a ratio of approximately 4.47:1, just below AA for normal text — this is why dark text should use the 600 or 700 shades from the scale.

How to use a color scale in Tailwind CSS

Tailwind CSS uses a 11-step color scale from 50 (lightest) to 950 (darkest). To use a custom color in your Tailwind project, add it to the extend.colors section of your tailwind.config.js: the exported Tailwind format from this generator is ready to paste directly. Use lighter shades (50-200) for backgrounds, borders and subtle UI elements. Use mid shades (400-600) for interactive elements like buttons, links and badges. Use darker shades (700-950) for text on light backgrounds or for dark mode surfaces.

How to choose accessible colors from your scale

For text on a white background: typically the 600 shade or darker will pass WCAG AA for normal text, and 700 or darker for AAA. For text on a dark background: typically the 100 shade or lighter will pass. For UI components (buttons, form elements) that need a 3:1 contrast with their surroundings, the 400-500 range often works. The WCAG badges on each swatch in this generator show you exactly which pass and fail, so you can pick accessible colors without manual calculation.

CSS custom properties for color scales

The CSS variables export format produces a :root { } block with named custom properties. Using the naming convention --color-50 through --color-950 makes it easy to reference any shade consistently across your stylesheet: background-color: var(--color-100) for a light background, color: var(--color-700) for readable text. This approach also makes dark mode theming simple — override the variables in a @media (prefers-color-scheme: dark) block to swap your palette without touching component styles.

Frequently asked questions

A tint is a color mixed with white, making it lighter. A shade is a color mixed with black, making it darker. Both operations change the lightness of the color without significantly changing the hue (though in RGB mixing, very dark shades can appear to shift hue slightly). In HSL color space, tints increase the L (lightness) value toward 100%, while shades decrease L toward 0%. The S (saturation) value may also change slightly during mixing. This generator creates tints by interpolating L from the base color's lightness toward 100%, and shades by interpolating L toward 0%.
The WCAG contrast ratio formula is: (L1 + 0.05) / (L2 + 0.05), where L1 is the relative luminance of the lighter color and L2 is the relative luminance of the darker color, and both are in the range 0 to 1. Relative luminance is calculated from the sRGB values of the color by first converting from the 0-255 range to 0-1, then applying a gamma correction function, and finally weighting the three channels (R, G, B) by their contribution to perceived luminance: L = 0.2126 x R + 0.7152 x G + 0.0722 x B. The human eye is most sensitive to green light, which is why the green channel has the highest weight (0.7152). This generator calculates the contrast ratio of each swatch against pure white (#fff, L=1.0) and pure black (#000, L=0.0) and displays AA and AAA pass/fail badges accordingly.
In Tailwind CSS v3, add your custom color scale in tailwind.config.js under theme.extend.colors. Click the Tailwind export button in this generator to copy the ready-formatted object. Then reference your color in class names like bg-primary-100, text-primary-700 etc. In Tailwind v4 (using CSS-first config), define custom colors as CSS custom properties: copy the CSS vars export and add them inside your @theme block in your main CSS file. Tailwind v4 automatically makes custom properties defined in @theme available as utility classes.
Tailwind indigo-500 (#6366f1) on white (#ffffff) has a contrast ratio of approximately 4.47:1, which is just below the WCAG AA threshold of 4.5:1 for normal text. This is a known characteristic of the Tailwind indigo palette — it was designed for visual appeal and use as a brand accent color rather than specifically for text readability on white backgrounds. For readable text using the indigo palette, use indigo-600 (#4f46e5, ratio ~5.88:1 — passes AA) or indigo-700 (#4338ca, ratio ~8.0:1 — passes AAA). Use indigo-500 for large text (where 3:1 is sufficient), UI components, borders, or background colors with light text on top.
Most design systems use between 9 and 11 steps. Tailwind uses 11 steps (50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950). Material Design 3 uses 10 steps. Apple's Human Interface Guidelines typically uses 5-9 shades per color. For a custom design system, 9-11 steps provides enough range to cover backgrounds (very light), borders (light-medium), interactive states (medium), text (dark) and dark mode surfaces (very dark) without too much redundancy. Fewer than 7 steps often leaves gaps in the range that designers have to work around. More than 13 steps produces shades that are too close together to be meaningfully different.
In a light/dark mode design system, tints and shades of the same hue are swapped in context. A light mode card with a light tint background (e.g. color-50) and dark shade text (color-800) would invert in dark mode: use color-900 for the background and color-100 for the text. This maintains color identity (both modes use the same hue) while ensuring sufficient contrast in each context. Using CSS custom properties makes this automatic: define --color-bg and --color-text pointing to different steps of your scale, then override in prefers-color-scheme: dark. Both values stay in the same color family, creating a cohesive experience across both modes.
RGB mixing interpolates the red, green, and blue channel values linearly. HSL mixing works in Hue-Saturation-Lightness space and generally produces more perceptually consistent results because lightness is treated as a single dimension. For tints (adding white), RGB mixing tends to wash out saturation faster and produce colors that feel flat. HSL mixing keeps the hue more constant and produces cleaner, more vibrant tints. For very dark shades using RGB mixing, highly saturated colors can shift hue noticeably (e.g. pure green can shift toward yellow-green as it darkens). This generator uses HSL-based lightness interpolation to produce consistent, designer-friendly scales. OKLCH (used by some newer tools) goes further and matches perceptual uniformity more precisely — especially helpful for warm hues like orange and yellow.
Yes. Use the All HEX or JSON export and import into Figma manually by creating color styles named using your scale convention (Primary/50, Primary/100, etc.). For automated import, tools like Tokens Studio (Figma plugin) accept JSON in the format this generator exports — copy the JSON export and paste it into your Tokens Studio token set. Alternatively, use the CSS variables export to define your colors in code, then use a Figma plugin like CSS to Figma Variables to sync them into Figma as local variables. This workflow keeps your code and design tokens in sync.
Related tools

More free color tools