Generating tints and shades
Convert your base colour to HSL, then vary the lightness to produce a consistent scale of lighter and darker versions.
Convert a hex colour to HSL in your browser, the model that makes colours easy to adjust.
Maintained by Roshan.
Converts hex colour to hsl in this tab, with nothing sent anywhere.
Find related browser-local tools for nearby tasks without starting another search.
Browse all general convertersHSL describes a colour the way a person tends to think about it - as a hue, a saturation and a lightness - rather than as amounts of red, green and blue, and converting a hex code into it is what lets you adjust a colour intuitively. Want a slightly lighter shade of the same colour, or a muted version, or the colour opposite it on the wheel? Those are trivial moves in HSL and awkward in hex or RGB, because they map to a single number changing rather than three at once. This converter reads a hex code and returns its hue in degrees, and its saturation and lightness as percentages, which is exactly the form CSS accepts and the form a design system uses to generate tints and shades from a base colour.
Convert your base colour to HSL, then vary the lightness to produce a consistent scale of lighter and darker versions.
In HSL, the opposite colour is the same value with the hue rotated by 180 degrees - one number to change.
Because it matches how people think about colour. Lighter, more muted, or opposite are each one number changing in HSL, versus three in RGB.
Hue in degrees from 0 to 360, saturation and lightness as percentages - the form CSS accepts directly.
A grey has no hue, so zero is used by convention. Its saturation will be zero, which is what marks it as grey.
Values are rounded to whole numbers, which can shift a round trip by one - visually imperceptible.
Convert a hex colour to RGB in your browser, accepting both three and six digit forms.
Convert an RGB colour to a hex code in your browser, from any common RGB format.
Convert text to hexadecimal in your browser. Each character becomes its UTF-8 bytes in hex.