CSSグラデーション生成機

色と角度を調整して好みのグラデーションを作り、CSSコードをそのままコピーできます。文字を重ねたときに読みやすいかどうかも確認できます。

サンプル文字 Aa

CSSコード

色の上の文字の読みやすさ(WCAGコントラスト比)

通常サイズの文字は4.5:1以上、大きな文字は3:1以上が目安です。

CSSグラデーション関数のしくみ

CSSのグラデーションは画像ファイルではなく、ブラウザが描画時に計算して作る「生成画像」です。そのため background やbackground-image に指定でき、解像度に関係なく鮮明で、追加のファイル読み込みも発生しません。よく使う形は次の3つです。

基本形は linear-gradient(角度, 色1, 色2) です。色のあとに 40% のように位置を付けると、その地点で色が100%の強さになります。省略すると等間隔に配置されます。 隣り合う2色の位置を同じにすると、なめらかな変化ではなくくっきりした縞模様になります。

角度と方向キーワードの対応表

角度は時計回りに増え、0度が上向き、90度が右向きです。つまり 90deg では1色目が左、最後の色が右に来ます。角度を省略した場合の既定値はto bottom(180度)です。

角度方向キーワード色の流れ
0degto top下から上へ
45degto top right左下から右上へ(正方形の場合)
90degto right左から右へ
135degto bottom right左上から右下へ(正方形の場合)
180degto bottom上から下へ(角度を省略したときの既定値)
225degto bottom left右上から左下へ(正方形の場合)
270degto left右から左へ
315degto top left右下から左上へ(正方形の場合)

to top right のような角キーワードは要素の縦横比に合わせて角度が変わるため、長方形では正確な45度にはなりません。どのサイズでも同じ傾きにしたいときは数値の角度を使います。

色の選び方で気をつけること

既定では、ブラウザは2色の間をRGB値で直線的に補間します。青とオレンジのように色相環で反対側にある色を混ぜると、中間がくすんだ灰色になりがちです。 その場合は自分で中間色を1つ足すか、色相環で近い色を選ぶと澄んだグラデーションになります。本ツールの「3色目を使う」はそのための機能です。 新しいブラウザでは linear-gradient(in oklch, ...) のように補間する色空間を指定する書き方もありますが、対応状況は変わり続けているため、実際に使う前に対象ブラウザを確認してください。

組み合わせに迷ったら、カラーパレット生成機で候補を作り、HEX・RGB・HSLの変換が必要なときはカラーコード変換機を使うと便利です。

検算つきの例: 金色から濃紺へ

このページの初期値は #c9a961(金色)と #1a1a2e(濃紺)です。RGBの平均で求めた中間色は #726248 です。 3色それぞれの上に白文字・黒文字を載せたときのコントラスト比を、WCAGの相対輝度の式で計算すると次のとおりです。

背景色白文字黒文字読みやすい文字色
#c9a9612.25:19.33:1黒
#7262485.91:13.56:1白
#1a1a2e17.06:11.23:1白

金色側では黒文字、濃紺側では白文字が読みやすいことが分かります。問題はその中間です。グラデーションは1つの要素の中で背景の明るさが連続的に変わるため、文字がどこに載るかで読みやすさが変わります。 文字をグラデーションに載せる場合は、最も不利な地点(多くは中間)のコントラスト比で判断してください。この例の中間色では白文字が5.91:1、黒文字は3.56:1なので白が無難で、金色の端は白文字だと2.25:1しかありません。 より細かい確認はコントラストチェッカーでできます。

用途別の設計のヒント

生成されたコードの読み方

background: linear-gradient(90deg, #c9a961, #8a6d3b, #1a1a2e); は「左から右へ、金色、褐色がかった金、濃紺の順に変わる」と読みます。3色なら各色は0%・50%・100%に置かれます。 これを #c9a961 0%, #8a6d3b 30%, #1a1a2e 100% に書き換えると、中間色が左に寄り、明るい区間が短く、暗い区間が長くなります。 出力の先頭に付く background: #c9a961; は、グラデーションを解釈できない環境のための代替色で、次の行が有効ならそちらで上書きされます。

よくある失敗と対処

結果の活用方法

コピーしたコードは、スタイルシートの background(または background-image)の値としてそのまま貼り付けられます。同じグラデーションを複数箇所で使うなら、--brand-gradient のようなCSS変数に一度だけ定義して使い回すと、色の変更が1行で済みます。文字自体にグラデーションをかける効果はbackground-clip: text と透明な文字色を組み合わせる別の手法なので、このツールの出力を元に追記して応用できます。その場合も、最も明るい部分と暗い部分の両方が背景と十分なコントラストを持つか確認してください。

このツールの限界

このツールは2〜3色を等間隔で配置します。色の位置(%)、繰り返しグラデーション、円の中心位置やサイズなどの細かい指定には対応していません。必要なら生成コードに 40% やat top left を手で書き足してください。色の入力はブラウザ標準のカラーピッカーを使うため、透明度(アルファ)は指定できません。

よくある質問

4色以上を使えますか?

このツールで作れるのは最大3色です。4色以上にしたい場合は、生成コードにカンマ区切りで色を追加してください。各色のあとに%を付ければ、色ごとの占める範囲も調整できます。

円形(radial-gradient)にも対応していますか?

はい。「種類」でradialを選ぶと radial-gradient(circle, 色1, 色2) が出力されます。円ではなく楕円にしたい場合は circle を消すか ellipse に変えてください。radialでは角度スライダーは使われません。

0度と360度は同じですか?

同じです。360度で一周して元の向きに戻るため、360degと0degは同じ方向になります。スライダーの両端が同じ結果になるのはそのためです。

グラデーションを使うとページが重くなりますか?

通常サイズの背景グラデーションなら負担はほとんどありません。非常に広い面積に何層も重ねたり、絶えずアニメーションさせたりすると低スペック端末では負担になることがあります。動きが必要なら、透明度や位置の移動のような軽い属性を動かす方法を優先してください。

HEXの代わりにrgb()やhsl()を使えますか?

グラデーション内の色にはHEX、rgb()、hsl()のどれも使えます。本ツールはカラーピッカーの仕様上HEXで出力します。別の表記が必要なときはカラーコード変換機で変換してコードに入れてください。

コピーボタンが動きません。

HTTPSでないページやアプリ内ブラウザなど、環境によってはクリップボードへのアクセスが制限されています。その場合は画面に表示されたコードを選択して手動でコピーしてください。