Theme Toggle
sidcn/theme-toggleFreeComponent
A beautiful theme toggle component
Live preview
live · rendered by the registry
Rendered by sidcn on their own page — this is the component running, not a screenshot of it.Install it
npx shadcn@latest add https://ui.siddhesh.cc/r/theme-toggle.jsonSource
1"use client";23import { Moon, Sun } from "lucide-react";4import { useTheme, ThemeProvider as NextThemesProvider } from "next-themes";56import { Button } from "@/components/ui/button";78export function ThemeProvider({ children }: { children: React.ReactNode }) {9 return (10 <NextThemesProvider defaultTheme="system" attribute="class" enableSystem>11 {children}12 </NextThemesProvider>13 );14}1516export function ThemeToggle() {17 const { setTheme, resolvedTheme } = useTheme();18 return (19 <Button20 size={"icon"}21 variant={"ghost"}22 onClick={() => setTheme(resolvedTheme === "dark" ? "light" : "dark")}23 >24 {resolvedTheme === "dark" ? <Sun /> : <Moon />}25 </Button>26 );27}
What it pulls in
npm packages
Other registry items
Files it writes
More from sidcn
All 14 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Badgebadge | sidcn | Components | Free | 3 deps | |
| Buttonbutton | sidcn | Components | Free | 2 deps | |
| Data Tabledata-table | sidcn | Components | Free | 2 deps | |
| Date Inputdate-input | sidcn | Components | Free | 1 dep | |
| Date Time Inputdate-time-input | sidcn | Components | Free | 2 deps | |
| Iconsicons | sidcn | Components | Free | no deps | |
| Package Manager Commandpackage-manager-command | sidcn | Components | Free | no deps | |
| Sidebarsidebar | sidcn | Components | Free | 3 deps |
