Files
20260512-skg-tk/web/components/theme-toggle.tsx

23 lines
769 B
TypeScript

"use client"
import { useEffect, useState } from "react"
import { useTheme } from "next-themes"
import { Moon, Sun } from "lucide-react"
export function ThemeToggle() {
const { theme, setTheme } = useTheme()
const [mounted, setMounted] = useState(false)
useEffect(() => setMounted(true), [])
if (!mounted) return null
const isDark = theme === "dark"
return (
<button
onClick={() => setTheme(isDark ? "light" : "dark")}
className="glass-node h-9 w-9 inline-flex items-center justify-center rounded-xl"
style={{ width: 36, height: 36, padding: 0, borderRadius: 12 }}
title={isDark ? "切到明亮主题" : "切到暗色主题"}
>
{isDark ? <Sun className="h-4 w-4" /> : <Moon className="h-4 w-4" />}
</button>
)
}