The CMYK any web tool gives you is not your printer's CMYK
People take these numbers to a print shop and are then surprised when the job comes back a different colour.
The conversion below is the naive one. It has no colour profile, no paper, no ink limit and no black generation strategy, and a real separation depends on all four. The same RGB sent to two printers comes back different because their profiles differ, and that is the system working correctly rather than a fault in it.
So use these figures for a rough sense of ink coverage and as a starting point for a conversation. Send the printer your RGB, or an ICC-tagged file, and let their profile do the separation.
The one number to look at
Total ink coverage: the four plates added together. Presses have a limit, commonly around 300% on coated stock, and above it the sheet struggles to dry. That shows up as set-off, where ink transfers onto the back of the next sheet in the stack.
The limit varies with the press and the paper, so a high figure is a reason to ask rather than a failure. It is also the thing most likely to get your artwork queried, and knowing the number before the phone call is worth something.
Pulling a palette out of an image: counting, not averaging
The obvious way to get colours out of a picture is to average regions of it. It is also the wrong way, and the reason is easy to see: average a red and a green and you get a muddy brown that appears nowhere in the image and represents nothing that is in it.
So this counts instead. Pixels go into a coarse grid of buckets, the buckets are ranked by how many pixels landed in each, and the winners come back. Every colour returned is one that genuinely occurs in the picture. Near-duplicates are then dropped, so you get a palette you can use rather than six shades of the same sky.
Two details worth knowing. Fully transparent pixels are skipped, because otherwise every palette taken from a PNG with a transparent background starts with black, which is stored behind the transparency. And the image is scaled down before counting, because a twelve megapixel photo is about 48MB of pixel data and the answer does not change.
None of it leaves your machine. The file is read by the browser canvas, on your own device, with no server involved.
No colour is inaccessible on its own
There is a neat fact hiding in the contrast maths. To fail 4.5:1 against white a colour needs a relative luminance above about 0.183. To fail against black it needs one below about 0.175. Those two ranges cannot both be true, so every colour clears 4.5:1 against at least one of black or white.
Which means "is this colour accessible" is the wrong question. The right one is which background it works on, and how much room it has. A colour sitting near the middle, around luminance 0.18, only just clears one side at roughly 4.58:1 and has no margin at all if the background shifts. Those are the colours to keep for fills rather than text.
Harmonies, briefly and honestly
- Monochrome always works: a hue cannot clash with itself.
- Analogous is quiet and cohesive, and easy to make dull.
- Complementary is the loudest pairing, and wants one colour to lead rather than a fifty-fifty split.
- Triadic and tetradic give you more to work with and need more discipline. The more hues you add, the more one of them has to dominate.
A harmony is a starting point rather than a rule. Every one of them can be made to look bad, and the thing that usually saves a palette is not the hue relationship at all, it is picking one colour to carry most of the page and using the rest sparingly.
Common questions
Is the CMYK here what my printer will use?
No, and this matters because people take these numbers to a print shop. The conversion has no colour profile, no paper, no ink limit and no black generation strategy, and a real separation depends on all four. That is why the same RGB sent to two printers comes back looking different, and it is correct behaviour rather than a fault. Use these figures for a rough sense of ink coverage, and give your printer the RGB or an ICC-tagged file so their profile does the separation properly.
What is total ink coverage and why does it matter?
It is the four plates added together, so a colour at 60 cyan, 50 magenta, 50 yellow and 40 black is 200%. Presses have a limit, commonly around 300% on coated stock, above which the sheet struggles to dry and ink transfers onto the back of the next sheet in the stack. It varies with the press and the paper, so treat a high number as a reason to ask your printer rather than a hard failure.
How does pulling colours out of an image work?
By counting, not averaging. The naive approach averages regions of the image, and averaging a red and a green gives you a muddy brown that appears nowhere in the picture and represents nothing in it. This buckets pixels into a coarse grid, ranks the buckets by how many pixels landed in each, and returns the winners. Every colour it gives back occurs in the image. Near-duplicates are then dropped so you get a usable palette instead of six shades of the same sky.
Does my image get uploaded?
No. It is read on your own machine using the browser canvas and never leaves it. There is no server involved and no account. The image is also scaled down before the pixels are counted, because a twelve megapixel photo is about 48MB of pixel data and the answer does not change.
Which colour harmony should I use?
Monochrome always works, because a single hue at different lightnesses cannot clash with itself. Analogous is quiet and cohesive and easy to make dull. Complementary is the loudest pairing and wants one colour to dominate rather than a fifty-fifty split. Triadic and tetradic give you more to work with and need more discipline, because the more hues you add the more one of them has to lead.
Is a colour on its own accessible or not?
The question does not have an answer without a background, and there is a nice mathematical reason: every colour clears 4.5:1 against at least one of black or white, because the luminance range that fails on white and the range that fails on black cannot overlap. So no colour is inaccessible on its own. What matters is which background it works on, and whether it has any margin: a colour sitting near the middle only just clears one side and has nowhere to go if the background shifts.
Why does the HSL not convert back to exactly the same hex?
Because HSL displayed as whole numbers is lossy. A hue rounded to the nearest degree and a lightness rounded to the nearest percent do not carry quite enough information to reconstruct the original 24-bit colour, so you can land a unit or two away. The conversions themselves keep full precision internally, and only the numbers shown to you are rounded, which is why the hex to HSL to hex round trip in this tool is exact.
What is the difference between HSL and HSB or HSV?
HSL runs lightness from black through the pure colour at 50% to white at 100%. HSB and HSV run brightness from black to the pure colour at 100%, with no white end at all, so you need to drop saturation to get to white. They describe the same colours in different coordinates, and pasting an HSB value into an HSL field gives you the wrong colour, which is a common and confusing mistake.