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 (