- From: Lea Verou via GitHub <sysbot+gh@w3.org>
- Date: Tue, 25 Jul 2023 11:31:33 +0000
- To: public-css-archive@w3.org
@bramus
> ```css
> @import "nested-and-small.css" supports(<method-to-detect-nesting>) skip-next;
> @import "not-nested-and-large.css";
> ```
Tokens that change how subsequent tokens behave are not generally seen favorably in this group.
> ```css
> @config {
> legacy: 'not-nested-and-large.css';
> }
>
> @import "nested-and-small.css" supports(<method-to-detect-nesting>);
> @import "not-nested-and-large.css";
> ```
>
> Or if one wants to add conditions (which would replicate a lot of `@import`)
>
> ```css
> @config {
> import-ignore: 'not-nested-and-large.css' not supports(<method-to-detect-nesting>);
> }
> ```
Annotating the import somewhere else seems like the kind of indirection that could easily cause hard to debug problems.
----
While this brainstorming is very creative, itβs also introducing warts to the language that are not necessary: we already *have* a mechanism to conditionally `@import` stylesheets if something is or isn't supported, UAs just need to actually implement it π
Until then, JS works fine for this kind of fallback and requires very little code.
There are many strategies for this:
Loaded nested CSS without JS (the top-level rules would still render even in older browsers), then add the non nested one conditionally via JS β this may be a good strategy once nesting has > 85% market share (note that [we're already at 72%](https://caniuse.com/css-nesting)):
```js
if (!CSS.supports("<method-to-detect-nesting>") {
document.head.insertAdjacentHTML("beforeend", '<link blocking=render href="non-nested-and-large.css" rel="stylesheet">');
}
```
or inserting the right URL via JS to begin with. Or even β gasp β `document.write()`, to prevent FOUC in UAs that don't support `blocking=render`.
Yes, none of them is ideal, but this is a temporary situation until browsers implement `supports()` on `@import` rules.
--
GitHub Notification of comment by LeaVerou
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9082#issuecomment-1649656177 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 25 July 2023 11:31:35 UTC