ToolDeck

CSSグラデーションジェネレーター

linear・radialグラデーションをビジュアルで作成してCSSコードをコピー

サンプルを試す
種類
角度135°

カラーストップ

0%
100%

CSS出力

background: linear-gradient(135deg, #6366f1 0%, #ec4899 100%);

CSSグラデーションとは?

CSSグラデーションジェネレーターは、グラデーション構文を手書きせずに滑らかな色の遷移を構築できるビジュアルツールです。CSSにおけるグラデーションとは、2色以上の間でブラウザが直接描画する滑らかな色の遷移であり、画像ファイルを必要としません。CSS Image Module Level 4仕様では、グラデーション関数を画像値の一種として定義しています。つまり、background-image、list-style-image、border-imageが使用できる場所ならどこでも利用可能です。ブラウザはレンダリング時にグラデーションをラスタライズするため、任意の解像度に拡大縮小でき、高DPI画面でもぼやけたアーティファクトが生じません。CSSグラデーションジェネレーターを使えば、色や位置をビジュアルで調整して完成したCSSルールをコピーするだけなので、時間を節約し試行錯誤を減らせます。

CSSは主に3種類のグラデーション形状をサポートしています。linear(直線に沿った遷移)、radial(中心点から外側への遷移)、conic(中心点を軸に回転する遷移)です。各形状はカラーストップのリストを受け取り、色と任意の位置(パーセンテージまたは長さ)を指定します。ブラウザはデフォルトでsRGB色空間を使って各ストップ間の色を補間しますが、CSS Color Level 4ではoklchやlabなど他の色空間を指定して知覚的に滑らかな遷移を実現することも可能です。

グラデーションはウェブ上のほとんどの装飾的用途において、画像ベースの背景を置き換えています。かつてPhotoshopのエクスポートとHTTPリクエストが必要だったものが、1つのCSSルールで実現できます。解像度に依存せず、CSS自体以外のネットワーク帯域幅を必要とせず、標準のCSSプロパティでアニメーションやトランジションも適用できます。グラデーション構文は2013年以降すべての主要ブラウザで安定しており、ベンダープレフィックスなしでChrome、Firefox、Safari、Edgeで動作します。

このCSSグラデーションジェネレーターを使う理由

グラデーション構文を手書きするには、ストップ位置を推測し、角度の値を確認し、何度もリフレッシュして結果を確認する必要があります。ビジュアルビルダーなら作成しながらグラデーションを確認でき、ドラッグでストップを調整し、見た目が整ったら最終的なCSSをコピーできます。

リアルタイムビジュアルプレビュー
色、位置、角度を変更すると同時にグラデーションが更新されます。エディタとブラウザを行き来する必要はありません。
🔒
プライバシー優先の処理
すべてのレンダリングはブラウザ内で完結します。色データやグラデーション設定がサーバーに送信されることはありません。
🎨
複数のグラデーション種類
方向、角度、カラーストップの位置を完全制御しながら、linearとradialのグラデーションを作成できます。ワンクリックでCSSをコピーできます。
📋
アカウント不要
ページを開いてすぐ使い始められます。登録、メールゲート、レート制限は一切ありません。一度読み込めばオフラインでも動作します。

CSSグラデーションジェネレーターの活用例

フロントエンド開発
ヒーローセクションの背景、カードのオーバーレイ、ボタンのホバー状態を作成できます。対象サイズでグラデーションをプレビューし、CSSをスタイルシートやTailwindの設定ファイルに直接貼り付けるだけです。
メールテンプレートデザイン
一部のメールクライアントはインラインスタイルでのCSSグラデーションをサポートしています。正確なグラデーションコードを生成して要素にインラインで記述し、グラデーションを描画しないクライアント向けにはフォールバックの単色を指定します。
デザインプロトタイピング
Figmaの代わりにブラウザでカラースキームを試行する際、グラデーション背景を素早く生成できます。アセットをエクスポートせずに複数の選択肢を並べて比較できます。
DevOpsダッシュボードのスタイリング
ステータスダッシュボードや監視UIでは、重大度の範囲(緑から赤)やデータ密度を表現するためにカラーグラデーションを使用します。グラデーション値を生成してチャートの背景やステータスバーに適用できます。
データビジュアライゼーション
D3.jsやRechartsなどのチャートライブラリは、エリア塗りつぶしやヒートマップにCSSグラデーション定義を受け付けます。ビジュアルでグラデーションを作成し、スケール関数用のストップ色を取り出せます。
CSS学習
CSSを学ぶ開発者がグラデーション構文を試し、角度の変化が方向にどう影響するかを確認し、カラーストップの位置指定を理解するのに役立ちます。生成されたCSSは実際に動作するリファレンスになります。

CSSグラデーション種類リファレンス

CSSは5つのグラデーション関数を定義しています。3つの主要な種類(linear、radial、conic)にはそれぞれパターンを繰り返すrepeatingバリアントがあります。repeating-linear-gradient()とrepeating-radial-gradient()はストライプ背景や同心円のリングに有用です。すべてのグラデーション関数は、HEX、RGB、HSL、名前付き色、oklchなど任意のCSS色形式のカラーストップを受け付けます。5つの関数すべてのブラウザサポートはChrome、Firefox、Safari、Edgeで実質的に網羅されており、ベンダープレフィックスは不要です。

関数記述例方向主な用途
linear-gradient()to right, #f00, #00fStraight lineBackgrounds, hero sections, progress bars
radial-gradient()circle, #f00, #00fOutward from centerSpotlight effects, buttons, badges
conic-gradient()from 0deg, #f00, #00fSweep around centerPie charts, color wheels, spinners
repeating-linearto right, #f00 0 10px, #00f 10px 20pxTiled lineStripes, progress indicators, decorative borders
repeating-radialcircle, #f00 0 10px, #00f 10px 20pxTiled circleConcentric ring patterns, retro textures

Linear・Radial・Conicグラデーションの比較

グラデーションの種類ごとに、色と形状のマッピング方法が異なります。適切な種類の選択は、品質の違いではなく必要なビジュアル効果によって決まります。ほとんどのページ背景やセクション区切りにはlinearグラデーションが適切なデフォルトです。最もシンプルで、さまざまなサイズの要素でも予測可能な結果が得られます。RadialとConicは、円形または回転の形状が意味を持つ特定のビジュアル効果にのみ使用するのが効果的です。

linear-gradient()
角度(0deg = 下から上、90deg = 左から右)または 'to right' などのキーワードで定義した直線に沿って色が遷移します。最も一般的な種類で、背景、オーバーレイ、プログレスインジケーターに使用されます。任意の位置に複数のカラーストップを指定できます。
radial-gradient()
中心点から外側の円または楕円に向かって色が放射します。構文でシェイプ、サイズ、中心位置を制御できます。スポットライト効果、ビネット、バッジやアバターリングなどの円形UI要素に有用です。
conic-gradient()
時計の針のように中心点を軸として色が回転します。開始角度は 'from Xdeg' で設定できます。円グラフのセグメント、カラーホイール、回転型ローディングインジケーターに有用です。最低2つのストップが必要で、最初の色を最後に繰り返すとシームレスなループになります。

コード例

JavaScript、Python、CSS、GoでCSSグラデーションをプログラムで生成・適用する例です。いずれもスタイルシートやインラインスタイルで直接使用できる有効なCSSグラデーション文字列を生成します。

JavaScript
// Generate a CSS linear-gradient string from an array of stops
function buildGradient(angle, stops) {
  const parts = stops.map(s => `${s.color} ${s.position}%`)
  return `linear-gradient(${angle}deg, ${parts.join(', ')})`
}

const stops = [
  { color: '#6366f1', position: 0 },
  { color: '#ec4899', position: 50 },
  { color: '#f59e0b', position: 100 },
]
buildGradient(90, stops)
// -> "linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

// Apply to an element
document.querySelector('.hero').style.background = buildGradient(135, stops)
Python
# Generate a CSS gradient string for use in templates or SVGs
def build_gradient(angle: int, stops: list[tuple[str, int]]) -> str:
    parts = [f"{color} {pos}%" for color, pos in stops]
    return f"linear-gradient({angle}deg, {', '.join(parts)})"

stops = [("#6366f1", 0), ("#ec4899", 50), ("#f59e0b", 100)]
print(build_gradient(135, stops))
# -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"

# Interpolate N colors between two endpoints
def interpolate_hex(c1: str, c2: str, steps: int) -> list[str]:
    r1, g1, b1 = int(c1[1:3], 16), int(c1[3:5], 16), int(c1[5:7], 16)
    r2, g2, b2 = int(c2[1:3], 16), int(c2[3:5], 16), int(c2[5:7], 16)
    return [
        f"#{int(r1+(r2-r1)*i/(steps-1)):02x}"
        f"{int(g1+(g2-g1)*i/(steps-1)):02x}"
        f"{int(b1+(b2-b1)*i/(steps-1)):02x}"
        for i in range(steps)
    ]

interpolate_hex("#6366f1", "#f59e0b", 4)
# -> ['#6366f1', '#9a7399', '#d18042', '#f59e0b']
CSS
/* Linear gradient — left to right */
.hero {
  background: linear-gradient(90deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%);
}

/* Radial gradient — circular spotlight */
.badge {
  background: radial-gradient(circle at 30% 30%, #6366f1, #312e81);
}

/* Conic gradient — color wheel */
.wheel {
  background: conic-gradient(from 0deg, #ef4444, #f59e0b, #22c55e, #3b82f6, #8b5cf6, #ef4444);
  border-radius: 50%;
}

/* Multi-stop with transparency */
.overlay {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0) 0%,
    rgba(0, 0, 0, 0.6) 60%,
    rgba(0, 0, 0, 0.9) 100%
  );
}

/* Repeating stripes */
.stripes {
  background: repeating-linear-gradient(
    45deg,
    #6366f1 0 10px,
    transparent 10px 20px
  );
}
Go
package main

import "fmt"

// Stop represents one color stop in a gradient.
type Stop struct {
	Color    string
	Position int // percent 0-100
}

func buildGradient(angle int, stops []Stop) string {
	result := fmt.Sprintf("linear-gradient(%ddeg", angle)
	for _, s := range stops {
		result += fmt.Sprintf(", %s %d%%", s.Color, s.Position)
	}
	return result + ")"
}

func main() {
	stops := []Stop{
		{"#6366f1", 0},
		{"#ec4899", 50},
		{"#f59e0b", 100},
	}
	fmt.Println(buildGradient(135, stops))
	// -> "linear-gradient(135deg, #6366f1 0%, #ec4899 50%, #f59e0b 100%)"
}

よくある質問

linear-gradientとradial-gradientの違いは何ですか?
linear-gradient()は指定した角度の直線に沿って色を遷移させ、radial-gradient()は中心点から外側の円または楕円に向かって色を遷移させます。Linearグラデーションはページ背景やオーバーレイの標準的な選択肢です。Radialグラデーションはスポットライト効果や円形UI要素に適しています。
linearグラデーションの方向はどう設定しますか?
度数で角度を指定するか(例:左から右は90deg、上から下は180deg)、キーワード(to right、to bottom leftなど)を使います。角度は下から時計回りに回転します。0degは上向き、90degは右向きです。'to top right' でコーナーを指定することもでき、その場合ブラウザは要素のアスペクト比から正確な角度を算出します。
CSSグラデーションはアニメーションできますか?
ブラウザはCSSトランジションで2つのグラデーション値を直接補間することはできません。一般的な回避策は、大きめのグラデーションのbackground-positionをアニメーションさせる方法、@propertyを使って個々のカラーストップ値をカスタムプロパティとしてアニメーションさせる方法、疑似要素のopacityでクロスフェードする方法です。@propertyのアプローチ(ChromeとEdgeは2020年以降、Firefoxは2024年以降でサポート)が最もクリーンな解決策です。
グラデーションのカラーストップはいくつまで指定できますか?
CSS仕様には最大数の定めがありません。ブラウザは数十のストップを持つグラデーションでもパフォーマンス上の問題なく処理します。実際には、ほとんどのグラデーションは2〜5つのストップを使用します。各ストップには色とオプションの位置(パーセンテージまたは長さ)を指定できます。また、1つのストップに2つの位置を定義してトランジションのないハードな色帯を作ることもできます。
グラデーションと画像の違いは何ですか?
CSSでは、グラデーションは計算された画像です。url()画像と同じレンダリングパイプラインを共有しており、background-image、list-style-image、border-image、mask-imageなど画像値が有効な場所ならどこでも使用できます。違いは、グラデーションがレンダリング時にブラウザによって生成される点です。任意のサイズに画質を損なわず拡大縮小でき、ファイルのダウンロードがないためページのデータ量を増やしません。
トランジションのないハードなカラーストップはどう作りますか?
同じ位置に2つのカラーストップを配置します。例えば、linear-gradient(to right, #6366f1 50%, #ec4899 50%)は色間のブレンドなしにシャープな分割を作ります。2位置構文 linear-gradient(to right, #6366f1 0% 50%, #ec4899 50% 100%) を使えば各帯を明示的に定義できます。
conic-gradient関数はすべてのブラウザでサポートされていますか?
conic-gradient()はChrome 69以降、Firefox 83以降、Safari 12.1以降、Edge 79以降でサポートされています。2024年時点では、Can I Useのデータによるとグローバルブラウザサポートは95%を超えています。ベンダープレフィックスは不要です。古いブラウザを使用するわずかなユーザー向けには、グラデーション宣言の前にフォールバックとして solid background-color を設定してください。