- From: Emilio Cobos Álvarez via GitHub <sysbot+gh@w3.org>
- Date: Thu, 29 Feb 2024 10:30:39 +0000
- To: public-css-archive@w3.org
@mdubet can you elaborate on how your proposal would look like? In general mixing rules and declarations seems probably-fine but, at least implementation wise, it's a bit more complicated because:
* Some things still need just declarations at the end of the day (like the style attribute, SMIL, mapped attributes).
* All the relevant code is super-hot, so I'm a bit wary of the performance impact of introducing a lot of branches and complexity there.
Another issue is that a lot of the algorithms in the CSSOM don't work if there are mixed rules. For example, consider:
```css
foo {
padding-top: 0;
padding-left: 0;
& { padding-top: 10px; }
padding-bottom: 0;
padding-right: 0;
}
```
If there wasn't a nested rule in the middle, the OM would serialize `padding: 0px;`. (To be clear, it doesn't seem hard to fix, just another thing to think about).
In any case I'm curious about how you're envisioning it, because that doesn't seem super clear. I assume you want something like:
```webidl
interface CSSBlockContent : CSSStyleDeclaration {}
```
Or such, where `CSSStyleRule.prototype.style` would start returning a `CSSBlockContent`? One quirk of such interface is that `CSSStyleDeclaration` is "map-like" right now, and iterable (it yields the longhands that are present), and it's not totally clear to me how you'd expose the mixed rules somewhat sanely...
--
GitHub Notification of comment by emilio
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/8738#issuecomment-1970843300 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 29 February 2024 10:30:40 UTC