01 / Tint
Towards white
A tint adds white, so the colour gets lighter and softer. A 20% tint is one fifth of the way to white.
Free tool
Type or pick one colour and see it lighter and darker by the percent you choose. Below that are its tints (towards white), shades (towards black) and tones (towards grey) in even steps, or a 50 to 950 scale. Each swatch shows HEX, RGB, HSL and OKLCH, plus its contrast ratio against white and black text. Click any value to copy it, or copy the whole set as CSS variables, Tailwind, SCSS or JSON.
Tints, shades and tones
| Step | HEX | RGB | HSL | OKLCH | vs white | vs black |
|---|
Contrast is the WCAG 2.2 ratio, shown rounded down. 4.5 or more passes AA for normal text, 3 or more passes for large text only (shown as Large), and 7 or more is AAA. Click a value to copy it.
Copy the set
Lighter and darker
OKLCH and HSL move the lightness by that many points. Mixing goes that percent of the way to white or black. Colours that would leave the sRGB range lose chroma until they fit. Settings are remembered in this browser.
Worked out in your browser. Nothing is sent anywhere.
How it works
01 / Tint
A tint adds white, so the colour gets lighter and softer. A 20% tint is one fifth of the way to white.
02 / Shade
A shade adds black, so the colour gets darker and richer. Its hue stays the same.
03 / Tone
A tone adds grey, so the colour keeps its lightness and loses strength. It is useful for calm backgrounds.
Guide
To lighten a colour, move it towards white. To darken it, move it towards black. This tool does both for any colour you type, by the percent you set, and then builds a whole row of tints, shades and tones so you can pick the step you need for a hover state, a border, a background or a dark mode. Each result shows its HEX, RGB, HSL and OKLCH code and how well black or white text reads on it.
#7c52ff, rgb(124 82 255) or tomato, or use the picker. The chips fill in a few examples, and Random picks one.Take the violet #7c52ff. In OKLCH it has a lightness of 58.5%, a chroma of 0.241 and a hue of 287.6. Lightening by 20 in OKLCH adds 20 points of lightness and keeps the hue, so you stay on the same violet. In HSL the same colour is hsl(255 100% 66%), and Sass lighten(), which the Sass docs (checked 18 Oct 2026) describe as increasing the HSL lightness by a fixed amount, gives #c9b8ff for 20; darkening by 20 gives #3900eb. Mixing sends it 20% of the way to white, #9675ff, or 20% of the way to black, #6342cc.
HSL is simple but uneven: a yellow and a blue with the same HSL lightness look very different in brightness. OKLCH is built to match how lightness looks, so equal steps look more equal. Mixing is the simplest method: each red, green and blue value moves the same share of the way to white or black. It keeps the hue close, but a strong colour can look greyer in the middle of the row.
The rows are steps of a mix. With 9 steps on each side, the tints are 10, 20 up to 90 percent of the way to white, the shades are the same towards black, and tones go towards mid grey. A 100% step would just be white, black or grey, so it is left out. The 50 to 950 view uses the numbering many CSS frameworks use: it sets the lightness for each step, lets the chroma rise and fall along the way, and puts your own colour on the step closest to its lightness, which is marked in the table.
Every row shows the contrast ratio with white and with black. It follows the WCAG 2.2 definition: ratio = (L1 + 0.05) / (L2 + 0.05), where L1 is the relative luminance of the lighter colour and L2 of the darker one, and relative luminance is 0.2126 R + 0.7152 G + 0.0722 B after each channel is converted from sRGB. The ratio runs from 1 to 21. WCAG asks for 4.5 or more for normal text and 3 or more for large text, which means 18 point, or 14 point bold. The stricter AAA level asks for 7 and 4.5. The ratio is shown rounded down, so 4.49 is never shown as 4.5. The formulas are in WCAG 2.2 and its relative luminance definition, checked 18 Oct 2026. For a check between any two colours, use the colour contrast checker.
For the violet above, white text gets 4.65 and black text gets 4.50, so both pass AA for normal text, and neither passes AAA. At 20% lighter with HSL, white text drops to 1.78 and black text rises to 11.78.
CSS variables give you --brand-100: #...; lines inside :root. The Tailwind v4 format writes an @theme block, and the v3 format a colors entry for the config file. SCSS, JSON and a plain HEX list are there too. Change Name to match your token, such as primary or accent.
To build a full palette from one colour, try the colour palette generator. To convert a code, use hex to RGB, and for a random starting colour, the random colour generator.
Questions
Type the hex code, set the Amount, and read the Lighter card. Your colour moves towards white by that many points of lightness, or that percent of the way if you chose the mix method.
Use the Darker card. Choose HSL if you want the same result as Sass darken(), which subtracts points of HSL lightness.
A tint mixes in white, a shade mixes in black, and a tone mixes in grey.
OKLCH for steps that look even to the eye. HSL if you need to match Sass or older CSS. Mix if you want the same as color-mix in sRGB.
Choose 50 to 950 above the table, then pick Tailwind v4 theme or Tailwind v3 config under Copy the set. The scale is built here from your colour, so it will not match any published palette.
OKLCH and mixing with white keep it close. HSL keeps the hue number fixed, but the look can shift.
WCAG 2.2 asks for 4.5 to 1 for normal text and 3 to 1 for large text at level AA. The table shows both results for white and black text.
No. The colours are worked out in your browser.