TypeScript icon, indicating that this package has built-in type declarations

    0.4.7 • Public • Published

    Oh, Vue Icons!

    npm downloads license

    English | 中文说明

    A Vue component for including inline SVG icons from different popular icon packs easily.



    • Supports tree-shaking, which allows you to only import the used icons
    • Supports Vue 2 and Vue 3
    • Supports 30000+ icons from 20 popular icon packs, see here


    Supported Icon Packs

    Now the following 20 icon packs are supported:

    Icon Pack Prefix License Icon Numer
    academicons ai SIL OFL 1.1 145
    Bootstrap Icons bi MIT 1370
    CoreUI Icons Free (Colorful) co CC BY 4.0 License 1575
    Cryptocurrency Icons (Colorful) ci CC0 1.0 Universal 942
    Font Awesome 5 Free fa CC BY 4.0 1610
    Flat Color Icons (Colorful) fc MIT / Good Boy 329
    Flag Icon (Colorful) fi MIT 516
    gameicons gi CC BY 3.0 4040
    Heroicons hi MIT 460
    Ionicons io MIT 1332
    Line Awesome la MIT 1544
    Material Design icons md Apache 2.0 9047
    Octicons oi MIT 229
    Pokemon Icons (Colorful) pi CC BY 4.0 1453
    PrimeIcons pr MIT 202
    Pixelarticons px MIT 460
    Remix Icon ri Apache 2.0 2271
    Simple Icons si CC0 1.0 Universal 1978
    VSCode Icons (Colorful) vi CC BY-SA 4.0 1084
    Weather Icons wi SIL OFL 1.1 219



    Search for icons and view the documentation here.



    yarn add oh-vue-icons
    # or
    npm install oh-vue-icons



    Global Import

    Import oh-vue-icons and install it into Vue in main.js. You can only import the icons you need to reduce the bundle size.

    Vue 2

    // main.js
    import Vue from "vue";
    import App from "./App.vue";
    import OhVueIcon from "oh-vue-icons";
    import { FaFlag, RiZhihuFill } from "oh-vue-icons/icons";
    OhVueIcon.add(FaFlag, RiZhihuFill);
    Vue.component("v-icon", OhVueIcon);
    new Vue({
      render: h => h(App)

    If you don't care about the bundle size and want to import a whole icon pack, you may should:

    // main.js
    // import Font Awesome
    import * as FaIcons from "oh-vue-icons/icons/fa";
    const Fa = Object.values({ ...FaIcons });

    Vue 3

    // main.js
    import { createApp } from "vue";
    import App from "./App.vue";
    import OhVueIcon from "oh-vue-icons/dist/v3/icon.es";
    import { FaFlag, RiZhihuFill } from "oh-vue-icons/icons";
    OhVueIcon.add(FaFlag, RiZhihuFill);
    const app = createApp(App);
    app.component("v-icon", OhVueIcon);


    Local Import

    // Vue 2
    import OhVueIcon from "oh-vue-icons";
    // or Vue 3
    import OhVueIcon from "oh-vue-icons/dist/v3/icon.es";
    export default {
      components: {
        "v-icon": OhVueIcon



    The icon names should be passed using kebab-case.

        <v-icon name="fa-flag" />
        <v-icon name="ri-zhihu-fill" />

    For Font Awesome 5 icons, icons from regular pack have name prop values like fa-regular-flag. Icons from solid and brands pack have name prop values like fa-beer and fa-github.

    See the documentation for more about the usage.



    Name Description Type Accepted Values Default value
    scale Icon size number / 1
    animation Type of animation string wrench / ring / pulse / spin / spin-pulse / flash / float /
    speed Animation speed string slow / fast /
    hover Enable animation only when being hovered boolean true / false false
    flip Used to flip icon string vertical / horizontal / both /
    fill Fill color of icon string HEX color code or color name currentColor
    label Icon lable string / /
    title Icon title string / /
    inverse Make icon color white? boolean true / false false

    Some examples could be found in the documentation.



    When using Nuxt.js, oh-vue-icons should be added to the transpile build option in nuxt.config.js:

    export default {
      // ...
      build: {
        transpile: ["oh-vue-icons"]

    or it will not be bundled, see Nuxt's documentation for details.



    Contributions are welcomed, learn how to contribute here.





    This project is MIT licensed. Icons are taken from other projects, so check the license of each accordingly.


    npm i oh-vue-icons

    DownloadsWeekly Downloads






    Unpacked Size

    43.6 MB

    Total Files


    Last publish


    • renovamen