カラー・スキームへの反応を指示するcolor-scheme
は、meta
タグとCSSプロパティーのどちらでも定義できる。しかし、CSSプロパティーとして書いてしまうと、HTMLのレンダリング開始が速すぎる場合、FOUCのように一瞬白くなることがある。そのためmeta
タグの方が安全なようだ。このウェブサイトでもCSSに書くように変えてから、ちょくちょくフラッシュしていた。今はもうmeta
タグに戻している。
仕様をよく読むと、やや機能が違うこともわかってくる。color-scheme
プロパティーはコンポーネントで挙動を変えたい時だけ使うことになりそうだ。他にはSVG画像で使っても良いだろう。SVGファビコンなど、単独で利用される場合は必要になる。
まだあまり使われていないcolor-scheme
プロパティーは、その機能に混乱があるように思う。たまに以下のようなコードを見る。このような書き方でも期待通りになるが、冗長だろう。
:root {
color-scheme: light;
}
@media (prefers-color-scheme: dark) {
:root {
color-scheme: dark;
}
}
color-scheme
プロパティーは、どのカラー・スキームでレンダリングするように設計されているかを示すものだ。両対応しているのなら以下のように書くだけで済む。
:root {
color-scheme: light dark;
}
最近になって「ダーク・モード対応を止めた」という記事をちょくちょく見るようになっている。雰囲気を維持することが難しいというような観点は頷ける。手元では消したので、来週くらいにはなくなっていることと思う。