Closed facelessuser closed 3 years ago
I should clarify, the latest "published" document was unclear about what spaces were formally supported by color()
, the latest draft is much more clear. Though the fact that the CSS authors also implemented their library with support for color()
and basically any color did add to the confusion.
I am pretty much only looking at the draft these days, so early on, I think I used to reference the published document, and that is where I came away with this confusion.
Regardless, I'm thinking maybe we'll just roll with what we have. There is no way to predict what they will decide and when, and I'd rather get something out that better reflects what is currently implemented. I know Safari's Tech preview implements things as we have it on master now, so maybe we just do that.
So, CSS is dropping syntax for color(lab ...)
. I guess they still aren't sure how/if they would define angles. If color(lab ...)
is defined, then color(lch ...)
should be as well, but they don't want to spend time defining angles. Will they be added back in the future? Maybe 🤷🏻. Will the syntax be different for angles than what we have now? Maybe 🤷🏻.
I was under the impression that color()
was meant to be a common serialization method in the future, but as usual, I'm not sure what they want. I understand lab()
is more concise, and they can solve a common serialization method in the future, so maybe we'll see it in the future? Regardless, we will keep it as a common serialization method.
It recently came to our attention that we were handling the
color()
syntax incorrectly forlab
which is now corrected onmaster
. This related to any color spaces that provided percentage only channels, so it impactedcolor(hsl)
etc. It now seems there is a conversation whetherlab
should drop thelab()
syntax or thecolor()
syntax. I find the CSS design process a bit frustrating as it is often difficult to gauge the goal of some of these syntaxes.It seemed that
color()
was meant to generally unify a new color syntax moving forward to create a common serialization method...and yet, even though the authors of the CSS spec implemented a JavaScript library serializing all colors this way, colors with hues were not actually supposed to be serialized this way (the spec is very unclear on this point). Technicallycolor(lch)
,color(hsl)
, etc. aren't valid CSS even though they implemented their library to do so. Maybe this is because cylindrical inputs are only meant for users, and when rendering, colors are always done in the non-cylindrical form?Regardless, we still allow serializing cylindrical colors with
color()
even if it is just for consistency and our own internal handling. If they ever formally add support for cylindrical spaces and require something different when specifying angles (hues), we may have to update palettes and such to handle it.So the above is the current state of things, here is what I need to decide.
So, we have a change on 'master' that will update palettes to fix our initial mixup with
lab
and percent only channels, but now I'm hesitating to push it because they might deprecate thelab()
form or maybe thecolor()
form forlab()
. There is a current issue discussing just this.If they deprecate the
color()
form forlab()
, it is no big deal, and we can continue to use it for serialization if we so choose. We do it forlch()
which doesn't technically have acolor()
form, so this would be no different.If they drop
lab()
, it technically would mean we just need to removelab()
as an input and output option. It won't affect how things are stored in our palette as we use the commoncolor()
serialization method.If they decide to drop
lab()
and extendcolor()
tolch()
(droppinglch()
as well) they may want to formally support hue and extendcolor()
tohsl()
,hwb()
, etc. Will that mean they will give a hue specific syntax? We just accept a number currently, but if they want something for explicit, such as130deg
, we ould have to change things. If so, we may need to update palettes again. Should we wait until they make a decision and adjust the palette updates in one shot? Or just do it as the need arises?