App-wide theme context with CSS variables.
Root provider that sets a `data-theme` attribute on `<html>` based on user choice + system preference. Themes flip CSS variables (`--background`, `--text-primary`, etc.) so every component re-skins automatically.
import { ThemeProvider } from "@/components/ui/theme-provider";
<ThemeProvider defaultTheme="dark">
<App />
</ThemeProvider>components/ui/ folder. You own the code.