Top Related Projects
The iconic SVG, font, and CSS toolkit
Simply beautiful open-source icons
Premium hand-crafted icons built by Ionic, for Ionic apps and web apps everywhere 🌎
A scalable set of icons handcrafted with <3 by GitHub
A set of over 5800 free MIT-licensed high-quality SVG icons for you to use in your web projects.
✒7000+ Material Design Icons from the Community
Quick Overview
Vue Unicons is a Vue.js component library that provides a comprehensive set of customizable icons for use in Vue applications. It offers over 1,000 vector icons that can be easily integrated and styled within Vue projects, enhancing the visual appeal and user experience of web applications.
Pros
- Large collection of over 1,000 high-quality vector icons
- Easy integration with Vue.js projects
- Customizable icon properties such as size, color, and animation
- Regular updates and additions to the icon set
Cons
- Limited to Vue.js projects, not suitable for other frameworks
- May increase bundle size if many icons are used
- Requires additional setup compared to using standard image icons
- Some advanced customizations may require deeper knowledge of SVG manipulation
Code Examples
- Basic icon usage:
<template>
<unicon name="github" />
</template>
<script>
import { Unicon } from 'vue-unicons'
import { uniGithub } from 'vue-unicons/dist/icons'
Unicon.add([uniGithub])
export default {
components: { Unicon }
}
</script>
- Customizing icon properties:
<template>
<unicon
name="heart"
fill="red"
width="32"
height="32"
:animation="{ type: 'beat', hover: true }"
/>
</template>
- Using icons in a button:
<template>
<button class="icon-button">
<unicon name="plus" />
Add Item
</button>
</template>
<style scoped>
.icon-button {
display: flex;
align-items: center;
gap: 8px;
}
</style>
Getting Started
-
Install the package:
npm install vue-unicons
-
Import and use in your Vue component:
<template> <div> <unicon name="github" /> </div> </template> <script> import Vue from 'vue' import Unicon from 'vue-unicons/dist/vue-unicons-vue2.umd' import { uniGithub } from 'vue-unicons/dist/icons' Unicon.add([uniGithub]) Vue.use(Unicon) export default { name: 'MyComponent' } </script>
-
For Vue 3, use the following import instead:
import Unicon from 'vue-unicons/dist/vue-unicons-vue3.umd'
Competitor Comparisons
The iconic SVG, font, and CSS toolkit
Pros of Font-Awesome
- Extensive icon library with over 7,000 icons
- Well-established and widely recognized in the web development community
- Supports multiple file formats (SVG, webfonts) and styling options
Cons of Font-Awesome
- Larger file size, which may impact page load times
- Requires additional setup and configuration for optimal performance
- Not specifically designed for Vue.js integration
Code Comparison
Font-Awesome (using SVG with JS):
<script src="https://kit.fontawesome.com/your-kit-code.js" crossorigin="anonymous"></script>
<i class="fas fa-user"></i>
vue-unicons:
<template>
<unicon name="user" />
</template>
<script>
import { Unicon } from 'vue-unicons'
import { uniUser } from 'vue-unicons/dist/icons'
Unicon.add([uniUser])
</script>
Key Differences
- vue-unicons is specifically designed for Vue.js, offering easier integration and better performance in Vue applications
- Font-Awesome provides a larger icon set and more styling options
- vue-unicons has a smaller file size and faster load times, but with a more limited icon selection
- Font-Awesome offers multiple implementation methods, while vue-unicons is focused on Vue.js components
Both libraries have their strengths, and the choice between them depends on project requirements, performance needs, and desired icon variety.
Simply beautiful open-source icons
Pros of Feather
- Larger icon set with over 280 icons
- Language-agnostic, can be used with any framework or vanilla JavaScript
- Simpler API and implementation
Cons of Feather
- Less Vue-specific optimizations
- Fewer customization options out-of-the-box
- Requires more setup for Vue projects
Code Comparison
Vue-unicons:
<template>
<unicon name="github" fill="royalblue"></unicon>
</template>
<script>
import { Unicon } from 'vue-unicons'
import { uniGithub } from 'vue-unicons/dist/icons'
Unicon.add([uniGithub])
</script>
Feather:
<template>
<feather-github size="24" color="royalblue"></feather-github>
</template>
<script>
import { GitHub } from 'feather-icons'
</script>
Summary
Vue-unicons is tailored specifically for Vue.js projects, offering seamless integration and Vue-specific optimizations. It provides a wide range of customization options and a Vue-friendly API. However, it has a smaller icon set compared to Feather.
Feather, on the other hand, offers a larger icon set and is more versatile across different frameworks. It has a simpler API but requires more setup for Vue projects. Feather is a good choice for projects that may need to work with multiple frameworks or require a larger variety of icons.
Premium hand-crafted icons built by Ionic, for Ionic apps and web apps everywhere 🌎
Pros of Ionicons
- Larger icon set with over 1,200 icons
- Supports multiple frameworks (React, Vue, Angular, Web Components)
- Backed by the Ionic team, ensuring regular updates and maintenance
Cons of Ionicons
- Larger file size due to the extensive icon set
- May require additional setup for framework-specific usage
- Less focused on Vue.js compared to Vue Unicons
Code Comparison
Vue Unicons:
<template>
<uniBookmark />
</template>
<script>
import { uniBookmark } from 'vue-unicons/dist/icons'
</script>
Ionicons:
<template>
<ion-icon name="bookmark"></ion-icon>
</template>
<script>
import { addIcons } from 'ionicons'
import { bookmark } from 'ionicons/icons'
addIcons({ bookmark })
</script>
Summary
Ionicons offers a more extensive icon set and broader framework support, making it suitable for larger projects or those using multiple frameworks. However, it comes with a larger file size and may require additional setup. Vue Unicons, on the other hand, is more focused on Vue.js and offers a simpler implementation for Vue projects, but with a smaller icon set. The choice between the two depends on project requirements, framework preferences, and desired simplicity of implementation.
A scalable set of icons handcrafted with <3 by GitHub
Pros of Octicons
- Larger icon set with over 200 icons
- Official GitHub design system, ensuring consistency with GitHub's UI
- Supports multiple formats (SVG, PNG, WebFont)
Cons of Octicons
- Not specifically designed for Vue.js integration
- May require additional setup for Vue.js projects
- Less flexibility in customization compared to Vue-specific libraries
Code Comparison
Vue Unicons usage:
<template>
<unicon name="github" fill="currentColor"></unicon>
</template>
<script>
import { Unicon } from 'vue-unicons'
import { uniGithub } from 'vue-unicons/dist/icons'
Unicon.add([uniGithub])
</script>
Octicons usage (with additional Vue setup):
<template>
<octicon name="mark-github" :size="24"></octicon>
</template>
<script>
import Octicon from '@primer/octicons-vue'
import { markGithub } from '@primer/octicons'
export default {
components: { Octicon }
}
</script>
Both libraries offer icon components, but Vue Unicons provides a more Vue-centric approach with easier integration. Octicons, while not Vue-specific, offers a broader range of icons and formats, making it suitable for various project types beyond Vue.js applications.
A set of over 5800 free MIT-licensed high-quality SVG icons for you to use in your web projects.
Pros of tabler-icons
- Larger icon set with over 3,200 icons, offering more variety
- Supports multiple formats including SVG, React, and web font
- Regular updates and active maintenance
Cons of tabler-icons
- Not specifically designed for Vue.js, requiring additional setup for Vue projects
- Larger file size due to the extensive icon set
Code comparison
tabler-icons (React usage):
import { IconHome } from '@tabler/icons-react';
function App() {
return <IconHome size={24} color="blue" />;
}
vue-unicons:
<template>
<unicon name="home" fill="blue" width="24" height="24" />
</template>
<script>
import { Unicon } from 'vue-unicons'
import { uniHome } from 'vue-unicons/dist/icons'
Unicon.add([uniHome])
</script>
Summary
tabler-icons offers a more extensive icon set with broader framework support, making it suitable for various projects. However, vue-unicons provides a more streamlined experience for Vue.js developers with its Vue-specific implementation. The choice between the two depends on the project requirements, with tabler-icons being more versatile across different frameworks and vue-unicons offering a more integrated solution for Vue.js projects.
✒7000+ Material Design Icons from the Community
Pros of MaterialDesign
- Extensive icon library with over 7,000 icons
- Regular updates and community contributions
- Supports multiple file formats (SVG, PNG, XAML)
Cons of MaterialDesign
- Not specifically designed for Vue.js integration
- Requires additional setup for use in Vue projects
- Larger file size due to the extensive icon set
Code Comparison
MaterialDesign usage (with additional setup):
<template>
<svg viewBox="0 0 24 24">
<path :d="mdiAccount" />
</svg>
</template>
<script>
import { mdiAccount } from '@mdi/js'
</script>
vue-unicons usage:
<template>
<unicon name="user" />
</template>
<script>
import { Unicon } from 'vue-unicons'
import { uniUser } from 'vue-unicons/dist/icons'
Unicon.add([uniUser])
</script>
Summary
MaterialDesign offers a vast icon library with multiple format options, making it versatile for various projects. However, it requires additional setup for Vue.js integration. vue-unicons, on the other hand, is specifically designed for Vue.js, offering easier implementation but with a more limited icon set. The choice between the two depends on project requirements, icon variety needs, and ease of integration preferences.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME

1000+ Pixel-perfect svg unicons for your next project as Vue components
Supporting
Vue Unicons is open source project and completely free to use.
If you like the project, you can donate to support the development via the following methods:
Demo
https://antonreshetov.github.io/vue-unicons
Developed with love for developers
A simple way to add the necessary icons and install them.

Install
NPM
Installing with npm is recommended and it works seamlessly with webpack.
npm i vue-unicons
Download
You can download latest version from the Github: Download
Quick start
Global
To use in your project:
- Import vue-unicons
- Grab the icons you want and add then into Unicon library
- Install Unicon into Vue
main.js
Vue 3
import { createApp } from 'vue'
import App from './App.vue'
import Unicon from 'vue-unicons'
import { uniLayerGroupMonochrome, uniCarWash } from 'vue-unicons/dist/icons'
Unicon.add([uniLayerGroupMonochrome, uniCarWash])
createApp(App).use(Unicon).mount('#app')
Vue 2
import Vue from 'vue'
import App from './App.vue'
import Unicon from 'vue-unicons/dist/vue-unicons-vue2.umd'
import { uniLayerGroupMonochrome, uniCarWash } from 'vue-unicons/dist/icons'
Unicon.add([uniLayerGroupMonochrome, uniCarWash])
Vue.use(Unicon)
new Vue({
render: h => h(App)
}).$mount('#app')
App.vue
Use the name of icon without the uni prefix, icon style and in the kebab-case:
uniCarWash
->car-wash
uniLayerGroupMonochrome
->layer-group
<template>
<div>
<unicon name="car-wash" fill="limegreen"></unicon>
<unicon name="layer-group" fill="royalblue" icon-style="monochrome"></unicon>
</div>
</template>
Config
You can configure the icons globally. Simply specify the required parameters during installation.
...
createApp(App)
.use(Unicon, {
fill: 'deeppink',
height: 32,
width: 32
})
.mount('#app')
Add custom icons
No icons you need? No problem, you can add custom svg icons.
custom-icons.js
// Always use a prefix to avoid coincidence with existing icons.
export const myCustomIcon = {
name: 'my-custom-icon',
style: 'line',
path: '<path d="M16.327 10.775a.312.312 0 0...</path>' // Copy everything inside the svg tag of the icon you want and past there
}
For correct positioning of svg icon please make sure that the icon to be added has
viewBox="0 0 X X"
main.js
import { createApp } from 'vue'
import App from './App.vue'
import Unicon from 'vue-unicons'
import { uniLayerGroupMonochrome, uniCarWash } from 'vue-unicons/dist/icons'
import { myCustomIcon } from './custom-icons'
Unicon.add([uniLayerGroupMonochrome, uniCarWash, myCustomIcon])
createApp(App).use(Unicon).mount('#app')
App.vue
<template>
<div>
<unicon name="constructor" fill="royalblue"></unicon>
<unicon name="car-wash" fill="limegreen"></unicon>
<unicon name="my-custom-icon" fill="royalblue" />
</div>
</template>
Nuxt
Installation in Nuxt is almost the same, except that you need to create a separate file in the plugins
folder:
plugins/vue-unicons.js
import Vue from 'vue'
import Unicon from 'vue-unicons/dist/vue-unicons-vue2.umd'
import { uniLayerGroupMonochrome, uniCarWash } from 'vue-unicons/dist/icons'
Unicon.add([uniLayerGroupMonochrome, uniCarWash])
Vue.use(Unicon)
Then we add the file path inside the plugins key in nuxt.config.js
, and set mode: 'client'
to make vue-unicons work only in a browser.
...
plugins: [
{ src: '~/plugins/vue-unicons', mode: 'client' }
]
...
<template>
<div>
<client-only>
<unicon name="car-wash" fill="limegreen"></unicon>
<unicon name="layer-group" fill="royalblue" icon-style="monochrome"></unicon>
</client-only>
</div>
</template>
Props
Name | Description | Type | Accepted values | Default value |
---|---|---|---|---|
name | Icon name | string | - | - |
width | Width of icon | string | - | - |
height | Height of icon | string | - | - |
fill | Fill color of icon | string | HEX or color name | - |
hover-fill | Fill color on hover | string | HEX or color name | - |
icon-style | Icon style | string | line / monochrome | line |
Events
Name | Description | Payload |
---|---|---|
click | Triggered when icon was clicked | - |
License
Vue Unicons licensed under MIT.
Unicons licensed under Apache 2.0
Top Related Projects
The iconic SVG, font, and CSS toolkit
Simply beautiful open-source icons
Premium hand-crafted icons built by Ionic, for Ionic apps and web apps everywhere 🌎
A scalable set of icons handcrafted with <3 by GitHub
A set of over 5800 free MIT-licensed high-quality SVG icons for you to use in your web projects.
✒7000+ Material Design Icons from the Community
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot