Documentation
Installation
One icon set, a package for every stack you ship.
Every package is generated from the same source drawings, so they can never disagree about what an icon looks like. Pick yours:
| Stack | Package | Install |
|---|---|---|
| React | @iconmind/react | npm i @iconmind/react |
| Vue 3 | @iconmind/vue | npm i @iconmind/vue |
| Svelte | @iconmind/svelte | npm i @iconmind/svelte |
| Solid | @iconmind/solid | npm i @iconmind/solid |
| Preact | @iconmind/preact | npm i @iconmind/preact |
| React Native | @iconmind/react-native | npm i @iconmind/react-native react-native-svg |
| Astro | @iconmind/astro | npm i @iconmind/astro |
| Flutter | iconmind_flutter | flutter pub add iconmind_flutter |
| Laravel Blade | iconmind/blade-iconmind | composer require iconmind/blade-iconmind |
| Plain SVG / sprite | @iconmind/icons | npm i @iconmind/icons |
| AI assistants (MCP) | @iconmind/mcp | claude mcp add iconmind -- npx -y @iconmind/mcp |
All the framework packages share one API: the same component names, the same props —
size, color, variant, weight, strokeWidth, absoluteStrokeWidth — and the same
defaults. Learn it once; the per-framework pages only document what their framework
changes.
import { Agent, VectorDatabase } from "@iconmind/react";
<Agent />
<VectorDatabase variant="duotone" weight="bold" size={32} />Raw SVG
npm i @iconmind/iconsEvery icon is a file under icons/<category>/<slug>/<variant>-<weight>.svg. The package
also ships dist/metadata.json and a dist/sprite.svg of <symbol> elements, so you can
use it with no build step at all.
<svg width="24" height="24"><use href="sprite.svg#im-agent" /></svg>For an AI assistant
claude mcp add iconmind -- npx -y @iconmind/mcpRuns offline, bundles the icon data, and starts in well under a second. See MCP server.
Requirements
ESM only. React 18+, Vue 3.3+, Svelte 4+, Solid 1.8+, Preact 10+, Astro 4+,
react-native-svg 13+ for React Native, PHP 8.1+ for Blade, Node 20+ for the MCP server.
There is no CJS build — providing one would mean providing a path that does not
tree-shake well, and some bundlers would choose it.