SVGマスターへの道

美しい塗り - グラデーションとパターン

SVGの図形を単色で塗りつぶすだけでなく、もっと表情豊かにしたいと思ったことはありませんか?SVGでは、滑らかな色の変化を作り出す「グラデーション」や、繰り返し模様で塗りつぶす「パターン」を使って、図形の見た目を劇的に向上させることができます。

これらの高度な塗りは、通常 <defs> 要素の中に定義し、id を付けて名前を付けます。そして、図形の fill 属性や stroke 属性から url(#yourGradientID)url(#yourPatternID) のようにして参照します。それでは、具体的な方法を見ていきましょう!

線形グラデーション (<linearGradient>)

線形グラデーションは、ある方向に向かって色が直線的に徐々に変化する塗りです。水平、垂直、斜めなど、どんな方向にも設定できます。

主な属性:

<linearGradient> 要素の中には、一つ以上の <stop> 要素を配置して、色の変化点を定義します。

線形グラデーション デモ

Stop 1
Stop 2

fill="url(#myLinearGradient)"

円形グラデーション (<radialGradient>)

円形(または楕円形)グラデーションは、中心から外側に向かって色が放射状に変化する塗りです。ハイライトや光源のような効果を表現するのに適しています。

主な属性:

<stop> 要素の使い方も線形グラデーションと同じです。

円形グラデーション デモ

Stop 1
Stop 2

fill="url(#myRadialGradient)"

パターン (<pattern>)

<pattern> 要素を使うと、自分で定義した図形や画像をタイル状に敷き詰めて、図形の塗りや線として使用できます。壁紙や布地の模様のような表現が可能です。

主な属性:

<pattern> 要素の中に、タイルとして繰り返したいSVG図形(<rect>, <circle>, <path>, <image> など)を記述します。

パターン デモ

fill="url(#dotsPattern)"

豆知識 (English/日本語)

Did you know? Gradients and patterns can also be applied to the `stroke` of a shape, not just its `fill`. This allows for creative outlining effects, like a rainbow-stroked path or a textured border. You simply use `stroke="url(#yourGradientOrPatternID)"`.

知っていましたか?グラデーションやパターンは、図形の `fill` (塗り) だけでなく、`stroke` (線) にも適用できるんです。これにより、虹色の線を持つパスや、テクスチャのある境界線など、クリエイティブな輪郭線の効果を作り出すことができます。単に stroke="url(#yourGradientOrPatternID)" のように使用します。

まとめ

線形グラデーション、円形グラデーション、そしてパターンは、SVGの図形に深みと豊かさを与える強力なツールです。<defs> に定義し、fillstroke 属性からIDで参照するという基本的な使い方を覚えれば、表現の幅が大きく広がります。

各属性の値をインタラクティブデモで変更してみて、その効果を確かめてみてください。特に gradientUnitspatternUnitsspreadMethod といった属性は、見た目に大きく影響するので、色々試してみるのがおすすめです。

次は、SVGにさらに高度な視覚効果を加える「魔法の効果 - SVGフィルター」について学びます。

このページの要約

日本語

SVGでは、<linearGradient>(線形グラデーション)、<radialGradient>(円形グラデーション)、<pattern>(パターン)を使って、図形の塗りや線を単色以上に豊かに表現できます。これらは通常<defs>内に定義され、idで参照されます。グラデーションは<stop>要素で色の変化点を指定し、方向や範囲、繰り返し方法も制御可能です。パターンは図形や画像をタイル状に敷き詰めます。これらの定義には変形も適用できます。

English

SVG allows for rich fills and strokes beyond solid colors using <linearGradient>, <radialGradient>, and <pattern>. These are typically defined within <defs> and referenced by ID. Gradients use <stop> elements to specify color transitions, and their direction, range, and spread method can be controlled. Patterns tile shapes or images. Transformations can also be applied to these definitions.

Español

SVG permite rellenos y trazos enriquecidos más allá de los colores sólidos utilizando <linearGradient> (degradado lineal), <radialGradient> (degradado radial) y <pattern> (patrón). Estos se definen típicamente dentro de <defs> y se referencian por ID. Los degradados usan elementos <stop> para especificar transiciones de color, y se puede controlar su dirección, rango y método de propagación. Los patrones repiten formas o imágenes como mosaicos. También se pueden aplicar transformaciones a estas definiciones.

中文

SVG允许使用<linearGradient>(线性渐变)、<radialGradient>(径向渐变)和<pattern>(图案)来实现比纯色更丰富的填充和描边效果。这些通常在<defs>中定义,并通过ID引用。渐变使用<stop>元素指定颜色过渡点,并且可以控制其方向、范围和扩展方法。图案将形状或图像平铺。变换也可以应用于这些定义。