您好,
根据我在 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 的第二个值是备用颜色。
我没有进行广泛的测试;这是一个如何自定义的示例。
随时查阅文档以创建更复杂的渐变。
希望这对您有帮助!
