Icons Usage

Usage

Copy a glyph for a flattened asset to paste anywhere. In a build that already has the package, import the component instead — you get tree-shaking and an editable stroke, at the cost of having to set the weight yourself.

Flattened export fill only, no stroke

Clicking a glyph outlines the stroke into filled geometry — the same “outline stroke” operation as Figma or Illustrator. The result has no stroke and no stroke-width, so scaling it can never desync the weight from the shape, and it renders identically in tools that handle strokes badly.

<!-- copied at 24 px, where the line is 1 px -->
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
  <path d="M3 12.5L21 12.5A0.5 0.5 0 0 0 21 11.5L3 11.5…Z"
        fill="currentColor"/>
</svg>

The trade-off: outlining bakes the weight into the path, so an export is specific to the size it was made at. Copy at the size you intend to use. Each one is pixel-checked against the original stroke before it reaches your clipboard.

Install iconoir@7.12.1
npm install iconoir-react   # React
npm install iconoir         # raw SVG + CSS

Components keep their stroke, so set the weight once for the whole tree. strokeWidth is in viewBox units — multiply the line you want by 24 / size.

import { Heart, IconoirProvider } from "iconoir-react";

<IconoirProvider iconProps={{ width: 24, height: 24, strokeWidth: 1 }}>
  <Heart />                                              {/* 1px line   */}
  <Heart width={64} height={64} strokeWidth={0.7875} />   {/* 2.1px line */}
</IconoirProvider>

Packages exist for React, Vue, Solid, Flutter and plain CSS — see the Iconoir docs.

iconoir.com The source of truth for the icon set — full search, customisation playground, framework docs and changelog. Iconoir is MIT licensed and free for commercial use.
Updating the set. The grid above is served from docs/iconoir-data.js, generated by node tools/build-icons.mjs. Run it with no argument to pull the latest Iconoir, or pass a version to pin one.