Webカラーの変遷 ―
216色のパレットから「人間の知覚」の時代へ

Webサイトの色指定は、コンピューターの都合に合わせる時代から、人間の目に寄り添う時代へと進化してきました。私たちが普段書いているカラーコードの背景にある物語を紐解きます。

「Webセーフカラー」をご存知ですか?

現代のWebデザイナーは、PhotoshopやFigmaのカラーピッカーを使って、直感的に好きな色を選び、それをそのままCSSの16進数(Hexコード)として書き出しています。しかし、Webの黎明期には「216色」しか確実な色が存在しない時代がありました。

1990年代半ば、多くのパソコンのモニターは最大256色しか表示できませんでした。しかも、WindowsとMacでシステムが予約している色が異なっていたため、両方のOSで「文字化け」ならぬ「色化け」を起こさずに表示できる色は、わずか216色に限られていたのです。これが「Webセーフカラー」です。

1994
Webセーフカラーの誕生

OSに依存せず、すべてのブラウザで同じ色を表示するための216色の固定パレットが提唱される。

2000年代
16進数(Hex)の普及

ディスプレイの性能が上がり、1677万色(フルカラー)の指定が当たり前に。#FF5733 のような16進数が標準となる。

2020年代
CSS Color Level 4 と OKLCH

より広色域(P3など)をサポートし、人間の知覚に基づいた新しい色空間の指定方法がブラウザに実装される。

当時のデザイナーは、ブランドカラーを使いたくても「Webセーフカラーの中で一番近い色」で妥協するか、色が変わることを覚悟の上で指定するしかありませんでした。

16進数(Hex)の呪縛

やがてディスプレイの進化により、私たちは約1677万色を自由に使えるようになりました。そこで標準となったのが #3B82F6 のような16進数(Hex)カラーコードです。しかし、ここにも大きな問題がありました。Hexコードは「コンピューターのための言語」であって、人間にとっては直感的ではないのです。

Hex・RGBの課題
機械的な混色

赤・緑・青の光の強さを指定する方式。例えば「この青をもう少しだけ暗くしたい」と思ったとき、Hexコードの英数字をどう弄ればいいのか、人間にはパッと計算できません。

HSLによる改善
直感への歩み寄り

色相(Hue)・彩度(Saturation)・明度(Lightness)で指定するHSLが登場し、色を操作しやすくなりました。しかし、黄色と青で同じ「明度50%」を指定しても、人間の目には全く違う明るさに見えるという欠陥がありました。

コンピューターの色から、人間の色へ

なぜHSLでは、同じ明度を指定しても明るさが違って見えてしまうのでしょうか? それは人間の目が、色によって明るさの感じ方が異なる(青より黄色の方を明るく感じる)からです。つまり、RGBもHSLも「ディスプレイという機械」の発光をベースにした色空間だったのです。

色は、ディスプレイのピクセルの中にあるのではない。私たち人間の脳の中にある。

そこで現代のWebデザインに革命を起こしつつあるのが、OKLCHという新しい色指定です。oklch() は「人間の知覚」をベースに作られた色空間であり、ここで明度(L)を揃えれば、黄色であろうと青であろうと、人間の目には確実に同じ明るさとして認識されます。さらに、最新のディスプレイが持つ広色域(Display P3など)にも対応しています。

知覚的に均一な色空間の指定
.button-primary {
  /* L(明度) C(彩度) H(色相) */
  background-color: oklch(60% 0.15 250);
}

.button-primary:hover {
  /* 色相と彩度はそのまま、明度だけを確実に10%下げる */
  background-color: oklch(50% 0.15 250);
}

次にカラーパレットを作るときに

216色しか使えなかった時代から、16進数の暗号のようなコードを経て、私たちはようやく「見た目通りの色」をコードで直接操作できる時代に辿り着きました。

デザインシステムの構築や、ダークモードとライトモードの配色設計において、OKLCHは強力な武器になります。次にCSSで色を指定するとき、使い慣れたHexコードから少し離れて、新しい色空間の世界を覗いてみませんか? それは単なる技術のアップデートではなく、Webデザインがより「人間中心」になった証なのです。

まとめ

  • 初期のWebは、OSやブラウザ環境に依存しない「216色のWebセーフカラー」に制限されていた。
  • 16進数(Hex)やRGBの普及で色は自由になったが、コードから色を直感的に操作することは困難だった。
  • HSLは直感的だったが、人間の目の知覚特性(色による明るさの感じ方の違い)を反映できていなかった。
  • 最新のOKLCH色空間は「人間の知覚」に基づいており、正確な明度・彩度のコントロールが可能になった。
  • 色の指定方法は、ディスプレイの制約から解放され、より人間中心のアプローチへと進化し続けている。