Iconify for React

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

Library
npm
v6.0.3
6,371 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
77 /100 Good
Development Activity 100
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
90%
MIT

open-pencil

AI Design Tools · Design Tools

9,227

An open-source design editor that reads native Figma files, ships a built-in AI assistant with 100+ design tools, and offers real-time serverless collaboration — all without giving up your files.

View details
84
Repo Health
78
Technical
69
Dependency
Built with
TypeScript 90%
Updated 6 days ago
TypeScript
90%
MIT

open-pencil

AI Design Tools · Design Tools

9,227

An open-source design editor that reads native Figma files, ships a built-in AI assistant with 100+ design tools, and offers real-time serverless collaboration — all without giving up your files.

View details
84
Repo Health
78
Technical
69
Dependency
Built with
TypeScript 90%
Updated 6 days ago
TypeScript
97%
AGPL 3.0

Responsively App

Design Tools · Developer Tools

25,464

Preview and interact with your responsive web design across every device size simultaneously — no more manual resizing.

View details
79
Repo Health
71
Technical
66
Dependency
Built with
TypeScript 97%
Updated 3 weeks ago
Python
100%
Other

Sourcebot

AI Code Assistants · Developer Tools · Search

4,005

A self-hosted, AI-powered code search engine that indexes every repo across GitHub, GitLab, Bitbucket, Gitea, Gerrit, and Azure DevOps, so both engineers and coding agents can search, browse, and ask questions about your codebase from one place.

View details
86
Repo Health
83
Technical
61
Dependency
Built with
Python 100%
Updated 1 weeks ago
TypeScript
47%
Other

Stirling PDF

Digital Signiture · Productivity

94,824

The open-source PDF platform you can run anywhere — edit, convert, sign, and automate PDFs without sending files to external servers.

View details
92
Repo Health
86
Technical
68
Dependency
Built with
TypeScript 47%
Java 44%
Updated 5 days ago
TypeScript
47%
Other

Stirling PDF

Digital Signiture · Productivity

94,824

The open-source PDF platform you can run anywhere — edit, convert, sign, and automate PDFs without sending files to external servers.

View details
92
Repo Health
86
Technical
68
Dependency
Built with
TypeScript 47%
Java 44%
Updated 5 days ago
TypeScript
67%
Other

TaskView

Productivity · Project Management

1,367

Self-hosted project and task management platform for software teams, with Kanban boards, sprints, time tracking, GitHub/GitLab integrations, and an MCP server for AI assistants.

View details
78
Repo Health
77
Technical
68
Dependency
Built with
TypeScript 67%
Vue 21%
Updated 1 weeks ago
TypeScript
72%
Apache 2.0

Valmis

AI Agents

108

A security-focused, self-hostable AI agent platform for production work — agents run in isolated containers that access credentials only through a host-side proxy, so the AI itself never sees API keys or plaintext credentials.

View details
51
Repo Health
69
Technical
70
Dependency
Built with
TypeScript 72%
Svelte 27%
Updated 1 months 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