Skip to Content
FoundationsFoundationDark Mode (다크 모드)

Dark Mode (다크 모드)

현재 Foundation은 다크 모드를 지원하지 않습니다. 향후 업데이트에서 제공될 예정입니다.

다크 모드 지원 현황

현재 상태

Foundation은 현재 라이트 모드만 지원합니다:

  • ✅ 라이트 모드 (현재 지원)
  • ❌ 다크 모드 (미지원)
  • ❌ 시스템 설정 따르기 (미지원)
  • ❌ 사용자 설정 토글 (미지원)

향후 계획

다크 모드 지원은 다음과 같은 단계로 진행될 예정입니다:

  1. Phase 1: 다크 모드 디자인 토큰 정의
  2. Phase 2: 컴포넌트 다크 모드 지원
  3. Phase 3: 자동 모드 전환 (시스템 설정 따르기)
  4. 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); }

업데이트 안내

다크 모드 지원이 추가되면 다음 방식으로 안내됩니다:

  1. Release Notes: CHANGELOG.md에 자세한 내용 기재
  2. Migration Guide: 기존 프로젝트 마이그레이션 가이드 제공
  3. Documentation: 이 페이지에 상세 사용법 추가
  4. Breaking Changes: 하위 호환성 유지 여부 안내

관련 이슈 및 피드백

다크 모드 기능이 필요하시다면 다음 채널로 의견을 보내주세요:

우선순위는 사용자 피드백을 기반으로 결정됩니다.

참고 자료

다크 모드 구현에 대한 참고 자료:

다음 단계

Last updated on