CSSファイルには複数のカラーフォーマットが混在します。デザイナーからHEXコードを受け取り、ブランドガイドにはPantoneのRGB値が書かれ、アニメーションライブラリはHSLを期待する——手動で変換するには公式を暗記するかcalcを開くしかありません。カラーコンバーターがその計算を即座に処理します。

カラーコードをオンラインで変換 →

4つの主要カラーフォーマット

HEX

6桁の16進数が赤・緑・青チャンネルを 00(0%)から FF(100%)で表します:

color: #1a73e8;   /* Googleブルー */
color: #fff;      /* #ffffffの省略形 */

HEXはWeb CSSで最もよく使われるフォーマットです。各チャンネルの数字が重複する場合、省略形(#rgb)が使えます——#ff6600#f60

RGB

赤・緑・青の3つの整数(0〜255)。CSSはアルファチャンネル(0〜1)付きの rgba() も受け付けます:

color: rgb(26, 115, 232);
color: rgba(26, 115, 232, 0.8);  /* 80%の不透明度 */

RGBはモニターのハードウェアに直接対応します。プログラムでチャンネルを操作する場合に便利です。

HSL

Hue(色相、0〜360°)・Saturation(彩度、0〜100%)・Lightness(明度、0〜100%):

color: hsl(217, 80%, 51%);
color: hsla(217, 80%, 51%, 0.8);

HSLは最も人間が読みやすいフォーマットです。明度だけを調整することで、色相や彩度を変えずにティントとシェードが作れます——カラースケール構築に最適です。

HSB / HSV

Hue(色相、0〜360°)・Saturation(彩度、0〜100%)・Brightness(明度、0〜100%)。CSS ではネイティブサポートなしですが、Figma・Photoshop・Illustratorのデフォルトカラーモデルです:

H: 217°  S: 89%  B: 91%

デザイナーからHSB値を受け取ったら、CSS記述前にHEXまたはRGBに変換してください。

HEX ↔ RGB:変換の仕組み

HEXからRGBへ:2桁ずつ分割し、それぞれを16進数から10進数に変換。

#1a73e8
  1a = 26
  73 = 115
  e8 = 232
→ rgb(26, 115, 232)

RGBからHEXへ:各チャンネルを10進数から16進数に変換し、2桁になるようゼロ埋め。

rgb(26, 115, 232)
  26 = 1a
 115 = 73
 232 = e8
→ #1a73e8

コンバーターは両方向を即座に処理します。暗算は不要です。

RGB ↔ HSL:変換の仕組み

RGBとHSLの変換には、チャンネルを[0, 1]に正規化し、最小値/最大値を求め、色相・彩度・明度にそれぞれ異なる公式を適用する処理が必要です。コードにすると約20行になります。手動計算よりツールを使いましょう。

重要なのはメンタルモデルです:

  • Hue(色相) = どの色の系統か(赤・黄・緑・シアン・青・マゼンタ)
  • Saturation(彩度) = どれだけ鮮やかか(0%でグレー)
  • Lightness(明度) = 黒(0%)か白(100%)にどれだけ近いか

実践的なユースケース

カラースケールの構築

ブランドのHEXを出発点にHSLに変換し、明度だけを変化させます:

--brand-100: hsl(217, 80%, 95%);  /* 最も明るいティント */
--brand-300: hsl(217, 80%, 75%);
--brand-500: hsl(217, 80%, 51%);  /* ベースカラー */
--brand-700: hsl(217, 80%, 35%);
--brand-900: hsl(217, 80%, 20%);  /* 最も暗いシェード */

Lだけを変えることで知覚的に一貫したティントとシェードが生成されるため、このテクニックが機能します。

デザインからのカラー引き継ぎ

FigmaとPhotoshopはHSBがデフォルトです。デザイナーから H:217 S:89 B:91 を受け取ったとき:

  1. コンバーターのHSB入力に貼り付ける
  2. HEX出力をコピー
  3. CSSで使用

コントラスト比のチェック

前景色と背景色の両方をRGBの輝度値に変換し、WCAGの公式を使います。ほとんどのコントラストチェッカーはHEX入力を受け付けます——コンバーターがどんな元フォーマットからでも素早くHEXに変換します。

CSSカスタムプロパティ

CSS変数を使う場合、HSLはプリプロセッサなしでバリアントを作るのに最も簡単なフォーマットです:

:root {
  --primary-hue: 217;
  --primary-sat: 80%;
  --primary: hsl(var(--primary-hue), var(--primary-sat), 51%);
  --primary-dark: hsl(var(--primary-hue), var(--primary-sat), 35%);
}

カラーフォーマット早見表

フォーマット用途
HEX#1a73e8HTML、CSS、SVG
RGBrgb(26, 115, 232)CSS、Canvas
RGBArgba(26, 115, 232, 0.8)CSS(透明度付き)
HSLhsl(217, 80%, 51%)CSS、カラースケール
HSLAhsla(217, 80%, 51%, 0.8)CSS(透明度付き)
HSB/HSVH:217 S:89 B:91Figma、Photoshop

よくある間違い

HSLの明度とHSBの輝度を混同する:HSLのL=50%は「純粋な」色です。HSBのB=100%はフル彩度の純粋な色です。同じスケールではありません。

不透明度を忘れるrgb() は不透明です。デザインで透明度を使う場合は rgba() または hsla() が必要です。

JavaScriptでの省略形HEX#f60 は有効なCSSですが、一部のJavaScriptのカラーパースライブラリでは有効ではありません。不確かな場合は #ff6600 に展開してください。


ブラウザのDevToolsとデザインアプリを行き来するのをやめましょう。カラーコンバーターを使う →