All of these packages tree-shake, so shipping ten icons costs roughly ten icons' worth of JavaScript — not the whole library. Import named exports rather than the namespace to keep that guarantee.
Recommended starting point
For most React projects, start with
Lucide Icons — 1,979 icons,
outline only, ISC licensed, installed as
lucide-react. Move to
Heroicons if you need
outline and solid instead.
Frequently asked questions
Which icon library is best for React?
Lucide Icons is the safest default: 1,979 icons, ISC licensed, and a first-party package. All of these packages tree-shake, so shipping ten icons costs roughly ten icons' worth of JavaScript — not the whole library. Import named exports rather than the namespace to keep that guarantee.
Do icon libraries slow down a React app?
Only if you import the whole set. Every library here tree-shakes, so bundling ten named icon exports ships ten icons. Watch for barrel imports like import * as Icons from "...", which defeat that.
Can I use raw SVG instead of a package?
Yes, and for small numbers of icons it is often better — no dependency, no version drift, and full control over attributes. Export any icon from IconStash as an inline SVG or a downloadable file and paste it straight in.