- From: Joe Pea <notifications@github.com>
- Date: Fri, 01 Sep 2023 12:46:10 -0700
- To: WICG/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
- Message-ID: <WICG/webcomponents/issues/870/1703247114@github.com>
This is important because one of the main reasons someone could want to move away from putting this,
```js
this.shadowRoot.innerHTML = `
<div> ... </div>
<style>
@import "/css/animations/wobble.css"
div {
animation: 1s ease wobble;
}
</style>
`
```
into their custom elements is that they want to move to using `import`, so that a build tool can inline all the CSS instead of the browser having to fetch all the re-usable bits of CSS. F.e.:
```css
/* me-el.css */
@import "/css/animations/wobble.css"
div {
animation: 1s ease wobble;
}
```
```js
import sheet from "./my-el.css" // build tool inlines
// ...
this.shadowRoot.innerHTML = `
<div> ... </div>
`
this.shadowRoot.adoptedStyleSheet = [sheet]
```
---
Perhaps making an `@import` alternative (f.e. similar LESS's import-once) in order to solve some of these problems in an alternative way, and leaving `@import` as-is so it is not confusing depending on usage (people **_do_** inspect the CSS OM, we can't prevent it), would be a better approach:
- https://github.com/w3c/csswg-drafts/issues/6130
If we agree to keep `@import` as-is, and agree to later add an alternative that fixes some of the issues outlines here and in that thread, then `@import` can simply do what it does exactly like inside a `<style>` element, and then the new alternative can be added for use later.
This might get more people further along today, than having them wait on debating how to change `@import`.
--
Reply to this email directly or view it on GitHub:
https://github.com/WICG/webcomponents/issues/870#issuecomment-1703247114
You are receiving this because you are subscribed to this thread.
Message ID: <WICG/webcomponents/issues/870/1703247114@github.com>
Received on Friday, 1 September 2023 19:46:16 UTC