Awesome
Tabler Icons as Vue 3 components
Preview
<details> <summary>Preview icons</summary> <p></p>
</details>
Features
- Over 1250 pixel-perfect icons
- TypeScript definitions
- Vue 3 support
- Vue 2 support (see v1.x)
- All icons are compiled to JS, no preprocessing required
Installation
Installation for Vue 3
yarn add vue-tabler-icons
# or
npm i vue-tabler-icons
Installation for Vue 2
Version 2.x is Vue 3 only, if you use Vue 2 then install any 1.x version
yarn add vue-tabler-icons@^1.0
v1.x is no longer a priority so updates may be delayed or discontinued.
Usage
<script>
// MyComponent.vue
import { BoldIcon } from "vue-tabler-icons";
export default {
components: { BoldIcon },
};
</script>
<template>
<bold-icon />
</template>
Using Vue plugin
You may install a Vue plugin that automatically adds all components to the Vue instance.
Note: this usage is not recommended as it cannot be tree-shaken.
import Vue from "vue";
import VueTablerIcons from "vue-tabler-icons";
Vue.use(VueTablerIcons);
Now you can use icons without importing them:
<template>
<trash-icon />
</template>
Using CDN
If you prefer CDN, then use this URL https://unpkg.com/vue-tabler-icons/dist/vue-tabler-icons.umd.js
The library doesn't automatically registers itself so you need to do it manually:
<script>
Vue.use(VueTablerIcons);
</script>
Naming pattern
Component names use the same names as defined in the original library with some rules applied:
- they are in PascalCase
- underscores before numbers are removed
Icon
added to the end of the name
For example:
arrows-diagonal-2
will become ArrowsDiagonal2Icon
.
Replacements
Following icon names are replaced to match JavaScript variable name pattern:
Original | New |
---|---|
2fa.svg | TwoFactorAuthIcon |
3d-cube-sphere.svg | ThreedCubeSphereIcon |
3d-cube-sphere-off.svg | ThreedCubeSphereIconOff |
3d-rotate.svg | ThreedRotateIcon |
123.svg | OneTwoThreeRotateIcon |
360-view.svg | Deg360ViewIcon |
360.svg | Deg360Icon |
Icon size
All components define size
property that you can use to control the icon's size:
<bold-icon size="48" />
Will render 48x48 icon.
All other attributes are directly bound to the underlying SVG image.
<bold-icon height="18" />Attributes height
and width
have higher precedence over size
property.
Icon color
All icons use currentColor
as their color. You can colorize your icons as you do that for text.
<bold-icon style="color: red" /> <bold-icon class="text-red" />
Stroke width and other SVG attributes
Any custom attribute that set on the component will be applied directly to the SVG asset.
For example, if you want to set stroke-width
attribute just set it as usually:
<bold-icon stroke-width="1" />
Building locally
Clone repo:
git clone https://github.com/alex-oleshkevich/vue-feather-icons.git
Install deps:
yarn install
Run build
yarn build
Icon component will be in icons
directory.
Credits
- Tabler Icons for icon pack