本文へスキップ

カラーコンバーター&コントラストチェッカーベータ

HEX・RGB・HSL・HWB・LAB・LCH・OKLCH の間でCSSカラーを変換し、WCAGのコントラスト比(AA・AAA、通常・大きいテキスト)を確認できます。

すべての形式

  • HEX#3366ff
  • RGBrgb(51, 102, 255)
  • HSLhsl(225, 100%, 60%)
  • HWBhwb(225 20% 0%)
  • LABlab(47.4 26.93 -82.47)
  • LCHlch(47.4 86.76 288.08)
  • OKLCHoklch(0.5726 0.2338 265.28)

コントラストチェッカー

コントラスト比14.67:1
AA・通常テキスト(4.5:1)
✓ 合格
AA・大きいテキスト(3:1)
✓ 合格
AAA・通常テキスト(7:1)
✓ 合格
AAA・大きいテキスト(4.5:1)
✓ 合格

大きいテキストのプレビュー(Aa)

コントラストを確認するための通常テキストの例文です。

このツールでできること

CSSのカラー値を貼り付けるか、カラーピッカーで選ぶと、HEX・RGB・HSL・HWB・LAB・LCH・OKLCHで表示され、それぞれにコピーボタンが付いています。カラースウォッチとアルファ(不透明度)スライダーで、半透明にしたときの見え方も確認できます。コンバーターの下にあるコントラストチェッカーでは、2つの色をWCAG 2の基準と比べ、サンプルテキストでプレビューできます。

色空間の簡単な説明

  • HEX・RGB は色を赤・緑・青の量(0〜255、または0〜100%)で表します。
  • HSL はそこに色相(hue)・彩度(saturation)・明度(lightness)を加えたもので、RGBの数値だけを見るより直感的に扱えます。
  • HWB(色相・白の量・黒の量)は色相に白と黒を混ぜる方式で、明るい色調や暗い色調を作りやすいのが特徴です。
  • LAB・LCH は人の見え方に近い形で、明度(L)と、緑〜赤・青〜黄の軸(LAB)や彩度・色相(LCH)で色を表します。
  • OKLCH はLCHをさらに精密にし、知覚的に均一になるよう作られた、モダンなWeb向けの色空間です。

OKLCHが便利な理由

HSLでは「明度」の数値を同じにしたまま色相だけを変えても、目にはずっと明るく、あるいは暗く見えることがあります。たとえば明度50%の純粋な黄色は、同じ明度の青よりもずっと明るく見えます。OKLCHの明度は実際に見える明るさに沿うように作られているため、明度の値をそろえるだけで色相が違っても明るさがそろったカラーパレットを作れますし、彩度だけを変えたいときに明るさが意図せず変わってしまうことも少なくなります。

WCAGコントラストの計算方法

コントラストチェッカーはWCAG 2の計算式に従います。まず各色の相対輝度(線形の赤・緑・青の値に重みを掛けて合計した値)を求め、明るいほうの色をL1として (L1 + 0.05) / (L2 + 0.05) を計算します。結果は4.5:1のような比率になります。

  • AA・通常テキスト: 4.5:1
  • AA・大きいテキスト: 3:1
  • AAA・通常テキスト: 7:1
  • AAA・大きいテキスト: 4.5:1

「大きいテキスト」とは、通常の太さで18pt(約24px)以上、または太字(bold)で14pt(約19px)以上のテキストを指します。

色域の外の色

LAB・LCH・OKLCHはsRGBより広い範囲を扱えるため、通常の画面では表示できない色まで表現できます。そのような色を入力すると、このツールがその旨を知らせ、HEX・RGBの値として使用中のsRGB画面が再現できる最も近い色を表示します。

参考資料

よくある質問

「sRGB色域の外」とはどういう意味ですか?

ほとんどの画面はsRGB色空間の中の色しか表示できません。LAB・LCH・OKLCHはそれより広い色、つまり広色域ディスプレイや印刷物で再現できるような色まで表せます。入力した色が色域の外にある場合、表示されるHEX・RGBの値は入力した値そのものではなく、sRGBの画面が実際に表示できる最も近い色になります。

WCAGのAAとAAAは何が違いますか?

AAはほとんどのアクセシビリティ基準が求める最低限のコントラストで、通常テキストは4.5:1、大きいテキストは3:1です。AAAはより厳しい基準で、通常テキスト7:1、大きいテキスト4.5:1です。

コントラスト比はどうやって計算していますか?

WCAG 2の計算式 (L1 + 0.05) / (L2 + 0.05) を使います。L1・L2はそれぞれ明るい色・暗い色の相対輝度(relative luminance)です。輝度は線形(linear)の赤・緑・青の値に重みを掛けて合計した値なので、コントラスト比は2つの色が同じときの1:1から、黒と白のときの21:1までの値になります。

似たように見える色なのに、OKLCHの数値がHSLと大きく違うのはなぜですか?

HSLの明度(lightness)は赤・緑・青のうち最大値と最小値の平均なので、実際に目で見た明るさとは必ずしも一致しません。OKLCHの明度は人が色を知覚する仕組みに基づくモデルから計算されているため、色相が変わっても同じ明度の値なら似た明るさに見えます。ただし2つの尺度の数値は対応していません。

使用しているオープンソース: culori (MIT)