最近便利なCSSおれおれAdvent Calendar 2023 – 10 日目
ダークモード対応って近年人気じゃないですか。自分はまああんまり興味ないんですが、なんか好きですよねみんな。
prefers-color-scheme
を使うとその端末全体の設定を判定できるので、ダークモード、ライトモードの選択肢に「端末の設定に合わせる」を追加することもできます。
例
:root { /* デフォルトでライトモード(あるいはフォールバック) */ --theme--background-color: #f0f0f0; --theme--color: #333; /* 端末がダークモードのとき */ @media (prefers-color-scheme: dark) { --theme--background-color: #333; --theme--color: #f9f9f9; } }
端末の設定を変えながらデモを試してください。(ここ Ginpen.com は対応してないです。) iOS も Android も macOS も Windows も設定があります。
取り得る値
light
と dark
のみ。
なんか auto
とか default
とかあってもいいのになとか思ったりもするけれど、ないです。
そのうち high-contrast
とか mild
とか追加されたりするのかな。ないか。
初期値
特に設定がない場合は light
となる仕様で、つまりウェブにおいてはライトモードが初期値ということになります。
CSS の実装も、light
と dark
の両方を書くよりライトモード前提で記述した上でダークモードを上書きするのが良いかなと思います。
その他
メディアクエリーは詳細度ないです。
おしまい
新しい prefers-color-scheme
の仕様としてパーティモード party
の追加が検討されています(大嘘)。
ついでなんだけど、やっぱりスタイル宣言を入れ子にできるのすげえ便利ね。サンキューCSS Nesting Module