Best Free SVG Icon Packs for Product UI: 10 Design Picks

10 free SVG icon packs for app UI compared on style, stroke weight, grid, variants and coverage of navigation, action and status icons, with a pick per product.

Amit Yadav
Amit Yadav19 min read
On this page

Icons do a lot of quiet work in a product. They label navigation, mark actions, show status and break up dense data. When they come from one consistent pack, the interface feels calm and trustworthy. When they come from three packs with different stroke weights and corner styles, users feel the mess even if they cannot name it.

This guide is for designers and product teams who need to pick one pack for a whole app: the sidebar, the toolbar, the empty states, the alerts and the settings screens. We judge each pack on what you see on the screen: visual style, stroke weight and grid, the variants you get (outline, filled, duotone, sizes), and how well it covers everyday UI needs.

That guide is for developers who are picking a library to install, and it covers npm packages, framework support, tree-shaking and bundle size. This one stays on the design side.

Quick answer

  • Lucide is the safest default for a modern web app: clean outline style, steady 2px stroke, 1,800+ icons.
  • Tabler has the widest outline coverage (6,200+ icons) and adds 1,000+ filled versions for active states.
  • Phosphor and Solar are the picks when you need several weights (thin to bold, plus duotone) from one source.
  • Material Symbols (15,700+) and Fluent (19,800+) are the largest sets and match Google and Microsoft platform styles.
  • Carbon suits dense enterprise dashboards. Heroicons suits small, focused Tailwind products.
  • Pick one pack for all core UI. Add a second pack only for a separate job, such as brand logos or flags.

The 10 packs at a glance

Counts and licenses below come from our own catalog of each pack. A "shape" is one icon design, and the total counts every style of that shape. Use the search box to filter the table.

PackIconsStylesGridLicenseBest for
Lucide1,800+Outline24pxISCModern web apps, SaaS
Tabler Icons6,200+Outline, filled24pxMITDashboards, admin tools
Heroicons1,200+Outline, solid, mini, micro24px, 20px, 16pxMITSmall Tailwind products
Phosphor9,000+Thin, light, regular, bold, fill, duotone24pxMITDesign systems with brand personality
Material Symbols15,700+Filled, outline, rounded, sharp24pxApache 2.0Android and Google-style apps
Fluent UI System Icons19,800+Regular, filled, sizes 16 to 4816px to 48pxMITWindows and Microsoft 365 style apps
Carbon2,600+Mostly outline, some filled16px, 32pxApache 2.0Enterprise and data-heavy UI
Solar8,700+Linear, bold, bold duotone, broken, line duotone, outline24pxCC BY 4.0Consumer apps with a softer look
Remix Icon3,100+Line, fill24pxApache 2.0General product UI with filled states
Iconoir1,600+Outline, some solid24pxMITMinimal, light interfaces

The packs, one by one

Each entry shows a set of real icons from the pack: the same core UI jobs (home, search, settings, alerts, users, data, status) wherever the pack has them, so you can compare like for like.

01

Lucide

Lucide is a community fork of Feather that kept growing after Feather slowed down. Every icon is an outline drawn on a 24px grid with a 2px stroke and round caps and joins, so icons sit together without visual bumps. The style is neutral: friendly enough for a consumer app, plain enough for a B2B tool.

It has 1,800+ icons from Lucide Contributors, which covers the everyday product set well: navigation, file actions, text editing, media controls, charts and status. Gaps show up in niche domains (medical, logistics, finance instruments), where a larger pack like Tabler has more.

There is only one style. That keeps things consistent, but it also means you have no built-in filled version for an active tab. Most teams handle that with color or a background shape instead.

Use if: you want a clean, neutral default for a web app and you do not need filled states. For developers, it ships as lucide-react and packages for other frameworks.

License
ISC
02

Tabler Icons

Tabler Icons, made by Paweł Kuna, is the biggest single-style outline pack in this list, with 6,200+ icons. The default is a 24px grid with a 2px stroke, very close to Lucide in feel, so the two look related. Shapes are slightly more geometric and a little more detailed.

The real reason to pick Tabler is coverage. Admin tools and dashboards need icons for odd things: database tables, API keys, invoices, webhooks, file types, devices, weather, transport. Tabler usually has them. About 1,000 icons also come in a filled version, which you can use for selected tabs, active filters and toggled buttons.

Use if: your product has many screens and you are tired of finding that the one icon you need is missing.

License
MIT
03

Heroicons

Heroicons comes from Refactoring UI, the team behind Tailwind CSS. It is small on purpose: about 320 shapes, each drawn four times. You get a 24px outline (1.5px stroke), a 24px solid, a 20px "mini" solid and a 16px "micro" solid, for 1,200+ files in total.

That size ladder is the best feature for designers. Small icons in buttons, inputs and table rows are hand drawn for 16px and 20px, so they stay sharp instead of being shrunk 24px icons. The thinner stroke gives a lighter, more refined look than Lucide or Tabler.

The weak point is coverage. With about 320 shapes, a large product will run out. It fits a focused SaaS app, a marketing site with a small app area, or a prototype.

Use if: your product is small, your team works in Tailwind, and you want icons drawn for small sizes.

License
MIT
04

Phosphor

Phosphor has about 1,500 shapes, and every one comes in six weights: thin, light, regular, bold, fill and duotone. That makes 9,000+ icons, and it makes Phosphor the most flexible pack here for building a visual system.

Weights let you set rules. For example: regular in navigation, bold in small buttons where thin lines disappear, fill for the active state, and duotone in empty states and onboarding where an icon is a small illustration. Because all six weights share the same shapes, switching weight never changes what the icon means.

The style is a little rounder and warmer than Lucide. It works well for consumer apps, creative tools and brands that want some personality without going playful.

Use if: you want one pack that can express hierarchy and state through weight, not just color.

License
MIT
05

Material Symbols

Material Symbols is Google's icon system, with 15,700+ SVGs in this pack. Each shape comes filled or outlined, and many also come in rounded and sharp versions, so you can match the corner style of your buttons and cards.

Coverage is the largest of any general UI pack: actions, communication, devices, maps, home, health, business and more, all grouped by category. The style is instantly familiar to Android users, which is good for an Android app and less good if you want your product to look like its own thing.

The SVG files are the default weight. The variable font version of Material Symbols adds adjustable weight, grade and optical size, so check which format your developers will use before you design around those axes.

Use if: you build for Android or follow Material Design, or you need very wide coverage in one consistent style.

License
Apache 2.0
06

Fluent UI System Icons

Fluent UI System Icons is Microsoft's set, used across Windows 11, Teams and Microsoft 365. It is the largest pack in this list at 19,800+ icons, because each shape comes as regular (outline) and filled, and in several sizes: 16, 20, 24, 28, 32 and 48px.

Like Heroicons, the sizes are drawn separately, so a 16px icon in a dense list looks as clean as a 24px icon in a toolbar. The style is soft and rounded, with slightly thicker lines than Lucide. It feels at home in productivity tools, desktop apps and anything that sits next to Microsoft products.

Use if: your app runs on Windows, plugs into Microsoft 365, or needs many sizes of the same icon.

License
MIT
07

Carbon

Carbon is IBM's design system icon set, with 2,600+ icons. The style is precise and squared off, built for 16px and 32px. Most icons are outlines, with close to 150 filled versions for things like status markers and flags.

Carbon is strong where most packs are weak: enterprise and technical concepts. Think cloud services, data pipelines, security, analytics, AI models and infrastructure. In a monitoring dashboard or a data tool, that coverage saves a lot of custom drawing. The sharp, technical style can feel cold in a consumer app.

Use if: you design enterprise software, internal tools or data products with dense screens.

License
Apache 2.0
08

Solar

Solar, from 480 Design, has about 1,450 shapes in six styles: linear, bold, bold duotone, broken, line duotone and outline. That is 8,700+ icons. The look is soft and rounded, with a modern feel that suits fintech, health and lifestyle apps.

Solar is the pack to compare with Phosphor if you want duotone. The "broken" style, with small gaps in the line, is unusual and gives a product a recognizable look. Use it with care, since it can look like a rendering bug at small sizes.

One thing to check before you commit: Solar uses the CC BY 4.0 license, which asks for credit to the author. That is easy to do (a line on your credits or about page), but your legal team should know.

Use if: you want a softer, more expressive look with several styles, and attribution is fine for your team.

License
CC BY 4.0
09

Remix Icon

Remix Icon, from Remix Design, has about 1,500 shapes, nearly all in a line and a fill version, for 3,100+ icons. The line style is neutral and balanced, between Lucide and Material in weight.

The paired line and fill versions make it a practical choice for tab bars and toggles: line for idle, fill for selected, with the same shape. It also has a good set of editor icons (text formatting, alignment, lists) and a wide range of business and communication icons, grouped into clear categories.

Our catalog lists Remix Icon under Apache 2.0, while its current npm package lists its own "Remix Icon License". Read the license file in the repository before you ship.

Use if: you need a neutral pack where almost every icon has a matching filled state.

License
Apache 2.0
10

Iconoir

Iconoir, created by Luca Burgio, has 1,600+ icons on a 24px grid with a 1.5px stroke. It is the most minimal and geometric pack here. Shapes are simple and open, which gives a light, airy feel.

It covers common UI well and has unusual categories such as 3D editing, animation and connectivity. Close to 290 icons have a solid version. Because the stroke is thin, test Iconoir at 16px on a low-density screen before you commit; it shines at 20px and up.

Use if: your brand is minimal and you want icons that stay quiet next to type.

License
MIT

The same icon in all 10 packs

The fastest way to feel the difference between packs is to look at one icon across all of them. Here is the settings icon from each pack, in list order. Notice the stroke weight, how round the teeth are, and how much empty space each one leaves inside the shape.

Lucide and Tabler look almost the same. Heroicons and Iconoir look lighter because of the thinner stroke. Carbon is the most mechanical. Solar and Fluent are the softest. If your product uses a rounded typeface and large corner radius, the softer packs will match better. If it uses a sharp grotesque typeface and tight corners, look at Carbon, Tabler or Lucide.

Which pack for which product

There is no best pack for everyone. There is a best pack for the product you are building. These are the cases we see most often.

SaaS web app, small to medium team. Start with Lucide. It covers the common set, it looks neutral, and it is easy for developers to adopt. If you keep hitting missing icons, switch to Tabler early, before the design system grows around Lucide.

Analytics dashboard or admin panel. Tabler or Carbon. Both cover data, database and system concepts that general packs miss. Tabler feels friendlier, Carbon feels more technical. Use Tabler's filled versions for selected filters and active rows.

Consumer mobile app. Phosphor or Solar. Both give you several weights, so you can use bold icons in a bottom tab bar (easier to read at small sizes) and fill or duotone for the selected tab. Their rounder shapes also match the softer look of most consumer apps.

Android app or Material-based product. Material Symbols. Users already know these shapes, and the rounded and sharp versions let you match your component corners.

Windows app, Teams or Microsoft 365 add-in. Fluent UI System Icons. Your app will sit next to Microsoft's own interface, and matching icons make it feel native.

Marketing site with a small app area. Heroicons. The small size keeps choices simple, and the 20px and 16px versions look good in feature lists and buttons.

Design-led brand with a minimal look. Iconoir, or Lucide with a thinner stroke if your developers can set the stroke width. Keep icons at 20px or larger.

One pack for core UI

Use one primary pack for everything users click or scan: navigation, actions, status and form controls. Add a second pack only for a separate job that the first pack does not do, such as brand logos for "sign in with" buttons, country flags in a language picker, or emoji in a reactions bar. Those sit in their own context, so the style difference does not show.

How to evaluate a pack for your product

Before you commit, spend an hour testing the pack against your real screens. A pack that looks great on its own website can still fail in your product. Use this checklist, or the longer icon pack selection framework for a team decision.

  1. List your 40 most-used icons. Go through your current screens or wireframes and write down every icon job: navigation items, table actions, toolbar buttons, alerts, empty states. Then search the pack for each one. If more than a few are missing or poor matches, keep looking.
  2. Check the stroke and grid. Place 10 icons in a row at the size you will use most (often 20px or 24px). Do they look the same weight? Do circles and squares fill the same visual space? Packs on a strict grid pass this easily.
  3. Test the smallest size. Put icons at 16px in a table row and inside a small button. Thin strokes (1.5px or less) can blur on standard-density screens. If you need 16px often, prefer a pack with hand-drawn small sizes (Heroicons, Fluent, Carbon).
  4. Check active and selected states. Decide how a selected tab or toggled button will look. If you want a filled icon for "on", make sure the pack has filled versions of the icons you need, with the same shape.
  5. Check status coverage. You need clear icons for success, warning, error, info, loading, offline and empty. These are the icons users rely on most when something goes wrong, so they must be unambiguous.
  6. Put it next to your type. Place icons next to button labels and menu text in your real font. The icon stroke should feel close to the weight of your text. A 2px stroke next to a light 300-weight font looks heavy. A 1.5px stroke next to bold text looks weak.
  7. Read the license. MIT, ISC and Apache 2.0 let you use icons in commercial products without credit in the UI. CC BY 4.0 needs attribution somewhere. Keep the license file with your design system.
  8. Look at maintenance. Check the repository for recent activity and how new icon requests are handled. A pack that still adds icons will cover the new features you build next year.
Set size and stroke tokens once

After you pick a pack, define icon sizes (for example 16, 20 and 24px) and the stroke width as design tokens, and use them in both your design file and your component library. That one step prevents most of the drift that makes interfaces look messy over time.

Common mistakes when choosing an icon pack

Choosing by total icon count. A pack with 19,000 icons may have only 3,000 shapes in several styles. What matters is whether it has your 40 icons, in a style that fits.

Mixing packs in the same toolbar. Even two outline packs with 2px strokes can differ in corner radius, end caps and inner spacing. Side by side, users notice.

Scaling icons to odd sizes. An icon drawn on a 24px grid looks best at 24px, or at sizes it was drawn for. At 18px or 22px, lines fall between pixels and look soft.

Using filled and outline icons at random. Pick a rule (for example, outline by default and filled for selected) and apply it everywhere.

Drawing custom icons without the pack's rules. When you must draw a missing icon, copy the pack's grid, stroke width, corner radius and padding. Open a similar icon from the pack as a template.

Tools that help after you pick

Once you have a pack, you will often need to clean up or package icons. Run custom or edited icons through the SVG optimizer to remove editor junk before they go into your codebase. If your product needs a favicon or app icon built from a pack icon, the favicon generator creates every size from one SVG.

FAQ

What is the best free icon pack for a web app?
For most web apps, Lucide is the safest default: a clean outline style, a consistent 2px stroke on a 24px grid, and 1,800+ icons under the ISC license. If you need wider coverage, Tabler has 6,200+ icons in a very similar style.
Which free icon pack has the most icons?
Fluent UI System Icons has the most files at 19,800+, followed by Material Symbols at 15,700+. Both counts include several styles and sizes of each shape, so the number of unique designs is lower.
Which icon packs have filled and outline versions?
Tabler, Heroicons, Phosphor, Material Symbols, Fluent, Solar and Remix Icon all have filled versions. Lucide is outline only, and Carbon and Iconoir have filled versions for only part of the set.
Which icon pack has duotone icons?
Phosphor has a duotone weight for every icon, and Solar has bold duotone and line duotone styles for every icon. Duotone works best in empty states, onboarding and feature highlights, not in dense toolbars.
Can I mix two icon packs in one product?
Avoid mixing packs in the same area of the UI, since stroke weight and corner style will clash. A second pack is fine for a separate job, such as brand logos or country flags, that the main pack does not cover.
Can I use these icon packs in a commercial product?
Yes. Lucide (ISC), Tabler, Heroicons, Phosphor, Fluent and Iconoir (MIT), and Material Symbols, Carbon and Remix Icon (Apache 2.0, per our catalog) all allow commercial use. Solar uses CC BY 4.0, which also allows commercial use but asks for credit to the author.
What icon size should I use in product UI?
Use 24px for main navigation and toolbars, 20px for buttons and menus, and 16px for dense tables and inline text. Prefer a pack that draws small sizes separately, such as Heroicons, Fluent or Carbon, if you use 16px a lot.

Related posts

Share this post