contrast-color()
contrast-color() は CSS の関数で、color 値を取ってコントラストの高い色を返します。この関数はふつう、WCAG AA の最小コントラスト(英語)を保証します。ブラウザーは異なるより良いアルゴリズムを可能性もあります。
contrast-color() 関数を使用すると、テキストの色を指定して、自動的に対照的な背景色を生成したり、その逆を行ったりすることができます。これにより、背景色とテキスト色の組み合わせを保守する必要を避けることができます。
対応ブラウザ
| 機能 | デスクトップ | モバイル | ||||
|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Safari | Chrome Android | Safari iOS | |
| | | 146 | 26 | | 26 | |
基本構文
CSS
.dynamic-badge {
background: var(--badge-color);
color: contrast-color(var(--badge-color));
} ライブデモ
実務での使いどころ
-
動的な背景色に対する自動テキスト色選択
ユーザーが選択した背景色やテーマカラーに対して、常にWCAG基準を満たすコントラストのテキスト色を自動的に設定できます。
注意点
- Safari 26とFirefox 146以降でのみサポートされており、ChromeとEdgeでは未実装です。実用にはポリフィルまたはフォールバックが必要です。
アクセシビリティ
- この関数自体がアクセシビリティを向上させるために設計されています。動的なカラーテーマでのコントラスト不足の問題を根本的に解決できます。