The first real palette I ever shipped had exactly five colors in it, and four of them were the same blue. I didn't plan it that way — I just kept needing "a slightly lighter version of this for the card background" and "a darker one for the border" and "something muted for the disabled button." What I was actually doing, without the vocabulary for it, was making tints, shades, and tones. Once I learned that those three words describe three precise operations, palette work stopped being trial and error and became something closer to arithmetic.
This guide is about that arithmetic. What tints, shades, and tones really are, why value and saturation are two different dials and not one, and how to turn a single hue into a clean tonal scale you can actually build an interface on. Everything here maps directly to the HSL controls in the color palette generator, so you can follow along with real numbers instead of vibes.
The one-sentence definitions, then the nuance
Here are the definitions, stripped down:
- A tint is a hue plus white. It gets lighter and gentler. Red becomes pink.
- A shade is a hue plus black. It gets darker and deeper. Red becomes maroon.
- A tone is a hue plus gray. It gets muted and dustier without necessarily getting much lighter or darker. Red becomes a brick or a rose.
That's the tint shade tone difference in a single breath, and most articles stop there. But the interesting part is what all three have in common: every one of them reduces chroma — the pure colorfulness of the hue. A fully saturated hue is the most intense it will ever be. The moment you mix in any neutral (white, black, or gray), you pull intensity out of it. This is well documented in the standard reference on tint, shade and tone: adding white, black, or gray all lowers the color's chroma, even though they move lightness in different directions.
So the mental model isn't "tint = lighter, shade = darker, tone = muted" as three unrelated effects. It's one effect — diluting a pure hue with neutral — viewed from three directions. That reframe is what makes the next idea click.
Value and saturation are two different knobs
The single most useful thing you can internalize is that lightness and saturation are independent. Beginners treat "make it lighter" and "make it less intense" as the same gesture, and that's why their palettes go chalky and flat. They're not the same gesture. They're two separate dials, and tints, shades, and tones are just different combinations of how you turn them.
This is exactly why HSL is the color model worth learning. HSL stands for hue, saturation, and lightness, and it splits color into three numbers you can adjust one at a time:
- Hue is the angle on the color wheel,
0–360°. Red is around0, green near120, blue near240. Tints, shades, and tones generally leave the hue alone — you're not changing what color it is, just how pure and how light it is. - Saturation is
0–100%. At100%the color is at full intensity; at0%it's a pure gray with no hue left at all. This is your chroma dial. - Lightness is
0–100%. At0%you get black no matter the hue, at100%you get white no matter the hue, and50%is roughly where the pure, vivid version of the color lives.
With that vocabulary, the three operations become precise. A tint is mostly raising lightness toward 100%. A shade is mostly lowering lightness toward 0%. A tone is mostly lowering saturation toward 0% while keeping lightness roughly where it is. The MDN reference on the HSL notation is a good place to confirm the syntax if you want to write these as CSS.
One precise footnote, because it trips people up. HSL's "L" is lightness, not "value" or "brightness." There's a sibling model, HSB/HSV, where the third channel is value, and it behaves differently — in HSB, 100% value at full saturation gives you the vivid pure color, whereas in HSL 100% lightness always gives white. If you've ever pulled a color out of Photoshop (which uses HSB) and it looked off in CSS (which uses HSL), that mismatch is why. For building tonal scales, HSL is the friendlier model precisely because lightness runs cleanly from black to white.
How to lighten or darken a color without wrecking it
Now the practical part, because there's a right and a wrong way to do this.
The naive way to lighten a color is to drag lightness up and call it done. The problem is that as a color approaches white, holding saturation constant makes it look thin and washed out — a pale, anemic version of itself. The fix that experienced designers reach for almost reflexively: as you raise lightness, also nudge saturation up a little, and sometimes shift the hue a few degrees. Light tints often look richer with slightly more saturation than the mid-tone, not less.
Darkening has the mirror-image trap. Drop lightness toward 0 while leaving saturation alone and dark colors go murky and dead — a flat, lifeless near-black. Good dark shades usually want their saturation increased as they get darker, and frequently a small hue shift toward blue or red to keep them feeling intentional rather than like someone just turned the lights off. This is the single biggest reason hand-built scales look more alive than ones generated by naively interpolating to black.
So the honest answer to how to lighten or darken a color is: move lightness as the primary action, but don't freeze the other two channels. The tool's HSL readout makes this easy to feel — change one number, watch the swatch, and you'll quickly learn how much saturation a given hue needs at each end of the scale.
Building a clean monochromatic scale from one hue
Here's where it all becomes useful. A monochromatic color scale is a single hue expanded into a full ladder of tints, shades, and tones — and it's the backbone of basically every real interface. When you pick the monochromatic rule in the color palette generator, this is the structure it's generating: one hue, many lightness steps.
Let me build one by hand so you can see the logic. Start with a base blue at hue 217, full-ish saturation, mid lightness — call it #2563EB. Now generate a ramp by walking lightness from very light to very dark, keeping hue near 217 and easing saturation up at both ends:
#EFF4FE— the lightest tint. A barely-there blue-white. Page or section background.#DBE6FD— a soft tint for subtle fills and zebra striping.#B9CDFB— a light tint for borders and dividers.#7DA2F6— a mid-light step, good for hover halos and secondary fills.#2563EB— the base. Your primary brand color, the one buttons are made of.#1D4FC4— one step down. The natural hover state for that primary button.#163C96— a deeper shade for active/pressed states and strong borders.#0F2A6B— a dark shade for headings on light backgrounds, or surfaces in dark mode.#0A1C45— the darkest shade. Near-black, still unmistakably blue.
Notice what that ladder buys you. Every interactive state a button needs — rest, hover, active — falls out of the same hue, three lightness steps apart. You're not inventing new colors; you're stepping down a scale. That's why these get encoded as numbered tokens (blue-50 through blue-900) in design systems. If you want to go deeper on turning a ramp like this into reusable variables, creating scalable color tokens picks up exactly where this leaves off.
A few hard-won rules for the scale itself:
- Spread your lightness steps wide enough to tell apart. The most common monochromatic failure is steps that sit too close —
#2563EBnext to#2C68ECare functionally the same color, and your UI loses hierarchy. Adjacent steps should be visibly different at a glance. - Steps don't have to be evenly spaced. The human eye is more sensitive to differences among light colors, so the light end of the ramp usually wants tighter lightness increments and the dark end can take bigger jumps. Even spacing in lightness often looks uneven to the eye.
- Keep one consistent hue, but allow tiny drifts. A degree or two of hue shift between steps is fine and often looks better; a twenty-degree swing means you've left monochromatic territory.
Where tones earn their keep in a UI
Tints and shades do the heavy lifting in a UI ramp, but tones — the muted, gray-mixed versions — solve a specific problem that pure tints and shades can't: states that should recede.
The obvious one is disabled controls. A disabled button shouldn't be a lighter blue (that reads as a different active state) — it should be a toned-down blue, desaturated toward gray so it clearly signals "not available right now." Take your #2563EB and pull saturation way down toward gray while keeping lightness moderate, and you get something like #9AA6BF: still faintly blue, obviously inert. That's a tone doing exactly what tints and shades can't.
Tones are also how you build sophisticated, non-shouty surfaces. A pure-gray neutral can feel cold and disconnected from your brand. A toned neutral — gray with a few percent of your brand hue mixed in — makes backgrounds and borders feel like they belong to the same family as your accent color. This is the trick behind a lot of palettes that feel expensive: the "grays" aren't gray at all, they're heavily-toned versions of the primary hue. It's also central to good dark mode color palettes, where flat pure-black surfaces look harsh and slightly-toned dark surfaces read as intentional.
The mistakes I still catch myself making
- Confusing a tint with a tone. They are not interchangeable. A tint of red is pink (lighter, still fairly pure). A tone of red is a dusty rose (muted, similar lightness). Reach for a tint when you want lighter; reach for a tone when you want quieter. Picking the wrong one is why a "softened" color sometimes still feels loud.
- Building the whole scale at one saturation. Freeze saturation across the ramp and the light end goes pale and the dark end goes muddy. Let saturation breathe — up at the extremes, often calmest in the middle.
- Forgetting contrast exists. A beautiful monochromatic ramp tells you nothing about whether text on it is readable. Lightness steps three apart might still fail WCAG contrast ratios for body text. Build the scale for cohesion, then check the actual text-on-surface pairs with a contrast checker. Cohesion and legibility are separate problems, and the tool checks the second one for you.
- Treating monochromatic as the finish line. One hue's tints and shades give you a calm, unified system — but sometimes you need an accent from elsewhere on the wheel. A monochromatic base plus a single complementary accent is one of the most reliable palettes there is, which is where understanding color harmony pays off.
The whole thing comes down to this: a hue is just a starting point. Tints, shades, and tones are the three ways you stretch that one starting point into a full working palette — lighter with white, darker with black, quieter with gray — and HSL gives you the dials to do it deliberately instead of by accident. Pick a hue you like, open the monochromatic rule, and walk the lightness slider end to end. By the time you've built one good nine-step ramp by hand, you'll never look at a "set of colors" the same way again. It's almost always one color, wearing nine outfits.
Frequently Asked Questions
What is the difference between a tint, a shade, and a tone?
A tint is a hue with white added, so it gets lighter and softer (red becomes pink). A shade is a hue with black added, so it gets darker and deeper (red becomes maroon). A tone is a hue with gray added, so it gets muted and dustier without necessarily changing lightness much (red becomes a dusty rose). All three reduce the pure colorfulness, or chroma, of the original hue — they just move lightness in different directions.
What is a tint in color, exactly?
A tint is what you get when you mix a pure hue with white. It raises the color's lightness and gently lowers its intensity, producing a lighter, gentler version of the original — pink is a tint of red, sky blue is a tint of blue. In HSL terms, making a tint mostly means increasing the lightness value toward 100%, often with a small saturation bump so the light color doesn't look washed out.
How do I lighten or darken a color without making it look washed out or muddy?
Use lightness as your main dial but don't freeze saturation. When lightening, raise lightness and nudge saturation up a little so the tint stays rich instead of going pale and thin. When darkening, lower lightness but increase saturation slightly (and sometimes shift the hue a few degrees toward blue or red) so the shade stays alive instead of going murky. Freezing saturation across the whole range is the most common reason scales look flat.
What is the difference between value and saturation?
They are two independent dials. Value (lightness in HSL) controls how light or dark a color is, running from black at 0% to white at 100%. Saturation controls how intense or pure the color is, running from a vivid full-strength hue at 100% to a neutral gray at 0%. You can change one without changing the other — a color can be dark and vivid, or dark and muted. Treating them as the same gesture is what causes chalky, lifeless palettes.
How do I build a monochromatic color scale for a UI?
Start with one base hue and walk its lightness from very light to very dark in distinct steps, keeping the hue roughly constant while easing saturation up at the light and dark extremes. Aim for around nine steps so you have light tints for backgrounds and borders, your base color in the middle for primary elements, and dark shades for hover, active, and text. Keep adjacent steps visibly different, use tighter increments at the light end, and check text contrast separately. The monochromatic rule in the color palette generator produces this structure automatically.
Want to experiment with colors?
Try our free color palette generator to find your perfect harmony — with a built-in WCAG contrast checker.
Open the Generator