// A Switch toggling between the two built-in themes. Every component reads
// theme.* reactively, so flipping setTheme() recolors the whole tree with no
// remount - the Switch itself included.
import { render, createSignal, createEffect, env } from "@solidrt/core"
import { Window, View, Text, Switch, Card, theme, setTheme, darkTheme, lightTheme } from "@solidrt/components"
function App() {
// Start from the OS light/dark preference; env.systemTheme is
// "dark" | "light" | "unknown" (unknown falls back to dark, the default).
let [dark, setDark] = createSignal(() => env.systemTheme !== "light")
createEffect(
() => dark(),
(on) => setTheme(on ? darkTheme : lightTheme),
)
return (
Dark mode
)
}
render(() => )