Implementation of the lucide icon library for Vue applications.
⚠️ This version of lucide is for Vue 2, For Vue 3 got to lucide-vue-next
yarn add lucide-vue
or
npm install lucide-vue
It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a vue component.
You can pass additional props to adjust the icon.
<template><Camera color="red" :size="32" /></template><script>// Returns Vue componentimport { Camera } from 'lucide-vue';export default {name: 'My Component',components: { Camera }};</script>
name | type | default |
---|---|---|
size | number | 24 |
color | string | currentColor |
stroke-width | number | 2 |
absolute-stroke-width | boolean | false |
default-class | string | lucide-icon |
You can also pass custom props that will be added in the svg as attributes.
<template><Camera fill="red" /></template>
It is possible to create one generic icon component to load icons.
⚠️ Example below importing all EsModules, caution using this example, not recommended when you using bundlers, your application build size will grow strongly.
<template><component :is="icon" /></template><script>import * as icons from 'lucide-vue';export default {props: {name: {type: String,required: true}},computed: {icon() {return icons[this.name];}}};</script>
<template><div id="app"><Icon name="Airplay" /></div></template>