Statically rotate font-awesome icons
I'd like to statically rotate my font-awesome icons by 45 degrees. It says on the site that:
To arbitrarily rotate and flip icons, use the fa-rotate-* and fa-flip-* classes.
However, doing
<i class="fa fa-link fa-rotate-45" style="font-size:1.5em"></i>
does not work, whereas replacing fa-rotate-45
with fa-rotate-90
does. Does this mean that they in fact cannot rotate arbitrarily?
Solution 1:
Before FontAwesome 5:
The standard declarations just contain .fa-rotate-90
, .fa-rotate-180
and .fa-rotate-270
.
However you can easily create your own:
.fa-rotate-45 {
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
With FontAwesome 5:
You can use what’s so called “Power Transforms”. Example:
<i class="fas fa-snowman" data-fa-transform="rotate-90"></i>
<i class="fas fa-snowman" data-fa-transform="rotate-180"></i>
<i class="fas fa-snowman" data-fa-transform="rotate-270"></i>
<i class="fas fa-snowman" data-fa-transform="rotate-30"></i>
<i class="fas fa-snowman" data-fa-transform="rotate--30"></i>
You need to add the data-fa-transform
attribute with the value of rotate-
and your desired rotation in degrees.
Source: https://fontawesome.com/how-to-use/on-the-web/styling/power-transforms
Solution 2:
In case someone else stumbles upon this question and wants it here is the SASS mixin I use.
@mixin rotate($deg: 90){
$sDeg: #{$deg}deg;
-webkit-transform: rotate($sDeg);
-moz-transform: rotate($sDeg);
-ms-transform: rotate($sDeg);
-o-transform: rotate($sDeg);
transform: rotate($sDeg);
}
Solution 3:
New Font-Awesome v5 has Power Transforms
You can rotate any icon by adding attribute data-fa-transform
to icon
<i class="fas fa-magic" data-fa-transform="rotate-45"></i>
Here is a fiddle
For more information, check this out : Font-Awesome5 Power Tranforms
Solution 4:
If you want to rotate 45 degrees, you can use the CSS transform property:
.fa-rotate-45 {
-ms-transform:rotate(45deg); /* Internet Explorer 9 */
-webkit-transform:rotate(45deg); /* Chrome, Safari, Opera */
transform:rotate(45deg); /* Standard syntax */
}