Re: [csswg-drafts] [css-color-4] Inconsistent results with `none` and interpolation color spaces. (#8563)

> Handling them as missing components would result in oklch(none none none) later on.

Hm, I think the spec isn't super clear here, wrt the ordering of powerless->none and none-carrover.

One possible interpretation is that powerless->none happens first. The conversion produces black, which has powerless chroma and hue, so they become `none`, then the analogous channel kicks in carries forward the `none` for lightness, so you'll end up with an all-none color. The interpolation will then just always be the other color.

However, I suspect it makes more sense to do the opposite and process the carryover first, *then* check for powerlessness. This would mean the conversion initially produces `oklch(0 0 0)`, then carryover changes it to `oklch(none 0 0)`, then the powerless check notices a 0 chroma and gives `oklch(none 0 none)`. Interpolation will then interpolate the chroma from 0 to 0.265, while taking the L and H as constants from the other color.

Neither browser is correct per either interpretation of the spec currently - we should add this as a test once we decide which ordering was intended.  @svgeesus ?

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/8563#issuecomment-1472391728 using your GitHub account


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

Received on Thursday, 16 March 2023 17:20:36 UTC