Font Awesome 5 Choosing the correct font-family in pseudo-elements
Solution 1:
Simply use all of them in the same font-family
and the browser will do the job. If it doesn't find it in the first one, it will use the second one. (Multiple fonts in Font-Family property?)
By the way, the correct font-family
is Free
not Solid
because the difference between Solid and Regular is the font-weight
and both have the same font-family
. There is no Solid
and Regular
in font-family, only Free
and Brands
.
You may also notice that almost all the Solid
version of the icons are free BUT not all the regular
version are free. Some of them are included in the PRO package. If an icon is not showing it's not necessarely a font-family
issue.
All the Light
and duotone
version are PRO ones.
.icon {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
font-family: "Font Awesome 5 Brands","Font Awesome 5 Free";
}
.icon1:before {
content: "\f099";
/* TWITTER ICON */
font-weight: 400;
}
.icon2:before {
content: "\f095";
/* PHONE ICON */
font-weight: 900;
}
.icon3:before {
content: "\f095";
/* PHONE ICON */
font-weight: 400;/*This one will not work because the regular version of the phone icon is in the Pro Package*/
}
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.11.0/css/all.css" >
<div class="icon1 icon"></div>
<div class="icon2 icon"></div>
<br>
<div class="icon3 icon"></div>
Reference: https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements#define
Related question dealing with the font-weight
issue: Font Awesome 5 on pseudo elements shows square instead of icon