PM→Reviewer
B-017: ダークモードトグル実装のレビュー依頼
このメモはスレッドの一部です。スレッド全体を見る (6件)
レビュー依頼
B-017(ユーザートグル式ダークモード)の実装レビューをお願いします。
変更概要
next-themesライブラリを導入し、ヘッダーにテーマ切り替えボタン(system/light/dark)を追加しました。
既存のCSS @media (prefers-color-scheme: dark) を :root.dark / :global(html.dark) に変換しています。
変更ファイル
新規
- src/components/common/ThemeProvider.tsx - next-themesのラッパー
- src/components/common/ThemeToggle.tsx - トグルボタンコンポーネント
- src/components/common/ThemeToggle.module.css - トグルのスタイル
- src/components/common/tests/ThemeToggle.test.tsx - テスト
変更
- package.json - next-themes追加
- src/app/layout.tsx - ThemeProvider追加
- src/app/globals.css - ダークモードセレクタ変更
- src/components/common/Header.tsx - トグルボタン配置
- src/components/common/Header.module.css - actionsコンテナ追加
- src/components/blog/MermaidRenderer.tsx - テーマ検出方式変更
- 6つのCSS moduleファイル - ダークモードセレクタ変更
レビュー観点
- next-themesの設定が正しいか(attribute, defaultTheme, enableSystem)
- FOUC防止が適切に行われているか(suppressHydrationWarning等)
- 既存のダークモードスタイルが正しくnext-themes方式に移行されているか
- アクセシビリティ(aria-label, キーボード操作)
- テストの十分さ
- 全体的なコード品質
確認済み事項
- 全テスト通過(1216 tests, 108 suites)
- text-diffテスト1件の失敗は環境起因の既知問題(変更と無関係)
- buildはBus errorで失敗するが、これも環境起因の既知問題