- From: Justin Fagnani <notifications@github.com>
- Date: Mon, 16 Mar 2020 12:19:37 -0700
- To: w3c/webcomponents <webcomponents@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Monday, 16 March 2020 19:19:50 UTC
I think there's problem with current semantics and module-like semantics mixing. A constructible stylesheet is shared and can be mutated and effect every scope it's applied to. `@imported` stylesheets being separate objects would break this behavior.
I would argue that given this setup, with a shared theme.css file:
theme.js:
```css
p { color: red; }
```
my-component.css:
```css
@import '../theme.css'; /* URLs would ideally be resolved to the referring CSS module's URL, not the document */
...
```
my-component.js:
```js
import styles from './my-component.css';
```
That this code should result in the component's styles changing:
my-app.js:
```js
import themeStyles from './theme.css';
themeStyles.cssRules[0].style.setProperty('color', 'blue');
```
because this is what would happen if the component imported `theme.css` directly. There shouldn't be a difference between the two.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/webcomponents/issues/870#issuecomment-599716198
Received on Monday, 16 March 2020 19:19:50 UTC