本文へスキップ

CSSグラデーション生成ツールベータ

線形・放射状・円錐形のグラデーションを見ながら作り、background用CSSをそのままコピーできます。OKLCH補間で中間色がくすまないグラデーションも作れます。

プリセット

種類
deg

カラーストップ

バーを押すとその位置にストップが追加され、ハンドルをドラッグすると位置が変わります。キーボードでは矢印キーで1%ずつ(Shiftと一緒に押すと10%ずつ)動かし、Deleteで削除します。

%
%

CSS

background: linear-gradient(90deg, #ff7e5f 0%, #feb47b 100%);

背景グラデーションを作るたびにlinear-gradient(...)構文を覚えて手で書く代わりに、色と方向を見ながら作って完成したCSSをそのままコピーしましょう。

グラデーションの種類と文法

  • 線形(linear-gradient): 角度1つで方向を決めます。90degは左から右、180degは上から下です。
  • 放射状(radial-gradient): 中心から外側へ広がります。形状(円・楕円)と中心位置を選べます。
  • 円錐形(conic-gradient): 中心を軸に時計回りに色が変わります。開始角度と中心位置を選べます。

3種類とも色のストップ(color stop)のリストを使います。各ストップは色と位置(0〜100%)で構成され、このツールでは2個から8個まで追加・削除・並べ替えができます。グラデーションバー上のハンドルをドラッグして位置を動かしたり、バーを押して好きな位置にストップを追加したりすることもできます。

OKLCHで補間すると中間色がくすまない理由

CSSグラデーションは通常、sRGB色空間で2色の赤・緑・青の値を直線的に混ぜます。問題は、人が感じる明るさがこの数値と比例しないことです。そのため色相環で離れた(反対に近い)色同士を混ぜると、中間で明るさが落ち込み、くすんだり灰色に近い色になります。

  • 赤(#ff0000)から緑(#00ff00)へ: sRGBの中間はくすんだオリーブ色(#808000)ですが、OKLCHの中間は明るいオレンジに近くなります。
  • 青(#0000ff)から黄色(#ffff00)へ: sRGBの中間はほぼ灰色(#808080)ですが、OKLCHの中間は鮮やかな青緑に近くなります。

OKLCHは明るさ(L)・彩度(C)・色相角(H)をそれぞれ別の軸で扱う色空間なので、明るさを一定に保ったまま色相だけを動かしやすくなります。その結果、中間色がより鮮やかに保たれます。このツールの「OKLCHで補間する」をオンにすると、実際にこの計算を適用したグラデーションをプレビューとCSSの両方で確認できます。

ブラウザ対応と代替案

in oklchのような色補間方式を指定する構文は比較的最近CSS仕様に加わったため、古いブラウザは認識できないことがあります。このツールはOKLCH補間をオンにすると、CSSをコピーする際に2行を出力します。

  1. どのブラウザでも同じ見た目になるよう、OKLCHで計算した色を細かいsRGBのストップに展開した代替案の行
  2. 実際のin oklch構文を使った行

同じプロパティ(background)を2回宣言すると、CSSは後に出てきた方を最終的に適用するため、in oklchを理解するブラウザは2行目を使い、理解しないブラウザは自動的に1行目を使います。実際の対応状況は変わり続けるため、重要なプロジェクトでは対象ブラウザの一覧で直接確認することをおすすめします。

参考資料

よくある質問

「OKLCHで補間する(in oklch)」をオンにすると何が変わりますか?今使っても安全ですか?

CSSグラデーションは通常、sRGB色空間で2色を直線的に混ぜます。in oklchをオンにすると代わりにOKLCH色空間で混ぜるため、中間色がより鮮やかになります。このツールはCSSをコピーするときに2行を出力します。どのブラウザでも同じ見た目になる代替案(OKLCHで計算した色を細かいsRGBのストップに展開したもの)を先に置き、実際のin oklch構文を後に置きます。CSSは同じプロパティの後の宣言が優先されるため、in oklchに対応するブラウザは2行目を使い、対応しないブラウザは自動的に1行目を使います。だから今貼り付けても安全です。

OKLCHで補間した中間色が想像と違うのはなぜですか?

赤から緑へのグラデーションをsRGBで補間すると、中間はくすんだオリーブ色(#808000)になります。同じ2色をOKLCHで補間すると、中間は明るいオレンジに近づきます。青から黄色へでもsRGBの中間はほぼ灰色(#808080)ですが、OKLCHの中間は鮮やかな青緑に近くなります。sRGBは人の目が感じる明るさとずれた形で数値を混ぜるため、色相環で離れた(反対に近い)色同士を混ぜると中間で明るさが落ち込み、くすんだり灰色っぽく見えます。OKLCHは明るさを別軸で扱う色空間なので、この現象が起きにくいのです。

カラーストップを3個以上追加できますか?

できます。このツールはストップを最小2個から最大8個まで対応しています。「ストップを追加」ボタンを押すと最後のストップと100%の中間の位置に追加され、グラデーションバーの好きな位置を押すと、その位置に表示されている色でストップが追加されます。各ストップの位置(%)は、バー上のハンドルをドラッグするか数値で直接変更できます。

repeating-linear-gradientのような繰り返しグラデーションも生成できますか?

生成できません。このツールが生成するのはlinear-gradient・radial-gradient・conic-gradientのみです。繰り返しグラデーションが必要な場合は、このツールが生成したCSSの関数名の前にrepeating-を付け、ストップの位置を望む繰り返し間隔に合わせて調整してください。

生成されたCSSはそのまま貼り付けて使えますか?

はい。「CSSをコピー」ボタンを押すと、OKLCHがオフならbackground宣言が1行、オンなら2行コピーされます。すでに背景色や背景画像を指定している要素の場合は、コピーした行がその後に来るようにすれば、グラデーションが最終的に適用されます。

使用しているオープンソース: culori (MIT)