[csswg-drafts] [css-values][css-backgrounds][css-animations][css-transitions] How to handle linked list-valued properties? (#7164)

SebastianZ has just created a new issue for https://github.com/w3c/csswg-drafts:

== [css-values][css-backgrounds][css-animations][css-transitions] How to handle linked list-valued properties? ==
#4431 requests to turn `box-shadow` into a shorthand. During the discussion of this change @dbaron mentioned that there is a general issue in handling list-valued longhand properties.
According to him and @emilio dealing with such values is complicated as the properties can have differently long lists. And this seems especially true for `background-*` longhands.

As @tabatkins [summarized it](https://github.com/w3c/csswg-drafts/issues/4431#issuecomment-1016731166), they'd prefer if the computed value lists would be aligned with the used value lists, i.e. expanded or truncated depending on the length of the length-controlling property.

Having a deeper look at that, I realized that there are currently differences in handling such properties across browser engines but also within one browser engine. E.g. in Blink, the computed value list length of `background-size` is controlled by the length of the list in `background-image`, while `transition-duration`'s computed value is not bound to the one of `transition-property` and rather corresponds to the authored value. In Gecko, all the values correspond to the authored value.

Looking at the specifications, they seem to only clearly define the used values but the computed value is underdefined. [CSS Backgrounds 3 defines how different lengths of authored values are handled](https://drafts.csswg.org/css-backgrounds-3/#layering) and mentions that "the UA must calculate its **used value** by repeating the list of values until there are enough" (emphasizing by me). It doesn't seem to specify how computed values are actually generated. [CSS Animations 1 refers to this specification](https://drafts.csswg.org/css-animations-1/#animation-name) as well as [CSS Transitions 1 does](https://drafts.csswg.org/css-transitions-1/#transitions). There might also be more specifications for such list-valued properties that need clarification.

This issue is meant to clarify how such linked list-valued properties should be handled. Maybe the definition for this handling should be moved to a central place (maybe in CSS Values?).

Sebastian

Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7164 using your GitHub account


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

Received on Tuesday, 22 March 2022 13:31:53 UTC