Font Awesome has a ton of great styling tools that work hand-in-hand with our icons to make your project look its best.

Advertisement

The entire Font Awesome styling toolkit is available when using Vue, but the syntax is different from our general web-use documentation. Below you'll find the syntax for adding styling with Vue, with a link to the general documentation that has descriptions and examples for each styling tool.

Size

Font Awesome supports t-shirt size scale from 2xs to 2xl as well as literal sizing from 1x to 10x.

<!-- T-shirt sizes -->
<font-awesome-icon icon="fa-solid fa-coffee" size="xs" />
<font-awesome-icon icon="fa-solid fa-coffee" size="lg" />

<!-- X-factor sizing -->
<font-awesome-icon icon="fa-solid fa-coffee" size="6x" />

Remember, you can always control icon size directly with the CSS font-size attribute. The font-awesome-icon's size prop determines icon size relative to the current context's font-size.

Fixed-Width

Setting icons to use a fixed-width helps when you're trying to align icons in a vertical column.

<font-awesome-icon icon="fa-solid fa-coffee" fixed-width />

Icons in a List

There's no Vue-specific syntax for using icons in a list, so you can use fa-ul and fa-li to replace default bullets in unordered lists just like usual.

Advertisement

Rotate and Flip Icons

Rotate on quarter turns and flip horizontally, vertically, or both. Or try power transforms for more granularity.

<!-- Rotate -->
<font-awesome-icon icon="fa-solid fa-coffee" rotation="90" />
<font-awesome-icon icon="fa-solid fa-coffee" rotation="180" />
<font-awesome-icon icon="fa-solid fa-coffee" rotation="270" />

<!-- Flip -->
<font-awesome-icon icon="fa-solid fa-coffee" flip="horizontal" />
<font-awesome-icon icon="fa-solid fa-coffee" flip="vertical" />
<font-awesome-icon icon="fa-solid fa-coffee" flip="both" />

Animate Icons

You can use the animate utilities as a way to indicate loading or processing, especially when paired with icons like spinner or sync. The spin utility smoothly spins the icon clockwise, and the pulse utility spins clockwise in eight steps.

<font-awesome-icon icon="fa-solid cog" spin />
<font-awesome-icon icon="fa-solid spinner" pulse />

We've also built some animation utilities into CSS custom properties.

Bordered Icons

Add a border around an icon with this utility.

<font-awesome-icon icon="fa-solid fa-coffee" border />
Advertisement

Pulled Icons

Wrap text around an icon with this utility.

<font-awesome-icon icon="fa-solid fa-coffee" pull="left" />
<font-awesome-icon icon="fa-solid fa-coffee" pull="right" />

Power Transforms

Power Transforms are just that - powerful! You can scale, position, rotate, and flip all with this one styling tool.

  • To scale icons up or down, use grow-# and shrink-# with any arbitrary value, including decimals.
  • To move icons up, down, left, or right, use up-#, down-#, left-#, and right-# with any arbitrary value, including decimals.
  • To rotate or flip icons use any combination of flip-v, flip-h, or rotate-# with any arbitrary value.
<!-- Use basic utilites -->
<font-awesome-icon icon="fa-solid fa-coffee" transform="shrink-6 left-4" />

<!-- Or bind with ":" -->
<font-awesome-icon icon="fa-solid fa-coffee" transform="{ rotate: 42 }" />

Mask

Grab the Mask utility when you want to layer two icons but have the inner icon cut out from the icon below so the parent element's background shows through.

<font-awesome-icon icon="fa-solid fa-coffee" mask="fa-regular fa-circle" />

Duotone Icons

For Duotone icons, you can swap the opacity on the layers:

<font-awesome-icon icon="fa-duotone coffee-pot" swap-opacity />

We've also built a lot of utility into CSS custom properties for Duotone icons.

Advertisement

Layer

If you'd like to layer icons, add a text layer over an icon, or add a counter to an icon, you'll need to add the layering components. Edit your main.js to look like this:

import Vue from 'vue'
import { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText } from '@fortawesome/vue-fontawesome'
 
Vue.component('font-awesome-icon', FontAwesomeIcon)
Vue.component('font-awesome-layers', FontAwesomeLayers)
Vue.component('font-awesome-layers-text', FontAwesomeLayersText)

Then you can use the utilities in those components to layer icons, text, or add counters. You can also invert an icon to get a cut-out effect.

Layer Icons

Layer one or more icons to create a new icon. Include fixed-width to have the layers align.

<font-awesome-layers class="fa-lg">
  <font-awesome-icon icon="fa-solid fa-circle" />
  <font-awesome-icon icon="fa-solid fa-check" transform="shrink-6" :style="{ color: 'white' }" />
</font-awesome-layers>

Layer Text

Add text on top of an icon. Use power transforms to control how the text appears.

<font-awesome-layers full-width class="fa-4x">
  <font-awesome-icon icon="fa-solid fa-badge"/>
  <font-awesome-layers-text class="gray8" transform="down-2 shrink-8" value="New!" />
</font-awesome-layers>

Add Counters

Add a counter to the corner of an icon. Postion can be bottom-left, bottom-right, top-left and the default top-right.

<font-awesome-layers full-width class="fa-4x">
  <font-awesome-icon icon="fa-solid fa-envelope" />
  <font-awesome-layers-text counter value="1" position="top-right" />
</font-awesome-layers>

Invert the Icon Color to White

This can be useful when layering icons, or on its own.

<font-awesome-icon icon="fa-solid fa-coffee" inverse />

Did you know?

We have an fa-truck load of CSS custom properties to let you customize and style your icons even more.

You're viewing the Version 6 Beta

It's all the awesome of 5, but now more six-y! Version 6 brings over 13,000 icons across 5 styles – including the new Thin style! – and includes more and faster services.

Get the Deets on Version 6

Head Back to Our Current Version 5 Release

Need a Hand?

If you’re stuck or have a question, check our Troubleshooting docs, all of the Font Awesome threads on Stack Overflow, or contact our community on GitHub.

Or get Real Human Support™ with a Pro Subscription!