注目★★★★★Lobsters
ダークモード実装、OS設定の尊重とサイト単位のトグル対応を両立させる
30秒で把握
- 1color-scheme メタタグと localStorage で OS 設定デフォルト + ユーザートグル両立可能
- 2light-dark() 関数・スタイルクエリで色だけでなく box-shadow・border の条件分岐も実装可
- 3prefers-color-scheme メディアクエリは OS 設定のみ反映するため iframe・SVG 外では color-scheme 値に未連動
要約
ウェブサイトのダークモード実装で、OSの設定を尊重しつつユーザーが個別にトグルで切り替えられる方法を解説している。HTMLの color-scheme メタタグを使いOS設定をデフォルトにしながら、JavaScriptで localStorage に保存したユーザー選択を上書きすれば両立できる。color-scheme は CSS の light-dark() 関数やシステムカラー、ボタンなどの要素デフォルト色に影響を与える一方、prefers-color-scheme メディアクエリはOS設定のみを反映するため、iframe と SVG を除き media query は color-scheme の値に連動しない。light-dark() は Chrome/Firefox/Safari の最新版で画像やグラデーション対応が進み、スタイルクエリ (@container style) を活用すれば box-shadow や border など色以上の変更も条件分岐できる。
あなたへの影響
ダークモード導入時、color-scheme と prefers-color-scheme の挙動の違いで意図しない表示になるケースが多い。
推奨:実装チームは記事の iframe・SVG の特例と media query の独立性を押さえておくことで、トグル機能とOS自動判定の両立実装や将来のブラウザ互換性問題を事前に回避できる。