開発者 🔒 ブラウザ内で動作 — データは送信されません

カラーコンバーター

HEX・RGB・HSL・HSV・CMYK・OKLCHを変換し、パレット生成とコントラスト確認 — ブラウザ内で。

入力色
変換する色を入力してください…

カラー変換ツール - HEXとRGBとHSLをオンラインで相互変換

デザインツールが渡してくる色の形式、CSSが求める形式、canvas APIが求める形式はそれぞれ違います。この無料のカラー変換ツールは、よく使われる3つの記法 #0A84FF、rgb(10,132,255)、hsl(210,100%,52%) のいずれを入力しても、必要な形式の正確な等価値を返します。

値を貼り付け、出力形式を選び、変換をクリックするだけです。インストールも会員登録も不要で、変換はブラウザー内で行われるためオフラインでも使えます。

図:HEXカラー #0A84FF を 0A・84・FF の組に分けると10進数で10・132・255、つまり rgb(10, 132, 255)、HSLでは hsl(210, 100%, 52%)。#R0A10G84132BFF255チャンネルごとに16進数2桁0x84 = 8 × 16 + 4 = 132各チャンネルは0〜255rgb(10, 132, 255)hsl(210, 100%, 52%)
HEXカラーは赤・緑・青それぞれ2桁の16進数の組です。#0A84FF は rgb(10, 132, 255) で、同じ色をHSLで書くと hsl(210, 100%, 52%) になります。

3つの形式と、それぞれが得意な場面

形式書き方向いている用途
HEX#0A84FFデザインの受け渡し、ブランドガイドライン、色を書き留めたり貼り付けたりする場面全般
RGBrgb(10, 132, 255)canvas、SVG、画像処理、チャンネルを操作するコード
HSLhsl(210, 100%, 52%)デザインシステム。ホバー・無効状態・ダークモード用に明度だけを調整できます

このツールが返すすべての形式

貼り付けたものが何かを指定する必要はありません。自動判別 は # のあるHEXもないHEXも、rgb() と hsl() のカンマ区切りとスペース区切りの両方も、oklch()、hwb()、lab() といった新しい記法も、CSSの148色の色名もすべて読み取ります。HEX・RGB・HSLに加えて、カラーピッカー向けのHSV、印刷に回すためのCMYK、知覚的に均等なデザイントークン向けの oklch()、そして最も近いCSS色名も表示されます。アルファチャンネル(rgba()、hsla()、8桁HEX)は切り捨てずにそのまま引き継ぎます。

色を変換する手順

  1. 任意の記法で色を貼り付けるか、カラーピッカーで選びます。形式は 自動判別 が判別します。対応ブラウザー(デスクトップ版のChromeやEdgeなど)では、画面から取得で画面上の任意のピクセルの色を拾えます。非対応のブラウザーではこのボタンは表示されません。
  2. 形式 タブにHEX、RGB、HSL、HSV、CMYK、OKLCHが並びます。各行の横のボタンでコピーできます。色名も表示されます。CSSの名前付きカラーと完全に一致すればCSS色名、そうでなければ最も近い色名です。
  3. パレット タブでは、明度違いのスケールに加えて補色・類似色・三色配色・四色配色が手に入ります。
  4. コントラスト タブで背景色を指定すると、WCAGのコントラスト比とAA・AAAの判定が読み取れます。
  5. ランダム で色を試し、クリア で次の値の前にリセットします。

HEXカラーコードの仕組み

HEXカラーは16進数2桁の組を3つ並べたもので、赤・緑・青にそれぞれ1組ずつ対応し、各組は00からFF、10進数でいえば0から255の範囲を表します。#FF0000は純粋な赤、#000000は黒、#FFFFFFは白です。3組とも同じ数字が繰り返される場合は短縮形が使え、#FFFは#FFFFFFを意味します。4桁や8桁のコードはアルファチャンネルを加えるため、#0A84FF80は同じ青のおよそ50%の不透明度になります。

HSLのほうが考えやすい理由

HSLは人が色を語るときと同じ方法で色を表します。色相は色相環上の角度、彩度は鮮やかさ、明度は白や黒への近さです。そのためパレットを組み立てるには実務的な選択になります。ブランドの色相を取り、彩度は保ったまま明度だけを動かせば、ホバー状態、無効状態、境界線の淡い色、ダークモード用の色が、同じ family に属することがはっきり分かる形で生まれます。同じことをHEXでやろうとすると、6桁を勘で決めることになります。

1色からパレット全体を作る

パレット タブは、ブランドカラー1色から実務で必要になる一式を作ります。明度スケールは色相と彩度を保ったまま明度だけを11段階動かし、多くのデザインシステムと同じく50から950まで番号が付くので、ホバー・境界線・無効状態・ダークモードの各バリエーションが同じ family に属していることが一目で分かります。CSSとしてコピー を押すと、スケール全体がカスタムプロパティとしてクリップボードに入り、そのまま :root に貼り付けられます。

スケールの下には色相環の配色があります。補色(正反対の色相)、類似色(30度隣)、三色配色と分裂補色(バランスの取れたアクセント向け)、そして四色配色です。スウォッチをクリックするとHEXがコピーされ、ダブルクリックするとその色が現在の色になり、そこから新しいパレットを組み立てられます。

公開前にコントラストを確認する

コントラスト タブは、選んだ色と任意の背景色とのWCAGコントラスト比を測ります。比率は小数第2位まで表示され、各しきい値に合格・不合格が付きます。AA 通常の文字は4.5:1、AA 大きな文字は3:1、AAA 通常の文字は7:1、AAA 大きな文字は4.5:1、アイコンや入力欄の枠のようなUIコンポーネントは3:1です。入れ替えを押すと、文字色と背景色がワンクリックで入れ替わります。ライブサンプルが16pxと24px太字での見え方を示します。本文には足りない比率でも、見出しなら問題ないことがあるからです。

基準に届かない組み合わせでは、同じ色相のまま4.5:1に達する最も近い明度を提案します。ブランドカラーを捨てずにコントラストだけを直せます。半透明の色は先に背景と合成してから測ります。読者が実際に見るのは合成後の色であり、rgba() の生の値で測ると実際より良い結果が出てしまうためです。

色の変換が必要になる場面

  • デザインファイルのブランドカラーをCSSカスタムプロパティへ移すとき。
  • RGBを好むcanvasのfillStyleやSVGの色属性を設定するとき。
  • クライアント間で最も安全な記法がHEXであるHTMLメールのテンプレートを作るとき。
  • デザインシステム向けに、明るい色と暗い色の一貫したセットを生成するとき。
  • 色相を均等に配置する必要があるグラフやダッシュボードのパレットを選ぶとき。
  • スクリーンショットやブランドPDFの色を、コードで使える値に翻訳するとき。

色と読みやすさ

色を変換しても、その上の文字が読めるかどうかは分かりません。コントラストは相対輝度で決まり、WCAGは通常の本文で4.5対1以上、大きな文字で3対1以上を求めています。HSLの明度は最初の目安として役立ちます(明度が近ければコントラストはまず足りません)。そのうえで コントラスト タブが、どの色の組み合わせでも公開前に正確な答えを出します。

知っておきたい細かな点

  • 丸め。HSLは整数の度とパーセントを使うため、HEXからHSLへ変換して戻すとチャンネルが1ずれることがあります。どれか1つの形式を正とする運用にしてください。
  • アルファ。rgba()と8桁HEXは不透明度を持ちますが、6桁HEXでは表現できません。
  • RGBのパーセント表記。rgb(100%, 0%, 0%)は有効なCSSで、rgb(255,0,0)と同じ意味です。
  • 広色域。oklch()やcolor(display-p3 ...)といった新しいCSS関数は、HEXでは表せないsRGB外の色を表現できます。
  • 色名。tomatoのようなCSSキーワードは固定のHEX値に対応しますが、数が限られ、体系に組み込みにくい表現です。

ローカルで動作します

変換はブラウザー内で行う単純な計算です。貼り付けた色がアップロードされることはないため、未公開のブランドパレットを扱うときにも安心です。

HEXからRGBへの計算式と、コードでの変換

HEXコードは16進数で書かれた3バイトにすぎません。#0A84FF を 0A・84・FF に分け、各ペアを10進数に直せば(0A = 10、84 = 132、FF = 255)rgb(10, 132, 255) になります。逆方向は各チャンネルを2桁の16進数で書き、16未満なら先頭を0で埋めます。

言語HEX→RGBRGB→HEX
JavaScriptparseInt(hex.slice(1, 3), 16) で赤、以下 3-5、5-7'#' + [r, g, b].map(c => c.toString(16).padStart(2, '0')).join('')
Pythontuple(int(h[i:i+2], 16) for i in (0, 2, 4))'#%02x%02x%02x' % (r, g, b)
PHPsscanf('#0A84FF', '#%02x%02x%02x')sprintf('#%02x%02x%02x', $r, $g, $b)
CSS(最近のブラウザ)rgb(from #0A84FF r g b)変換不要 - どちらの表記も有効な色の値

関連ツール

フロントエンドの作業は色だけで終わりません。デザイントークンはJSON整形ツールで整え、小さなアイコンはBase64エンコーダーでデータURIに埋め込み、スタイルシート内のカラーコードは正規表現テスターで洗い出し、画像は画像変換ツールで変換できます。色をグラデーションや影に仕上げるには、CSSジェネレーターを使ってください。