w3c / csswg-drafts

CSS Working Group Editor Drafts
https://drafts.csswg.org/
Other
4.44k stars 656 forks source link

[css-easing-1] Clarify computed values and serialization #8723

Open fantasai opened 1 year ago

fantasai commented 1 year ago

The CSS Easing spec has a section on serialization, however this section doesn't distinguish between specified and computed values (and seems to be defining the computed value serialization). Should there be any differences between these two? E.g.

Relatedly, the spec seems a bit confused about the computed/serialized values for start/end/jump-start/jump-end: the serializations of the “end” values are collapsed to a single serialization, but not the “start” values. I think

birtles commented 1 year ago
  • Should specified values of step-end and step-start be serialized as themselves rather than as a steps() function?

In general it's easier for authors if they don't need to write parsers for multiple potential outputs and can always assume a certain format.

That said, Chrome appears not to support that: https://wpt.fyi/results/css/css-easing/step-timing-functions-syntax.html?label=experimental&label=master&aligned

  • Should the jump-end and end keywords be kept as distinct specified values?

Yes. We'd like to normalize to jump-end but in the interests of Web compat, we shouldn't unless we have data to indicate it's safe to do so.

the serializations of the “end” values are collapsed to a single serialization, but not the “start” values.

That's intentional. We'd like to use jump-* values everywhere but we can't because of Web compat. The only case where we can is end / jump-end because it happens to be the default value so, according to standard CSS serialization rules, we omit it.