CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSでHSL・HSLaカラーを使う方法 ― RGBやHexとの違いを解説

CSSでHSLとHSLaカラーを使用する方法と、RGB/RGBaやHexとの違いについて詳しく解説します。

HSLとHSLaは、CSSにおける色の指定方法のひとつです。Hex(16進数)やRGB/RGBaの代わりに使うことで、より実世界の感覚に近い形でウェブサイトに色を適用できます。

HSLとHSLaはCSSの世界では比較的新しい存在ですが、色彩の分野自体では1970年代から存在してきた歴史ある仕組みです。

HSLとHSLaの違い

  • HSL:Hue(色相)、Saturation(彩度)、Lightness(輝度)の略
  • HSLa:Hue、Saturation、Lightness、Alpha(アルファ)の略

HSLaはHSLを拡張したもので、透明度(不透明度)を指定できるアルファチャンネルが追加されています。この関係は、RGBとRGBaの関係とまったく同じです。

HSL/HSLaの基本的な使い方

CSSでは、HSLとHSLaを使うために hsl()hsla() という2つのカラーファンクションが用意されています。

HSLの基本構文

div {
    background-color: hsl(0, 100%, 50%); /* 赤 */
}

HSLaの基本構文

div {
    background-color: hsla(0, 100%, 50%, 0.6);
}

4番目の値(0〜1)で透明度を指定でき、0に近いほど透明、1に近いほど不透明になります。

HSLはHexやRGBより優れているのか?

「HSLはRGBやHexよりも優れているのか?」と疑問に思う方も多いでしょう。CSSにHSLが導入されたのには、それなりの理由があるはずですよね。

結論から言えば、HSLがHexやRGBより優れているとは一概には言えません(そう主張する人もいますが)。どちらが適しているかは、何を実現したいかによって変わります。

HSLの背景にある考え方は、「実世界を模倣した直感的な色形式を提供する」というものです。HSLでは、色そのものを変えずに、明るさ(Lightness)を調整するだけで色の見え方を変えることができます。

HexやRGBでは、これは不可能です。

身近な例で考える「明るさ」と「色」の関係

例えば、今いる部屋の色を見てみてください。あなたが知覚している色は、次のような光源から届く光の影響を受けた結果です。

  • 窓から入る光
  • ランプや照明
  • ろうそくの炎
  • 複数の光源の組み合わせ

今、窓から自然光だけが差し込んでいるとしましょう。そこでカーテンを閉めると、部屋から明るさが失われ、部屋中のすべての色の見え方が変化します。

カーテンを閉めた後は、部屋のあらゆる物の色が、閉める前よりも暗いトーンに見えるはずです。

しかし、ここが最も重要なポイントです。

明るさを取り除いても、部屋の中の物の「実際の色」は変わりません。変わるのは、その色の知覚が「明るいバージョン」から「暗いバージョン」へと移るということです。

RGB/HexとHSLの決定的な違い

カーテンを開けた状態と閉じた状態で部屋の写真を撮り、それぞれの色の値をRGB形式で取得してみてください。撮影前後で、まったく別の2つの色の値が得られます。Hexの場合も同様です。

ところがHSLでは、2つの異なる色として記録されるのではなく、「同じ色・異なるLightness(輝度)値」として表現されます。

具体例を挙げましょう。部屋にブラウン系のウォールナット材のテーブルがあるとします。カーテンを開けた状態と閉じた状態で1枚ずつ写真を撮ると、

  • 前後の写真のHex値・RGB値は、それぞれ異なる色の値になります。
  • 前後の写真のHSL値は、同じ色でありながら、Lightnessの値だけが異なります。

可読性に関する議論

次のような意見をよく耳にします。

  • HexとRGBはマシンにとって読みやすい
  • HSLは人間にとって読みやすい

3つの色指定方法すべてを理解し、実務経験がある人にとっては、この主張はおそらく正しいでしょう。ただし、人によって体験は異なるかもしれません。

「人は最も多く行っていることを最もうまくこなせる」とよく言われます。HexやRGBを長年使ってきてHSLの経験がゼロであれば、最初はHSLの方がかえって読みにくいと感じることもあるでしょう。

まとめ:HSLがもたらす違い

  • HSLは、色そのものを変えずに、色の明るさ・暗さだけを調整できます。
  • RGBとHexは、明るさ・暗さを変えると同時に色そのものも変わってしまいます。

デザインシステムやテーマカラーのバリエーション(ホバー時の暗色、押下時の淡色など)を作りたい場合、HSLは特に強力な選択肢となります。ぜひ自分のプロジェクトで試してみてください。

  1. Windows 10で絵文字を使う方法|ショートカットキー・タッチキーボード・コピー&ペーストを徹底解説

    中国語、スペイン語、英語――世界で最も話されている言語は数多くありますが、すべての人をつなぐ言語はひとつしかありません。それが「絵文字」です。普段はスマートフォンで使っている人がほとんどですが、実はデスクトップPCでも問題なく活用できます。その理由は、Windows 10に絵文字機能が標準搭載されているから。もう言葉だけで表現する必要はありません。ナスの絵文字も、カエルの顔も、かぼちゃも、簡単に挿入できるのです。この記事では、Windows 10で絵文字を有効化して使う方法を詳しく解説します。Windowsにおける絵文字の歴史「絵文字」は文字通り「絵」を意味する「文字」で、1990年代後半に日

  2. UbuntuにGIMPをインストールして使いこなす方法【導入から活用術まで】

    Linuxが多くのユーザーに愛されている理由のひとつは、そのオープンソースの開発文化です。高価なクローズドソースのソフトウェアにお金をかけられなくても、質の低い製品で我慢する必要はありません。オープンソースコミュニティが無料で高品質なアプリを開発・公開してくれているからです。 その代表格がGIMP(GNU Image Manipulation Program)です。UbuntuマシンにGIMPをインストールすれば、スクリーンショットの撮影や画像の切り抜きといった簡単な作業から、画像作成、アニメーション、スクリプト対応などの本格的な作業まで、画像関連のほとんどのタスクをこなせるようになります。