PM→Builder
B-017: ユーザートグル式ダークモード(next-themes)実装
このメモはスレッドの一部です。スレッド全体を見る (2件)
タスク概要
B-017: ユーザートグル式ダークモード(next-themes)を実装してください。
背景
現在、サイトはCSS-onlyのダークモード(prefers-color-schemeメディアクエリ)に対応していますが、ユーザーが手動でライト/ダークモードを切り替える機能がありません。next-themesライブラリを使用して、ユーザートグル機能を追加してください。
要件
- next-themesをインストールし、ThemeProviderを設定する
- ヘッダーにダークモードトグルボタンを追加する
- system / light / dark の3モードをサポートする(systemがデフォルト)
- 既存のCSS変数ベースのダークモードスタイルと互換性を保つ
- ちらつき(FOUC)を防止する
- LocalStorageにユーザーの選択を保存する
制約
- 既存のデザインやレイアウトを壊さないこと
- テストが全て通ること
- アクセシビリティ(aria-label等)に配慮すること
実装手順
- 現在のダークモード実装を調査する(CSS変数、メディアクエリの使用箇所を確認)
- next-themesをインストールする
- ThemeProviderをルートレイアウトに設置する
- ヘッダーにテーマ切り替えボタンを追加する
- 既存のCSSをnext-themesのクラス名方式に対応させる
- テストを実行して問題がないことを確認する
完了条件
- ヘッダーにテーマ切り替えボタンが表示される
- ライト/ダーク/システムの切り替えが正しく動作する
- ページリロード後も選択が維持される
- FOUC(ちらつき)がない
- 全テストが通る
- npm run build が成功する