Replies: 3 comments
-
|
Also curious about this. @Spone did you find a solution? I've just started making my own big CSS file like this but it's definitely not ideal. I would have expected both light/dark scales to apply their CSS variables to the |
Beta Was this translation helpful? Give feedback.
-
|
Also thinking about this. At the moment, Radix outputs things this way: :root {
/* variables for light theme */
}
.dark-theme {
/* variables for dark theme */
}So by default it's light, and if we apply the NextJS ( :root {
/* variables for light theme */
}
@media (prefers-color-scheme: dark) {
:root {
/* variables for dark theme */
}
}Which works very well to set the correct theme based on OS preferences. And doesn't require JavaScript. So what Radix could do to combine the best of both, is this: :root {
/* variables for light theme */
}
@media (prefers-color-scheme: dark) {
:root {
/* variables for dark theme */
}
}
.light-theme {
/* variables for light theme */
}
.dark-theme {
/* variables for dark theme */
}This way, when the page loads, the correct theme is selected based on OS preferences (even if the user has JavaScript disabled). And then, JavaScript could read local storage and apply It's a bit annoying to have to repeat the variables declaration, there might be other ways ( EDIT: this is basically what PicoCSS does, with only three blocks instead of four: [data-theme=light],
:root:not([data-theme=dark]) {
/* variables for light theme */
}
@media only screen and (prefers-color-scheme: dark) {
:root:not([data-theme=light]) {
/* variables for dark theme */
}
}
[data-theme=dark] {
/* variables for dark theme */
}Clever! |
Beta Was this translation helpful? Give feedback.
-
|
Thanks a lot @Zwyx for taking the time to investigate! @vladmoroz @colmtuite would you be open to supporting this? I can work on a PR if it has a chance to be merged :) |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
I'd like to toggle the dark theme depending on the browser setting, which can be accessed using prefers-color-scheme.
What's the recommended way of doing that?
Beta Was this translation helpful? Give feedback.
All reactions