1. Icon Monks
  2. React icons

React icons

5,518 free icon components for React, each in six weights. Typed for TypeScript, tree-shakeable, and styled with plain props.

Install

npm install @icon-monks/react

Use an icon

import { House, Heart } from '@icon-monks/react';

export function Nav() {
  return (
    <>
      <House />
      <Heart size={32} color="crimson" weight="fill" />
    </>
  );
}

Set defaults for a whole tree

import { IconContext, House, Bell } from '@icon-monks/react';

<IconContext.Provider value={{ size: 24, weight: 'duotone' }}>
  <House /> <Bell />
</IconContext.Provider>

Props

PropValues
sizeNumber or CSS length, default 1em
colorAny CSS color, default currentColor
weightthin light regular bold fill duotone
mirroredFlips the icon for right-to-left layouts

Any other SVG attribute, such as aria-label or className, passes through to the <svg>. Every icon is also exported with an Icon suffix (HouseIcon) and as a deep import (@icon-monks/react/icons/House).

Popular icons

Browse all 5,518 iconsBrowse by category

Frequently asked questions

Does it work with Next.js and server components?

Yes. Icons are plain SVG components with no browser-only code, so they render on the server, in static exports and in client components.

Will importing one icon bundle all of them?

No. Each icon is its own ES module, so bundlers such as Vite, webpack and Next.js include only the icons you import.

Is it typed?

Yes. The package ships TypeScript declarations for every component and prop.

Other platforms