Head-to-Head

Lucide vs Feather Icons: Which to Use in 2026

Lucide vs Feather icons side by side comparison
Evolution benchmark: Lucide (1,900+ active icons) vs Feather (287 legacy icons).

1. The History: Why Lucide Exists

Feather Icons launched in 2017 as a set of 286 beautifully minimal outline icons on a 24×24 grid with 2px strokes. It quickly became the go-to icon set for developers who wanted clean, consistent UI icons without the bloat of Material or FontAwesome.

But by 2020, Feather's development had stalled. Pull requests went unmerged for months. Issues piled up. The community wanted more icons, more variants, and active maintenance — but the single maintainer couldn't keep pace.

Lucide was born as a community fork. It started with all 286 original Feather icons (preserving their names and visual style) and began adding new icons at a rapid pace. By 2026, Lucide has grown to 1,979 icons — nearly 7x the original Feather set — while maintaining the exact same 24px grid, 2px stroke, and minimalist aesthetic that made Feather famous.

2. Icon Count & Coverage

The most immediately obvious difference is sheer volume:

  • Feather: 286 icons. No new icons have been added since 2020.
  • Lucide: 1,979 icons. New icons are added in nearly every weekly release.

This matters in practice. With Feather's 286 icons, you'll inevitably hit gaps. Need a "webhook" icon? A "qr-code" icon? A "git-pull-request" icon? Feather doesn't have them. Lucide does. This eliminates the common anti-pattern of mixing two icon libraries in one project to fill coverage gaps.

You can browse all 1,979 Lucide icons and all 286 Feather icons side by side on IconStash.

3. Maintenance & Release Cadence

Feather Icons

  • Last meaningful commit: 2022
  • Open issues: 300+ (many requesting new icons)
  • Open PRs: 80+ (unmerged for years)
  • Maintainer response: Effectively absent
  • npm last publish: Security patches only

Lucide

  • Release cadence: Weekly (v0.468.0 as of July 2026)
  • Open issues: Actively triaged by a team of 5+ maintainers
  • Community contributions: 400+ contributors on GitHub
  • Icon requests: Reviewed and merged within days
  • Breaking changes: Documented with migration guides

For any production application, active maintenance is non-negotiable. You need a library that responds to security advisories, fixes rendering bugs, and keeps pace with platform changes.

4. Framework & Language Support

Platform Feather Lucide
Reactfeather-icons (generic)lucide-react (dedicated, typed)
Vue 3No official packagelucide-vue-next
SvelteNo official packagelucide-svelte
AngularNo official packagelucide-angular
PreactNo official packagelucide-preact
Solid.jsNo official packagelucide-solid
React NativeNo official packagelucide-react-native
FlutterNo official packagelucide_icons (community)
TypeScriptPartial (community types)Full first-party types
Vanilla JSfeather-iconslucide
Figma PluginOutdatedOfficial, maintained

Lucide's first-party framework packages mean you get tree-shakeable named exports, proper TypeScript generics for props, and framework-idiomatic APIs. Feather's single generic package requires manual SVG injection or third-party wrappers.

5. Design Consistency & Grid Quality

Both libraries share the same foundational design language:

  • 24×24 pixel grid
  • 2px stroke width (default)
  • Round line caps and joins
  • No fills (pure stroke-based outlines)

However, Lucide has introduced stricter contribution guidelines that Feather never enforced:

  • Every icon must pass automated optical alignment checks
  • Padding must respect a 2px safe zone within the 24px grid
  • Stroke consistency is validated by CI (no mixed 1.5px/2px paths)
  • Each icon requires minimum 3 keyword aliases for discoverability

The result: Lucide's 1,979 icons feel like one coherent family, whereas Feather's 286 (designed over a shorter period by fewer hands) occasionally show minor inconsistencies in corner radii and optical weight.

6. Bundle Size & Tree-Shaking

With modern bundlers (Vite, webpack 5, esbuild, Turbopack), both libraries support tree-shaking — you only ship the icons you actually import.

// Feather — imports entire library (286 icons, ~14KB gzipped)
import feather from 'feather-icons';
feather.replace(); // Injects ALL icons as inline SVG

// Lucide — imports only what you use (~200 bytes per icon)
import { Camera, Shield, Zap } from 'lucide-react';
// Bundle contains only 3 icons ≈ 600 bytes gzipped

Feather's architecture (a single object containing all icons) makes true tree-shaking impossible with the default import pattern. You always ship all 286 icons. Lucide's named-export architecture means a project using 20 icons ships ~4KB of icon data — not the full 40KB+ library.

7. Full Comparison Table

Criteria Lucide Feather
Icon Count1,979286
Last ReleaseJuly 2026 (weekly)2022
Maintainers5+ active1 (inactive)
LicenseMITMIT
React Packagelucide-react (typed)feather-icons (generic)
Vue/Svelte/AngularFirst-partyNone
Tree-ShakingNamed exportsFull bundle only
TypeScriptFull typesCommunity @types
Design Grid24px, 2px stroke24px, 2px stroke
CI Quality ChecksAutomatedNone
Figma PluginOfficialOutdated
npm Weekly Downloads~2.5M~800K (declining)

8. Migrating from Feather to Lucide

If you're currently using Feather, migration is straightforward because Lucide preserves all original Feather icon names:

// Before (Feather)
import { Camera, Heart, Shield } from 'feather-icons';

// After (Lucide) — identical names, drop-in replacement
import { Camera, Heart, Shield } from 'lucide-react';

// Props API is nearly identical
<Camera size={24} strokeWidth={2} color="currentColor" />

Migration Checklist

  1. Install lucide-react (or your framework's Lucide package)
  2. Replace feather-icons imports with lucide-react named imports
  3. Replace feather.replace() DOM injection with component usage
  4. Remove the feather-icons dependency
  5. Run visual regression tests — shared icons are pixel-identical in 99% of cases

9. The Verdict

Lucide wins for every new project in 2026.

Feather Icons is a legendary library that defined a generation of UI design. But it is no longer maintained, lacks modern framework support, and covers only a fraction of the icons a production app needs. Lucide is Feather's living successor — same DNA, 7x the icons, weekly releases, and first-class support for every major framework.

The only reason to stay on Feather is if you're maintaining a legacy project with zero plans for new features. For anything new — or anything being actively developed — choose Lucide.

Key Takeaways

  • Lucide = Feather's successor — same design language, 7x more icons, active development.
  • Feather is unmaintained — no new icons, no bug fixes, no framework packages since 2022.
  • Tree-shaking matters — Lucide's named exports ship only what you use. Feather ships everything.
  • Migration is painless — icon names are preserved; it's mostly a find-and-replace operation.
  • Compare them livesearch "camera" on IconStash to see both libraries' results side by side.