何をするか
SVG 内に style
要素を埋め込んで、ブラウザのダークモードの設定 (ON/OFF) に連動して各描画要素の色を変更する方法を説明します。
図: ダークモードに対応した SVG
上記の SVG 要素では、ブラウザのダークモード設定に応じて、各描画要素の色 (fill
) を切り替えるようにしています。
さらに、現在のダークモード設定を示す ON
/OFF
というテキストの表示・非表示も切り替えています。
(ちなみに、この Web サイト『まくろぐ』全体は、ダークモード設定によって配色が変わるようにはなってません)
CSS のメディアクエリでダークモード用スタイルを定義する
CSS のメディアクエリ (@media
) を使うと、ブラウザのダークモード設定に応じたスタイル定義を行うことができます。
SVG には style
要素を埋め込むことができるので、そこでメディアクエリを使えば、ダークモード設定に連動する SVG を作成することができます。
ダークモードに対応した SVG 要素の例
最初に表示した SVG は、次のようなコードで構成されています。
svg
要素内に、メディアクエリを含んだ style
要素が埋め込まれているところがポイントです。
(おまけ)JavaScript でダークモードの変更を検出する方法
ブラウザ上で動く JavaScript 内で現在のダークモード設定を参照したり、変更を検出するには次のようにします。
関連記事