In short: what does a color converter do?
A color converter takes a single colour and instantly translates it between every notation a designer or developer might need — HEX, RGB, HSL, HSV, HWB, CMYK, LAB, LCH, OKLab and OKLCH — plus the nearest CSS named colour, so the same shade can move from screen to print to code without guesswork. Edit any field and every other format updates live, in both directions. This tool also gives you a pro colour picker with an eyedropper, a palette and harmony generator, a Tailwind 50–950 scale generator, CSS gradients, a WCAG contrast checker, a colour-blindness simulator and one-click design-token export — all 100% in your browser, with no colour ever uploaded.
Instant conversion across 14+ formats
HEX, RGB, HSL, HSV, HWB, CMYK, LAB, LCH, XYZ, OKLab, OKLCH and named colours, live in both directions.
Pro picker & eyedropper
Drag the saturation/value square, set hue and alpha, or sample any pixel on screen with the eyedropper.
Palette & harmony generator
Complementary, analogous, triadic, tetradic and more, plus monochromatic, tint and shade ramps.
WCAG contrast & accessibility
Check any foreground/background pair against AA and AAA thresholds with the exact ratio.
Colour-blindness simulator
Preview your colours under protanopia, deuteranopia, tritanopia and achromatopsia.
Design-token export
Export palettes and scales as CSS variables, SCSS, a Tailwind config or JSON tokens.
What is a color converter?
A colour converter is a tool that expresses one colour in many different notations. A colour is just a point in a colour space — a set of numbers — but there are dozens of ways to write those numbers down, and different contexts expect different ones. A web page wants #10b981 or rgb(16, 185, 129); a design tool might show you hsl(160, 84%, 39%); a print shop needs cmyk; and a modern, perceptually-even palette is best built in oklch. The converter accepts any of these, parses it into a single internal representation, and emits all the others at once — so the exact same shade is available in whatever form the next step of your workflow demands.
Under the hood the process is always the same three steps. First the tool parses your input, recognising the format from its syntax — a leading # and hex digits, an rgb(...) wrapper, an hsl triple, or even a plain CSS colour name like crimson. Second it normalises that input into a common base — here, an RGBA value with an alpha channel — which is the hub every other format converts to and from. Third it formats that base into each target notation using the standard conversion maths, rounding sensibly for display. Because the base carries an alpha channel, transparency survives the round trip: an rgba() or eight-digit HEX in gives you HEXA, rgba() and hsla() out.
What makes a converter genuinely useful is breadth and accuracy together. Breadth means covering not just the everyday trio of HEX, RGB and HSL but the whole family — HSV/HSB for colour pickers, HWB for intuitive tinting, CMYK for print, and the perceptual spaces LAB, LCH, XYZ, OKLab and OKLCH for measuring and generating colour. Accuracy means using the right matrices: sRGB with a D65 white point for the CIE spaces, and Björn Ottosson's coefficients for OKLab. RGB, HEX, HSL, HSV and HWB conversions are exact and reversible; LAB, LCH, XYZ and the OK spaces are accurate to display precision; CMYK alone is a naive approximation, because a faithful print conversion needs an ICC profile the browser does not have.
This converter is also bidirectional and live. There is no convert button to press: change the HEX field and the RGB, HSL and every other field recompute instantly, and editing the HSL lightness slider flows back the other way. Around that core sit the features a colour rarely travels alone with — a visual picker and screen eyedropper to capture a shade, palette and harmony tools to build a set around it, a Tailwind scale generator, gradient builder, contrast checker, colour-blindness simulator and token export. Every one of these runs locally using browser APIs, so you can paste confidential brand colours and unreleased themes with the certainty that nothing ever leaves your device.
HEX vs RGB vs HSL
Three notations dominate everyday web work, and they all describe the same sRGB colours — they just write them differently. HEX is the compact form you see in stylesheets and design tools: a # followed by three pairs of hexadecimal digits, one each for red, green and blue, where 00–ff maps to 0–255. So #10b981 is red 16, green 185, blue 129. RGB writes those same three channels as decimal numbers — rgb(16, 185, 129) — which is easier to read and to generate from code, and adds an optional alpha as rgba(). Both are just two spellings of an additive light mix, and converting between them is loss-free in either direction.
HSL describes the very same colour from a human point of view rather than a hardware one. Instead of three light amounts it gives you Hue (the angle on the colour wheel, 0–360°), Saturation (how vivid, 0–100%) and Lightness (how light or dark, 0–100%). That is far easier to reason about: to make a colour a little lighter you raise one number; to mute it you lower the saturation; to shift it towards its neighbour you nudge the hue. #10b981 becomes hsl(160, 84%, 39%) — a green at 160° on the wheel, strongly saturated, on the darker side of mid lightness. The conversion is exact, so you can hop to HSL to make an adjustment and back to HEX to ship it.
| Format | What it is | Range | Best for |
|---|---|---|---|
| HEX | Red/green/blue as hex digit pairs | #000000 – #ffffff | Compact CSS, design handoff |
| RGB | Red/green/blue as decimals (+ alpha) | 0–255 per channel | Code-generated colour, transparency |
| HSL | Hue, Saturation, Lightness | 0–360°, 0–100%, 0–100% | Intuitive tweaks, lighter/darker variants |
The conversions themselves are simple enough to understand. HEX to RGB just reads each digit pair as a base-16 number, and RGB to HEX does the reverse, padding each channel to two digits — which is also where the classic shorthand comes from: when both digits of every pair match, #ffffff can be written #fff. RGB to HSL is a little more involved: it finds the maximum and minimum of the three channels to derive lightness, uses their spread for saturation, and computes the hue from which channel is largest. None of this changes the colour — HEX, RGB and HSL are three windows onto one sRGB point.
So which should you reach for? Use HEX as the portable default — it is the most widely understood and the shortest to paste. Use RGB(A) when you are generating colour programmatically or need an explicit alpha channel. Use HSL whenever you are adjusting a colour rather than just recording it, because moving one slider does the predictable thing. A common workflow is to pick or paste in HEX, switch to HSL to dial in a lighter or more muted variant, then copy the result back out as HEX — and because this converter keeps all three in sync live, you never have to do that maths by hand.
Understanding color models
A colour model is a system for describing colours as numbers, and a colour space pins that model to real, physical colours. The single most important distinction between models is whether they are additive or subtractive. Additive models mix emitted light: start from black and add red, green and blue, and at full strength all three combine to white — this is how screens, which emit light, produce colour, and it is why RGB underpins everything on the web. Subtractive models mix pigment that absorbs light: start from white paper and add cyan, magenta and yellow ink, each subtracting part of the spectrum, until together they approach black — this is how printing works, which is why print uses CMYK.
RGB and its sibling HSL are the additive web foundation; HSV/HSB (Hue, Saturation, Value/Brightness) is the same additive space rearranged for picking, with the 2-D square most colour pickers show. HWB (Hue, Whiteness, Blackness) is a CSS model that starts from a pure hue and mixes in white to tint or black to shade, which is wonderfully intuitive for building lighter and darker variants. CMYK is the subtractive print model. Then there is a family built not for hardware but for human perception: XYZ is the device-independent foundation the CIE defined in 1931; LAB and its cylindrical form LCH spread colours so that equal numeric distances look like equal perceived differences; and OKLab with OKLCH are the modern refinement that finally make lightness and hue behave the way the eye expects.
| Model | Type | Best use case |
|---|---|---|
| RGB / HEX | Additive (light) | Screens, the web, anything that emits light |
| HSL | Additive (light) | Intuitive lightness/saturation adjustment |
| HSV / HSB | Additive (light) | Colour pickers — saturation/value square |
| HWB | Additive (light) | Tinting and shading from a pure hue |
| CMYK | Subtractive (ink) | Print — an approximate ink recipe |
| LAB / LCH | Perceptual (CIE) | Colour difference, even palettes |
| XYZ | Device-independent | The maths hub the CIE spaces convert through |
| OKLab / OKLCH | Perceptual (modern) | Accessible, uniform scales and gradients |
The perceptual spaces deserve a closer look because they solve a real problem. In HSL, two colours with the same lightness value can look wildly different in brightness — a saturated yellow at 50% lightness reads far brighter than a blue at the same 50% — so palettes stepped evenly in HSL come out uneven, and rotating the hue can shift apparent lightness too. LAB fixed much of this by modelling perceived difference, and LCH made it editable by giving lightness, chroma and hue as separate dials. But LAB still has hue-shift artefacts, especially in blues. OKLab and OKLCH are the current best answer: their lightness genuinely matches perception, and hue stays put as you change chroma, which is exactly why a scale stepped in OKLCH looks evenly spaced and keeps its identity from light to dark.
You do not need to memorise the matrices to use them well — you just need to know which model fits which job, and let the converter do the arithmetic. Reach for RGB/HEX to ship to the web, HSL or HWB to adjust a single colour by hand, HSV when your design tool's picker speaks it, CMYK to estimate a print result, and the OK spaces whenever you are generating a family of colours that must look consistent. This tool shows all of them at once for any input, so you can read across from the format you have to the one you need without ever leaving the page.
Color theory guide
Colour theory is the set of principles for combining colours so they look intentional rather than accidental, and it starts with the colour wheel — hues arranged in a circle from red through yellow, green, cyan, blue and magenta and back to red. Because the wheel is just hue plotted around 360°, the relationships between colours become geometric: colours opposite each other clash dramatically, colours next to each other blend calmly, and colours spaced evenly feel balanced. Every harmony rule below is ultimately a recipe for which angles to pick, which is exactly why this tool can generate them by rotating the hue of your base colour.
The three properties you adjust are hue, saturation and lightness. Hue is the colour itself — its position on the wheel. Saturation is its intensity, from a vivid pure colour down to a flat grey. Lightness is how much black or white is mixed in, from near-black to near-white. Holding hue constant while you vary saturation and lightness gives you a family of tints, tones and shades of one colour — the basis of a monochromatic scheme — while changing the hue is what creates contrast and variety between colours. Keeping these three separate in your head is the whole reason HSL, HWB and the LCH-style spaces exist.
The classic harmonies are named by their geometry on the wheel. Complementary uses two opposite hues (180° apart) for maximum contrast and energy — great for a call-to-action against a background. Analogous uses three neighbours (around ±30°) for a calm, cohesive feel, the way nature often pairs colours. Triadic uses three hues spaced 120° apart for a vibrant yet balanced trio. Split-complementary softens a complementary pair by using the two colours either side of the complement; tetradic (a rectangle) and square schemes use four hues for the richest, hardest-to-balance palettes. This converter generates all six from any base colour, plus monochromatic, tint and shade ramps, so you can audition each relationship at a glance.
Temperature ties it together. Warm colours — reds, oranges, yellows — feel energetic and advance towards the viewer; cool colours — greens, blues, purples — feel calm and recede. A composition usually reads best with a dominant temperature and a smaller accent from the other side of the wheel, which is essentially the complementary harmony at work. The practical takeaway is that you rarely need to invent colours from scratch: pick one base you like, choose a harmony that matches the mood you want — calm analogous, punchy complementary, balanced triadic — then refine lightness and saturation until the set sings. The harmony generator turns that into a one-click exercise, and the contrast and colour-blindness tools then tell you whether the result is actually usable, not just pretty.
Accessibility & contrast
Colour accessibility is mostly about one thing: making sure text and meaningful elements stand out enough from their background that everyone can read them, including people with low vision or colour-vision deficiencies. The measure for this is contrast ratio, a number from 1:1 (two identical colours) to 21:1 (pure black on pure white). The Web Content Accessibility Guidelines (WCAG) set minimum ratios that text and UI must meet, and the Contrast tab in this tool computes the exact ratio for any foreground/background pair and tells you which levels it passes or fails.
The thresholds depend on the conformance level and the size of the text. At level AA, normal body text needs at least 4.5:1, while large text — 24px and up, or 18.66px and up if bold — needs only 3:1 because bigger glyphs are easier to read at lower contrast. The same 3:1 minimum applies to UI components and meaningful graphics like icons and form borders. The stricter AAA level raises normal text to 7:1 and large text to 4.5:1. Aim for AA as a baseline and AAA where you can, especially for long-form reading.
| WCAG level | Content | Minimum ratio |
|---|---|---|
| AA | Normal body text | 4.5:1 |
| AA | Large text (≥24px / ≥18.66px bold) | 3:1 |
| AA | UI components & graphics | 3:1 |
| AAA | Normal body text | 7:1 |
| AAA | Large text | 4.5:1 |
The maths behind the ratio is worth understanding because it explains why some pairs surprise you. Contrast ratio is (L1 + 0.05) / (L2 + 0.05), where L1 and L2 are the relative luminances of the lighter and darker colour. Relative luminance linearises each sRGB channel — undoing the gamma curve — then weights them 0.2126 R + 0.7152 G + 0.0722 B. Green dominates that sum because the human eye is far more sensitive to green light than to red or blue, which is why a mid-green can carry more apparent brightness than a mid-blue at the same HSL lightness. The practical consequence is that contrast is driven by luminance, not hue: to fix a failing pair you almost always adjust lightness, not the colour itself.
Contrast is necessary but not sufficient, because around 1 in 12 men and 1 in 200 women have a colour-vision deficiency. Two colours can have plenty of contrast yet become indistinguishable to someone who is red-blind. That is what the colour-blindness simulator is for: it re-renders your colour and palette as they appear under protanopia, deuteranopia, tritanopia and full achromatopsia, so you can catch a pairing that collapses. The golden rule is never to rely on hue alone to convey meaning — pair colour with a label, an icon, a pattern or a clear difference in lightness — so the information survives whatever the viewer can or cannot see. Run candidate pairs through the Contrast tab and the simulator together, adjusting lightness until both pass.
Brand color selection
A brand colouris one of the fastest-acting signals a product has — people form an impression from colour before they read a word — so choosing it deliberately matters. The goal is not to find a “pretty” colour in the abstract but one whose associations match the personality you want to project and whose practical behaviour — in light and dark, large and small, across the colour-blind spectrum — holds up in a real interface. That means starting from meaning and industry, then engineering a system around the chosen hue rather than dropping a single swatch into the design and hoping.
Industry conventions exist because they work, and it pays to know them even if you choose to break them. Blue dominates finance, technology and healthcare because it reads as trustworthy, stable and competent — which is why so many banks and SaaS products converge on it. Green signals growth, health, nature and money, the natural choice for wellness, sustainability and fintech alike. Red is energy, urgency and appetite, common in food, entertainment and clearance sales. Purple suggests luxury, creativity and imagination; orange is friendly, affordable and energetic; black reads as premium and sophisticated. None of this is a law — it is a starting hypothesis you can lean into for instant recognition or subvert for deliberate contrast.
A brand colour is never used alone; it anchors a system of three roles. The primary is your signature hue, the one people remember, used for the most important actions and identity moments. An accent — usually a complementary or analogous hue from the harmony tools — provides contrast for highlights and secondary actions without competing with the primary. A set of neutrals — greys, often very slightly tinted toward the primary so they feel cohesive rather than dead — carries the vast majority of the interface: text, borders, backgrounds and surfaces. Most of the screen is neutral; the brand colour earns its impact precisely by being used sparingly, which is the logic behind the classic 60-30-10 ratio.
The emotional perception of a colour is also shaped by its execution, not just its hue. A desaturated, muted teal feels mature and calm; the same hue at full saturation feels energetic and young. Lightness changes register too — a deep, dark version reads as serious and premium, a pale tint as soft and approachable. So the recommended workflow is to pick a hue whose psychology fits, then tune its saturation and lightness for the exact tone you want, then immediately stress-test it: generate the full scale, check that text on your primary passes contrast, and view the palette under colour-blindness simulation before you commit. A brand colour that looks great in isolation but fails at 4.5:1 or vanishes for deuteranopes is not finished — and this tool is built to catch that before launch.
Design system colors
In a design system, colour stops being a handful of hex codes scattered through stylesheets and becomes a structured, named resource. The unit of that structure is the design token: a named, reusable value such as color.primary.500 = #10b981 that captures a design decision once and is then consumed everywhere — in CSS, Tailwind, Figma and native apps. Tokens are what keep colour consistent across platforms and turn a rebrand from a find-and-replace nightmare into a one-place edit. This tool exports your palette as exactly these — CSS variables, SCSS, Tailwind config and JSON tokens — so the colours you generate drop straight into a real system.
The backbone of a colour system is the scale: a single hue expressed as a ramp of stepped lightness, conventionally numbered 50 (almost white) through 500 (the base) to 950 (almost black). Eleven steps give you a tint for subtle backgrounds, a mid value for borders, the base for primary actions and progressively darker shades for text and hover states — all guaranteed to belong to the same family because they share a hue. You build one such scale for your primary, one for an accent, and one for a neutral grey, and suddenly every colour decision in the product is a choice among named steps rather than a fresh hex code. This converter generates that full 50–950 ramp from any base colour automatically.
On top of the raw scales sit semantic colours — tokens named for their role rather than their value. Instead of asking a developer to remember that success is green.500, the system exposes color.success, color.warning, color.danger and color.info, each pointing at a step in a scale. The power of this indirection is theming: color.text.primary can resolve to a dark neutral in light mode and a light one in dark mode without a single component needing to know. Semantic tokens are the layer that lets one component library serve many brands and modes from the same code.
Delivery is where tokens meet your codebase, and the format depends on your stack. CSS custom properties declared on :root — --brand-500: #10b981; — are the universal option: they cascade, they are live in the browser, and you override them inside a .dark block to theme. Tailwind wants a theme.extend.colors object so the steps become utilities like bg-brand-500. SCSS wants $brand-500 variables for build-time use, and JSON tokens feed design-tool plugins and cross-platform pipelines. Because this tool exports all four from the same palette, you generate your colours once and ship them in whatever shape your project expects — no manual transcription, no drift between what the designer chose and what the code uses.
Tailwind color palettes
Tailwind CSS popularised a particular shape of colour palette that has since become a near-universal convention: every colour is a named ramp of eleven steps — 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950 — going from the lightest tint to the darkest shade of one hue. You reference a step as a utility class such as bg-emerald-500 or text-slate-700, and the consistency of the numbering across every colour is what makes Tailwind palettes so quick to design with: 500 is always the base, 50 always the subtle background, 950 always the near-black.
The logic of the scale is mostly lightness. The hue stays roughly constant down the ramp while lightness steps from very light at 50 to very dark at 950, with saturation nudged slightly at the extremes so the lightest and darkest steps do not look washed out or muddy. Good ramps are not linear in raw lightness — they are spaced so each step looks like an even perceptual jump from the last, which is precisely the problem the OK colour spaces solve, and why a perceptually-aware generator produces a smoother, more usable scale than naive HSL stepping. The mid steps carry the most chroma; the ends trade some saturation for a clean tint and a deep shade.
To add your own brand colour to Tailwind you extend the theme. The Tailwind scale generator in this tool turns any base colour into a complete 50–950 ramp and exports a ready-to-paste theme.extend.colors block, so a custom brand colour becomes a first-class set of utilities. You drop the generated object under theme.extend.colors in your config, give it a name like brand, and immediately get bg-brand-50 through bg-brand-950across backgrounds, text, borders and rings — fully integrated with the rest of Tailwind's system rather than bolted on as one-off hex values.
A few habits make custom Tailwind palettes hold up. Keep 500 as the recognisable base of your brand so it matches the mental model of the built-in colours. Make sure adjacent steps are visually distinct but not jarring, and that the dark end goes deep enough to serve as readable text on a light tint. Verify the pairs you actually use — brand-700 text on a brand-50 background, white text on brand-500— against WCAG contrast, because a beautiful ramp is still broken if its common pairings fail. And because Tailwind's JIT only emits the utilities your markup uses, a custom scale adds almost nothing to your bundle. Generate the ramp here, paste it into your config, run the pairs through the Contrast tab, and your brand colour is production-ready.
Material Design colors
Google's Material Design approaches colour as a system of tonal palettes rather than fixed swatches. From a single seed colour, Material derives a ramp of tones — historically labelled in steps such as 50 through 900, and in Material 3 expressed as tones from 0 (black) to 100 (white) — that share a hue but span the full lightness range. The whole interface then draws its colours from these tones, which keeps everything visually related and makes generating both light and dark themes a matter of selecting different tones from the same palette rather than hand-picking new colours.
The system organises those tones into roles. A primary colour carries the main brand identity and the most prominent components; a secondary (and in Material 3, a tertiary) provides accents and supporting emphasis; and a family of surfaceand background tones — usually low-chroma neutrals subtly tinted toward the primary — form the canvas that everything sits on. Each role also defines an “on” colour (the colour of text and icons placed on top of it) chosen to meet contrast requirements, so legibility is built into the palette rather than checked after the fact.
A distinctive Material idea is elevation through tint. Rather than showing depth only with shadows, Material raises a surface's apparent elevation by overlaying a translucent tint of the primary colour — the higher the surface, the stronger the tint — so a raised card or dialog reads as slightly more coloured than the background beneath it. This is why generating consistent tints and shades from a seed matters: the elevation overlays, hover and pressed states, and disabled treatments are all stepped tones of the same colour. The monochromatic, tint and shade ramps in this tool produce exactly that kind of stepped tonal set from your seed.
To build a Material-style palette here, take your brand colour as the seed and generate its scale and tonal ramps; pick a base tone for the primary, lighter tones for surfaces and containers, and darker tones for text and high-emphasis elements. Choose a second hue for your secondary or accent — a harmony from the wheel works well — and run it through the same process. Then export the whole set as design tokens so it slots into a Material theming setup, and verify the “on” pairings against contrast thresholds. Because Material theming is fundamentally about deriving many tones from few seeds, a converter that turns one colour into a full, perceptually-sensible tonal palette and exports it as tokens does most of the heavy lifting for you.
Color psychology
Colour psychologyis the study of how hues influence perception, mood and behaviour. The associations are partly biological and partly learned, but they are consistent enough to be useful: choosing the right colour can make an interface feel calm or urgent, a brand feel premium or playful, a button feel safe or dangerous — all before a single word is read. None of these meanings are absolute laws, but as a designer's starting point they reliably shape first impressions, which is why marketers obsess over them.
Each hue carries a cluster of associations. Red is energy, passion, urgency and appetite — it raises attention and works for alerts, sales and food, but overused it reads as aggressive or error. Blue is trust, calm, stability and competence, the most universally liked colour and the default for finance, tech and healthcare. Greenmeans growth, health, nature, money and “go” — calming and positive, ideal for wellness, finance and success states. Yellow is optimism, warmth and attention, cheerful in small doses but tiring in large ones. Orange blends red's energy with yellow's friendliness — approachable, affordable, enthusiastic. Purple signals luxury, creativity, wisdom and imagination, long tied to royalty. Black is sophistication, power and elegance; white is cleanliness, simplicity and space.
These meanings are also cultural and contextual, and ignoring that is a classic mistake. White signifies purity and weddings in much of the West but mourning in parts of East Asia; red is luck and celebration in China yet danger or debt elsewhere; green carries religious significance in some cultures and money in others. Context within a single design matters just as much: red on a delete button means danger, but the same red on a festive banner means celebration. So colour psychology is a guide to likely first impressions for a given audience, not a guarantee — always weigh it against who will see the colour and where, and against the surrounding cues that frame its meaning. Saturation and lightness shift the feeling too: a soft pastel blue and a deep navy share a hue but project very different moods, the first gentle and the second authoritative.
Used well, colour psychology turns an arbitrary choice into a strategic one — pick the hue whose meaning matches your message, tune its tone for the exact mood, and validate that it works for everyone. That last step is where this tool earns its place. It converts any colour across HEX, RGB, HSL, HSV, HWB, CMYK, LAB, LCH, OKLab and OKLCH plus the nearest named colour; it gives you a pro colour picker with a screen eyedropper; it generates palettes and harmonies, a full Tailwind 50–950 scale and CSS gradients; it checks WCAG contrast, simulates colour blindness, and exports the result as design tokens in CSS, SCSS, Tailwind and JSON. Everything runs 100% client-side and private — no uploads, no sign-up, no limits — so you can take a colour from psychological intent all the way to production-ready, accessible tokens without it ever leaving your browser.
Frequently asked questions
Paste a HEX value such as #3b82f6 into the converter and the RGB equivalent — rgb(59, 130, 246) — appears instantly, along with HSL, HSV, CMYK, LAB, OKLCH and every other format. A HEX colour encodes red, green and blue as three pairs of hexadecimal digits (00–ff = 0–255), so #3b82f6 is red 59, green 130, blue 246. Everything is computed in your browser.
Type an RGB value like rgb(16, 185, 129) and the tool shows the HEX code #10b981. Each channel (0–255) is converted to a two-digit hexadecimal number and concatenated. Edit any field — HEX, RGB, HSL and the rest update together in real time, in both directions.
RGB describes a colour by how much red, green and blue light to mix (0–255 each) — it maps to how screens emit light but is unintuitive to adjust. HSL describes the same colour as Hue (the angle on the colour wheel, 0–360°), Saturation (how vivid, 0–100%) and Lightness (how light/dark, 0–100%), which is far easier to reason about: change one number to make a colour lighter, more muted, or shift its hue.
CMYK (Cyan, Magenta, Yellow, Key/black) is the subtractive colour model used in printing, where inks absorb light rather than emit it. Screens use RGB; printers use CMYK. Converting RGB to CMYK gives an approximate print recipe, but exact print colour depends on the press, paper and ICC profile, so treat the CMYK output as a starting point and proof on the target device.
CIELAB (LAB) is a perceptually-oriented model with three axes — L for lightness, a for green↔red and b for blue↔yellow — designed so equal numeric distances look like equal perceived differences. LCH is LAB expressed in cylindrical form (Lightness, Chroma, Hue), which is more intuitive to edit. They are ideal for measuring colour difference and building perceptually-even palettes.
OKLab (and its cylindrical form OKLCH) is a modern perceptual colour space by Björn Ottosson that fixes long-standing issues with HSL and even CIELAB — its lightness matches perception and hues stay stable as you change chroma. OKLCH is now part of CSS Color 4 and is the recommended space for generating accessible, perceptually-uniform colour scales and gradients.
HSV (Hue, Saturation, Value) — also called HSB (Brightness) — is the model behind most colour pickers: a 2-D square selects saturation and value while a slider sets hue. It differs from HSL in how it treats lightness: in HSV, value 100% is the most vivid form of a hue, whereas in HSL, lightness 50% is. The tool shows both so you can use whichever your design tool expects.
HWB (Hue, Whiteness, Blackness) is a CSS colour model that starts from a pure hue and mixes in white and black. It is intuitive for tinting and shading — add whiteness to lighten, blackness to darken — and is supported in modern browsers via the hwb() function.
Use the built-in picker: drag inside the saturation/brightness square, move the hue slider, and adjust the alpha slider for transparency. You can also use your browser’s native picker or the eyedropper (where supported) to sample any pixel on your screen. Every format updates live as you pick.
The eyedropper lets you sample a colour from anywhere on screen. Click the eyedropper button and the browser’s EyeDropper API activates a magnifier; click any pixel to capture its exact colour into the converter. It is available in Chromium-based browsers (Chrome, Edge); other browsers fall back to the visual picker.
Accessible colour is mostly about contrast: text must stand out enough from its background. Use the Contrast tab to check a foreground/background pair against WCAG thresholds (4.5:1 for normal text, 3:1 for large text and UI components at AA). Pick text and background whose lightness differs enough, verify the ratio, and adjust lightness — not just hue — until it passes.
WCAG 2.x requires at least 4.5:1 for normal body text and 3:1 for large text (≥24px, or ≥18.66px bold) and for UI components and graphical objects at level AA. For the stricter AAA level, use 7:1 for normal text and 4.5:1 for large text. The Contrast tab reports the exact ratio and which levels pass or fail.
Contrast ratio is (L1 + 0.05) / (L2 + 0.05), where L1 and L2 are the relative luminances of the lighter and darker colours. Relative luminance linearises each sRGB channel and weights them 0.2126 R + 0.7152 G + 0.0722 B (green dominates because the eye is most sensitive to it). The result ranges from 1:1 (identical) to 21:1 (black on white).
Open the Palettes tab and the tool generates harmonies from your base colour — complementary, analogous, triadic, split-complementary, tetradic and square — plus monochromatic, tint and shade ramps. Each swatch is one click to copy, and you can export the whole set as CSS variables, SCSS, a Tailwind config or JSON tokens.
Harmonies are sets of colours with pleasing relationships on the colour wheel. Complementary uses opposite hues (high contrast); analogous uses neighbours (calm, cohesive); triadic uses three evenly-spaced hues (vibrant, balanced); split-complementary, tetradic and square are richer variations. They are the foundation of balanced, professional palettes.
The Tailwind scale generator turns any base colour into a full 50–950 ramp (eleven steps) by holding the hue roughly constant and stepping lightness from very light (50) to very dark (950). Copy individual steps or export a ready-to-paste theme.extend.colors config so your custom brand colour drops straight into Tailwind.
Generate tints and shades from your seed colour to build the lighter and darker tones Material Design uses for elevation, states and surfaces, then export them as design tokens. The monochromatic and scale tools produce the stepped tonal palette Material theming relies on.
About 1 in 12 men and 1 in 200 women have a colour-vision deficiency. The simulator shows how your colour (and palette) appears under protanopia (red-blind), deuteranopia (green-blind), tritanopia (blue-blind) and achromatopsia (no colour). If two colours become indistinguishable under a simulation, add another cue — labels, icons, patterns or different lightness — so meaning never relies on hue alone.
Use the Gradient tab to build linear, radial or conic gradients with two or more colour stops, set the angle and stop positions, and copy the ready-to-use CSS. Gradients are great for backgrounds, buttons and hero sections — and because the tool also gives OKLCH values you can build perceptually-smooth gradients.
The converter identifies the nearest CSS named colour using a perceptual (LAB) distance, so #dc143c is recognised as crimson and #4169e1 as royalblue. If your colour matches a named colour exactly it is shown as exact; otherwise you get the closest match — handy for naming brand colours and writing readable CSS.
Saturation is how vivid the colour is (0% grey to 100% pure hue); lightness is how light or dark it is on the HSL scale (0% black to 100% white); brightness is the HSV value (how much light the colour reflects at its current hue). Together they describe the colour’s character and help you decide whether it suits text, backgrounds or accents.
Colour psychology studies how hues influence perception and emotion: red signals energy and urgency, blue trust and calm, green growth and health, yellow optimism, purple luxury and creativity, black sophistication. These associations are cultural and contextual, but they meaningfully shape how a brand or interface feels — useful when choosing a primary colour.
Start from your brand’s personality and industry, pick a hue whose psychology fits (e.g. blue for fintech trust, green for wellness), then build a usable system: a primary with a full 50–950 scale, a complementary or analogous accent, and neutral greys. Verify every text/background pairing passes contrast, and check the palette under colour-blindness simulation before committing.
A design token is a named, reusable value — like color.primary.500 = #3b82f6 — that captures a design decision once and is consumed everywhere (CSS, Tailwind, Figma, native apps). Tokens keep colour consistent across platforms and make rebranding a one-place change. The tool exports your palette as CSS variables, SCSS, Tailwind config and JSON tokens.
Generate a palette or scale, open Export, choose CSS, and copy a :root block of custom properties like --brand-500: #3b82f6;. You can also export SCSS variables, a Tailwind colors config, or JSON design tokens — drop them straight into your codebase.
Additive colour (RGB) mixes emitted light — combine red, green and blue at full strength to get white; it is how screens work. Subtractive colour (CMYK) mixes pigments that absorb light — combine cyan, magenta and yellow to approach black; it is how printing works. Converting between them is necessary whenever a design moves from screen to print.
Yes. Set the alpha slider or enter an rgba()/hsla()/8-digit HEX value, and the tool preserves transparency across formats — outputting HEXA (#rrggbbaa), rgba() and hsla() with the alpha channel. Alpha is the opacity from 0 (fully transparent) to 1 (fully opaque).
sRGB is the standard colour space for the web and most monitors — it defines exactly which real-world colours the RGB numbers represent. HEX, rgb() and hsl() are all sRGB. Wider-gamut spaces (Display P3, Rec. 2020) can show more saturated colours; modern CSS supports them via color() and OKLCH, but sRGB remains the safe default.
Screens emit light (RGB) and can show vivid colours that inks (CMYK) cannot reproduce — these out-of-gamut colours get approximated, often appearing duller in print. Lighting, paper and printer profiles also shift the result. Always convert to CMYK, soft-proof with the print profile, and request a physical proof for colour-critical work.
RGB, HEX, HSL, HSV and HWB conversions are exact and reversible. LAB, LCH, XYZ, OKLab and OKLCH use the standard sRGB/D65 matrices and are accurate to display precision. CMYK is a naive approximation (no ICC profile), so use it as guidance rather than a print-exact value.
Completely. All parsing, conversion, palette generation, contrast checking and exports run locally in your browser using JavaScript — nothing is uploaded, logged or stored remotely. Uploaded images for colour extraction are processed entirely on-device too.
Yes. It is 100% free with no sign-up, no usage limits and no watermarks. Convert, pick, analyse, generate palettes and gradients, check contrast and export tokens as much as you like.
Saturation (in HSL/HSV) is relative — it scales with lightness, so two colours with the same saturation can look very different in vividness. Chroma (in LCH/OKLCH) is an absolute measure of colourfulness independent of lightness, which is why perceptual spaces use it to build even, predictable palettes.
Do not just invert colours. Start from your scale, use darker, slightly desaturated surfaces (not pure black) for backgrounds, lighten text and accents enough to keep 4.5:1 contrast, and reduce large saturated areas to avoid eye strain. Check every pairing in the Contrast tab against a dark background.
On the HSL/HSV wheel: 0° red, 30° orange, 60° yellow, 120° green, 180° cyan, 240° blue, 270° purple, 300° magenta, 330° pink, wrapping back to red at 360°. Rotating the hue by fixed angles is exactly how the palette generator builds harmonies.
Yes. Upload an image and the tool samples its pixels to extract the dominant colours and a palette you can copy or export — useful for matching a design to a photo, logo or screenshot. Processing happens entirely in your browser, so the image never leaves your device.
A classic interface and interior-design ratio: about 60% of the space uses a dominant (usually neutral) colour, 30% a secondary colour, and 10% an accent. It creates visual balance and a clear hierarchy. Build the three roles from your palette — a neutral scale, a brand colour and a contrasting accent.
HSL’s lightness is not perceptual — a yellow and a blue at the same HSL lightness look very different in brightness, so HSL ramps are uneven and hues drift. OKLCH lightness matches perception and hue stays constant as chroma changes, so a scale stepped in OKLCH looks evenly spaced and keeps its identity. The tool gives OKLCH for exactly this.
For a UI: one primary (with a 50–950 scale), one or two accents, a neutral grey scale, and semantic colours for success/warning/error/info. That is enough for a complete, consistent system. For illustration or branding, 3–5 harmonised colours usually read as cohesive; more than that risks looking chaotic.
Relative luminance (0–1) is how bright a colour appears to the human eye after accounting for the eye’s different sensitivity to red, green and blue. It drives contrast ratios and the light/dark classification, so it tells you whether to put light or dark text on the colour.
Yes. Because everything runs client-side, the converter keeps working without a connection once loaded, and the interface is fully responsive — the picker, format grid and palettes stack and reflow for small screens, with large touch targets.
Related Tools
Explore More Tools
Go ad-free & unlock power features
- Zero ads, faster focused workflow
- Upload 50MB+ files & batch process
- Priority AI type & schema generation