CSSツール

無料 CSS contrast-color()関数ジェネレーター

候補リストから最も読みやすいテキスト色を自動選択するcontrast-color() CSS関数を生成します。

ツールを読み込み中...

CSS contrast-color()関数ジェネレーターとは

CSSのcontrast-color()関数(Baseline 2026)は、指定された背景に対して候補リストから最も高いコントラスト比を持つ色を選択します。contrast-color(background vs color1, color2, ...)のように記述し、背景色と候補色のリストを指定します。この関数は各候補のWCAGコントラスト比を背景に対して評価し、最も良い比を持つ候補を返します。オプションのto maxキーワードは常に最大コントラストの候補を返すよう指示します。これは、読みやすいオーバーレイ、ボタン、バッジのためのJavaScriptベースのテキストカラー切り替えに代わるネイティブCSSの代替手段です。

クイックアンサー

CSS contrast-color(background vs candidates...)を使用して、リストから最も読みやすい色を自動選択します。Chrome 132以上、Edge 132以上、Safari 19以上、Firefox 136以上で動作します。最大コントラスト用のto maxモード、またはブランドカラー優先の順序付きリストモードをサポートします。デザインシステム統合のためにCSSカスタムプロパティと組み合わせて使用します。

Last updated: 2026-05-30

制限事項

  • contrast-color()はChrome 132、Safari 19、Firefox 136より前のブラウザではサポートされていません。contrast-color()宣言の前には常にフォールバックカラーを提供し、@supportsを使用して利用可能な場合にのみ関数を条件付きで適用します。
  • この関数は相対輝度に基づいてコントラストを評価します。これは人間の色知覚の数学的近似です。同じコントラスト比を持つ2つの色でも、色相、彩度、周囲のコンテキストによって主観的に異なって読める場合があります。
  • contrast-color()は候補リストから単一の色を選択します。中間色を生成したり、候補をブレンドしたり、不透明度を調整したりすることはできません。リストから選択する以上のきめ細かい色調整には、CSS color-mix()または手動カラートークンを使用してください。

Sources:MDN Web Docs · W3C Specifications · jquery.app on GitHub

使い方

  1. コントラストを測定する背景色を入力します。hex、rgb、hsl、または名前付きカラーが使用できます。
  2. 候補色を追加します。関数は各候補を背景に対して評価し、最適なものを選択します。to maxモードの優先フォールバックのために候補を並べ替えることができます。
  3. コントラストモードを選択します。to maxは常に最高コントラストの候補を選択します。省略すると順序付き優先度(最小比率を超える最初の候補が採用)になります。
  4. 生成されたcontrast-color()式をスタイルシートにコピーし、候補色をデザイントークンの参照に置き換えます。

主な用途

  • 背景色や画像に関係なくテキストが読みやすい状態を保つ必要があるヒーロー画像やバナーのテキストオーバーレイをスタイリングする。
  • バッジの背景色に基づいてラベルテキスト色を自動調整するバッジおよびタグコンポーネントを構築する。
  • 複数のカラーバリアントを記述せずに、ボタンテキスト色がプライマリボタンの背景に適応する動的ボタンシステムを作成する。

用途

使用例

ヒーローセクションのテキストオーバーレイ

ヒーローバナーに暗いセクションと明るいセクションを行き来する背景グラデーションがあります。見出しの色にcontrast-color(var(--hero-bg) vs white, black, var(--accent))を使用します。見出しは、メディアクエリやJavaScriptなしで、暗いセクションでは白、明るいセクションでは黒を自動的に使用します。

動的カラーのタグコンポーネント

タグコンポーネントがCSSカスタムプロパティとして背景色を受け取ります。ラベル色にcontrast-color(var(--tag-bg) to max vs white, var(--tag-text))を使用します。to maxモードで最大の読みやすさを保証します。白いタグは暗いテキスト、暗いタグは白いテキストになり、個別のライト/ダーククラスは不要です。

よくあるミス

  • 特定の色の優先順位が意図されている場合にto maxモードを使用する。to maxは候補の順序を無視して常に最高コントラストの候補を返します。最大コントラストよりもブランドカラーを優先する場合は、to maxを省略してブラウザに最初の十分なコントラストの色を順番に選択させます。
  • contrast-color()が背景変更時に再計算されると思い込む。他のCSS関数と同様に、要素のレンダリングごとに1回評価されます。背景が動的に変更された場合(アニメーションやJavaScriptを介して)、contrast-color()はスタイル再計算サイクルの一部として自然に再評価されます。
  • あまりに多くの候補色を使用する。各追加候補はコントラスト計算を増加させます。2〜3の適切に選択された候補(明、暗、アクセント)でほとんどのデザインシステムをカバーできます。何百万もの色を候補としてテストするのは意味がありません。

検証

  1. DevToolsのStylesパネルで背景の値を変更して複数の背景色でcontrast-color()式をテストし、カラー値が期待される候補に解決されることを確認します。
  2. Chrome DevToolsで計算されたカラー値を検査してcontrast-color()が正しく解決されることを確認し、ブラウザDevToolsのカラーコントラストチェッカーでWCAG比がアクセシビリティ目標を満たしていることを確認します。

FAQ

CSS contrast-color()関数ジェネレーターのFAQ

contrast-color()はコントラスト比をどのように計算しますか?

この関数はWCAG 2.2の相対輝度アルゴリズムを使用して、各候補色と背景色の間のコントラスト比を計算します。相対輝度は異なるカラーチャンネルの人間の知覚を考慮します。たとえば、緑は青よりも知覚される明るさに多く寄与します。比率の範囲は1:1(同一輝度)から21:1(黒地に白)です。関数はto maxモードでは最も高い比率の候補を、優先順位リストモードでは暗黙のしきい値以上を満たす最初の候補を返します。

2026年現在、contrast-color()をサポートするブラウザは?

contrast-color()はBaseline 2026で、Chrome 132以上、Edge 132以上、Safari 19以上、Firefox 136以上でサポートされています。Safari 18以前や古いChromiumバージョンはこの関数を認識しません。クロスブラウザサポートには、プログレッシブエンハンスメントとして使用し、最初に手動フォールバックカラーを宣言してから@supports (contrast-color(white vs black, white))で上書きします。

contrast-color()内でCSSカスタムプロパティを使用できますか?

はい。contrast-color()へのすべてのカラー引数はCSSカスタムプロパティを受け入れます。背景色と各候補にvar()参照を含めることができます。これはデザインシステムで関数を使用する最も実用的な方法で、セマンティックカラー間で選択するデザイントークンを候補として渡します。例:contrast-color(var(--surface) vs var(--text-primary), var(--text-inverse))。

どの候補もWCAG AAコントラストを達成できない場合はどうなりますか?

特定のWCAGしきい値を満たす候補がない場合でも、関数は最も高いコントラスト比を持つ候補を返します。to maxモードでは常に最良の候補を返します。to maxなしでも、主観的なしきい値を満たす最初の候補を返すか、最初の候補にフォールバックします。真のWCAG AA/AAA準拠のためには、contrast-color()を明示的なcolor-contrast()チェックと組み合わせるか、開発中に候補パレットをデザインシステムの背景に対して事前検証します。

関連ツール

その他のcssツール

こちらもお試しください

こちらもお試しください