CMYK to HEX: bringing print colors to the screen
Brand guides written for print often list only CMYK percentages. This CMYK to HEX converter turns those ink values into hex codes you can use on a website, in slides or in a UI design, so the online version of a logo or letterhead starts from the right place.
How the conversion works
Each ink percentage is turned into a fraction, and every RGB channel is what remains of full light after that ink and the black are applied:
R = 255 × (1 − C) × (1 − K)
G = 255 × (1 − M) × (1 − K)
B = 255 × (1 − Y) × (1 − K)
The channels are rounded to whole numbers and written as two hex digits each.
Worked example: a deep red
cmyk(20%, 100%, 90%, 10%)
R = 255 × 0.80 × 0.90 = 183.6 → 184 → B8
G = 255 × 0.00 × 0.90 = 0 → 0 → 00
B = 255 × 0.10 × 0.90 = 22.95 → 23 → 17
→ #B80017
Input formats
- CSS-like:
cmyk(0%, 61%, 72%, 0%). - Plain numbers:
0 61 72 0or0, 61, 72, 0, read as percentages. - Labelled, as many layout programs display it:
C0 M61 Y72 K0. All three give#FF6347. - Fractions like
0.2, 0.4, 0, 0.1are read as 0–1 values when all four are 1 or less and at least one has a decimal point.
Different recipes, same hex
Printers can build the same shade with more black and less color ink, or the other way round. Screens cannot see that difference. For example cmyk(20%, 60%, 100%, 20%) and cmyk(0%, 50%, 100%, 36%) both convert to rgb(163, 82, 0), so they share the same hex code.
Blacks show the same effect. A rich black like cmyk(75%, 68%, 67%, 90%) converts to #060808, almost identical to plain cmyk(0%, 0%, 0%, 100%) at #000000, although on paper the rich black looks deeper.
Why the hex is an approximation
The formula above is not ICC color-managed. It does not know whether the CMYK numbers were meant for coated or uncoated paper, how much the ink spreads, or which press standard was used, and those factors change how a printed color actually looks. Screen colors can also be brighter than ink: 100% cyan converts to #00FFFF, which is far more vivid than printed process cyan.
If your brand already defines an official hex value, use it rather than a computed one. Otherwise treat this result as a close starting point and adjust by eye against a printed sample.
Need the reverse? Try HEX to CMYK. For channel numbers use CMYK to RGB, or see every format side by side in the color converter.