- From: James Browning via GitHub <sysbot+gh@w3.org>
- Date: Sun, 04 Apr 2021 23:39:08 +0000
- To: public-css-archive@w3.org
> In that example, there is a clear distinction between lexical naming, and things that are being exported.
I'm generally a fan of export, my example was mostly just illustrating extending `$name` beyond simply selectors, and instead to wider range of CSS things.
> On the JS side, it seems the main thing needed is rules, and applying those rules in order. That is a subset of features that could be achieved with lexically-scoped references in the CSS language itself.
I think most would be useful, but rules would certainly be the most important to support as you could wrap most of the others in a rule.
Although note that in either case, because we have `CSSStyleSheet` and all it's related APIs all these objects are going to have to be exposed to JS *anyway*, so for example we'd be able to see `@keyframes $myAnimation {}` as a `CSSKeyframesRule`. In which case we need all the serialization and stuff to work anyway, so we might as well just allow `someElement.style.animationName = myAnimationRule`.
---
Given that serialization needs work, I wonder if a good way to do this would be make css imports/lexical names also have a "dynamic" syntax, in way of a function.
In this case we'd have:
```css
@keyframes $localAnimation {
}
.myElement {
@merge import(./path/to/module.css $myImport);
animation-name: import(./animation.css $myAnimation);
}
.otherElement {
animation-name: $localAnimation;
}
```
That way from JS, these would be equivalent:
```js
import { myAnimation } from "./sheet.css";
console.log(myAnimation); // CSSKeyframesRule
myElement.style.animationName = myAnimation;
// This would get serialized to the import function form:
// import(https://my.tld/path/to/sheet.css $animationName)
console.log(myElement.style.animationName);
```
```js
const cssModule = new URL("./sheet.css", import.meta.url);
myElement.style.myAnimation = `import(${ cssModule.href } $myAnimation)`;
```
--
GitHub Notification of comment by Jamesernator
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3714#issuecomment-813117108 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Sunday, 4 April 2021 23:39:10 UTC