Files
2024-01-23 18:24:03 +01:00
..
2024-01-23 17:45:55 +01:00
2024-01-23 18:24:03 +01:00
2024-01-23 17:45:43 +01:00
2024-01-23 17:46:05 +01:00
2024-01-23 17:46:05 +01:00
2024-01-23 17:46:05 +01:00
2024-01-23 17:45:43 +01:00
2024-01-23 17:45:43 +01:00

Lucide Vue

Implementation of the lucide icon library for Vue 3 applications.

What is lucide? Read it here.

Installation

yarn add @lucide/vue

or

npm install @lucide/vue

How to use

It's build with ESmodules so it's completely tree-shakable. Each icon can be imported as a vue component.

Example

You can pass additional props to adjust the icon.

<template>
  <Camera color="red" :size="32" />
</template>

<script>
// Returns Vue component
import { Camera } from '@lucide/vue';

export default {
  name: 'My Component',
  components: { Camera }
};
</script>

Props

name type default
size number 24
color string currentColor
stroke-width number 2
absolute-stroke-width boolean false
default-class string lucide-icon

Custom props

You can also pass custom props that will be added in the svg as attributes.

<template>
  <Camera fill="red" />
</template>

One generic icon component

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.

Icon Component Example

<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>
Then you can use it like this
<template>
  <div id="app">
    <Icon name="Airplay" />
  </div>
</template>