HSLとは?色相・彩度・明度で表すカラーコードの仕組みに関係する色を使ったアイキャッチ

HSLとは?色相・彩度・明度で表すカラーコードの仕組み

HSLはHue(色相)・Saturation(彩度)・Lightness(明度)で色を表すCSSの色指定方法です。角度・%の読み方、RGB・HEXとの違い、補色、透明度、使いどころを解説します。

カラーコード・デジタル

はじめて読む方へ|まず知っておきたい基本

この記事で出てくる基本用語を先に確認します。ここだけ押さえておけば、専門知識がなくても本文を読み進められます。

RGBとは

RGBはRed・Green・Blueの3つの光を組み合わせて色を表す方式です。一般的な8bit表現では各成分を0〜255で示します。

HEXとは

HEXは、Webでよく使う色の表記で、#RRGGBBの6桁でRGBの各成分を16進数で表します。たとえば #FF0000 は赤です。

HSLとは

HSLは色相(Hue)・彩度(Saturation)・明度(Lightness)でRGB色を表し直した形式です。色の方向や鮮やかさを直感的に確認しやすい表現です。

HSLは、色をHue(色相)・Saturation(彩度)・Lightness(明度)の3要素で表す方法です。CSSでは hsl() を使い、色相を角度、彩度と明度をパーセントで指定します。

まず結論

hsl(210 80% 50%) なら、210°付近の青系・彩度80%・明度50%という意味です。HEXやRGBと同じくCSSでsRGB色を指定できますが、人が「色相・鮮やかさ・明るさ」を考えながら調整しやすいのが特徴です。

この記事の色

記事テーマを視覚的に理解するための色見本です。概念に固定の公式色がない場合は教材表示として扱います。

← 左右にスライドできます →
教材色 1#3F6682
教材色 2#DDB04F
教材色 3#70A477
教材色 4#C96567
教材色 5#7862A1

HSLとは?

HSLは Hue / Saturation / Lightness の略です。MDNでは hsl() をsRGB色空間の色を色相・彩度・明度で表す関数として説明しています。citeturn612865search6

要素 意味 CSSでの範囲
H Hue|色相 角度。0°と360°は赤
S Saturation|彩度 0%=無彩色、100%=最大彩度
L Lightness|明度 0%=黒、50%=基準、100%=白

色相Hは0〜360°の色相環

CSSのHSLでは0°から赤が始まり、黄・緑・シアン・青・マゼンタを通って360°で再び赤へ戻ります。MDNもこの循環を説明しています。citeturn612865search10

  • 0°:赤
  • 60°:黄
  • 120°:緑
  • 180°:シアン
  • 240°:青
  • 300°:マゼンタ

彩度Sは鮮やかさの割合

0%では色相の違いが見えなくなりグレーになります。100%に近づくほど、そのHSLモデル内では鮮やかな色になります。ただし、HSLの彩度はCIELABやOKLChの彩度・クロマと同じ尺度ではありません。

明度Lは「知覚的な明るさ」そのものではない

HSLのLightnessは0%で黒、100%で白、50%で最も色みが出やすい値です。しかし、同じL=50%でも黄色と青が人間に同じ明るさに見えるわけではありません。HSLは編集しやすい表現であり、知覚均等な色空間ではありません。

HSLのLとLab/OKLabのLを同一視しない

名前はどちらもLightnessですが、計算方法と性質が異なります。色差や知覚的な比較にはLab・OKLab系の方が向く場面があります。

HSLとHEX・RGBの違い

方式 考え方 向く用途
HEX RGBを16進数で記述 固定色を短く書く
RGB 赤・緑・青の強さ 画面色・数値処理
HSL 色相・彩度・明度 色相や濃淡を調整

補色は色相を180°ずらす目安にできる

MDNではHSL色相環上の反対側を求める方法として、色相値に180°を足し引きする例を示しています。citeturn612865search6 ただし、補色だから必ず見やすい・美しいとは限りません。彩度・明度・面積比も調整が必要です。

透明度はスラッシュで指定できる

color: hsl(210 80% 50% / 0.5);

最後の値はアルファ値です。0が完全透明、1が完全不透明です。現在は hsla() も hsl() の別名として扱われ、MDNは hsl() の使用を案内しています。citeturn612865search6

HSLが便利な場面

  • 同じ色相で明るい色・暗い色を作る
  • 彩度だけを下げてくすませる
  • テーマカラーから段階色を作る
  • 色相を一定角度ずらして配色候補を作る

よくある質問

HSLのHは0〜360しか使えませんか?

色相は角度なので循環します。CSSでは角度単位や数値を扱え、360°と0°は同じ位置です。

HSLとHSVは同じですか?

違います。どちらも色相・彩度を持ちますが、HSLはLightness、HSVはValueを使い、計算と色の分布が異なります。

HSLの方がRGBより正確ですか?

同じsRGB色を別の座標で表しているため、単純にどちらが正確とは言えません。用途に合わせて使い分けます。

参考資料