Re: [csswg-drafts] [css-color-4] What if gradients with legacy colors *also* interpolated in Oklab by default? (#7948)

The CSS Working Group just discussed `[css-color-4] What if gradients with legacy colors *also* interpolated in Oklab by default?`, and agreed to the following:

* `RESOLVED: Revert change to make all gradients interpolate in OKL by default`

<details><summary>The full IRC log of that discussion</summary>
&lt;astearns> ack ChrisL<br>
&lt;fantasai> ChrisL: unfortunate situation that we took a resolution, but no browsers updated and WPTs test the current behavior<br>
&lt;fantasai> ChrisL: Two options<br>
&lt;jensimmons> What is the "reasonable proposal"?<br>
&lt;jensimmons> Can you summarize?<br>
&lt;fantasai> ChrisL: 1. we get implementers to say they're interested in doing this -- because so far we get people who are not happy with the proposed behavior<br>
&lt;fantasai> ChrisL: 2. we revert the resolution to match implementations and WPT<br>
&lt;fantasai> ChrisL: The thing we already have agreement on, and spec said for 18 months, is that all interpolation happens in OKLab unless you override<br>
&lt;fantasai> ChrisL: this means all interpolation changes, possibly for the better, but in any case it changes<br>
&lt;fantasai> ChrisL: I'd like us to either really do that, or really not do it<br>
&lt;fantasai> weinig: Implementing what's in the spec is easy. Most browser add additional checks for new vs old colors.<br>
&lt;fantasai> weinig: One challenge is that it will be a perf regression, at least for WebKit, to use OKL, since sRGB is much more optimized<br>
&lt;fantasai> weinig: so gradients will regress a little bit without special graphics backend. So that's one concern.<br>
&lt;fantasai> weinig: Another concern is changing websites<br>
&lt;smfr> q+<br>
&lt;ChrisL> q+ to say the main issue I see is unwillingness for backwards compat<br>
&lt;ydaniv> q+<br>
&lt;ChrisL> q-<br>
&lt;fantasai> weinig: That might be OK, but a bit hesitant to change all gradients that have ever existed on the Web<br>
&lt;astearns> ack smfr<br>
&lt;fantasai> smfr: Agree with Sams' perf concerns, and concern wrt legacy behavior<br>
&lt;lea> q?<br>
&lt;fantasai> smfr: Especially those that expect pixel-perfect behavior<br>
&lt;fantasai> smfr: e.g. iCloud docs<br>
&lt;lea> q+<br>
&lt;fantasai> smfr: so I think this does need to be opt in<br>
&lt;fantasai> weinig: No gradient will ever be pixel perfect, because by definition have dithering<br>
&lt;fantasai> weinig: but intention perfect<br>
&lt;fantasai> weinig: keynote document on mac, gradient renders different on mac and on web because we change interpolation<br>
&lt;fantasai> weinig: that would be unfortunate<br>
&lt;astearns> ack ydaniv<br>
&lt;jensimmons> q+<br>
&lt;ChrisL> q+ to say we have some wpt bugs because of dithering (which is allowed) but test reference assumes no dithering<br>
&lt;fantasai> ydaniv: although this is probably for the best, things like this could trigger CI failing when they update browser versions and suddenly screenshots and test tooling break randomly everywhere there's a gradient<br>
&lt;fantasai> ydaniv: I'm not sure how much that is a problem<br>
&lt;fantasai> ydaniv: sometimes happens because things change, but something to note<br>
&lt;fantasai> weinig: because gradients are this weird thing, they already break screenshot-based CI because they often have random or hardward-specific dithering<br>
&lt;fantasai> weinig: so all the places where could change, this is one with wiggle room<br>
&lt;fantasai> weinig: so if ppl have error bars, this might expand past<br>
&lt;astearns> ack lea<br>
&lt;TabAtkins> Tho, again, screenshot tools that allow specifying color-shift bounds can work fine with dithering, but won't work with changing the interpolation space.<br>
&lt;fantasai> lea: Wrt pixel-perfect, I've never seen pixel-perfect gradients used<br>
&lt;fantasai> lea: designiners who want that insert color stops to ensure the interpolation curve<br>
&lt;astearns> ack jensimmons<br>
&lt;lea> s/Wrt pixel-perfect, I've never seen pixel-perfect gradients used/I've never seen gradients that expect pixel perfect rendering really use sRGB. Even before in oklab was an option, they'd insert intermediate color stops to control interpolation, so the difference would be minimal./<br>
&lt;fantasai> jensimmons: I was surprised to hear that we decided to change default color space for gradients<br>
&lt;fantasai> jensimmons: surely there are designers and developers who don't care that much<br>
&lt;florian> q?<br>
&lt;TabAtkins> WPT, for example, lets you specify that pixels can be within an RGB unit or two of the reference.<br>
&lt;fantasai> jensimmons: also user gets new device, renders differently, or uses new browser<br>
&lt;fantasai> jensimmons: but certainly many designers obsess over the details and spent hours choosing the gradient ...<br>
&lt;fantasai> jensimmons: seems like CSSWG typically doesn't change out from how web works<br>
&lt;astearns> ack ChrisL<br>
&lt;Zakim> ChrisL, you wanted to say we have some wpt bugs because of dithering (which is allowed) but test reference assumes no dithering<br>
&lt;fantasai> jensimmons: so was surprised about resolution. Don't know if it's a good idea or not.<br>
&lt;fantasai> astearns: we resolved on this because it seemed like an improvement that could be ok with web-compat<br>
&lt;fantasai> astearns: but new behavior is fully accessible as an opt-in, right?<br>
&lt;fantasai> astearns: so we should probably resolve to revert this decision<br>
&lt;smfr> I tested Keynote on the web. It happens to use SVG, so it has an SVG gradient, but with just 3 stops. If it had used CSS this would have affected behavior<br>
&lt;florian> q+<br>
&lt;astearns> ack fantasai<br>
&lt;kbabbitt> fantasai: I don't quite remember but is there a way for author to opt in whole page at once?<br>
&lt;kbabbitt> ChrisL: has to be each individual gradient<br>
&lt;kbabbitt> ChrisL: people keep suggesting it but folks say that wouldn't work because..<br>
&lt;kbabbitt> fantasai: that means we don't have a proper opt-in<br>
&lt;kbabbitt> ... requiring authors to do it for every gradient seems obnoxious<br>
&lt;lea> q+ what ChrisL is not a showstopper, just an additional complication in the design<br>
&lt;kbabbitt> ... the improvement that's available is unlikely to be worth that level of effort<br>
&lt;lea> q+<br>
&lt;florian> q- later<br>
&lt;kbabbitt> ChrisL: the gradients they can opt in are ... the ones that work how they want, they don't have to do anything with<br>
&lt;dbaron> q+ to comment on global opt in versus global behavior change<br>
&lt;kbabbitt> fantasai: if we think this is an improvement for all gradients, we should make it easy for authors to opt in<br>
&lt;astearns> zakim, close queue<br>
&lt;Zakim> ok, astearns, the speaker queue is closed<br>
&lt;ChrisL> I hope we can make this first issue next week, as we are close to resolution<br>
&lt;astearns> ack lea<br>
&lt;fantasai> lea: We can still have a global setting. Having different interpolation spaces for different use cases is possible, just not a single property with a single value<br>
&lt;astearns> ack florian<br>
&lt;fantasai> florian: don't have statistics, but the point made by lea makes sense to me<br>
&lt;fantasai> florian: ppl who obsess over their gradients would use intermediary color stops, and would therefore be minimally affected by this<br>
&lt;fantasai> florian: on the other hand, argument from smfr about having things on and off the web look the same in both cases ...<br>
&lt;astearns> ack dbaron<br>
&lt;Zakim> dbaron, you wanted to comment on global opt in versus global behavior change<br>
&lt;smfr> I just disproved that apps add lots of color stops to control the rendering<br>
&lt;fantasai> dbaron: wrt global opt-in, if we thought global behavior change was good, then having global opt-in would make sense<br>
&lt;fantasai> ChrisL: global being problem was about all types of interpolation<br>
&lt;lea> e.g. color-interpolation-gradient<br>
&lt;florian> +1 to dbaron<br>
&lt;fantasai> lea, dbaron: we could have a global opt in that only affects gradients<br>
&lt;fantasai> astearns: should we resolve to revert?<br>
&lt;fantasai> ChrisL: I'd like to discuss an additional point next week<br>
&lt;fantasai> astearns: ok, let's do that and then continue with this discussion<br>
&lt;fantasai> astearns: proposed that we revert the change that says that gradients interpolate in OKL by default. Any objections?<br>
&lt;fantasai> RESOLVED: Revert change to make all gradients interpolate in OKL by default<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7948#issuecomment-2940774706 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 4 June 2025 17:04:16 UTC