- From: Jonathan Neal via GitHub <sysbot+gh@w3.org>
- Date: Thu, 25 May 2017 04:41:34 +0000
- To: public-css-archive@w3.org
jonathantneal has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-cascade] non-destructive shorthands ==
In [Cascading and Inheritance: Shorthand Properties](https://drafts.csswg.org/css-cascade-3/#shorthand), we learn that shorthands allow authors to specify the values of several properties with a single property. This is very useful for a few reasons, but I find it most useful because it keep thoughts grouped together. This advantage has a profound catch; omitted values in shorthands are assigned their initial value.
So, to remain non-destructive looks something like this:
```css
.non-destructive-block-margin {
margin-top: 10px;
margin-bottom: 30px;
}
.non-destructive-inline-margin {
margin-left: auto;
margin-right: auto;
}
.non-destructive-margin-variation {
margin-top: 0;
margin-left: auto;
margin-right: auto;
}
```
With these separated properties, the “margin” thought is no longer grouped together. So, is there a way we could make non-destructive shorthands? I have 2 suggestions.
#### Solution 1: Skip tokens
As proposed in #733, a skip token would allow authors to prevent the resetting of specific values in shorthands.
```css
.non-destructive-block-margin {
margin: 30px *;
}
.non-destructive-inline-margin {
margin: * auto;
}
```
In order for this to actually work, these skip tokens would be limited to ordered shorthands. However, there may be another way around that:
#### Suggestion 2: Identifiers
In [Grid Layout Module: Named Grid Lines](https://drafts.csswg.org/css-grid/#named-lines), we learn about **named lines** which allows authors to easily identify the grid lines being styled. Identifiers could be used by shorthands to limit the reach of overrides.
```css
.non-destructive-block-margin {
margin: [block] 10px 30px;
}
.non-destructive-inline-margin {
margin: [inline] auto;
}
.non-destructive-margin-variation {
margin: [block-start] 0 [inline] auto;
}
```
An advantage of this syntax is that it would not be limited to order shorthands.
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/1461 using your GitHub account
Received on Thursday, 25 May 2017 04:41:47 UTC