Elementary Standards
HTMLCSSWeb StandardsSEOBlogStart reading
Home / Blog / CSS Color Level 4 Nears a Stable Snapshot
News

CSS Color Level 4 Nears a Stable Snapshot

W3C published a fresh Candidate Recommendation Draft on October 29 and opened a review window that runs through December — a signal that wide-gamut color syntax like oklch() and color() is about to get a lot harder to treat as "still experimental."

TL;DR: The W3C CSS Working Group published a new Candidate Recommendation Draft of CSS Color Module Level 4 on October 29, 2026. The group has also opened a wide-review request — including a security and privacy review on GitHub running from October 9 through December 9 — ahead of a planned CR Snapshot this December. Nothing about the color syntax itself is new; what's changing is the spec's maturity level, which matters for anyone deciding whether modern color features belong in a production design system today.

CSS Color 4 is the module that moved CSS color beyond sRGB hex and rgb() values into device-independent spaces: lab(), lch(), oklab(), oklch(), the color() function for Display P3 and other wide-gamut spaces, and perceptually uniform interpolation between them. Teams doing SaaS application development at YuSMP run into this directly: a design system's brand palette, chart colors, and status states increasingly need to look consistent whether they're rendered on an ordinary sRGB monitor or a wide-gamut display, and that's exactly the problem CSS Color 4 was written to solve.

None of this is theoretical browser support — Chrome, Firefox, and Safari have all shipped the core syntax for well over a year. What October's draft changes is confidence: a spec heading toward a CR Snapshot has passed internal stability checks the working group uses before locking a baseline for implementers and test suites to converge on.

oklch() / color()WDCR Snapshot

What Actually Changed on October 29

The published document is a Candidate Recommendation Draft — W3C's label for an updated CR that folds in editorial and technical fixes the working group intends to carry into the next official CR Snapshot. CSS Color 4's publication history shows a noticeably faster cadence through October 2026 (drafts on October 7, 8, 9, 20, 22, 26, 27, and 29), which the working group typically does in the run-up to freezing a snapshot: each pass tightens wording on gamut-mapping algorithms, interpolation precision, and edge cases flagged during implementation testing, rather than adding new color functions. In parallel, the group filed a formal security and privacy review with W3C's security-request process, a required step before a module can be promoted to a stable, citable snapshot that other specifications and test suites reference.

What This Means for Developers

If you're already shipping oklch(), lab(), or color(display-p3 ...) in production — likely with an sRGB fallback via @supports or cascade layers — this draft doesn't change your code. What it should change is how you talk about the risk of adopting it: "still a Working Draft" has been an inaccurate objection for a while, and "still a Candidate Recommendation, not yet a Snapshot" is a genuinely weaker objection than it sounds, since CR text is implementation-tested and rarely shifts in incompatible ways before a Snapshot. For design-system work specifically, this is a good moment to audit whether brand colors defined only in sRGB hex are leaving contrast and saturation on the table on the wide-gamut displays an increasing share of users now carry.

When Does the CR Snapshot Land?

The security-request issue explicitly frames the review window as running through December 9, 2026, with the working group's own target being a CR Snapshot "this December." A CR Snapshot is not a final W3C Recommendation — it's a frozen, citable milestone that signals the spec is stable enough for conformance test suites and other specifications to depend on without expecting further breaking edits. Realistically: expect the snapshot inside the stated window if the security review surfaces no blocking issues, with the broader path to full Recommendation status continuing well into 2027 as is typical for a module of this scope.

Frequently Asked Questions

What is a CSS Color Module Level 4 Candidate Recommendation Draft?

It's an interim, updated version of a Candidate Recommendation that the CSS Working Group publishes while preparing the next official CR Snapshot — it folds in fixes the group intends to carry forward, without representing a new stable milestone itself.

Do I need to wait for the CR Snapshot to use oklch() or color() in production?

No. Chrome, Firefox, and Safari have supported the core CSS Color 4 syntax in stable releases for over a year. The specification's maturity level affects confidence and citability, not current browser support.

What's the difference between a Candidate Recommendation and a CR Snapshot?

A Candidate Recommendation Draft can still receive frequent editorial updates. A CR Snapshot is a frozen, dated version the working group commits to as a stable reference point for test suites and dependent specifications.

Why does a security and privacy review matter for a color specification?

W3C requires horizontal review — including security and privacy — before most specifications can be promoted to a stable snapshot, regardless of how low-risk the subject matter appears; it's a process gate, not a sign of a specific vulnerability.

Primary source: W3C's CSS Color Module Level 4 Candidate Recommendation Draft and its publication history. Independent corroboration of the review timeline: the CSS Working Group's security-request issue on GitHub.

Back to the blog
More notes

Keep reading