← back to all libraries
// ICON LIBRARY

Lucide Icons

Beautiful & consistent open-source icons

reactvuesveltenextjsISC
GitHub →Official Site →

STATS

1,400
Icons
12,000
GitHub Stars
3.2M
Weekly Downloads
ISC
License
~1kb per icon
Bundle Size
2020
Since

OVERVIEW

Lucide is one of the most popular open-source icon libraries in the developer ecosystem today. It was forked from Feather Icons in 2020 to address the lack of active maintenance, and has since grown into a thriving community-driven project with over 1,400 carefully crafted icons.

Every icon in Lucide is designed on a strict 24x24 grid with a 2px stroke width, ensuring perfect visual consistency across your entire application. Whether you use 5 icons or 500, they will all look like they belong together — something that cannot be said for many competing libraries.

Lucide is built from the ground up with modern development workflows in mind. It is fully tree-shakable, meaning your production bundle only includes the icons you actually import. It ships with complete TypeScript definitions, so you get full autocomplete and type safety in VS Code. The library supports React, Vue, Svelte, Angular, and vanilla JavaScript through separate packages.

// VERDICTFor most projects starting in 2026, Lucide Icons is the default recommendation. It hits the sweet spot between icon variety, visual quality, bundle size, and developer experience. The only reason to look elsewhere is if you need filled/duotone variants or a significantly larger icon set.

INSTALLATION

react
npm install lucide-react
nextjs
npm install lucide-react

// Note: Works with both App Router and Pages Router out of the box. No additional configuration needed.
vue
npm install lucide-vue-next
svelte
npm install lucide-svelte
vanilla
npm install lucide

CODE EXAMPLES

basic
import { Home, Settings, User } from 'lucide-react'

export default function App() {
  return (
    <div>
      <Home size={24} />
      <Settings size={24} color="#6366f1" />
      <User size={24} strokeWidth={1.5} />
    </div>
  )
}
with Tailwind
import { Bell } from 'lucide-react'

export default function Navbar() {
  return (
    <button className="flex items-center gap-2">
      <Bell className="h-5 w-5 text-gray-500" />
      <span>Notifications</span>
    </button>
  )
}
nextjs
// app/page.tsx
import { ArrowRight, Github, Star } from 'lucide-react'

export default function Page() {
  return (
    <main>
      <h1>Welcome</h1>
      <a href="/docs">
        Get Started <ArrowRight size={16} />
      </a>
    </main>
  )
}

PROS & CONS

PROS
Actively maintained
New icons added regularly, bugs fixed quickly. The project has a dedicated team and a large contributor base.
Perfect consistency
Every icon follows the same 24x24 grid and 2px stroke rules. Your UI will look cohesive no matter how many icons you use.
Full TypeScript support
Every icon is typed. You get autocomplete in VS Code, catching typos at compile time instead of runtime.
Tree-shakable
Only the icons you import end up in your bundle. Using 10 icons adds roughly 10kb — not the entire library.
Framework agnostic
Official packages for React, Vue, Svelte, Angular and vanilla JS. One library for your entire stack.
Figma plugin available
Designers can use the same icons in Figma that developers use in code, keeping design and dev in sync.
CONS
Outline style only
Lucide only offers outline/stroke icons. If your design needs filled or duotone variants, you will need a different library or a workaround.
No animated icons
Icons are static SVGs. For animated icons you would need to use a separate solution like Lordicon or custom CSS animations.
Smaller set than Tabler
At 1,400 icons, Lucide is large but not exhaustive. Very niche icons (specific logos, industry symbols) may be missing.

WHO SHOULD USE THIS

USE IF YOU...
React and Next.js developers who want a reliable, well-maintained icon library
Projects using Tailwind CSS — Lucide integrates perfectly via className props
TypeScript projects that need full type safety
Teams where designers and developers need to stay in sync via Figma
Projects that prioritize bundle size and performance
AVOID IF YOU...
Projects that specifically need filled or duotone icon styles
Designers who need 5,000+ icons to choose from (use Tabler instead)
Projects that need brand/logo icons (use Simple Icons instead)

FREQUENTLY ASKED QUESTIONS

Q.Is Lucide Icons free for commercial use?
A.Yes. Lucide uses the ISC license which is one of the most permissive open source licenses. You can use it in any commercial project without attribution.
Q.Does Lucide Icons work with Next.js App Router?
A.Yes. Lucide React components are compatible with both the Next.js App Router and Pages Router. They work in both Server Components and Client Components without any configuration.
Q.How do I change the size and color of a Lucide icon?
A.Use the size prop for dimensions (default 24) and the color prop for color. You can also use the strokeWidth prop to change the thickness. Alternatively, pass a className with Tailwind utilities like h-5 w-5 text-blue-500.
Q.Is Lucide Icons the same as Feather Icons?
A.Lucide started as a fork of Feather Icons but has since diverged significantly. Feather has 287 icons and is no longer actively maintained. Lucide has 1,400+ icons with active development and a large community.
Q.How big is Lucide in my bundle?
A.Each icon is approximately 0.5-1kb when tree-shaken. If you import 20 icons, you add roughly 10-20kb to your bundle — negligible for most applications.

COMPARE WITH ALTERNATIVES

Lucide Icons vs HeroiconsLucide Icons vs Tabler IconsLucide Icons vs Phosphor IconsLucide Icons vs Remix IconLucide Icons vs Feather IconsLucide Icons vs Bootstrap IconsLucide Icons vs Radix Icons