- From: Isaac Muse via GitHub <sysbot+gh@w3.org>
- Date: Thu, 30 Mar 2023 12:01:30 +0000
- To: public-css-archive@w3.org
> @facelessuser are you sure that what you are seeing aren't implementation bugs :)
> I don't think we can use any browser implementation as a reference at this time.
Yes, I am certain. Mathematically, it makes no sense. Forget what it looks like. I use references only because visually can sometimes be easier to talk about, but in this case, let's just look at the math of the models.
Let's say I have `oklch(0 none none)` and blue which is `color(--oklch 0.45201 0.31321 264.05 / 1)`. Since black has two missing components, white adopts the blue's chroma and hue making it `oklch(0 0.31321 264.05)`. What do you think that color is?
Let's convert it to LCh for instance, we get a color with negative lightness.
```py
>>> Color('oklch(0 0.31321 264.05)').convert('lch')
color(--lch -5.3831 104.75 315.62 / 1)
```
The fact that the model allows you to convert it, doesn't mean it is a real, visible, and useful color. It's not only out gamut, it's out of the visible spectrum. It has a negative luminance.
```py
>>> Color('oklch(0 0.31321 264.05)').convert('xyz-d65')['y']
-0.004737023320937883
```
Whatever it happens to map to visually once you coerce it into the real visible spectrum is irrelevant.
There is a reason that my implementation matches Safari, it's because what they are doing (in this specific interpolation case) makes sense. It's a nonsense color that they clip, and yes, you happen to get blue in OkLCh if visualized after forcing it to be visible via clipping, but whatever it looks like, it's a negative luminance color, it's a nonsense color.
--
GitHub Notification of comment by facelessuser
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/8609#issuecomment-1490182276 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 30 March 2023 12:01:32 UTC