ブランドカラーのHEXを変換する
color: #6c8cff;color: rgb(108 140 255);color: hsl(228 100% 71%);color: oklch(67% 0.16 268);4つの宣言はすべてまったく同じ青になります。デザイントークンとしてどれを採用するかは、後からどう調整したいかでほぼ決まります。
HEX、RGB、HSL、OKLCH をライブプレビューで変換。
最終更新
#B18CFFrgb(177, 140, 255)hsl(259, 100%, 77%)oklch(72.2% 0.165 296.9)カラーコンバーターは、HEX・RGB・HSL・OKLCHといった主要なフォーマットで指定した色を、他のすべての表記に変換して並べて見せてくれるツールです。ブランドカラーを揃えたいとき、CSSカスタムプロパティをデバッグしたいとき、ライト/ダークモードのパレットを比較したいとき、アクセシビリティのコントラストを確認したいとき——デザイナーやフロントエンド開発者が日常的に使う道具です。
CSSにはいくつかのカラーモデルがあり、それぞれに得意分野があります。HEXとRGBは赤・緑・青の光の量で色を表現します。HSLは色相・彩度・明度に分かれていて直感的。そしてOKLCHは「数値の変化量と人間が感じる変化量がほぼ一致する」知覚的に均一なモデルで、ティントやシェード、アクセシブルなパレット生成にとくに向いています。
アクセシビリティを決めるのは色そのものではなく「コントラスト」です。WCAGはテキストと背景のコントラスト比を定義していて、本文サイズなら最低4.5:1、大きな見出しなら3:1が目安。優れたカラーツールはこの2つの数値を色の横に表示してくれるので、うっかりアクセシブルでないUIをリリースしてしまう事故を防げます。
#ff8800はrgb(255, 136, 0)とまったく同じ色。Lを10%動かせば、色相が何であってもほぼ同じだけ明るさが変わって見えます。HSLではこうはいきません。HEX・RGB・HSL・OKLCHのいずれかの値を貼り付けるか、スポイトやネイティブのカラーピッカーから直接拾います。
同じ色がサポート対象のすべての形式で表示されます。各値をクリックすればクリップボードにコピーされます。
明度スライダーを動かせばティント(明るく)やシェード(暗く)を作れます。視覚的に等間隔のステップが欲しいときはOKLCHの明度を使うのがコツ。
コントラストパネルが、白背景・黒背景それぞれに対するWCAG比を表示します。本文なら4.5以上、大きな見出しなら3以上が目安。
プロジェクトに合った形式を選びましょう。デザイントークンならHEX、モダンなパレット設計ならOKLCH、calc()で操作したいならHSL、というのが定番です。
実務でよく出くわす5つの形式を、同じ色(オレンジ)の例で並べました。<color>の網羅的なリファレンスはMDNの<color>ページが決定版です。
| 形式 | 構文 | 例(オレンジ) |
|---|---|---|
| HEX | #RRGGBB または #RGB | #ff8800 |
| HEX + アルファ | #RRGGBBAA | #ff880080(透過50%) |
rgb() | 赤・緑・青を0〜255で指定 | rgb(255 136 0) |
rgb() + アルファ | モダンなスラッシュ構文 | rgb(255 136 0 / 0.5) |
hsl() | 色相0〜360°、彩度0〜100%、明度0〜100% | hsl(32 100% 50%) |
oklch() | 明度0〜100%、彩度(chroma)、色相 | oklch(74% 0.18 50) |
| 名前付き色 | CSSの定義済みカラー名(全147色) | darkorange |
color: #6c8cff;color: rgb(108 140 255);color: hsl(228 100% 71%);color: oklch(67% 0.16 268);4つの宣言はすべてまったく同じ青になります。デザイントークンとしてどれを採用するかは、後からどう調整したいかでほぼ決まります。
--brand: oklch(67% 0.16 268);--brand-light: oklch(78% 0.12 268);--brand-lighter:oklch(88% 0.08 268);--brand-dark: oklch(55% 0.18 268);--brand-darker: oklch(40% 0.16 268);色相(268)と彩度を固定して明度だけ動かすと、各段階の差が*見た目にも*等間隔なパレットが作れます。HSLだとこの均一さは保証されません。
background: rgb(108 140 255 / 0.5);background: #6c8cff80;/ 0.5はモダンCSSでアルファを指定する書き方。HEXの場合は末尾に2桁のアルファバイトを足します(80がだいたい50%に相当)。
hsl(60 100% 50%)(黄)とhsl(240 100% 50%)(青)はLが同じでも、見た目の明るさはまったく違います。視覚的な比較にはOKLCHを使いましょう。#abc)が6桁形式(#aabbcc)の省略表記であることを忘れがち。rgba(...)を使ってしまい、モダンなrgb(... / alpha)構文を使わない。どちらも動きますが、スラッシュ構文が現行仕様で、ツール上の見やすさも上です。#RR、GG、BB)に分けて、それぞれを16進数から10進数に変換します。あるいは、値をカラーコンバーターに貼り付ければRGBの結果がその場で表示されます。Lが同じでも見た目の明るさが揃いません。OKLCHは知覚的に均一なので、ティントやシェード、アクセシブルなパレットを一貫した間隔で作るのに向いています。