Lucide Icons for Vue 3

1.0.0 · active · verified Sun Apr 19

lucide-vue-next is the official Vue 3 implementation of Lucide, a modern, community-driven icon library that serves as a spiritual successor to Feather Icons. It provides a highly customizable and extensive collection of SVG icons specifically designed for Vue 3 applications. The library is currently stable at version 1.8.0, with frequent minor and patch releases to add new icons and address bug fixes. Key differentiators include its focus on customizability (stroke width, color, size), its tree-shakeable nature, and a large, ever-growing icon set, ensuring minimal bundle size and flexibility for developers. It leverages Vue's component system for efficient rendering and integration.

Common errors

Warnings

Install

Imports

Quickstart

This quickstart demonstrates importing multiple Lucide icons as Vue components, passing props for customization, and reactively changing an icon's color.

<template>
  <div class="icon-display">
    <h1>Lucide Vue Icons</h1>
    <div class="icons-grid">
      <Activity :size="48" color="var(--activity-color, #1e90ff)" stroke-width="1.5" />
      <BatteryCharging :size="48" color="green" stroke-width="2" />
      <Bell :size="48" :color="dynamicColor" stroke-width="2.5" />
      <Camera :size="48" color="purple" stroke-width="1" />
    </div>
    <button @click="toggleColor">Change Bell Color</button>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';
import { Activity, BatteryCharging, Bell, Camera } from 'lucide-vue-next';

const dynamicColor = ref('orange');

function toggleColor() {
  dynamicColor.value = dynamicColor.value === 'orange' ? 'blue' : 'orange';
}
</script>

<style scoped>
.icon-display {
  font-family: sans-serif;
  text-align: center;
  padding: 20px;
}
.icons-grid {
  display: flex;
  gap: 20px;
  justify-content: center;
  margin-top: 30px;
  margin-bottom: 20px;
}
</style>

view raw JSON →