Dark Mode (다크 모드)
현재 Foundation은 다크 모드를 지원하지 않습니다. 향후 업데이트에서 제공될 예정입니다.
다크 모드 지원 현황
현재 상태
Foundation은 현재 라이트 모드만 지원합니다:
- ✅ 라이트 모드 (현재 지원)
- ❌ 다크 모드 (미지원)
- ❌ 시스템 설정 따르기 (미지원)
- ❌ 사용자 설정 토글 (미지원)
향후 계획
다크 모드 지원은 다음과 같은 단계로 진행될 예정입니다:
- Phase 1: 다크 모드 디자인 토큰 정의
- Phase 2: 컴포넌트 다크 모드 지원
- Phase 3: 자동 모드 전환 (시스템 설정 따르기)
- Phase 4: 사용자 설정 토글 UI
예상 구현 방식
CSS Variables 기반 구현
/* Light Mode (기본) */
:root {
--color-background: #ffffff;
--color-text: #171717;
--color-border: #e5e5e5;
}
/* Dark Mode */
:root[data-theme="dark"] {
--color-background: #171717;
--color-text: #fafafa;
--color-border: #404040;
}Tailwind CSS 4.0 @theme
@theme {
/* Light Mode */
--color-background: #ffffff;
--color-text: #171717;
}
@theme dark {
/* Dark Mode */
--color-background: #171717;
--color-text: #fafafa;
}컴포넌트 사용 예시
// 향후 다크 모드 지원 시 예상 사용법
<div className="bg-background text-text border-border">
이 요소는 다크 모드에서 자동으로 색상이 변경됩니다
</div>
// Tailwind dark: modifier 사용
<div className="bg-white dark:bg-gray-900 text-gray-900 dark:text-gray-100">
다크 모드 지원 요소
</div>임시 해결 방법
다크 모드가 필요한 경우, 다음 방법을 고려할 수 있습니다:
1. 직접 구현 (Tailwind dark: modifier)
export default function CustomDarkMode() {
return (
<div className="bg-white dark:bg-gray-900">
<p className="text-gray-900 dark:text-gray-100">수동 다크 모드 지원</p>
<button className="bg-primary dark:bg-primary-600">Button</button>
</div>
);
}2. next-themes 라이브러리 사용
npm install next-themes// _app.tsx 또는 layout.tsx
import { ThemeProvider } from "next-themes";
export default function App({ Component, pageProps }) {
return (
<ThemeProvider attribute="class">
<Component {...pageProps} />
</ThemeProvider>
);
}// 컴포넌트에서 사용
import { useTheme } from "next-themes";
export default function ThemeToggle() {
const { theme, setTheme } = useTheme();
return (
<button onClick={() => setTheme(theme === "dark" ? "light" : "dark")}>
{theme === "dark" ? "🌞" : "🌙"}
</button>
);
}3. CSS Variables 커스터마이징
/* globals.css */
:root {
--background: #ffffff;
--foreground: #171717;
}
:root[data-theme="dark"] {
--background: #171717;
--foreground: #fafafa;
}
body {
background-color: var(--background);
color: var(--foreground);
}업데이트 안내
다크 모드 지원이 추가되면 다음 방식으로 안내됩니다:
- Release Notes: CHANGELOG.md에 자세한 내용 기재
- Migration Guide: 기존 프로젝트 마이그레이션 가이드 제공
- Documentation: 이 페이지에 상세 사용법 추가
- Breaking Changes: 하위 호환성 유지 여부 안내
관련 이슈 및 피드백
다크 모드 기능이 필요하시다면 다음 채널로 의견을 보내주세요:
우선순위는 사용자 피드백을 기반으로 결정됩니다.
참고 자료
다크 모드 구현에 대한 참고 자료:
다음 단계
Last updated on