Best Free SVG Icon Libraries 2026: npm Packages Compared
Developer guide to free SVG icon libraries in 2026: npm packages, React and Vue support, license, icon count and install code for Lucide, Tabler and more.
On this page
This guide is for developers choosing an icon library to install in a codebase. For each library you get the npm package name, which frameworks it supports, the license, the icon count and a working install snippet, so you can add it to a React, Vue or Svelte project in a few minutes.
Choosing as a designer?
Best Free SVG Icon Packs for Product UI: 10 Design PicksThat guide judges packs on their look in an app UI: style, stroke weight, filled and duotone variants. This one stays on the code side.
A quick rule before you compare: import icons one at a time (import { Search } from 'lucide-react') rather than loading a whole icon font or sprite. With per-icon imports, your bundler drops every icon you do not use, so a library with thousands of icons adds only the few you render.
Quick answer
- Lucide (`lucide-react`) is the default for most React, Vue and Svelte apps: 1,800+ outline icons, ISC license.
- Heroicons fits Tailwind projects, Tabler (6,200+ icons) fits dashboards that need deep coverage.
- Phosphor is the pick when a design system needs six weights of every icon.
- Simple Icons is for brand logos only, next to your main UI library.
- Import icons one by one so tree-shaking keeps the bundle small.
Quick comparison table
Counts and licenses come from our own catalog of each library and include every style of each icon.
| Library | Icons | License | Styles | Best for |
|---|---|---|---|---|
| Lucide | 1,800+ | ISC | Outline | React/Vue apps |
| Heroicons | 1,200+ | MIT | Outline, solid, mini, micro | Tailwind projects |
| Tabler | 6,200+ | MIT | Outline, filled | Dashboards |
| Phosphor | 9,000+ | MIT | 6 weights | Design systems |
| Material Symbols | 15,700+ | Apache 2.0 | Outlined, rounded, sharp | Material apps |
| Bootstrap Icons | 2,000+ | MIT | Outline, fill | Bootstrap projects |
| Remix Icon | 3,100+ | Apache 2.0 | Line, fill | General UI |
| Carbon | 2,600+ | Apache 2.0 | Outline | Enterprise apps |
| Ionicons | 1,300+ | MIT | Outline, filled, sharp | Mobile UI |
| Simple Icons | 3,400+ | CC0 | Flat brand marks | Brand logos |
The libraries, one by one
Lucide
A fork of Feather that kept growing after Feather slowed down, actively maintained. Every icon follows a strict 24px grid with a 2px stroke, so your UI looks consistent without effort. Packages exist for React, Vue, Svelte, Angular and plain JavaScript.
npm install lucide-reactimport { Search, Settings, Bell } from 'lucide-react';
<Search size={20} strokeWidth={1.5} />Use if: you need a general-purpose library for a React or Vue app and want active maintenance with a clean look. On shadcn/ui, see how to add SVG icons to shadcn/ui.
- License
- ISC
Heroicons
About 300 hand-crafted icons from the Tailwind CSS team, each in outline (24px, 1.5px stroke), solid (24px), mini (20px) and micro (16px). A small set, but each size is drawn separately, so icons stay sharp in buttons and dense lists.
npm install @heroicons/reactimport { MagnifyingGlassIcon } from '@heroicons/react/24/outline';Use if: you are building a Tailwind CSS product and want icons designed alongside the framework.
- License
- MIT
Tabler Icons
The largest consistent outline set, plus 1,000+ filled versions for active states. A good fit for admin panels, dashboards and products that need deep coverage without mixing styles.
npm install @tabler/icons-reactimport { IconSearch, IconBell, IconSettings } from '@tabler/icons-react';Use if: you are building an admin panel, SaaS dashboard or internal tool that needs hundreds of specific icons. More in the Tabler Icons React guide.
- License
- MIT
Phosphor Icons
Every icon ships in six weights: thin, light, regular, bold, fill and duotone. It is the only major free library where you can change visual weight the same way across every icon, which suits design tokens and multi-context systems.
npm install @phosphor-icons/reactimport { Heart } from '@phosphor-icons/react';
<Heart weight="duotone" size={24} />Use if: your design system has several contexts (light and dark, prominent and subtle states) and needs consistent weight changes. More in the Phosphor Icons React guide.
- License
- MIT
Material Symbols
Google's 2021 replacement for Material Icons. One variable font controls fill, weight, grade and optical size through CSS.
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined">.material-symbols-outlined {
font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}Use if: you work in a Material Design ecosystem (Android, Flutter web, Google products) or need the widest coverage in one library. The font loads every icon, so use SVG files when bundle size matters.
- License
- Apache 2.0
Bootstrap Icons
Drawn on a 16px grid, so they stay crisp at small sizes like labels, badges and table actions. You do not need Bootstrap CSS to use them.
npm install bootstrap-iconsUse if: your project uses Bootstrap, or you need icons that look sharp at 14 to 16px.
- License
- MIT
Remix Icon
Line and fill versions of every icon. Covers UI actions, media controls, finance, logos and maps, with a slightly warmer look than Lucide.
npm install @remixicon/reactimport { RiSearchLine } from '@remixicon/react';Use if: you want a Lucide-scale library with more coverage and a filled version of each icon.
- License
- Apache 2.0
Carbon
IBM's icon set for the Carbon design system. Strong on data, cloud and system concepts, with icons drawn for 16, 20, 24 and 32px.
npm install @carbon/icons-reactimport { Search } from '@carbon/icons-react';
<Search size={20} />Use if: you build dense enterprise or developer tools.
- License
- Apache 2.0
Ionicons
The Ionic framework's icons, in outline, filled and sharp versions with iOS and Material feel. They ship as a web component, so they work in any framework.
<script type="module" src="https://unpkg.com/[email protected]/dist/ionicons/ionicons.esm.js"></script>
<ion-icon name="search-outline"></ion-icon>Use if: you build a mobile or hybrid app, especially with Ionic.
- License
- MIT
Simple Icons
Brand and technology logos for "tech stack" sections, "sign in with" buttons and portfolios. Each icon includes the official brand hex color.
npm install simple-iconsimport { siGithub } from 'simple-icons';
siGithub.svg;
siGithub.hex;Use if: you need brand logos for a portfolio, landing page or "built with" section. Check each brand's own guidelines before using its logo.
- License
- CC0
How to pick one
- React, Vue or Svelte app: Lucide (default) or Heroicons (if Tailwind-heavy)
- Dashboard or admin panel: Tabler or Carbon
- Design system with token-driven weight: Phosphor
- Material, Android or Flutter: Material Symbols
- Bootstrap project: Bootstrap Icons
- Ionic or hybrid mobile app: Ionicons
- Brand logos: Simple Icons
Moving off Font Awesome? See the Font Awesome alternatives. For a team decision with more criteria, use the icon pack selection framework.
Use one library for your product UI. Simple Icons is fine next to it for brand logos, since it does a different job and does not clash visually.
Every library above is browsable on AllSVGIcons: search, preview and export as SVG, PNG, JSX or Base64 without installing anything.
FAQ
What is the best free SVG icon library for React?
Do icon libraries make my bundle bigger?
Which icon library has the most icons?
Can I use these libraries in a commercial project?
Can I mix two icon libraries?
Related posts