Lucide
A community-maintained set of more than 1,600 line icons, a fork of Feather, shipped as SVG files and as tree-shakable components for React, Vue, Svelte, Solid, Angular and other frameworks.
- What it is
- UI libraries (component libraries)
- Type
- Open source
- Made by
- Lucide Icons and Contributors
- License
- ISC (icons derived from Feather: MIT)
- Facts checked
- 24 October 2026
What it is
Lucide is an icon library rather than a set of widgets: every icon follows one drawing style, so they look like a family wherever they appear. Each is drawn on a 24 × 24 pixel canvas with 2-pixel strokes, round joins and caps, at least 1 pixel of padding and 2 pixels between separate shapes. The same SVGs are published as plain files (lucide-static), a vanilla JavaScript package (lucide) and one package per framework: lucide-react, lucide-react-native, @lucide/vue, @lucide/svelte, lucide-solid, lucide-preact, @lucide/angular and @lucide/astro.
In React each icon is a component that renders an inline SVG. You theme it with props instead of CSS files: size (default 24), color (default currentColor, so the icon takes the text colour around it) and strokeWidth (default 2). Because every icon is its own export, a bundler keeps only the icons you import. This site uses lucide-react too: every concept’s icon is a Lucide name, checked against the installed icon set when the content is built.
Lucide 1.0 shipped on 23 March 2026. It removed all brand logos (the project points to Simple Icons for those), set aria-hidden on icons by default because most are decorative, dropped the UMD build in favour of ESM and CommonJS, which cut lucide-react by 32.3%, renamed lucide-vue-next to @lucide/vue, and added context providers that set default props for every icon in a subtree. Releases are frequent; 1.61.0 came out on 21 October 2026.
Why teams pick it
- One consistent style across 1,600+ icons, enforced by written design rules for every contribution
- Tree-shakable per-icon exports, so only the icons you import reach the bundle
- Official packages for most front-end frameworks, plus plain SVG files, an icon font and a Figma plugin
- A permissive ISC licence, free for commercial use
Watch out for
- No brand logos since version 1, by policy; you need a second set such as Simple Icons for them
- One style only: the design rules call for 2-pixel outline strokes, so the set has no filled or duotone variants to switch to
- Loading icons by name at run time (
DynamicIcon) imports every icon during the build, adds a module per icon and can flash while an icon loads, so the docs advise static imports - Names change between versions: some Feather icons were renamed at the fork and version 1 renamed packages, so upgrades can break imports or icon names stored in content
Alternatives
What all component libraries have in common →Compare side by side →Icons as React components, themed with props · ts
// npm install lucide-react
import { Camera, Trash2 } from 'lucide-react'
export function PhotoActions() {
return (
<div className="text-slate-600">
<Camera /> {/* 24px, 2px stroke, text colour */}
<Trash2 size={16} color="crimson" strokeWidth={1.5} /> {/* themed per icon */}
</div>
)
}
// Only Camera and Trash2 end up in the bundle.See it in a real stack
No architecture uses Lucide yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2020–2026
Feather, a set of minimal line icons by Cole Bemis, stopped keeping up with contributions. Lucide’s maintainers describe more than 300 open issues and over 100 open pull requests, and contributors whose new icons were never merged. Out of that dissatisfaction a group of them forked it as Lucide; the lucide-icons/lucide repository dates from June 2020. They kept every Feather icon, renamed some, and set out to grow the set in the same design language.
The set grew from Feather’s roughly 287 icons to more than 1,600, with written design rules and community review for each addition, and packages for one framework after another. After years on 0.x versions, the project released version 1 in March 2026, by which time it reported more than 30 million downloads a week.
Why it’s built this way
- A community fork rather than a new set
- Feather’s style was already liked and widely used, but contributions weren’t being accepted. Forking kept the style and the existing icons while opening the project to new ones.
- Strict drawing rules
- With many contributors, consistency has to be written down: the same canvas, stroke width, corner radius and spacing for every icon, so a new icon fits next to the old ones.
- No brand logos
- Version 1 removed them, citing legal restrictions, design consistency and practical maintenance: logos belong to their owners and don’t fit a uniform outline style.
Timeline
- 2020
The lucide-icons/lucide repository is created in June as a fork of Feather
- 2026
Version 1 released on 23 March: brand icons removed,
aria-hiddenby default, no UMD build
Sources11 · facts checked 24 October 2026
- Lucide docs: Introduction (1600+ icons, official packages, tree-shaking, ISC licence)
- Lucide docs: Icon design guide (24 × 24 canvas, 2px stroke, round joins and caps, spacing)
- Lucide docs: React, getting started (install, props and defaults)
- Lucide docs: React overview (standalone components rendering inline SVG; only imported icons are bundled)
- Lucide docs: Dynamic icon component (imports all icons at build time, flashing, SSR)
- Lucide docs: Version 1 (brand icons removed, aria-hidden default, ESM and CJS only, 32.3% smaller lucide-react, context providers)
- GitHub: Lucide release 1.0.1 (Version 1, 23 March 2026)
- GitHub: Lucide releases (1.61.0 on 21 October 2026)
- GitHub: Lucide README (packages per framework, Figma plugin, brand logo policy)
- GitHub: Lucide LICENSE (ISC; Feather-derived icons under MIT, Cole Bemis)
- Lucide docs: Lucide vs Feather Icons