Skip to main content
← 🎨 CSS as a design systemΒ·Module B5 Β· Lesson 11
TaskBuild a high-chroma vivid red title using oklch(0.62 0.27 27) on a white background.

Wide-gamut color: P3 displays + @media

75 XP5 min
Theory

Modern phones / laptops have P3 screens

P3 covers ~25% more visible color than sRGB. Reds and greens are noticeably more vivid. iPhones, MacBooks, and most modern monitors are P3.

Browsers can render colors OUTSIDE sRGB if you use a color space that supports them:

.vivid-red {
  color: oklch(0.65 0.30 27);     /* high chroma β€” beyond sRGB on most screens */
}

OKLCH with high chroma values produces colors that sRGB can't represent. On a P3 screen, they show vivid. On an old sRGB screen, the browser falls back to the nearest sRGB equivalent.

Detect support

@media (color-gamut: p3) {
  :root { --brand-vivid: oklch(0.66 0.30 252); }   /* opt into P3-only brand */
}

@media (color-gamut: srgb) {
  :root { --brand-vivid: oklch(0.66 0.20 252); }   /* dial back for sRGB */
}

When this matters

  • Brand colors that should "POP" β€” your hero CTA, logo accent, error red.
  • Photo / illustration sites β€” show fidelity.

For body text and UI greys, sRGB is fine. P3 is for the bright accent colors.

Don't ship a P3-only design

A site that REQUIRES P3 to look right will look washed-out on older displays. Use the @media split or accept that sRGB users get a slightly less vivid palette β€” but never broken.

πŸ”’

Sign up to start coding

Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β€” card required, cancel anytime.

Sign up β€” free trial β†’

First 10 lessons in each track are free. No card needed for those.

← PreviousNext lesson β†’

Get one Python or web tip a day β€” by email

Short, hand-written, no spam. Unsubscribe in one click.