Reputation: 2323
I am trying to put a linear gradient on svg text, but I'm not sure how to specify the fill color in the text class. While learning how to do this, I found an example on the web so I'm using that, but where I specify fill color for the text (in the sfp2 class defined below), I put fill="url(#MyGradient)" x="10" y="10" width="100" height="100"/> but the text no longer shows up on screen at all.
<div class="logo">
<svg viewBox="0 0 240 220" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="MyGradient">
<stop offset="5%" stop-color="green"/>
<stop offset="95%" stop-color="gold"/>
</linearGradient>
</defs>
<style>
.sfp2 {
font-family: CamphorW01-Regular, sans-serif;
font-size: 7px;
/*fill: rgb(71,164,71);*/
fill="url(#MyGradient)" x="10" y="10" width="100" height="100"/>
}
.sfp9 {
font-family: CamphorW01-Thin, sans-serif;
font-size: 25px;
fill: rgb(117,163,126);
kerning="40";
}
</style>
<text x="0" y="25" class="sfp9" kerning="40">MainLogo</text>
<text x="24" y="33" class="sfp2">Tag Line</text>
</svg>
</div>
My questions are: what am I doing wrong in the sfp2 class, and can we use linear-gradient instead when it's svg text?
Upvotes: 4
Views: 2592
Reputation: 33044
Please try this:
<div class="logo">
<svg viewBox="0 0 240 220" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="MyGradient">
<stop offset="5%" stop-color="green"/>
<stop offset="95%" stop-color="gold"/>
</linearGradient>
</defs>
<style>
.sfp2 {
font-family: CamphorW01-Regular, sans-serif;
font-size: 7px;
/*fill: rgb(71,164,71);*/
fill:url(#MyGradient);
}
.sfp9 {
font-family: CamphorW01-Thin, sans-serif;
font-size: 25px;
fill: rgb(117,163,126);
kerning="40";
}
</style>
<text x="0" y="25" class="sfp9" kerning="40">MainLogo</text>
<text id="test" x="24" y="33" class="sfp2">Tag Line</text>
</svg>
</div>
Upvotes: 4