Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I include a font awesome icon in my svg?

I have an svg that includes images:

<g><image id="myImage" class="myClass" x="12" y="15" width="10" height="10" xlink:href="/images/pic.png"/></g> 

How do I replace that line w/ a font awesome icon:

<g><i class="icon icon-cloud-download" x="12" y="15" width="10" height="10"></i></g> 

doesn't seem to work as the image doesn't show up.

like image 407
user_78361084 Avatar asked Feb 20 '13 15:02

user_78361084


People also ask

How do I use Font Awesome icons in SVG?

Duotones and SVG Just like any other style of Font Awesome icons, you can drag and drop a Duotone SVG file into your SVG-friendly application, and the duotone icon will appear. By default, the secondary layer will be set to 40% opacity and the icon will be set to a single color, but you can change that.

How do I add an SVG icon?

SVG images can be written directly into the HTML document using the <svg> </svg> tag. To do this, open the SVG image in VS code or your preferred IDE, copy the code, and paste it inside the <body> element in your HTML document. If you did everything correctly, your webpage should look exactly like the demo below.


1 Answers

i is not valid SVG. You need to include the actual character that displays the icon. If you take a look at font awesome's stylesheet you will see...

.icon-group:before                { content: "\f0c0"; } .icon-link:before                 { content: "\f0c1"; } .icon-cloud:before                { content: "\f0c2"; } .icon-beaker:before               { content: "\f0c3"; } .icon-cut:before                  { content: "\f0c4"; } .icon-copy:before                 { content: "\f0c5"; } .icon-paper-clip:before           { content: "\f0c6"; } .icon-save:before                 { content: "\f0c7"; } .icon-sign-blank:before           { content: "\f0c8"; } .icon-reorder:before              { content: "\f0c9"; } .icon-list-ul:before              { content: "\f0ca"; } .icon-list-ol:before              { content: "\f0cb"; } .icon-strikethrough:before        { content: "\f0cc"; } .icon-underline:before            { content: "\f0cd"; } .icon-table:before                { content: "\f0ce"; } 

But those are unicode characters encoded for CSS. In SVG you would need to change the syntax of example \f040 to:

<g><text x="0" y="0">&#xf040;</text></g> 

And then in your stylesheet add:

svg text {    font-family: FontAwesome; } 

According to Niek's comment, if you use the free version of Font Awesome 5+, you must use the following font-family declaration:

svg text {    font-family: 'Font Awesome 5 Free'; } 
like image 56
methodofaction Avatar answered Nov 04 '22 11:11

methodofaction