Free SVG Icons for Next.js

Next.js projects need icons that work seamlessly across Server Components, Client Components, and the App Router. SVG icon packages delivered as React components are the best fit — they render on the server for instant page loads, tree-shake unused icons from the bundle, and accept className and style props for Tailwind or CSS Modules styling. This collection highlights the packs with official React bindings tested in Next.js 14+ and 15 environments.

8 icon packs · 31,270 total icons · Free & open source

Icon Packs

Lucide

1,641 icons ISC
circle-checkawardhousecheckmountainchevron-up

HeroIcons

1,288 icons MIT
camerabuilding-libraryreceipt-refundbookmarkcloudfolder

Tabler Icons

5,963 icons MIT
aliendevice-desktopphotochevron-rightchecksquare-root

Phosphor

9,072 icons MIT
folder-open-duotonecheck-square-offset-thinpencil-line-fillcheck-thinbrowser-duotonethermometer-simple-fill

Remix Icon

3,135 icons Apache-2.0
lock-2-linemark-pen-fillmoon-linefilter-2-filltextadd-line

Carbon

2,392 icons Apache-2.0
user-certificationhumidityedit-offflag-filledbinding-01mac-option

Material Design Icons

7,447 icons Apache-2.0
account-checkbell-alert-outlinecalendar-editskip-previoushome-variantlock-open-outline

Radix Icons

332 icons MIT
widthcheckboxcodeborder-widthall-sideshalf-2

Common Use Cases

1 Next.js App Router layouts and navigation
2 Server-rendered marketing pages with zero client JS icons
3 Dashboard interfaces built with Next.js and shadcn/ui
4 E-commerce storefronts on Next.js with dynamic icon loading
5 Documentation sites built with Nextra

Frequently Asked Questions

Yes. React icon packages like lucide-react and @heroicons/react render as plain SVG on the server. They work in Server Components without the "use client" directive as long as they do not use client-side hooks or state.

Lucide React is the most widely adopted — it is the default icon set in shadcn/ui, which is the leading component library for Next.js App Router projects. Heroicons is also very popular in Tailwind-centric Next.js stacks.

Import icons individually (e.g. import { Search } from "lucide-react") rather than importing the entire library. Next.js with webpack or Turbopack will tree-shake unused exports. For very large icon use, consider dynamic imports with next/dynamic.

Explore More Collections