// 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(() => )