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-check award house check mountain chevron-up

HeroIcons

1,288 icons MIT
camera building-library receipt-refund bookmark cloud folder

Tabler Icons

5,963 icons MIT
alien device-desktop photo chevron-right check square-root

Phosphor

9,072 icons MIT
folder-open-duotone check-square-offset-thin pencil-line-fill check-thin browser-duotone thermometer-simple-fill

Remix Icon

3,135 icons Apache-2.0
lock-2-line mark-pen-fill moon-line filter-2-fill text add-line

Carbon

2,392 icons Apache-2.0
user-certification humidity edit-off flag-filled binding-01 mac-option

Material Design Icons

7,447 icons Apache-2.0
account-check bell-alert-outline calendar-edit skip-previous home-variant lock-open-outline

Radix Icons

332 icons MIT
width checkbox code border-width all-sides half-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.

More Collections

View all collections →