Gamut Mapping
Every device can only make so many colors. When a vivid screen color meets a smaller gamut - another display, a printer, a phone - the colors that do not fit have to go somewhere. What happens to them is gamut mapping, and the choice between snapping them to the edge or gently squeezing everything in decides whether your image stays faithful or turns flat. This is the interactive guide to mapping color without wrecking it.
compress
What a gamut is
A gamut is the complete set of colors a device or color space can actually produce. A wide-gamut monitor reaches vivid greens and reds that sRGB cannot; a printer on uncoated paper reaches far fewer. When you move an image from a larger gamut into a smaller one, some source colors simply have no equivalent on the destination - they are out of gamut. Gamut mapping is the rulebook for what to do with them, and it is unavoidable: the colors cannot just vanish.
The whole problem only exists going from wider to narrower. Map a small gamut into a big one and everything fits with room to spare. It is the squeeze - Display P3 into sRGB, screen into CMYK, Rec.2020 into a phone - where the interesting decisions live.
In gamut vs out of gamut
To map a color you first need to know whether it fits. The plane below is a slice through Lab space at a chosen lightness: the colored region is everything sRGB can reproduce at that lightness, and the dark surround is out of gamut. Dial up the chroma of your test color and watch the marker leave the reproducible island.
Push a color until it falls off the edge
Set lightness, chroma, and hue. The map shows the sRGB-reproducible colors at that lightness (the bright island) on Lab's a*/b* plane; the marker is your color. Raise the chroma and the marker slides out past the boundary into the dark - that is an out-of-gamut color that will need mapping.
Clip vs compress
Two broad strategies handle the colors that do not fit. Clipping leaves every in-gamut color exactly where it is and snaps only the out-of-gamut ones to the nearest point on the boundary. It keeps colors maximally accurate, but a whole range of bright source colors can pile onto the same edge, flattening gradients and losing detail. Compression instead squeezes the entire range inward so the most saturated source colors land just inside the boundary - everything desaturates a little, but the gradation is preserved.
Snap to the edge, or squeeze it all in
Take an out-of-gamut color (raise the chroma). The left swatch clips it to the sRGB boundary; the right compresses chroma to bring it just inside. The ramps below show the difference on a saturation gradient - clipping plateaus at the top (lost detail), compression keeps every step distinct.
Compressed
The four rendering intents
In ICC color management, the strategy is chosen by a rendering intent. There are four, and picking the right one for the content is most of the battle.
Same colors, four philosophies
A row of saturated source colors, mapped into the smaller gamut by each intent (illustrative). Perceptual compresses everything for smooth photos; relative colorimetric keeps in-gamut colors exact and clips the rest; saturation pushes vividness; absolute also reproduces the source white. Switch intents and read what each is for.
Source (wide gamut)
Mapped (this intent)
The hue-shift trap
The naive way to "fit" a color is to clamp each RGB channel into [0, 1] - and it has a nasty side effect: it shifts the hue. A very saturated blue that overshoots clamps in a way that pushes it toward purple; bright cyans drift green. Proper gamut mapping reduces chroma while holding hue (and usually lightness) constant, so the color stays the same family - just less saturated. The difference is the line between a slightly duller blue and an obviously wrong one.
Two ways to clip, two different colors
An out-of-gamut color brought into sRGB two ways. The left clamps RGB channels (fast, naive) and the hue drifts; the right reduces chroma at constant hue and lightness, keeping the color in the right family. The readout shows how far the hue moved.
Naive RGB clamp
Constant-hue chroma reduction
Where mapping happens
Gamut mapping is not an exotic edge case - it runs constantly, usually invisibly.
Choosing an approach
| Content | Use | Why |
|---|---|---|
| Photographs | Perceptual | Smooth gradation and natural relationships matter more than exact values. |
| Logos, spot colors, most graphics | Relative colorimetric (+ BPC) | Keep in-gamut brand colors exact; only clip what truly does not fit. |
| Charts, business graphics | Saturation | Punchy, distinguishable colors beat colorimetric accuracy. |
| Proofing another device | Absolute colorimetric | Simulate the target exactly, including its paper white. |
| UI colors in code | Constant-hue chroma reduction | Bring an OKLCH color into sRGB without a hue shift (CSS gamut mapping). |
Pitfalls and gotchas
Test your understanding
Six questions on gamuts, clipping, compression, and intents. Instant feedback, no scores recorded - a wrong answer comes with a short explanation.
Quick check
Continue your journey
Gamut mapping is the bridge between working spaces, profiles, and output. The numbers reflect each article's position in the editorial roadmap.
Color Proofing: Soft Proofing and Hard Proofs
Choosing the right intent to soft-proof and sign off a print.
Digital · 16ICC Profiles and How Color Management Works
Where rendering intents live and how the CMM applies them.
Digital · 18RGB, sRGB, Adobe RGB, ProPhoto, Display P3, Rec.2020
The gamuts whose size differences make mapping necessary.
Colorimetry · 10Chromaticity Diagrams Without the Intimidation
The gamut triangles this article maps colors into.
Print · 23CMYK and the Four-Color Printing Process
The classic, dramatic gamut squeeze: screen into ink.
Digital · 19HDR, Wide Gamut, PQ, HLG, and Modern Displays
Where gamut mapping meets tone mapping, HDR to SDR.
Colorimetry · 22Oklab and Oklch: Modern Perceptual Color Spaces
The space CSS uses for constant-hue gamut mapping.