0.4.0 • Published 7 years ago
nuxt-fontawesome v0.4.0
Nuxt Font Awesome 5
Plugin to join nuxt and Font Awesome 5 icons using official vue-fontawesome plugin. Supports ES6 imports with tree shaking and fix of initial load flickering
Setup
- Add dependencies using npm to your project
npm i nuxt-fontawesomeAlso it may be needed to explicitly install fontawesome, if your webpack build failsnpm i @fortawesome/fontawesome-svg-core @fortawesome/vue-fontawesome Configure
nuxt.config.js:- Add
nuxt-fontawesometomodulessection - Configure loaded icons/whole sets
- Add
See more details about usage below
{
modules: [
'nuxt-fontawesome',
//OR like this
['nuxt-fontawesome', {
component: 'fa',
imports: [
//import whole set
{
set: '@fortawesome/free-solid-svg-icons',
icons: ['fas']
},
//import 2 icons from set
// please note this is PRO set in this example,
// you must have it in your node_modules to actually import
{
set: '@fortawesome/pro-regular-svg-icons',
icons: ['faAdjust', 'faArchive']
}
]
}]
],
//alternative place for config
fontawesome: {
imports: [
...
]
}
}Module options
component
Change component name. For example, fa to use like
<fa ... />
- Default:
font-awesome-icon
imports
Import icons/whole sets from chosen packages
- Default:
[], no icons will be imported here (see below, can be loaded later inside .vue file)set- path to node package for import, like@fortawesome/free-solid-svg-iconsicons- array of icons to import['faAdjust', 'faArchive'].
Usage
You can find more details under example folder. Also please see vue-fontawesome for additional reference
- Add needed dependency, like
npm i @fortawesome/free-solid-svg-icons - Add configuration like this in
nuxt.config.js
Component names by default:
<font-awesome-icon><font-awesome-layers><font-awesome-layers-text>
With component option set, -layers and -layers-text suffixes will be appended (see example below)
{
fontawesome: {
imports: [
{
set: '@fortawesome/pro-regular-svg-icons',
icons: ['faAdjust']
},
{
set: '@fortawesome/free-solid-svg-icons',
icons: ['fas']
},
],
},
}Then use
<template>
<div>
<font-awesome-icon :icon="['fas', 'adjust']" />
<font-awesome-icon icon="dollar-sign" style="font-size: 30px"/>
<font-awesome-icon icon="cog"/>
<font-awesome-layers class="fa-4x">
<font-awesome-icon icon="circle"/>
<font-awesome-icon icon="check" transform="shrink-6" :style="{ color: 'white' }"/>
</font-awesome-layers>
<font-awesome-layers full-width class="fa-4x">
<font-awesome-icon icon="calendar"/>
<font-awesome-layers-text transform="shrink-8 down-3" value="27" class="fa-inverse" />
</font-awesome-layers>
</div>
</template>- Load and use directly in template. Component name changed in
nuxt.config.jstofa
fontawesome: {
component: 'fa'
},<template>
<div>
<fa-layers full-width class="fa-4x">
<fa :icon="fas.faCircle"/>
<fa-layers-text transform="shrink-12" value="GALSD" class="fa-inverse" />
</fa-layers>
<fa :icon="fas.faAddressBook" />
<fa :icon="faGithub" />
</div>
</template>
<script>
import { fas } from '@fortawesome/free-solid-svg-icons'
import { faGithub } from '@fortawesome/free-brands-svg-icons'
export default {
computed: {
fas () {
return fas
},
faGithub () {
return faGithub
}
},
}
</script>License
MIT, made by Galley Web Development