[csswg-drafts] [css-logical] Clarify declarations order of `all` londghands (#7984)

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

== [css-logical] Clarify declarations order of `all` londghands ==
When `all` is declared in `style.cssText`, declarations for its longhand must be inserted in specified order ([CSSOM](https://drafts.csswg.org/cssom-1/#concept-declarations-specified-order)), which is *the same as specified, but with shorthand properties expanded into their longhand properties, in canonical order*, with its ***physical longhands last*** ([CSS Logical](https://drafts.csswg.org/css-logical-1/#box)).

Can I assume that *last* means after all logical longhands or all longhands that do not belong to a logical property group, and that these physical declarations are set in alphanumeric order?

For example (assuming that the canonical order of `all` longhands is alphanumeric):

```
border-block-*
border-image-*
border-initial-*
// in between: all longhands that are not logical or that do not belong to a logical property group
border-bottom-*
border-left-*
border-right-*
border-top-*
```

Note that in practice, physical properties do not need to come after properties that do not belong to a logical property group. But with this definition, 1. *last* does not need to be specific, 2. ordering the longhands of `corners` (mapping to `border-radius-*`, which are also mapped by `border-radius`) or `border` (mapping to reset-only `border-image-*`) is easier.

If this is what is expected, I suggest to clarify it at the end of the section in CSS Cascade that I linked above:

```diff
- For example, `all: inherit` will set all of the `margin` properties to `inherit`, but since the physical longhands are set last, the child’s margins will inherit from their physical counterparts in the parent.
+ For example, `all: inherit` will set all of the `margin` properties to `inherit`, but since the physical longhands are set last, the child’s margins will inherit from their physical counterparts in the parent. Furthermore, *last* means that margin declarations will be set after all declarations for longhands that do not belong to a logical property group.
```

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


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

Received on Monday, 31 October 2022 13:36:46 UTC