こんにちは。
Gradients in SVG - SVG | MDN で読んだ内容によると、SVG に <linearGradient> を追加する必要があるとのことです。
その他のリソース:
できることとしては、グラデーションを定義するために、非表示の SVG を テーマ/コンポーネント に作成することです。
<svg aria-hidden="true" focusable="false" style="width:0; height:0; position:absolute;">
<linearGradient id="my-gradient-1" x2="0" y2="1">
<stop offset="0%" stop-color="var(--color-stop-1)" />
<stop offset="50%" stop-color="var(--color-stop-2)" />
</linearGradient>
<linearGradient id="my-gradient-2">
<stop offset="0%" stop-color="var(--color-stop-1)" />
<stop offset="50%" stop-color="var(--color-stop-2)" />
<stop offset="100%" stop-color="var(--color-stop-3)" />
</linearGradient>
<!-- 必要に応じて、一意のIDを持つ特定のグラデーションを定義します -->
</svg>
次に、CSS で色を定義し、fill したい SVG 要素を指定します。
/* グラデーションの色を定義します */
#my-gradient-1 {
--color-stop-1: #a770ef;
--color-stop-2: #eda58b;
}
#my-gradient-2 {
--color-stop-1: #2980b9;
--color-stop-2: #6dd5fa;
--color-stop-3: #ffffff;
}
.svg-icon, .svg-icon-title {
/* すべてのSVGアイコンを対象とします */
fill: url(#my-gradient-1) var(--header_primary-low-mid);
/* チャットアイコンのみを対象とします */
&.d-icon-d-chat {
fill: url(#my-gradient-2) var(--header_primary-low-mid);
}
}
注:fill の 2 番目の値はフォールバックカラーです。
広範なテストは行っていませんが、カスタマイズ方法の例として参考にしてください。
より複雑なグラデーションについては、ドキュメントをご確認ください。
お役に立てれば幸いです!
