Iconify for React

React component for the Iconify universal icon framework, spanning 200+ icon sets and 300k+ icons

Library
npm
v6.0.2
6,338 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
75 /100 Good
Development Activity 92
Maintenance 52
Community 56
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
84 /100 Excellent
Architecture 84
Code Quality 82
Innovation 80
Learning Curve 88

@iconify/react is the official React component for Iconify, a universal icon framework that unifies over 200 open-source icon sets — FontAwesome, Material Design Icons, Feather Icons, EmojiOne, Noto Emoji, and hundreds more — under a single consistent syntax. Instead of installing a separate npm package per icon set, developers reference any icon by name (e.g. mdi:home) and the component fetches or bundles the matching SVG automatically, giving access to roughly 300,000 icons through one dependency.

As the monorepo’s most widely adopted package (hundreds of thousands of weekly downloads, well ahead of its sibling iconify-icon web component and framework bindings for Vue and Svelte), @iconify/react is the de facto standard for icon rendering in React and Next.js applications that want broad icon-set coverage without vendoring dozens of individual icon libraries.

What You Get

  • An <Icon> React component accepting an Iconify icon name string (e.g. mdi:home, logos:react) with no per-icon-set installs
  • Access to 200+ open-source icon sets and roughly 300,000 icons through Iconify’s shared naming convention
  • An offline mode (@iconify/react/offline) for bundling only the specific icons an app uses, avoiding runtime API calls
  • Full styling control via standard props (color, width/height, rotation, flip) mapped onto the underlying SVG
  • TypeScript type definitions and tree-shakeable ESM/CJS builds

Common Use Cases

  • Rendering consistent icons across a React or Next.js app without bundling multiple separate icon-set packages
  • Building admin dashboards or design systems that need access to a very large, mixed icon catalog (UI icons, brand logos, emoji)
  • Offline/air-gapped apps bundling only their used icon subset via the offline API to avoid a runtime icon-fetch dependency
  • Migrating between icon sets (e.g. Material Design to Font Awesome) without changing component usage, just icon name prefixes

Under The Hood

Architecture: Iconify is a pnpm-workspace monorepo where components/react (published as @iconify/react) is one of several framework bindings (components/vue, components/svelte) sitting atop shared packages/ (core, utils, types, fetch, component-utils, api-redundancy). The React component itself is small — src/iconify.ts (389 lines) implements the <Icon> component and icon-name resolution/caching, src/render.ts (246 lines) converts resolved icon data into React elements with prop mapping, src/props.ts defines the public prop types, and src/offline.ts implements the separate offline/bundled-icon entry point that skips the runtime API layer entirely.

Tech Stack: TypeScript throughout, built with Rollup for the distributable bundle and a separate tsc -b pass for type declarations, tested with Vitest plus Playwright-driven browser tests (vitest-browser-react) rather than jsdom-only tests, reflecting the need to verify actual rendered SVG behavior. The package depends only on the workspace-internal @iconify/types at runtime, keeping @iconify/core and @iconify/utils as dev-only build-time dependencies, and declares react as a peer dependency (>=18).

Code Quality: oxlint/oxfmt and tsc --noemit run as part of the lint step before every build, and Microsoft’s api-extractor generates a stable, reviewable public API surface (api-extractor.iconify.json/api-extractor.offline.json) — a level of API-surface discipline uncommon in smaller UI libraries and appropriate given how many downstream apps depend on this package’s exact prop shapes.

API Design: The core design bet — resolving any icon by a simple set:name string instead of requiring a separate npm install per icon set — is what makes the learning curve very low; a developer who knows one set:name combination (e.g. mdi:home) already knows how to use any of the 200+ supported sets. The parallel offline entry point (@iconify/react/offline) cleanly separates the ‘fetch icons at runtime’ and ‘bundle icons at build time’ use cases without forcing consumers into one model.

Used by 17 apps in this directory

TypeScript
95%
Apache 2.0

AionUi

AI Agents · Productivity

33,179

Free, open-source Cowork desktop app that unifies Claude Code, Codex, Gemini CLI, and 20+ AI agents into a single platform with multi-agent teams, 24/7 cron automation, and zero-config built-in agent.

View details
85
Repo Health
76
Technical
66
Dependency
Built with
TypeScript 95%
Updated 1 months ago
TypeScript
54%
MIT

Anarlog

AI Assistants · Note Taking · Productivity

9,404

Anarlog is an open-source, local-first AI meeting notetaker that records, transcribes, and summarizes meetings entirely on your device — no cloud lock-in, no mandatory account, and every note saved as a plain markdown file you own forever.

View details
86
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 54%
Rust 34%
Updated 1 weeks ago
Go
92%
AGPL 3.0

BillionMail

Marketing

15,695

Self-hosted email server and marketing platform that gives you unlimited sending, full deliverability control, and AI-assisted campaigns without monthly fees.

View details
52
Repo Health
74
Technical
70
Dependency
Built with
Go 92%
Updated 4 months ago
TypeScript
92%
GPL 3.0

Blinko

Knowledge Management · Note Taking

11,049

A self-hosted, AI-powered card note-taking tool that lets you capture fleeting thoughts instantly and retrieve them with natural language search.

View details
75
Repo Health
69
Technical
63
Dependency
Built with
TypeScript 92%
Updated 1 months ago
TypeScript
92%
GPL 3.0

Blinko

Knowledge Management · Note Taking

11,049

A self-hosted, AI-powered card note-taking tool that lets you capture fleeting thoughts instantly and retrieve them with natural language search.

View details
75
Repo Health
69
Technical
63
Dependency
Built with
TypeScript 92%
Updated 1 months ago
TypeScript
99%
AGPL 3.0

Cherry Studio

AI Assistants

52,202

All-in-one AI desktop client with 300+ assistants and multi-model support

View details
89
Repo Health
84
Technical
70
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
TypeScript
44%
Other

Magic

AI Agents · Automation · Low Code Platforms

5,043

Magic is an enterprise-grade open-source AI agent platform combining a generalist AI agent, workflow engine, IM, and collaborative office system for running an AI-powered digital workforce.

View details
70
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 44%
PHP 32%
Updated 1 months ago
Python
62%
Apache 2.0

marimo

Data Engineering · Developer Tools

22,918

A reactive Python notebook that eliminates hidden state, runs reproducibly, and deploys as a web app or script — stored as pure Python, built for the AI era.

View details
89
Repo Health
91
Technical
65
Dependency
Built with
Python 62%
TypeScript 37%
Updated 1 weeks ago
TypeScript
65%
Other

NocoDB

Databases · Low Code Platforms · No Code Platforms

65,098

Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.

View details
90
Repo Health
77
Technical
62
Dependency
Built with
TypeScript 65%
Vue 30%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers