本文へスキップ
Codex DesignBETA

OKLCH カラー変換ツール。

色を HEX、rgb()、hsl()、oklch() のいずれかで入力すると、4 つの形式すべてで表示され、そのままコピーできます。OKLCH の色が sRGB の画面で表示できる範囲の外にある場合は、ページが知らせます。ブラウザ内で動くので、入力した内容がアップロードされることはありません。

sRGB の色域内です。

HEX
#3A81F6
RGB
rgb(58 129 246)
HSL
hsl(217 91% 60%)
OKLCH
oklch(0.62 0.19 260)

ブラウザ内で動作します。ここに追加したものはアップロードも保存もされません。

色を OKLCH に変換する方法

  1. 色を入力します。 使える形式は、HEX(#3B82F6、#38f、または # なし)、rgb(59 130 246) または rgb(59, 130, 246)、hsl(217 91% 60%)、oklch(0.62 0.19 260) です。カンマは省略でき、CSS で使える場所ではパーセントも使えます。入力欄の横のカラーピッカーも使え、選んだ色が oklch() の値として入力欄に入ります。ページを開いた時点では oklch(0.62 0.19 260) が入っています。
  2. 4 つの形式を確認します。 HEX、RGB、HSL、OKLCH が、色見本と並んで表示されます。入力欄の内容を読み取れないときは、入力欄が赤くなり、使える形式がページに表示されます。
  3. 入力欄の下の色域のメッセージを確認します。 色が sRGB の色域内にあるか、外にあるかが表示されます(詳しくは下記)。
  4. コピーします。 必要な形式のコピーボタンを押します。

形式は、現在の CSS やフレームワークが書く形で表示されます。rgb(59 130 246) はスペース区切り、hsl(217 91% 60%) は整数、oklch(0.623 0.188 259.815) は小数点以下 3 桁で、shadcn/ui や Tailwind v4 と同じ書き方です。グレーには彩度も色相もないので、oklch(0.6 0 0) になります。

対応しているのは HEX、rgb()、hsl()、oklch() だけです。red のような CSS の色名や、color(display-p3 …) のような他の関数には対応しておらず、rgb(59 130 246 / 50%) のような透明度の指定は無視されます。

sRGB の外にある色

OKLCH では、sRGB で表示できない色も表せます。sRGB は、HEX、rgb()、hsl() の背後にある色空間です。非常に鮮やかな緑の oklch(0.7 0.4 150) を試してみてください。sRGB の色域の外にあるという警告が表示され、ほかの形式には、sRGB で表示できる最も近い色(ここでは #00BE58)が表示されます。この色は、明度と色相を保ったまま、収まるまで彩度を下げて求めます。OKLCH の行と色見本には入力した OKLCH の値がそのまま使われるので、広色域の画面では、HEX よりも多くの色が表示されることがあります。

HEX、rgb()、hsl() で入力した色は必ず sRGB の中にあるので、警告が出ることはありません。

Codex で使う

Codex は、目にした色の形式をそのまま真似ます。Tailwind v4 や shadcn/ui のプロジェクトではそれが OKLCH なので、HEX ではなくこのページの oklch() の値を渡し、その形式のままにするよう頼みましょう。OKLCH には、Codex が一度に 1 つだけを変えられるという利点もあります。明度だけを下げれば、同じ色のより暗いシェードになります。

色を OKLCH のまま保つ
ブランドカラーは [oklch(0.62 0.19 260)] です。globals.css で --primary にこの色を設定してください。hover と active の状態には、彩度と色相は保ったまま、明度だけを 0.05 と 0.1 下げた、より暗いバージョンを作ってください。色はファイルのほかの部分と同じようにすべて oklch() で書き、HEX や hsl() の値は追加しないでください。

よくある質問

無料ですか?

はい。無料で登録も不要、変換できる色の数にも制限はありません。

入力した内容はアップロードされますか?

いいえ。変換はブラウザ内で行われ、入力した内容は送信も保存もされません。サイトが記録するのはツールが使われたことだけで、色は記録しません。

どのように変換していますか?

リニア sRGB を経由して、Björn Ottosson が公開した OKLab の式で変換し、そのあと OKLab を、彩度と色相を持つ OKLCH に変換します。HEX、rgb()、hsl() は整数、OKLCH は小数点以下 3 桁で表示されるため、色を HEX に変換して戻すと、OKLCH の値の末尾の桁が変わることがあります。

shadcn/ui と Tailwind v4 はなぜ OKLCH を使うのですか?

Tailwind v4 の標準パレットは OKLCH で書かれており、shadcn/ui も、Tailwind v4 に対応した際に、テーマ変数を HSL から OKLCH に移しました。理由は 3 つあります。1 つ目は、OKLCH の明度が見た目の明るさに近いことです。明度が同じ 2 色は同じ明るさに見えますが、HSL ではそうなりません。HSL の明度 50% の黄色と青は、見た目がまったく違います。2 つ目は、明度や彩度を変えても色相が安定して見えることです。そのため、明るい色から暗い色までのシェードを並べても、1 つの色として読めます。3 つ目は、OKLCH は sRGB を超える色も、それを表示できる画面向けに表せることです。HEX、rgb()、hsl() にはできません。

続けて読む

Codex Design は Codex 向けの独立したプラグインです。OpenAI との提携や、OpenAI による承認はありません。