diff --git a/package.json b/package.json index f304634..2f438bf 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "class-variance-authority": "^0.7.1", "clsx": "^2.1.1", "gitea-js": "^1.22.0", + "jotai": "^2.10.3", "lucide-react": "^0.468.0", "next": "15.0.4", "next-auth": "^5.0.0-beta.25", diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 0d3f843..7907504 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -27,6 +27,7 @@ export default function RootLayout({ defaultTheme="system" enableSystem disableTransitionOnChange + enableColorScheme >
{children}
diff --git a/src/components/mode-switcher.tsx b/src/components/mode-switcher.tsx index 62034e0..7c9dbea 100644 --- a/src/components/mode-switcher.tsx +++ b/src/components/mode-switcher.tsx @@ -7,13 +7,21 @@ import * as React from "react"; import { useTheme } from "next-themes"; import { Sun, Moon } from "lucide-react"; import { Button } from "@/components/ui/button"; +import { META_THEME_COLORS } from "@/config/site"; +import { useMetaColor } from "@/hooks/use-meta-color"; export function ModeSwitcher() { + const { setMetaColor } = useMetaColor(); const { setTheme, resolvedTheme } = useTheme(); const toggleTheme = React.useCallback(() => { setTheme(resolvedTheme === "dark" ? "light" : "dark"); - }, [resolvedTheme, setTheme]); + setMetaColor( + resolvedTheme === "dark" + ? META_THEME_COLORS.light + : META_THEME_COLORS.dark + ); + }, [resolvedTheme, setTheme, setMetaColor]); return (