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.

Amit Yadav
Amit Yadav9 min read
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.

That 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.

LibraryIconsLicenseStylesBest for
Lucide1,800+ISCOutlineReact/Vue apps
Heroicons1,200+MITOutline, solid, mini, microTailwind projects
Tabler6,200+MITOutline, filledDashboards
Phosphor9,000+MIT6 weightsDesign systems
Material Symbols15,700+Apache 2.0Outlined, rounded, sharpMaterial apps
Bootstrap Icons2,000+MITOutline, fillBootstrap projects
Remix Icon3,100+Apache 2.0Line, fillGeneral UI
Carbon2,600+Apache 2.0OutlineEnterprise apps
Ionicons1,300+MITOutline, filled, sharpMobile UI
Simple Icons3,400+CC0Flat brand marksBrand logos

The libraries, one by one

01

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-react
import { 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
02

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/react
import { MagnifyingGlassIcon } from '@heroicons/react/24/outline';

Use if: you are building a Tailwind CSS product and want icons designed alongside the framework.

License
MIT
03

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-react
import { 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
04

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/react
import { 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
05

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
06

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-icons

Use if: your project uses Bootstrap, or you need icons that look sharp at 14 to 16px.

License
MIT
07

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/react
import { 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
08

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-react
import { Search } from '@carbon/icons-react';

<Search size={20} />

Use if: you build dense enterprise or developer tools.

License
Apache 2.0
09

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
10

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-icons
import { 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.

Tip

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?
Lucide (`lucide-react`) is the safest default: 1,800+ outline icons, ISC license, one component per icon so tree-shaking works. Heroicons suits Tailwind projects and Tabler suits dashboards that need more icons.
Do icon libraries make my bundle bigger?
Not if you import icons one by one. With named imports such as `import { Search } from 'lucide-react'`, the bundler keeps only the icons you render. Icon fonts and full sprites load every icon, used or not.
Which icon library has the most icons?
Material Symbols has 15,700+ in our catalog, counting every style. Phosphor has 9,000+ across six weights and Tabler has 6,200+.
Can I use these libraries in a commercial project?
Yes. Lucide (ISC), Heroicons, Tabler, Phosphor, Bootstrap Icons and Ionicons (MIT), Material Symbols, Remix Icon and Carbon (Apache 2.0) and Simple Icons (CC0) all allow commercial use. Brand logos are still trademarks of their owners.
Can I mix two icon libraries?
Avoid mixing libraries in the same part of the UI, because stroke weight and corner style clash. A second library for a separate job, such as brand logos from Simple Icons, is fine.

Related posts

Share this post