Same Color, Four Different Languages
Pick any color — say, a warm coral. Now describe it in four ways:
- HEX: #E8635A
- RGB: rgb(232, 99, 90)
- HSL: hsl(4, 75%, 63%)
- CMYK: 0, 57, 61, 9
All four describe the exact same color. They are not competing standards — they are different representations of color optimized for different contexts. The confusion comes from not knowing which context calls for which format.
This guide breaks down each format in plain language: what it is, how it works, when to use it, and when it is the wrong choice. If you work with color in any capacity — design, development, print, marketing — this will save you from picking the wrong format for your project.
HEX: The Web Standard
What it is
HEX (hexadecimal) is a six-character code preceded by a hash symbol: #E8635A. Each pair of characters represents the Red, Green, and Blue channels in base-16 notation (00 to FF).
It is functionally identical to RGB — just written differently. #E8635A is the same as rgb(232, 99, 90). HEX is simply a more compact way to write RGB values.
When to use HEX
- CSS and web development — HEX is the default color notation in CSS. Every browser understands it.
color: #E8635A;is the most common way to specify color on the web. - Design tools — Figma, Sketch, Adobe XD, and Canva all use HEX as their primary input. When a designer says "the blue is #3B82F6," everyone knows what that means.
- Brand guidelines — digital brand guides almost always include HEX values because they are short, unambiguous, and easy to copy-paste.
- Quick communication — "use #333" is faster than "use rgb(51, 51, 51)" in a Slack message.
When NOT to use HEX
- When you need transparency — standard 6-digit HEX does not support alpha/opacity. You need 8-digit HEX (
#E8635A80) which is less readable, or switch to RGBA. - When you need to adjust colors programmatically — "make this 20% lighter" is nearly impossible to calculate in HEX mentally. HSL is far better for this.
- Print production — printers do not use HEX. Ever.
Real example
You are writing CSS for a landing page. The designer hands you a style guide with brand colors. You write:
:root { --primary: #E8635A; --secondary: #2D3748; --accent: #F6AD55; }
HEX is perfect here: compact, readable, and universally supported.
RGB: The Screen Color Model
What it is
RGB stands for Red, Green, Blue — the three colors of light that screens mix to produce every color you see. Each channel ranges from 0 to 255. rgb(232, 99, 90) means 232 units of red, 99 units of green, and 90 units of blue.
RGB is the foundation of all digital color. HEX is just RGB in a different notation. HSL is a human-friendly transformation of RGB. Everything on your screen ultimately becomes RGB values sent to pixels.
When to use RGB
- When you need transparency — RGBA adds an alpha channel:
rgba(232, 99, 90, 0.5)for 50% opacity. This is cleaner than 8-digit HEX and widely supported in CSS, design tools, and programming. - Programming and app development — Swift, Kotlin, Flutter, React Native — app frameworks typically work with RGB/RGBA values internally.
- LED and lighting — smart lights (Philips Hue, LED strips) use RGB values. If you are designing for physical light installations, RGB is the native format.
- Color math — mixing colors, interpolating gradients, or generating color programmatically is straightforward in RGB.
When NOT to use RGB
- Print — screens emit light (additive mixing); paper reflects it (subtractive mixing). RGB cannot accurately represent what will come out of a printer.
- Adjusting lightness or saturation — "make this color 30% less saturated" is not intuitive in RGB. You would need to convert to HSL first.
Real example
You are building a React Native app and need a semi-transparent overlay:
backgroundColor: 'rgba(0, 0, 0, 0.6)'
RGB with alpha is the natural choice — direct, readable, and native to the rendering engine.
HSL: The Designer's Format
What it is
HSL stands for Hue, Saturation, Lightness:
- Hue (0°–360°) — the color itself, as a position on the color wheel. 0° is red, 120° is green, 240° is blue.
- Saturation (0%–100%) — how vivid the color is. 0% is gray, 100% is the purest form of the hue.
- Lightness (0%–100%) — how light or dark. 0% is black, 100% is white, 50% is the "true" color.
hsl(4, 75%, 63%) means: a red-ish hue (4°), very vivid (75% saturated), and slightly light (63%).
When to use HSL
- Design systems and theming — HSL is the best format for creating consistent color scales. Want 10 shades of your primary color? Keep the hue, vary the lightness from 10% to 95%. Want a muted version? Drop the saturation. This is nearly impossible to do intuitively in HEX or RGB.
- Dark mode / light mode — switching themes means adjusting lightness and saturation, which maps directly to HSL parameters. Tailwind CSS, Radix Colors, and many modern design systems are built on HSL.
- Programmatic color generation — generating hover states, disabled states, backgrounds, and borders from a single base color is trivial in HSL:
hsl(4, 75%, 73%)for a lighter variant,hsl(4, 75%, 43%)for a darker one. - Accessibility — contrast ratio checks become more intuitive when you can see and adjust lightness directly.
When NOT to use HSL
- Cross-team communication — most people do not think in degrees and percentages. Saying "the button is hsl(4, 75%, 63%)" is less clear than "the button is #E8635A" in a design handoff.
- Print — same as RGB, HSL is a screen color model.
Real example
You are building a design system in Tailwind CSS and need a consistent color scale:
--brand-50: hsl(4, 75%, 95%);
--brand-100: hsl(4, 75%, 90%);
--brand-200: hsl(4, 75%, 80%);
--brand-500: hsl(4, 75%, 63%);
--brand-700: hsl(4, 75%, 43%);
--brand-900: hsl(4, 75%, 25%);
Same hue, same saturation, different lightness. A perfect scale in 30 seconds. Try that in HEX.
CMYK: The Print Format
What it is
CMYK stands for Cyan, Magenta, Yellow, Key (black). It describes color as a mix of ink applied to white paper. Each value ranges from 0% to 100%: 0, 57, 61, 9 means 0% cyan, 57% magenta, 61% yellow, and 9% black.
Unlike RGB (which adds light to make colors), CMYK subtracts from white paper. More ink = darker color. This is why it is called a subtractive color model.
When to use CMYK
- Print design — business cards, brochures, packaging, posters, magazines. Any file sent to a commercial printer should be in CMYK color mode.
- Preparing files for print in InDesign, Illustrator — these tools let you work in CMYK mode to preview how colors will look on paper (which is always less vibrant than on screen).
- Color proofing — checking if your design's colors are reproducible in CMYK. Some vivid RGB colors (especially neon greens and electric blues) are physically impossible to print in CMYK — they fall "out of gamut."
When NOT to use CMYK
- Anything on a screen — websites, apps, social media, presentations, emails. Screens use RGB. Specifying CMYK for a website is like giving driving directions in nautical miles — technically a distance, but useless for the journey.
- Photography editing — edit in RGB, convert to CMYK only at the final export stage for print.
Real example
You designed a poster in Illustrator. Before sending to the printer, you convert your document to CMYK color mode (File → Document Color Mode → CMYK Color), check for out-of-gamut warnings, and adjust any electric blues that shifted to murky teal. The final PDF is saved as CMYK with the printer's ICC profile.
The Quick Reference Table
| Format | Best For | Range | Supports Transparency | Human Readable | Print Safe |
|---|---|---|---|---|---|
| HEX | Web, CSS, brand guides | #000000 – #FFFFFF | 8-digit only (#RRGGBBAA) | Medium | No |
| RGB | Screens, apps, gradients | 0–255 per channel | Yes (RGBA) | Medium | No |
| HSL | Design systems, theming | 0°–360°, 0%–100%, 0%–100% | Yes (HSLA) | High | No |
| CMYK | Print, packaging | 0%–100% per channel | No | Low | Yes |
The Cheat Sheet: Which Format for Which Job
| Your Project | Use This Format | Why |
|---|---|---|
| Website CSS | HEX or HSL | HEX for simplicity; HSL for design systems with theming |
| Mobile app (iOS/Android) | RGB/RGBA | Native frameworks use RGB internally |
| Figma / Sketch design file | HEX | Standard input in design tools |
| Design system / tokens | HSL | Scales and variants are trivial in HSL |
| Social media graphics | HEX or RGB | Digital-only; Canva/Photoshop accept both |
| Business card / brochure | CMYK | Going to a physical printer |
| Product packaging | CMYK + Pantone | Print + brand color consistency |
| Email template | HEX | Email clients support HEX reliably |
| Smart lights / LEDs | RGB | LED hardware uses RGB natively |
| Brand guidelines document | All four | Different teams need different formats |
Can You Convert Between Them?
Yes — with caveats.
- HEX ↔ RGB — lossless, they are the same data in different notation.
- RGB ↔ HSL — lossless, it is a mathematical transformation.
- RGB → CMYK — lossy. Some RGB colors (vivid blues, neons, bright greens) cannot be reproduced in CMYK. The conversion will shift them to the nearest printable equivalent, which often looks duller.
- CMYK → RGB — technically possible, but the result depends on the ICC profile used. Two converters may give slightly different RGB values for the same CMYK input.
For quick conversions on the go, a phone color picker that shows all four formats simultaneously is the fastest workflow. Color Picker Camera: HEX RGB does exactly this — point your camera at any color and see HEX, RGB, HSL, and CMYK side by side. One tap copies any value. Available on iPhone and Android.
Common Mistakes
1. Designing for print in RGB
This is the classic beginner error. You design a vibrant poster in Photoshop in RGB mode, send it to the printer, and the output looks washed out — especially greens and blues. Always convert to CMYK before exporting for print, and check for gamut warnings.
2. Using HEX when you need transparency
If your design calls for semi-transparent overlays, shadows, or glassmorphism effects, switch to RGBA or HSLA. Standard 6-digit HEX does not carry opacity information, and 8-digit HEX is rarely used because it is hard to read.
3. Building a design system in HEX
"#3B82F6 but 20% lighter" requires conversion, calculation, and re-conversion. In HSL: increase the lightness by 20%. Design tokens, theme generators, and modern CSS custom properties work significantly better in HSL.
4. Converting CMYK to HEX for web and expecting the same color
A brand that was defined in CMYK for print will look different when naively converted to HEX for web. The correct approach: visually match the color on screen to the printed version, then define separate HEX values for digital use. Brand guidelines should include both.
FAQ
What is the difference between HEX and RGB?
No difference in color — only in notation. HEX writes the same Red/Green/Blue values in base-16. #FF0000 is identical to rgb(255, 0, 0). HEX is shorter to type; RGB is easier to modify programmatically and supports an alpha channel (RGBA).
When should I use CMYK instead of RGB?
Whenever your final output is printed on physical material — paper, cardboard, fabric, plastic. If it stays on a screen, use RGB (or HEX/HSL). If it gets printed, switch to CMYK at the export stage.
Is HSL better than HEX?
For design systems, theming, and color manipulation — yes. For quick communication and copy-pasting into tools — HEX is more practical. They describe the same colors; HSL just organizes the information in a way that maps to how humans think about color (hue → vividness → brightness).
Can my phone show all four formats at once?
Yes. Color Picker Camera: HEX RGB captures a color from your camera or photo and displays HEX, RGB, HSL, and CMYK simultaneously. Tap any value to copy it. It works as a real-world color format calculator — one capture, four formats.
The Bottom Line
HEX for web and quick communication. RGB for app development and transparency. HSL for design systems and color manipulation. CMYK for print.
You do not need to choose one — you need to use the right one for each context. And when you need to convert between them or capture a real-world color in all four formats at once, a phone color picker is the fastest tool available.
Download Color Picker Camera for iPhone | Download for Android