Heroicons and Radix Icons are two of the most widely used
open-source icon sets. Both are free, both ship framework packages, and both will look perfectly
reasonable in a product UI — which is exactly why the choice is annoying. This page puts the two
side by side using the actual artwork and the real numbers.
The short answer
Heroicons is the broader set: 1,297 icons against 345 in Radix Icons — roughly 276% more coverage, which matters most if you build interfaces that need unusual glyphs.
Heroicons gives you more visual range: 2 variants per concept (outline and solid), where Radix Icons ships 1.
Both are MIT, so licensing is not a deciding factor here.
Specifications compared
Specification comparison
Heroicons
Radix Icons
Icons
1,297
345
Visual variants per concept
2 — outline and solid
1 — outline only
Design grid
16/20/24
15×15
License
MIT
MIT
Attribution required
No
No
Official React package
@heroicons/react
@radix-ui/react-icons
Same icons, both libraries
Every pair below is the same concept rendered from each library's own source files. This is the
part you cannot get from a written review — the difference in stroke weight, corner rounding and
optical size is the thing you will actually notice in your interface.
HeroiconsRadix Icons
home
—
user
heart
star
—
cart
bell
calendar
—
download
trash
Which one should you choose?
Pick Heroicons when
Tailwind CSS projects of any size, and teams that want their icons styled with the same utilities as the rest of their markup. The three drawn sizes also make Heroicons a good fit for interfaces with a strict type and spacing scale.
Consider otherwise if: Outside the Tailwind ecosystem the utility-class ergonomics matter less, and Lucide or Tabler give you more icons. For dense 15px-scale interfaces, Radix Icons is drawn specifically for that.
Pick Radix Icons when
Dense product UI: data tables, command palettes, context menus, settings panels, and anywhere you need an icon to occupy as little space as possible while staying legible.
Consider otherwise if: The 345-icon count is small, so you will hit gaps quickly in a large product. Heroicons also ships a drawn 16px size with many more icons; Lucide covers far more concepts at 24×24.
Coverage
Heroicons contains 1,297 icons and Radix Icons contains 345.
Heroicons is made by the team behind Tailwind CSS, and it is designed to drop straight into Tailwind projects. The 1,297 icons ship in outline and solid variants, each available at 16px, 20px, and 24px — three sizes that are drawn separately rather than scaled, so optical weight stays correct at each one.
Radix Icons is a deliberately small set of 345 icons from the Radix UI team, drawn on a 15×15 grid. That grid is the whole point: Radix icons are designed to sit inside dense product interfaces — tables, toolbars, context menus, and form controls — where a 24×24 icon would force you to loosen your spacing.
Licensing
Heroicons is released under MIT.
Commercial use, modification and redistribution with no attribution required.
Radix Icons is released under MIT.
Commercial use, modification and redistribution with no attribution required.
Using them from IconStash
You do not have to commit to one. IconStash indexes both libraries, so you can search a concept
once and see how each set drew it, then export SVG or PNG at any size and colour. Start with
Heroicons or
Radix Icons, or browse
every library comparison.
Frequently asked questions
Is Heroicons or Radix better for React projects?
Both have first-party React packages: @heroicons/react and @radix-ui/react-icons. Heroicons has the larger catalogue, so for a React app the practical difference is coverage and visual style rather than integration effort. Both tree-shake, so bundle size tracks the number of icons you import, not the size of the library.
Which has more icons, Heroicons or Radix?
Heroicons has 1,297 icons and Radix Icons has 345. Heroicons is larger by about 276%. Raw count is not the whole story though — a 20,000-icon set with many near-duplicate variants can be slower to search than a tightly edited 2,000-icon set.
Can I mix Heroicons and Radix in one interface?
You can, but it usually looks wrong. Each library draws to its own grid and stroke weight — Heroicons uses 16/20/24 and Radix uses 15×15 — so icons from both sit slightly differently next to each other. If you must mix them, keep each library to a distinct area of the interface rather than interleaving them in the same toolbar.
What licenses do Heroicons and Radix use?
Heroicons is MIT: Commercial use, modification and redistribution with no attribution required. Radix Icons is MIT: Commercial use, modification and redistribution with no attribution required. Neither requires payment, but attribution rules differ, so check before shipping in a product where credit is inconvenient.
Do Heroicons and Radix include filled and outline versions?
Heroicons offers outline and solid; Radix Icons offers outline only. If you need to express selected and unselected states with the same glyph, the library with more variants saves you from importing a second set.
Which is better for small sizes like 16px?
At 16px, stroke weight and counter size matter more than coverage. Heroicons draws on a 16/20/24 grid and Radix on 15×15. Libraries that redraw per size rather than scaling — such as Fluent UI — generally hold up best. The reliable test is to preview both at your actual render size, which you can do on any icon page on IconStash.