SVGのグラデーション:線形と放射

コード例つき

SVGのグラデーションは <defs> 内で一度定義し、fill="url(#id)" で適用します。種類は線形(linear)と放射(radial)の2つです。

線形グラデーション

<defs> <linearGradient id="g1" x1="0" y1="0" x2="1" y2="1"> <stop offset="0" stop-color="#6c8cff"/> <stop offset="1" stop-color="#ff6c9c"/> </linearGradient> </defs> <rect width="100" height="100" fill="url(#g1)"/>

x1,y1 -> x2,y2 が方向(0〜1)を定義。各 stopoffset を持つカラーストップです。

放射グラデーション

<radialGradient id="g2"> <stop offset="0" stop-color="#fff"/> <stop offset="1" stop-color="#6c8cff"/> </radialGradient>

中心から外側へ広がります。ハイライトや球体に便利。

複数のストップ

2つ以上の stop で多色のグラデーションにできます。offset は0〜1(または%)。

グラデーションの透明度

ストップに stop-opacity を使うと、色が透明へフェードします。

再利用

同じグラデーション(id で)を複数の図形に適用できます。<defs> 内で一度定義します。

視覚的に作る

svgdeskで塗りと線の色を設定し、コードパネルにグラデーションのブロックを貼って即確認できます。

エディタを開く

続けて読む