# Adding Icon Styling with Vue

Tips and techniques for styling Font Awesome icons in Vue.js applications.

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

[The entire Font Awesome styling toolkit](/web/style.md) 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

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/size.md)
Font Awesome supports t-shirt size scale from `2xs` to `2xl` as well as literal sizing from `1x` to `10x`.

  **String:**
  **Array:**

```html
<!-- 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" />
```

```html
<!-- T-shirt sizes -->
<font-awesome-icon :icon="['fas', 'coffee']" size="xs" />
<font-awesome-icon :icon="['fas', 'coffee']" size="lg" />

<!-- X-factor sizing -->
<font-awesome-icon :icon="['fas', 'coffee']" size="7x" />
```

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.

## Automatic Width

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/icon-canvas.md#automatic-width)
Set an icon's width to only their symbol and not the entire [Icon Canvas](/web/style/icon-canvas.md).

  **String:**
  **Array:**

```html
<font-awesome-icon icon="fa-solid fa-coffee" widthAuto />
```

```html
<font-awesome-icon :icon="['fas', 'coffee']" widthAuto />
```

## Icons in a List

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/lists.md)
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](/web/style/lists.md) just like usual.

## Rotate and Flip Icons

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/rotate.md)
Rotate on quarter turns and flip horizontally, vertically, or both. Or try [power transforms](#power-transforms) for more granularity.

  **String:**
  **Array:**

```html
<!-- 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" />

<!-- Mirror -->
<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" />
```

```html
<!-- Rotate -->
<font-awesome-icon :icon="['fas', 'coffee']" rotation="90" />
<font-awesome-icon :icon="['fas', 'coffee']" rotation="180" />
<font-awesome-icon :icon="['fas', 'coffee']" rotation="270" />

<!-- Mirror -->
<font-awesome-icon :icon="['fas', 'coffee']" flip="horizontal" />
<font-awesome-icon :icon="['fas', 'coffee']" flip="vertical" />
<font-awesome-icon :icon="['fas', 'coffee']" flip="both" />
```

### Custom Rotation

You can also [customize the rotation of an icon](/web/style/rotate.md#custom-rotation) by a specific angle of your choice. To do so:

1. Include the `rotateBy` property in your icon component reference. The `rotateBy` property is a boolean flag and does not accept a value directly.
2. To customize the rotation angle, set the `--fa-rotate-angle` CSS custom property to any valid CSS transform rotate [value](<https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate()>).

  **String:**
  **Array:**

```html
<font-awesome-icon icon="fa-solid fa-coffee" rotateBy style="--fa-rotate-angle: 329deg" />
```

```html
<font-awesome-icon :icon="['fas', 'coffee']" rotateBy style="--fa-rotate-angle: 329deg" />
```

## Animate Icons

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/animate.md)
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.

  **String:**
  **Array:**

```html
<font-awesome-icon icon="fa-solid fa-heart" beat />
<font-awesome-icon icon="fa-solid fa-circle-info" beat-fade />
<font-awesome-icon icon="fa-solid fa-basketball" bounce />
<font-awesome-icon icon="fa-solid fa-exclamation-triangle" fade />
<font-awesome-icon icon="fa-solid fa-compact-disc" flip />
<font-awesome-icon icon="fa-solid fa-bell" shake />
<font-awesome-icon icon="fa-solid fa-cog" spin />
<font-awesome-icon icon="fa-solid fa-compass" spin spin-reverse />
<font-awesome-icon icon="fa-solid fa-spinner" spin-pulse />
```

```html
<font-awesome-icon :icon="['fas', 'heart']" beat />
<font-awesome-icon :icon="['fas', 'circle-info']" beat-fade />
<font-awesome-icon :icon="['fas', 'basketball']" bounce />
<font-awesome-icon :icon="['fas', 'exclamation-triangle']" fade />
<font-awesome-icon :icon="['fas', 'compact-disc']" flip />
<font-awesome-icon :icon="['fas', 'bell']" shake />
<font-awesome-icon :icon="['fas', 'cog']" spin />
<font-awesome-icon :icon="['fas', 'compass']" spin spin-reverse />
<font-awesome-icon :icon="['fas', 'spinner']" spin-pulse />
```

We've also built some [animation utilities into CSS custom properties](/web/style/animate.md).

## Bordered Icons

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/pull.md)
Add a border around an icon with this utility.

  **String:**
  **Array:**

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

```html
<font-awesome-icon :icon="['fas', 'coffee']" border />
```

## Pulled Icons

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/pull.md)
Wrap text around an icon with this utility.

  **String:**
  **Array:**

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

```html
<font-awesome-icon :icon="['fas', 'coffee']" pull="left" /> <font-awesome-icon :icon="['fas', 'coffee']" pull="right" />
```

## Power Transforms

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/power-transform.md)
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.

  **String:**

```html
<font-awesome-icon icon="fa-solid fa-coffee" transform="shrink-6 left-4" />
```

## Mask

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/mask.md)
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.

  **String:**
  **Array:**

```html
<!-- using transform with mask will allow you to scale, shrink, grow, etc. the coffee icon within the circle icon -->
<font-awesome-icon icon="fa-solid fa-coffee" transform="shrink-7" mask="fa-solid fa-circle" />
```

```html
<!-- using transform with mask will allow you to scale, shrink, grow, etc. the coffee icon within the circle icon -->
<font-awesome-icon :icon="['fas', 'coffee']" transform="shrink-7" :mask="['fas', 'circle']" />
```

## Gradient Fill

  <h4>
    Version Requirement
  </h4>

Gradient fill support requires `@fortawesome/vue-fontawesome` version **3.2.0** or later.

Apply SVG gradient fills directly to icons using the `:gradient-fill` prop. Both linear and radial gradients are supported.

### Linear Gradient

Set `type: 'linear'` and use the following properties to control the gradient:

| Property | Description                                                                                                                                                                                                                                                  |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `id`     | A unique string identifying the gradient. Must be unique per page — see the warning below.                                                                                                                                                                   |
| `type`   | Set to `'linear'` for a linear gradient.                                                                                                                                                                                                                     |
| `x1`     | The horizontal start point of the gradient vector, as a percentage string (e.g. `'0%'`).                                                                                                                                                                     |
| `y1`     | The vertical start point of the gradient vector, as a percentage string (e.g. `'0%'`).                                                                                                                                                                       |
| `x2`     | The horizontal end point of the gradient vector, as a percentage string (e.g. `'100%'`). Together with `x1`, controls the left-to-right direction of the gradient.                                                                                           |
| `y2`     | The vertical end point of the gradient vector, as a percentage string (e.g. `'0%'`). Together with `y1`, controls the top-to-bottom direction. Set both `x2` and `y2` to non-zero values for a diagonal gradient.                                            |
| `stops`  | An array of stop objects. Each stop has an `offset` (where along the gradient the color applies), a `color` (hex or CSS color), and an optional `opacity` (0–1). The `offset` accepts a percentage string (`'0%'`, `'100%'`) or a decimal number (`0`, `1`). |

  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" height="48" style="margin-right: 1.5rem">
    <defs>
      <linearGradient id="docs-linearH" x1="0%" y1="0%" x2="100%" y2="0%">
        <stop offset="0%" stop-color="#FF5F6D" />
        <stop offset="100%" stop-color="#FFC371" />
      </linearGradient>
    </defs>
    <path fill="url(#docs-linearH)" d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z"/>
  </svg>
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="48" style="margin-right: 1.5rem">
    <defs>
      <linearGradient id="docs-linearD" x1="0%" y1="0%" x2="100%" y2="100%">
        <stop offset="0%" stop-color="#4facfe" />
        <stop offset="100%" stop-color="#00f2fe" />
      </linearGradient>
    </defs>
    <path fill="url(#docs-linearD)" d="M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z"/>
  </svg>
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" height="48">
    <defs>
      <linearGradient id="docs-linearNumeric" x1="0%" y1="0%" x2="100%" y2="0%">
        <stop offset="0" stop-color="#f97316" />
        <stop offset="0.5" stop-color="#facc15" />
        <stop offset="1" stop-color="#4ade80" />
      </linearGradient>
    </defs>
    <path fill="url(#docs-linearNumeric)" d="M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304h91.4C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7H29.7C13.3 512 0 498.7 0 482.3zM609.3 512H471.4c5.4-9.4 8.6-20.3 8.6-32v-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2h61.4C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z"/>
  </svg>

  **String:**
  **Array:**

```html
<!-- Horizontal -->
<font-awesome-icon
  icon="fa-solid fa-star"
  size="6x"
  :gradient-fill="{
    id: 'linearH',
    type: 'linear',
    x1: '0%', y1: '0%', x2: '100%', y2: '0%',
    stops: [
      { offset: '0%', color: '#FF5F6D' },
      { offset: '100%', color: '#FFC371' }
    ]
  }" />

<!-- Diagonal -->
<font-awesome-icon
  icon="fa-solid fa-heart"
  size="6x"
  :gradient-fill="{
    id: 'linearD',
    type: 'linear',
    x1: '0%', y1: '0%', x2: '100%', y2: '100%',
    stops: [
      { offset: '0%', color: '#4facfe' },
      { offset: '100%', color: '#00f2fe' }
    ]
  }" />

<!-- Multi-stop with numeric offsets (0–1) -->
<font-awesome-icon
  icon="fa-solid fa-users"
  size="6x"
  :gradient-fill="{
    id: 'linearNumeric',
    type: 'linear',
    x1: '0%', y1: '0%', x2: '100%', y2: '0%',
    stops: [
      { offset: 0, color: '#f97316' },
      { offset: 0.5, color: '#facc15' },
      { offset: 1, color: '#4ade80' }
    ]
  }" />
```

```html
<!-- Horizontal -->
<font-awesome-icon
  :icon="['fas', 'star']"
  size="6x"
  :gradient-fill="{
    id: 'linearH',
    type: 'linear',
    x1: '0%', y1: '0%', x2: '100%', y2: '0%',
    stops: [
      { offset: '0%', color: '#FF5F6D' },
      { offset: '100%', color: '#FFC371' }
    ]
  }" />

<!-- Diagonal -->
<font-awesome-icon
  :icon="['fas', 'heart']"
  size="6x"
  :gradient-fill="{
    id: 'linearD',
    type: 'linear',
    x1: '0%', y1: '0%', x2: '100%', y2: '100%',
    stops: [
      { offset: '0%', color: '#4facfe' },
      { offset: '100%', color: '#00f2fe' }
    ]
  }" />

<!-- Multi-stop with numeric offsets (0–1) -->
<font-awesome-icon
  :icon="['fas', 'users']"
  size="6x"
  :gradient-fill="{
    id: 'linearNumeric',
    type: 'linear',
    x1: '0%', y1: '0%', x2: '100%', y2: '0%',
    stops: [
      { offset: 0, color: '#f97316' },
      { offset: 0.5, color: '#facc15' },
      { offset: 1, color: '#4ade80' }
    ]
  }" />
```

### Radial Gradient

Set `type: 'radial'` and use the following properties to control the gradient:

| Property | Description                                                                                                                                                                                                                                                         |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`     | A unique string identifying the gradient. Must be unique per page — see the warning below.                                                                                                                                                                          |
| `type`   | Set to `'radial'` for a radial gradient.                                                                                                                                                                                                                            |
| `cx`     | The horizontal center of the gradient circle, as a percentage string (e.g. `'50%'`).                                                                                                                                                                                |
| `cy`     | The vertical center of the gradient circle, as a percentage string (e.g. `'50%'`).                                                                                                                                                                                  |
| `r`      | The radius of the gradient circle, as a percentage string (e.g. `'50%'`). Controls how far the gradient spreads.                                                                                                                                                    |
| `fx`     | Optional. The horizontal focal point — where the innermost color originates. Defaults to `cx`. Shift this to move the light source left or right.                                                                                                                   |
| `fy`     | Optional. The vertical focal point — where the innermost color originates. Defaults to `cy`. Shift this to move the light source up or down.                                                                                                                        |
| `stops`  | An array of stop objects. Each stop has an `offset` (where along the gradient the color applies), a `color` (hex or CSS color), and an optional `opacity` (0–1). The `offset` accepts a percentage string (`'0%'`, `'45%'`) or a decimal number (`0`, `0.45`, `1`). |

  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="48" style="margin-right: 1.5rem">
    <defs>
      <radialGradient id="docs-radial1" cx="30%" cy="30%" r="70%">
        <stop offset="0%" stop-color="#FDF497" />
        <stop offset="45%" stop-color="#FD5949" />
        <stop offset="60%" stop-color="#D6249F" />
        <stop offset="90%" stop-color="#285AEB" />
      </radialGradient>
    </defs>
    <path fill="url(#docs-radial1)" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"/>
  </svg>
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" height="48" overflow="visible" style="margin-right: 1.5rem">
    <defs>
      <radialGradient id="docs-radialOpacity" cx="50%" cy="50%" r="50%">
        <stop offset="0%" stop-color="#f7ff00" stop-opacity="1" />
        <stop offset="100%" stop-color="#db36a4" stop-opacity="0.8" />
      </radialGradient>
    </defs>
    <path fill="url(#docs-radialOpacity)" d="M349.4 44.6c5.9-13.7 1.5-29.7-10.6-38.5s-28.6-8-39.9 1.8l-256 224c-10 8.8-13.6 22.9-8.9 35.3S50.7 288 64 288H175.8L98.6 467.4c-5.9 13.7-1.5 29.7 10.6 38.5s28.6 8 39.9-1.8l256-224c10-8.8 13.6-22.9 8.9-35.3s-16.6-20.7-30-20.7H272.2L349.4 44.6z"/>
  </svg>
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" height="48">
    <defs>
      <radialGradient id="docs-radialFocal" cx="50%" cy="50%" r="60%" fx="30%" fy="30%">
        <stop offset="0%" stop-color="#ffffff" />
        <stop offset="50%" stop-color="#60a5fa" />
        <stop offset="100%" stop-color="#1e3a8a" />
      </radialGradient>
    </defs>
    <path fill="url(#docs-radialFocal)" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z"/>
  </svg>

  **String:**
  **Array:**

```html
<!-- Multi-stop radial -->
<font-awesome-icon
  icon="fa-solid fa-circle"
  size="6x"
  :gradient-fill="{
    id: 'radial1',
    type: 'radial',
    cx: '30%', cy: '30%', r: '70%',
    stops: [
      { offset: '0%', color: '#FDF497' },
      { offset: '45%', color: '#FD5949' },
      { offset: '60%', color: '#D6249F' },
      { offset: '90%', color: '#285AEB' }
    ]
  }" />

<!-- With per-stop opacity -->
<font-awesome-icon
  icon="fa-solid fa-bolt"
  size="6x"
  :gradient-fill="{
    id: 'radialOpacity',
    type: 'radial',
    cx: '50%', cy: '50%', r: '50%',
    stops: [
      { offset: 0, color: '#f7ff00', opacity: 1 },
      { offset: 1, color: '#db36a4', opacity: 0.8 }
    ]
  }" />

<!-- With focal point (fx/fy) -->
<font-awesome-icon
  icon="fa-solid fa-circle"
  size="6x"
  :gradient-fill="{
    id: 'radialFocal',
    type: 'radial',
    cx: '50%', cy: '50%', r: '60%',
    fx: '30%', fy: '30%',
    stops: [
      { offset: 0, color: '#ffffff' },
      { offset: 0.5, color: '#60a5fa' },
      { offset: 1, color: '#1e3a8a' }
    ]
  }" />
```

```html
<!-- Multi-stop radial -->
<font-awesome-icon
  :icon="['fas', 'circle']"
  size="6x"
  :gradient-fill="{
    id: 'radial1',
    type: 'radial',
    cx: '30%', cy: '30%', r: '70%',
    stops: [
      { offset: '0%', color: '#FDF497' },
      { offset: '45%', color: '#FD5949' },
      { offset: '60%', color: '#D6249F' },
      { offset: '90%', color: '#285AEB' }
    ]
  }" />

<!-- With per-stop opacity -->
<font-awesome-icon
  :icon="['fas', 'bolt']"
  size="6x"
  :gradient-fill="{
    id: 'radialOpacity',
    type: 'radial',
    cx: '50%', cy: '50%', r: '50%',
    stops: [
      { offset: 0, color: '#f7ff00', opacity: 1 },
      { offset: 1, color: '#db36a4', opacity: 0.8 }
    ]
  }" />

<!-- With focal point (fx/fy) -->
<font-awesome-icon
  :icon="['fas', 'circle']"
  size="6x"
  :gradient-fill="{
    id: 'radialFocal',
    type: 'radial',
    cx: '50%', cy: '50%', r: '60%',
    fx: '30%', fy: '30%',
    stops: [
      { offset: 0, color: '#ffffff' },
      { offset: 0.5, color: '#60a5fa' },
      { offset: 1, color: '#1e3a8a' }
    ]
  }" />
```

  <h4>
    Unique IDs Required
  </h4>

The `id` in your `gradient-fill` config must be unique per page. SVG gradient definitions are global to the document, and duplicate `id` values are invalid — if two icons share the same `id`, `url(#id)` references can resolve unpredictably. Use dynamic IDs (e.g. Vue's `useId()` in 3.5+, or a UUID) when reusing the same gradient config in multiple places on the same page.

  <h4>
    Not Compatible with Symbol Mode
  </h4>

`gradient-fill` is not compatible with the `symbol` prop. When both are used together, the gradient will be ignored.

## Duotone Icons

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/duotone.md)
For Duotone icons, you can swap the opacity on the layers:

  **String:**
  **Array:**

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

```html
<font-awesome-icon :icon="['fad', 'coffee-pot']" swap-opacity />
```

We've also built a lot of utility into [CSS custom properties for Duotone icons](/web/style/duotone.md#duotone-cheatsheet).

## Layer

[<i class="fa-regular fa-book-open fa-lg fa-pull-right" style="position: relative; top: -2rem;" title="View Docs"></i>](/web/style/layer.md)
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:

```js
import { createApp } from 'vue'
import App from './App.vue'
import { FontAwesomeIcon, FontAwesomeLayers, FontAwesomeLayersText } from '@fortawesome/vue-fontawesome'

createApp(App)
  .component('font-awesome-icon', FontAwesomeIcon)
  .component('font-awesome-layers', FontAwesomeLayers)
  .component('font-awesome-layers-text', FontAwesomeLayersText)
  .mount('#app')
```

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.

  **String:**
  **Array:**

```html
<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>
```

```html
<font-awesome-layers class="fa-lg">
  <font-awesome-icon :icon="['fas', 'circle']" />
  <font-awesome-icon :icon="['fas', '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.

  **String:**
  **Array:**

```html
<font-awesome-layers fixed-width style="background: MistyRose" class="fa-4x">
  <font-awesome-icon icon="fa-solid fa-certificate" />
  <font-awesome-layers-text
    class="fa-inverse"
    transform="shrink-11.5 rotate--30"
    :style="{ fontWeight: 900 }"
    value="NEW" />
</font-awesome-layers>
```

```html
<font-awesome-layers fixed-width style="background: MistyRose" class="fa-4x">
  <font-awesome-icon :icon="['fas', 'certificate']" />
  <font-awesome-layers-text
    class="fa-inverse"
    transform="shrink-11.5 rotate--30"
    :style="{ fontWeight: 900 }"
    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`.

  **String:**
  **Array:**

```html
<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>
```

```html
<font-awesome-layers full-width class="fa-4x">
  <font-awesome-icon :icon="['fas', '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.

  **String:**
  **Array:**

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

```html
<font-awesome-icon :icon="['fas', 'coffee']" inverse />
```

  <h4>
    Did you know?
  </h4>

We have an `fa-truck` load of [CSS custom properties](/web/style/style-cheatsheet.md) to let you customize and style
your icons even more.
