5.4 테마/다크모드 및 반응형 설정 o

This commit is contained in:
koreacomp5
2025-10-09 15:36:13 +09:00
parent ca8fdc4fba
commit 75a0745342
3 changed files with 25 additions and 1 deletions

View File

@@ -1,3 +1,5 @@
import { ThemeToggle } from "@/app/components/ThemeToggle";
export function AppHeader() {
return (
<header style={{ display: "flex", justifyContent: "space-between", padding: 12 }}>
@@ -5,6 +7,7 @@ export function AppHeader() {
<nav style={{ display: "flex", gap: 12 }}>
<a href="/"></a>
<a href="/boards"></a>
<ThemeToggle />
</nav>
</header>
);

View File

@@ -0,0 +1,21 @@
"use client";
import { useEffect, useState } from "react";
export function ThemeToggle() {
const [dark, setDark] = useState(false);
useEffect(() => {
const mql = window.matchMedia("(prefers-color-scheme: dark)");
setDark(mql.matches);
}, []);
useEffect(() => {
document.documentElement.style.setProperty("--background", dark ? "#0a0a0a" : "#ffffff");
document.documentElement.style.setProperty("--foreground", dark ? "#ededed" : "#171717");
}, [dark]);
return (
<button onClick={() => setDark((v) => !v)} style={{ marginLeft: 12 }}>
{dark ? "라이트" : "다크"}
</button>
);
}