CMYK to Hex: Putting Print Brand Colors on the Web
A CMYK to hex converter promises a tidy answer — feed it four ink numbers, get one web color code back. The honest version comes with an asterisk: there is no single “correct” hex for a CMYK color, only a best mathematical estimate. That sounds like a knock against the tool above. It isn't. It's the one thing most converter pages won't tell you, and knowing it is what separates a designer who ships accurate brand colors from one who keeps wondering why the website blue never quite matches the brochure.

There Is No Single 'Correct' Hex
Here's the uncomfortable truth: CMYK is device-dependent and hex is not. The same CMYK(0, 100, 100, 0) red prints as one color on glossy coated stock and a visibly duller one on uncoated business-card paper, because uncoated fibers soak up ink and scatter light. A hex code can't encode any of that — #FF0000 is a fixed point in the sRGB space, identical on every calibrated screen. So when a tool converts ink percentages to a hex code, it's answering a slightly different question than the one you asked. It tells you the screen color that the idealized formula maps those inks to, not the color your specific press will actually lay down.
That gap matters because the printable CMYK gamut covers only about 55–70% of the sRGB colors hex can describe. Vivid blues, electric greens, and hot oranges live outside what ink can hit, so their converted hex codes look more luminous on a monitor than the print ever will. Treat the result as a faithful starting point — exactly what you want for building a website from a print brand — and verify anything color-critical against a physical proof.
How Four Inks Become Six Characters
The conversion is two moves, not one. There's no direct ink-to-hex formula, because hex is just base-16 shorthand for RGB. First the four ink percentages become three RGB channels; then each channel gets re-written as a two-character hex pair. The first move uses the subtractive formula our CMYK to RGB converter walks through in depth: R = 255 × (1 − C) × (1 − K), and the same shape for green and blue using magenta and yellow.
The second move is the part that makes it “hex.” Each RGB channel is a number from 0 to 255, and 255 in base-16 is FF — two digits, where the left digit counts sixteens and the right digit counts ones. So 235 becomes EB: 14 sixteens (E = 14) is 224, plus 11 ones (B = 11) equals 235. Stack the three pairs and you have a six-character code. That's why a full-color hex value is always six digits: two per channel, three channels. The encoding panel in the tool above shows this digit-by-digit, so you never have to trust it blindly.
Worked Example: A Print Teal to #24B691
Say a brand guide specifies a teal as CMYK(85, 25, 40, 5). Let's convert it to hex by hand, both moves shown.
Move 1, inks to RGB. Convert percentages to decimals and apply the formula with the shared black factor (1 − 0.05) = 0.95:
- R = 255 × (1 − 0.85) × 0.95 = 255 × 0.15 × 0.95 = 36
- G = 255 × (1 − 0.25) × 0.95 = 255 × 0.75 × 0.95 = 182
- B = 255 × (1 − 0.40) × 0.95 = 255 × 0.60 × 0.95 = 145
Move 2, RGB to hex. Encode each channel in base-16. 36 is 2 sixteens (32) plus 4, so 24. 182 is 11 sixteens (176, written B) plus 6, so B6. 145 is 9 sixteens (144) plus 1, so 91. Concatenate the pairs: #24B691. Drop that into your CSS and the teal renders on screen. The whole chain — CMYK to RGB to those three hex pairs — updates live in the dark formula box, so you can nudge the cyan and watch the first pair shift.
When a Color Collapses to #F00
CSS allows a three-digit hex like #F00 as shorthand for #FF0000, and a CMYK build sometimes lands on exactly such a color. The rule is narrow: shorthand works only when all three channels happen to be a repeated pair — FF, 00, 33, 66, AA, and so on. Process red, CMYK(0, 100, 100, 0), converts to RGB(255, 0, 0) = #FF0000, where every pair has two identical characters, so it collapses cleanly to #F00.
Most colors don't qualify. The teal above, #24B691, has pairs 24, B6, and 91 — none repeat, so it must stay six digits. Mathematically only 16 × 16 × 16 = 4,096 of the 16.7 million possible colors can be written in shorthand, roughly 1 in 4,096. The tool flags the lucky ones automatically. Shorthand saves three bytes per color in your stylesheet — trivial for a single value, but it adds up across a large design system.
The Rounding Drift Nobody Warns You About
Every CMYK-to-hex conversion rounds twice, and those roundings can quietly bite you. The RGB formula rarely produces whole numbers — the teal's green channel actually computes to 181.69 before rounding to 182. Hex can only store whole numbers from 0 to 255, so that fractional part is gone for good.
The drift becomes visible on a round trip. Take a hex code, convert it to CMYK for a print run, then convert that CMYK back to hex, and you can land one or two values off the original: #2563EB might return as #2563EC. It looks identical to the eye, but an automated brand-consistency check that does exact string matching will flag it as a mismatch. The fix is simple — if a color started as hex, keep the original and never round-trip it. Only convert CMYK to hex when print genuinely is your source, like a logo that exists only as ink specs. If you need the reverse direction cleanly, our hex to CMYK converter shows the intermediate RGB so you can spot exactly where drift creeps in.
When a Formula Hex Will Burn You
A generic conversion is the right tool for a quick estimate and for digitizing a print-first brand. It's the wrong tool in three specific cases:
- Pantone spot colors.A Pantone bridge book lists both a CMYK build and an official sRGB hex for each spot color — and they don't match, because each is tuned for its medium. Convert the printed CMYK build yourself and you get a third, slightly different hex. Use the hex Pantone publishes instead. Our RGB to CMYK converter explains why spot-to-process matching is always approximate.
- Colors built for a specific paper.The same ink build on newsprint versus coated gloss can shift perceived saturation dramatically — easily a 15–20% swing. A device-independent formula ignores the substrate entirely. For accuracy, convert through the press's ICC profile in design software rather than a generic equation.
- Anything where the screen color must be legally exact.Trademarked brand colors are often registered as specific hex values. Don't derive them from a CMYK build — pull the registered hex from the brand guidelines so your site matches the spec on file, not a converter's best guess.
Print CMYK Builds and Their Hex Codes
These are the CMYK builds designers pull off spec sheets most often, with the formula hex each one maps to. The two-ink process primaries land on pure web primaries because every unused ink leaves its channel sitting at the full FF.
| Build | CMYK | RGB | Hex |
|---|---|---|---|
| Process Red | 0, 100, 100, 0 | 255, 0, 0 | #FF0000 |
| Process Cyan | 100, 0, 0, 0 | 0, 255, 255 | #00FFFF |
| Process Green | 100, 0, 100, 0 | 0, 255, 0 | #00FF00 |
| Print Royal Blue | 75, 68, 0, 8 | 59, 75, 235 | #3B4BEB |
| Print Teal | 85, 25, 40, 5 | 36, 182, 145 | #24B691 |
| Warm Amber | 0, 35, 85, 0 | 255, 166, 38 | #FFA626 |
| Rich Black | 60, 40, 40, 100 | 0, 0, 0 | #000000 |
| Paper White | 0, 0, 0, 0 | 255, 255, 255 | #FFFFFF |
Notice paper white maps to #FFFFFF even though it represents zero ink — on screen, maximum light; on paper, the bare sheet. That inversion sits at the heart of why print and web color never line up by intuition alone. The sRGB math here follows the same rules the W3C CSS Color 4 specification uses to interpret a bare hex code, which is always treated as sRGB. Once you have a hex you trust, confirm it meets the WCAG 2.1 contrast minimum of 4.5:1 for body text before it ships.
