こんにちは。 エキサイトで内定者アルバイトとしてデザイナーをしている齋藤です。
エキサイトホールディングス Advent Calendar 2023シリーズ2の12日目は、私齋藤が担当させていただきます。
今回はチェックボックスなどの強調表示色を指定できるCSSプロパティのaccent-color
の使用方法とその注意点についてご紹介したいと思います。
accent-colorとは
accent-color
はCSSプロパティの一種で、以下の要素の強調表示色を指定することができます。
input
要素(Type:checkbox
・radio
・range
)progress
要素
以前はこれらの要素の色を指定したい場合、疑似要素を使用して無理やり表現していましたが、accent-color
の登場で一発で解決することができるようになりました。
対応ブラウザ
2023年12月18日時点の各ブラウザの対応状況は以下の通りです。
ブラウザ | バージョン |
---|---|
Google Chrome | 93以降 |
Microsoft Edge | 93以降 |
Safari | 15.4以降 |
Firefox | 92以降 |
Opera | 79以降 |
iOS版Safari | 15.4以降 |
Android版Google Chrome | 93以降 |
Android版Firefox | 92以降 |
Android版Opera | 79以降 |
Android WebView | 93以降 |
なお、対応状況は変化する可能性があります。使用前にCan I use...などで確認をしてください。
実際に使ってみる
例はそれぞれ、<input type="radio" />
<input type="checkbox" />
<input type="range" />
です。
通常時
通常はユーザーエージェントが指定した色(Chromeなら青色)が当てられます。
この際、accent-color
は初期値のauto
になっています。
accent-color適用時
accent-color
にred
を指定した場合、ユーザーエージェントが指定した色から任意の色に変更することができます。
input { accent-color: red; }
注意したい落とし穴
accent-color
は非常に便利なのですが、ひとつだけ注意したいことがあります。
例えば、エメラルドグリーン(#6ee7b7
)を指定したとします。すると、以下のようにブラウザでは描写されます。
あれ・・・?なにかがおかしい・・・
実は、accent-color
を指定して強調表示色を指定した場合、一定のコントラスト比を担保していない色ですと、ブラウザ側がaccent-color
を適用した要素にのみ自動的にダークモードにするため、指定する色のコントラスト比には十分注意する必要があります。
「一定のコントラスト比」の境界はブラウザのアルゴリズムによって異なるようですが、https://accent-color.glitch.me/で挙動を確認することができます。
先程指定した#6ee7b7
は白に対して1:1.5
のコントラスト比でしたが、1:3.8
の#059666
にすると通常のライトモードに戻りました。
ブラウザによってラインが異なりますが、白に対して1:3
以上の色を指定することをおすすめします。
※実験で使用したブラウザはGoogle Chrome(120.0.6099.109)です
さいごに
今回はaccent-color
を用いてチェックボックスの色を変える方法と、注意したい落とし穴についてご紹介しました。
エキサイトホールディングス Advent Calendar 2023では他にもエンジニアやデザイナーによる記事が多数投稿されています。ぜひチェックしてくださいね!
ご精読ありがとうございました。