IconSearch logoIconsearch
VUE 3 ARCHITECTURE

Vue 3 Icons: Composition API & Nuxt 3 Guide (2026)

Integrate high-performance SVG icon libraries into Vue 3 and Nuxt 3 applications. Master <script setup> syntax, Vite tree-shaking, and SSR-safe dynamic components.

Top Recommendation: lucide-vue-next for general Vue 3 / Nuxt 3 apps.

1. Vue 3 Composition API & Dynamic Component Patterns

In modern Vue 3, icons are imported as functional SFC components that accept reactive props:

<!-- components/UserCard.vue -->
<script setup lang="ts">
import { ref } from 'vue'
import { User, Mail, CheckCircle2 } from 'lucide-vue-next'

const isVerified = ref(true)
</script>

<template>
  <div class="flex items-center gap-4 p-4 rounded-xl border border-zinc-800 bg-zinc-900">
    <User :size="24" class="text-zinc-400" />
    <div class="flex-1">
      <div class="flex items-center gap-1.5 font-medium">
        <span>Alex Morgan</span>
        <CheckCircle2 v-if="isVerified" :size="16" class="text-emerald-400" />
      </div>
      <p class="text-xs text-zinc-500">Engineering Lead</p>
    </div>
  </div>
</template>

Verified Vue 3 Icon Libraries (13)

#1

Lucide Icons

12,0001,960 iconsISC

A clean, consistent open-source icon library with 1960+ icons, forked from Feather Icons with active maintenance and TypeScript support.

npm install lucide-react
Full Guide & Catalog →✓ TypeScript✓ Tree-shakable
#2

Heroicons

21,000324 iconsMIT

Beautiful hand-crafted SVG icons by the makers of Tailwind CSS. Available in outline and solid styles with 324 icons.

npm install @heroicons/react
Full Guide & Catalog →✓ TypeScript✓ Tree-shakable
#3

Tabler Icons

18,0006,147 iconsMIT

Over 6100 free MIT-licensed high-quality SVG icons. One of the largest free icon libraries available for web projects.

npm install @tabler/icons-react
Full Guide & Catalog →✓ TypeScript✓ Tree-shakable
#4

Phosphor Icons

8,0001,533 iconsMIT

Flexible icon family with 6 weights including thin, light, regular, bold, fill and duotone. Over 1500 icons available.

npm install @phosphor-icons/react
Full Guide & Catalog →✓ TypeScript✓ Tree-shakable
#5

Remix Icon

6,0003,229 iconsApache 2.0

Open-source neutral-style system symbols for designers and developers. Over 3200 icons in line and fill styles.

npm install remixicon
#6

Bootstrap Icons

7,0002,078 iconsMIT

Free, high quality, open source icon library with over 2000 icons. Designed by the Bootstrap team.

npm install bootstrap-icons
#7

Iconoir

5,2001,384 iconsMIT

A high-quality, open-source icon library featuring over 1,300 meticulously crafted line icons. Highly consistent, premium aesthetic perfect for modern UIs.

npm install iconoir-react
Full Guide & Catalog →✓ TypeScript✓ Tree-shakable
#8

Octicons

10,400280 iconsMIT

GitHub's official icon set designed specifically for developer dashboards, code repositories, git histories, and developer utilities.

npm install @primer/octicons-react
Full Guide & Catalog →✓ TypeScript✓ Tree-shakable
#9

Ant Design Icons

8,700840 iconsMIT

The official icon set for Ant Design (AntD), featuring over 800 highly consistent icons in Outlined, Filled, and TwoTone themes for enterprise UIs.

npm install @ant-design/icons
Full Guide & Catalog →✓ TypeScript✓ Tree-shakable
#10

Devicons

9,500800 iconsMIT

800+ developer and technology brand icons — logos for every programming language, framework, database, and tool. Available in original (color), plain, and line variants.

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/devicon.min.css" />
#11

Teenyicons

2,1001,200 iconsMIT

Tiny, minimalist 1px-stroke vector icons designed to fit beautifully in the smallest spaces. Optimised for 15x15 grids.

npm install teenyicons
Full Guide & Catalog →✓ Tree-shakable
#12

Circum Icons

800288 iconsMPL-2.0

Consistent, ultra-minimalist line icons featuring simple visual geometry and rounded outlines.

npm install circum-icons
Full Guide & Catalog →✓ Tree-shakable
#13

Elusive Icons

1,200304 iconsOFL-1.1

A clean, customisable web font and SVG vector icon set optimized for Bootstrap layouts.

npm install elusive-icons
Full Guide & Catalog →✓ Tree-shakable
FREQUENTLY ASKED QUESTIONS

Vue 3 & Nuxt 3 Icon FAQ

How do I use Lucide icons in Vue 3 with script setup?

Install `lucide-vue-next` and import icons directly inside your `<script setup>` block: `import { Home, Settings } from "lucide-vue-next"`. You can render `<Home :size="20" class="text-emerald-500" />` with full TypeScript prop validation.

How do dynamic icon components work in Vue 3 without bundling unused icons?

In Vue 3, avoid dynamic global registrations. Instead, use dynamic component syntax `<component :is="resolvedIcon" />` with shallowRef or explicit lookup maps containing only the icons used in your application.

Are Vue 3 icon packages compatible with Nuxt 3 SSR?

Yes. Packages like `lucide-vue-next` and `@tabler/icons-vue` render static SVG markup that compiles on the server during Nuxt 3 SSR without hydration mismatch errors or client-side layout shifts.

How do I customize stroke width and default icon props globally in Vue 3?

You can create a custom Vue 3 plugin using `app.provide` or wrap the icon library in a custom `AppIcon.vue` base component that passes default `:stroke-width="1.75"` and `:size="20"` to child icon components.

Explore Svelte & Framework Guides

Discover Svelte 5, React, and TypeScript icon integrations.

Svelte Guide →React Guide →