Shades

Color Shades Generator

Details

How to use Color Shades Generator

What the tool does, how to run it, and what to expect from the result.

How to generate colour shades and tints

A shades-and-tints ramp takes one colour and produces a scale from dark to light, which is what a UI needs for hover states, borders, backgrounds, and disabled text. The ramp is built by mixing the base toward black in one direction and toward white in the other.

The scale is computed in your browser. Because the mixing happens in sRGB, the steps are mathematically even and perceptually uneven, so treat the result as a starting point rather than a finished design-system scale.

  • Enter your base colour as a hex value.
  • Read the ramp, which runs from pure black at one end to pure white at the other with your hue in between.
  • Copy the individual swatches you need for backgrounds, borders, and hover states.
  • Check any pair you intend to use for text against a contrast checker, since adjacent steps are nowhere near the 4.5:1 that WCAG requires.
  • Rebuild the scale in OKLCH if you need perceptually even steps, which is what a real design-system ramp requires.
Tips

Getting a better result out of Color Shades Generator

Specific settings and thresholds, not general advice.

  • The ramp always begins at pure black and ends at pure white, whatever colour you start from. Those two endpoints are fixed by the way the scale is built, which means the extremes of the ramp carry none of your hue and the exact colour you entered does not appear as one of the swatches.
  • The blending happens in gamma-encoded sRGB, which is not perceptually uniform. Equal numeric steps are not equal visual steps: the dark end of the ramp compresses several swatches into what the eye reads as nearly the same colour, while the light end spreads out.
  • Mixing toward pure white desaturates as it lightens, which is what makes the pale end of an sRGB tint ramp look chalky and washed out. Design systems avoid this by shifting the hue slightly as they lighten and keeping the chroma up, which is a thing you can only do in a perceptual space.
  • Adjacent swatches will never give you accessible text contrast. WCAG asks for 4.5:1 for body text, and neighbouring steps in a ten-step ramp are separated by a fraction of that. As a rule of thumb you need five or more steps of separation before a pair is safe for text on a background.
  • A serious palette is built in OKLCH, where you fix the lightness steps and hold the chroma and hue steady. That is how the modern design-system scales get their evenness, and browsers have supported oklch() natively since 2023, so you can write it directly in CSS.
Limits

What Color Shades Generator does not do

The honest boundary, so you do not lose time finding it yourself.

  • The first swatch is always pure black and the last is always pure white, so two of your ten steps carry none of the base colour.
  • The exact base colour is not one of the swatches, since the ramp passes between the two middle steps rather than landing on it.
  • It blends in sRGB rather than a perceptual space, so the steps are not perceptually even and the mid-tones lose chroma.
  • It does not annotate the swatches with contrast ratios, so it cannot tell you which pairs are safe for text.
At a glance

Who Color Shades Generator is for

A quick way to understand who this helps, what it solves, and where it connects next.

Best fit

Designers, frontend developers, and anyone working with color.

Ideal for

Quick color work without opening a heavier design tool.

FAQ

Common questions

Short answers for the questions people usually have before trying a utility like this.

Is the color shades generator free?

Yes. It is completely free to use, with no signup, no account, and no paywall.

Do I need to install anything?

No. It runs in any modern browser on desktop or mobile, with nothing to download and nothing to configure.

Does it stay local?

Yes. All the color math runs entirely in your browser, and nothing is sent to a server.

Why is the first swatch black and the last one white?

Because the scale is constructed by mixing the base colour all the way toward black at one end and all the way toward white at the other, and at the extremes the mix is complete. That is a legitimate way to build a shades-and-tints ramp and it has a consequence worth knowing: the two endpoints are the same for every input colour, and the base colour itself falls between the two middle swatches rather than being one of them. If you need your exact brand colour in the palette, keep it separately.

Why do the steps not look evenly spaced?

Because sRGB is gamma-encoded and the human eye is not linear. Equal arithmetic steps between two colours produce visual steps that bunch up at one end and spread at the other, so several of the dark swatches read as nearly the same colour while the light ones look distinctly different from each other. This is not a flaw in the arithmetic, it is a mismatch between the arithmetic and perception, and it is the reason perceptual colour spaces such as OKLCH exist.

Can I use adjacent shades for text and background?

No. WCAG requires a contrast ratio of at least 4.5:1 for normal body text and 3:1 for large text, and two neighbouring steps in a ten-step ramp are far below that. In practice you need a separation of about five steps before a pair reaches text-safe contrast, and even then it depends on where in the ramp they sit, because the ratio is not linear in the step number. Always check the actual pair with a contrast checker rather than trusting the step distance.

How do design systems build their colour scales?

In a perceptual colour space, almost always. The modern approach is to work in OKLCH, fix a set of lightness values, and generate each step by holding the hue and chroma roughly constant while stepping the lightness, with small adjustments to keep the colours inside the displayable gamut. That produces a ramp where each step feels like the same size, and where the same lightness index gives comparable contrast across every hue in the system. Browsers have supported oklch() in CSS since 2023, so you can express it directly.

Is the palette generated locally?

Yes. The shades are computed by arithmetic in your browser, so nothing about your brand colours is transmitted.

Recommendations

You Might Also Like

Nearby tools from the catalog that fit the same job or workflow.

Cleanor app

Do it all on your device

Cleanor puts these tools in one app: compress and convert images, video, and audio, work with PDFs, and scan text right on your device. Plus free up storage and clear inbox clutter with Email Cleaner. Start with a free trial.

  • iPhone
  • Android
  • Macsoon
  • Windowssoon