カラーコード変換ツール

HEX、RGB、HSLのカラーコードを瞬時に相互変換。カラーピッカーつき、無料。

1,054回閲覧

HEX
RGB
HSL

仕組み

この3つの表記法はすべて、まったく同じ色を表しています — 単に、画面がその色を作るために混ぜる赤・緑・青の光の量を異なる方法で符号化しているだけです。RGBは各チャンネルを0から255までの10進数として保存します。HEXは、そのRGBを16進数で書いたものにすぎません。各チャンネルは2桁の16進数のペアになるため、rgb(255, 128, 0)#ff8000になります(ff = 255、80 = 128、00 = 0)。この変換では色の情報は一切失われず、追加もされません — 純粋な表記の違いです。

HSLは違います。色相・彩度・明度という3つの知覚軸に沿って色を再定義したもので、RGBチャンネルから数学的に導き出されます。色相(0〜360°)はカラーホイール上の角度で、どのチャンネルが最大か、チャンネル間の差がどれだけかから計算されます。#ff8000の場合、赤が最大(255)、青が最小(0)であり、60 × ((緑 − 青) / (最大 − 最小)) という式は60 × (128/255) ≈ 30° となり、オレンジの帯域に位置します。明度は最も大きいチャンネルと最も小さいチャンネルの平均です — ここでは(255 + 0) / 2 ≈ 50%です。彩度は、その明度においてグレーからどれだけ離れているかを測るもので、ここでは100%です。1つのチャンネルが最大強度、もう1つが0だからです。まとめるとhsl(30, 100%, 50%)と表され、#ff8000とまったく同じオレンジを、別の方法で記述したものになります。

これこそ、デザイナーがRGBよりもHSLを好む理由です。色相を保ったまま色を20%暗くしたい場合、HSLでは明度の値を下げるだけで済みますが、RGBでは3つのチャンネルすべてを比例的に再計算する必要があります。カラーピッカーで色を選ぶか、任意のHEXコードを入力すれば、このツールは両方の表記に瞬時に変換します。

知っておくべきこと

3桁の短縮HEX(#f80)や、アルファチャンネルを持つ4桁・8桁の形式(#ff8000ccrgba(255,128,0,0.8))もよく使われる形式ですが、このツールは標準的な6桁の不透明HEXと、それに対応するRGB/HSLを扱います。orangeのような色名はCSS仕様で定められた固定のHEX値に対応していますが、すべての色名が覚えやすいHEXコードを持つわけではありません。これも開発者が両者を行き来して変換する理由の1つです。あるモニターでは同一に見える2色が、別のモニターではわずかに異なって表示されることがあります。これは、一般的なディスプレイが色域やキャリブレーションにおいて異なるためで、HEX/RGB/HSLの値は正確な数値であっても、それが生み出す光がすべての画面で同一になる保証はありません。テキストと背景の色を選ぶ際は、HSLの明度の値が知覚的なコントラストと同じではないことに注意してください — 彩度の高い黄色と彩度の高い青は同じL値を持ちながら、白の背景に対してはまったく異なって見えることがあります。そのため、アクセシビリティのチェックにはL値だけでなく、適切なコントラスト比の計算を用いるべきです。

CSSはrgb(100%, 50%, 0%)のようなパーセンテージベースのRGBも受け付け、これはrgb(255, 128, 0)と完全に等価です — 色を0〜255の整数ではなくパーセンテージで表すデザインツールを扱う際に便利です。oklch()lab()といった新しいCSSのカラー関数は、HSLよりさらに一歩進んでいます。これらは知覚的に均一になるよう設計されており、明度における等しい数値の変化がすべての色相にわたって人の目に等しく異なって見えることを意味しますが、これは通常のHSLでは完全には保証されません。とはいえ、日常のWeb・UI制作においては、HEX、RGB、HSLは今なお、ほぼすべてのコードベース、スタイルガイド、デザインツールで出会う3つの基本形式です。

よくある質問

HEXカラーをRGBに変換するにはどうすればいいですか?

HEXコードを2桁ずつ3つに分割し、それぞれを16進数として読みます。#ff8000の場合、ff=255(赤)、80=128(緑)、00=0(青)となり、rgb(255, 128, 0)になります。このツールは、色を入力または選択すると同時に瞬時に変換を行います。

3桁のHEXコード(#f80など)には対応していますか?

はい。短縮表記は各桁を2倍にして完全な6桁の形式に展開されます — #f80は#ff8800になります — このツールは短縮形と完全形のどちらも同じように受け付けます。

RGBよりもHSLを使うべきなのはどんなときですか?

すでに持っている色の、より明るい・より暗い・よりくすんだバリエーションが必要なときはいつでもです。HSLでは明度または彩度という1つの値だけを変更すれば色相はそのまま固定されますが、RGBでは同じ調整を行うのに3つのチャンネルすべてを比例的に再計算する必要があります。CSSはhsl()を直接受け付けるため、これは単なるデザイン段階の便宜にとどまりません。

HSLの色相の値は実際どのように計算されるのですか?

色相は、RGBチャンネル間の角度的な関係から求められます。この式は、どのチャンネルが最大でどれが最小か、そしてそれらの差を調べ、それを0〜360°のカラーホイールに対応づけます。#ff8000(255, 128, 0)の場合、赤が最も高く青が最も低いため、色相は30°となり、ちょうどオレンジの範囲に収まります。

HEX、RGB、HSLの間で変換しても色の精度は失われませんか?

失われません — HEXとRGBはまったく同じ数値の2つの表記であり、HSLはその同じ数値を決定論的かつ可逆的に変換したものです。何度往復して変換しても、元の色に正確に戻ります。どちらの方向にも丸め誤差は生じません。

コメント

まだコメントはありません — 最初のコメントを書いてみましょう!

関連ツール