- From: Bramus! via GitHub <sysbot+gh@w3.org>
- Date: Thu, 17 Nov 2022 09:51:13 +0000
- To: public-css-archive@w3.org
Big fan of the `-internal-light-dark()` function here as well. Would make some things easier.
A few questions/remarks:
1. With the proposed `schemed-color(<custom-ident> <color>, <fallback-color>)`, how would support for multiple schemes work?
Do you suggest to nest `schemed-color()` – e.g. `schemed-color(light red, schemed-color(dark blue, pink))` – or should we allow multiple entries by changing the syntax to `schemed-color([<custom-ident> <color>]#, <fallback-color>)`?
2. The suggested `schemed-color` only caters for colors, whereas `light-dark()` allows things other than colors. This seems pretty limiting. Can we open it up to have it return any value instead of a `<color>`? So the function would maybe become `schemed-value()`?
I’m not an expert on CSS syntax, but I guess the syntax would then become this: `schemed-value([<custom-ident> <declaration-value>]#, <declaration-value>)`
_Anecdotally: The function in Chromium first was called `-internal-light-dark-color()` but then [got renamed to `-internal-light-dark()`](https://github.com/chromium/chromium/commit/42267a718b56e0da01b82c4aee8b342f24e45c1b)_
3. Maybe `light-dark()` could be kept, and become a alias _(limited to only to schemes)_ for `schemed-color`?
Or if we should not want to pursue this, maybe we can leave it up to authors to define their own custom function once that becomes a thing?
4. With CSS Nesting – and potentially implicit `& { }` along with that – around the corner, this would become more easy for authors to do:
1. No Nesting:
```css
el {
--img: url(/img/bg-light.png);
background: transparent var(--img) no-repeat 0 0;
}
@media (prefers-color-scheme: dark) {
el {
--img: url(/img/bg-dark.png);
}
}
@media (prefers-color-scheme: other) {
el {
--img: url(/img/bg-other.png);
}
}
```
3. With nesting:
```css
el {
--img: url(/img/bg-light.png);
background: transparent var(--img) no-repeat 0 0;
@media (prefers-color-scheme: dark) {
--img: url(/img/bg-dark.png);
}
@media (prefers-color-scheme: other) {
--img: url(/img/bg-other.png);
}
}
```
However, the nesting version doesn’t beat `schemed-value()` imo, so authors would still benefit from having such a function available:
```css
el {
--img: schemed-value(
dark url(/img/bg-dark.png),
other url(/img/bg-other.png),
url(/img/bg-light.png)
);
background: transparent var(--img) no-repeat 0 0;
}
```
--
GitHub Notification of comment by bramus
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7561#issuecomment-1318368750 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Thursday, 17 November 2022 09:51:15 UTC