【 d3.js】SVGでグラデーションを指定する方法 - linearGradient

Gradation

SVGでグラデーションを指定する方法をご紹介していきます。

サンプルソース

<svg viewBox="0 0 400 400">
  <defs>
    <linearGradient id="gradient">
      <stop offset="5%"  stop-color="#fbc2eb" />
      <stop offset="95%" stop-color="#a6c1ee" />
    </linearGradient>
  </defs>
  <rect x="10" y="10" width="180" height="80" fill="url('#gradient')" />
</svg>

viewBox

viewBoxを指定すると、描画エリアのアスペクト比と要素の相対的なサイズを決定します。

<svg viewBox="x y width height">
属性内容
x左上からみたx座標
y左上から見たy座標
width描画エリアの幅(座標値)
height描画エリアの高さ(座標値)

linearGradientでグラデーション指定

  • linearGradient要素を defs 要素で囲い定義化し
  • 付与したidをグラデーションを適用したい画像のfill属性へリンク
<defs>
  <linearGradient id="gradient">
    <stop offset="5%"  stop-color="#fbc2eb" />
    <stop offset="95%" stop-color="#a6c1ee" />
  </linearGradient>
</defs>

defsは、symbolなどの実際に描画しない図形の定義をまとめておく領域。

linearGradient要素で、塗りまたは線への線形グラデーションを定義します。
あとで呼び出せるように、id名をつけておきます。

グラデーション自体はstop要素で作成。以下の属性を指定します。

属性内容
offset属性左端を始点にどこの位置までグラデーションを適応するかを指定
stop-color 属性始点からの変化する色を指定

指定したidを画像のfill属性へリンクすると、グラデーションが適用されます。

まとめ

以上、SVGでグラデーションを指定する方法でした。

関連情報

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA