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

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

* `RESOLVED: change specification say browser MUST use OKLab color interpolation for all colors, including legacy colors`

<details><summary>The full IRC log of that discussion</summary>
&lt;chris> q+<br>
&lt;Rossen_> ack chris<br>
&lt;emeyer> chris: For non-legacy colors, implementation should interpolate in oklab<br>
&lt;emeyer> …The spec says implementations MAY interpolate in sRGB if all the colors are legacy colors<br>
&lt;emeyer> …Lea raised, why not make them all do it in oklab?<br>
&lt;lea> q+<br>
&lt;emeyer> …We did some tests, and for some colors there’s a big difference<br>
&lt;emeyer> lea: I think it’s an obvious improvement in every color pair we tried<br>
&lt;emeyer> …There is precedent for doing this in places like text-decoration-skip<br>
&lt;emeyer> …It makes for an easier rule to learn and remeber<br>
&lt;emeyer> …oklab produces better gradients<br>
&lt;emeyer> …The only problem I could think of is color pickers<br>
&lt;emeyer> …I can’t remember the proposed solution to this<br>
&lt;emeyer> …The Chrome team has said they’re kind of apprehensive because they tried to do linear RGB and there were problems<br>
&lt;emeyer> …This isn’t the same because linear RGB isn’t perceptually uniform<br>
&lt;emeyer> chris: In Chrome, the colors are stored in premultiplied linear RGB<br>
&lt;emeyer> …I wanted to know whether they said they can’t change because of that trial, or because of the proposal<br>
&lt;emeyer> lea: I heard from someone on Chrome team they trioed linear RGB and had poor results<br>
&lt;emeyer> chris: As expected<br>
&lt;emeyer> bramus: I don’t think anyone here can address this directly, but I’ll poke the correct people for a response<br>
&lt;fremy> I would note that there might be images associated to the gradients<br>
&lt;emeyer> Rossen: In absence of that, is there a resolution you want to take here that will ideally be something that would work?<br>
&lt;emeyer> lea: Are there any objections to this, involving actual cases where this would be worse?<br>
&lt;emeyer> emilio: Does this only affect gradients, or does it also affect animation?<br>
&lt;emeyer> lea: That’s up to us; I believe it’s currently about gradients only<br>
&lt;emeyer> emilio: Applying to animations would be trickier because it affects computed styles<br>
&lt;TabAtkins> yeah i'd be relatively bothered by interpolation and gradients not working the same<br>
&lt;emeyer> chris: The spec is about interoplation, so it would apply to everything<br>
&lt;emeyer> emilio: That’s a bit trickier, but it might work<br>
&lt;lea> q+<br>
&lt;emeyer> …I’d be surprised if there are no pages that rely on this, but it might be a better default<br>
&lt;lea> q-<br>
&lt;emeyer> chris: Although it’s true a gradient defined as a gradient is better, I’m concerned we’ll get “why is my page lighter?”<br>
&lt;lea> q+<br>
&lt;emeyer> emilio: It’s good to change the default consistently<br>
&lt;emeyer> …I agree it’s a better default, but compat is a concern<br>
&lt;ydaniv> what about filters?<br>
&lt;emeyer> …Gradients would be better regardless, I think<br>
&lt;lea> ydaniv: filters are defined entirely differently, they don't use interpolation<br>
&lt;emeyer> …Changing the default for everything is probably worth a try<br>
&lt;Rossen_> ack lea<br>
&lt;emeyer> lea: I want to clarify that making this the default doesn’t make it mandatory<br>
&lt;emeyer> …There’s a way to specify the interpolation space for gradients, and will be able to apply to other things<br>
&lt;emeyer> …So there’s an escape hatch<br>
&lt;emeyer> chris: This comes down to, is this an opt-in or an opt-out?<br>
&lt;emeyer> …For unmaintained pages, what happens?<br>
&lt;plinss> q+<br>
&lt;emeyer> Rossen: opt-in would be safer, yes?<br>
&lt;emeyer> chris: I agree<br>
&lt;bramus> q+<br>
&lt;emeyer> plinss: The issue of a page becoming lighter isn’t a big deal except in cases where CSS color needs to match image color<br>
&lt;Rossen_> ack plinss<br>
&lt;emeyer> …Want to be sure we’re taking that into consideration<br>
&lt;Rossen_> ack bramus<br>
&lt;emeyer> bramus: I vote for opt-in; authors will be surprised if colors change<br>
&lt;lea> q+ to point out the other huge precedent for changing color display<br>
&lt;emeyer> Rossen: +1 from me<br>
&lt;emeyer> …colors can often be a branding issue<br>
&lt;chris> q?<br>
&lt;fantasai> +1 from me to plinss's point, that it's important for the endpoints and not so much for the middle<br>
&lt;Rossen_> q<br>
&lt;Rossen_> ack lea<br>
&lt;Zakim> lea, you wanted to point out the other huge precedent for changing color display<br>
&lt;emeyer> lea: This reminded me, we have a more relevant precedent where we changed to interpret legacy CSS colors in sRGB, so what what red meant changed (for example)<br>
&lt;emeyer> …That’s a much bigger change than what we’re discussing here<br>
&lt;Rossen_> ack fantasai<br>
&lt;emeyer> …only midpoints in a transition will change<br>
&lt;TabAtkins> color management only affected people with good screens, tho<br>
&lt;emeyer> fantasai: I support Lea’s proposal; I think midpoint changes will be an improvement<br>
&lt;florian> +1<br>
&lt;miriam> +1<br>
&lt;emeyer> …There’s a lot of shift in colors depending on monitor calibration etc.<br>
&lt;emeyer> Rossen: So do we make this opt-in, something we can drop later, or make it opt-out?<br>
&lt;emeyer> lea: Opt-in bascially means no change<br>
&lt;emeyer> fantasai: I think we should change the default for the web to be the better interpolation<br>
&lt;emeyer> lea: Current language is that browsers MAY do this; proposal is to change this to MUST<br>
&lt;emeyer> Rossen: Or maybe SHOULD<br>
&lt;lea> s/is to change this to MUST/is to change this to MUST ...or at least SHOULD?/<br>
&lt;emeyer> lea: Also resolutions are not binding, we can always reverse if investigations reveal it’s a bad idea<br>
&lt;emeyer> florian: I’m not sure what we gain with a SHOULD<br>
&lt;emeyer> …If we have a good reason not to do something, we should roll this back<br>
&lt;emeyer> …I think MUST is appropriate<br>
&lt;emeyer> lea: Maybe SHOULD is better for low-powered devices where oklab computation is harder than calculating the RGB values on hand<br>
&lt;emeyer> plinss: I would argue devices like that probably won’t support this sort of thing<br>
&lt;astearns> +1 to MUST<br>
&lt;fantasai> +1 to requiring OKLab interpolation<br>
&lt;emeyer> Rossen: Objections to using MUST on using oklab?<br>
&lt;emeyer> (silence)<br>
&lt;emeyer> RESOLVED: change specification say browser MUST use OKLab color interpolation for all colors, including legacy colors<br>
&lt;emeyer> s/browser/browsers/<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-1479941072 using your GitHub account


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

Received on Wednesday, 22 March 2023 17:01:59 UTC