Spaces:
Sleeping
Sleeping
Download src/shared/components/ThemeToggle.js from automindy/sdkongwang: direct link, hf CLI and curl.
- Browser
- Download file 1.28 kB
-
https://huggingface.co/spaces/automindy/sdkongwang/resolve/main/src/shared/components/ThemeToggle.js
- Command line
-
hf download hf://spaces/automindy/sdkongwang/src/shared/components/ThemeToggle.js
-
curl -L -o ThemeToggle.js https://huggingface.co/spaces/automindy/sdkongwang/resolve/main/src/shared/components/ThemeToggle.js
1.28 kB
| "use client"; | |
| import { useTheme } from "@/shared/hooks/useTheme"; | |
| import { cn } from "@/shared/utils/cn"; | |
| export default function ThemeToggle({ className, variant = "default" }) { | |
| const { isDark, toggleTheme } = useTheme(); | |
| const variants = { | |
| default: cn( | |
| "flex items-center justify-center size-10 rounded-full", | |
| "text-text-muted hover:text-text-main", | |
| "hover:bg-surface-2 transition-colors" | |
| ), | |
| card: cn( | |
| "flex items-center justify-center size-11 rounded-full", | |
| "bg-surface/60 hover:bg-surface", | |
| "border border-border", | |
| "backdrop-blur-md shadow-sm hover:shadow-[var(--shadow-warm)]", | |
| "text-text-muted hover:text-brand-500", | |
| "transition-all group" | |
| ), | |
| }; | |
| return ( | |
| <button | |
| onClick={toggleTheme} | |
| className={cn(variants[variant], className)} | |
| aria-label={`Switch to ${isDark ? "light" : "dark"} mode`} | |
| title={`Switch to ${isDark ? "light" : "dark"} mode`} | |
| > | |
| <span | |
| className={cn( | |
| "material-symbols-outlined text-[22px]", | |
| variant === "card" && "transition-transform duration-300 group-hover:rotate-12" | |
| )} | |
| > | |
| {isDark ? "light_mode" : "dark_mode"} | |
| </span> | |
| </button> | |
| ); | |
| } | |