Asayomu Tech
注目★★★★★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自動判定の両立実装や将来のブラウザ互換性問題を事前に回避できる。

詳細を読む → 元記事へ※ 本文は元記事をご確認ください (asayomu は要約のみ提供)

関連する記事

※ 外部記事の権利は原著作者に帰属します。著作権削除要請は copyright@asayomu.jp までご連絡ください(受領確認 24h・実処理 72h 以内)。