React Icons

SVG icon components for React, bundling 40+ popular icon packs behind one consistent import syntax.

Library
npm
v5.7.0
12,671 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
76 /100 Good
Development Activity 72
Maintenance 64
Community 68
Maturity 60
Momentum 40

Technical Analysis

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

React Icons packages dozens of popular icon libraries — Font Awesome, Material Design, Ionicons, Feather, Bootstrap Icons, Tabler, Phosphor, and more — as tree-shakeable React components under a single npm dependency. Each icon set lives at its own import path (react-icons/fa, react-icons/md, and so on), so bundlers only include the specific icons a project actually imports rather than the whole library.

Icons render through a shared IconBase component that maps standard SVG attributes plus size, color, and title props onto the underlying markup, and an optional IconContext.Provider lets teams set defaults like color and className globally without repeating props on every icon. With over 8 million weekly npm downloads and 12,600+ GitHub stars, it has become a default choice for teams that want broad icon-set coverage without maintaining separate SVG assets or icon fonts.

What You Get

  • Access to 40+ icon packs (Font Awesome 5/6, Material Design, Ionicons, Feather, Bootstrap Icons, Tabler, Phosphor, Simple Icons, and more) totaling tens of thousands of icons
  • Per-icon-set subpath imports (react-icons/fa, react-icons/md, etc.) that keep bundles small since only the icons you import are included
  • A shared IconContext for setting default color, size, className, and style across every icon in a subtree
  • Full TypeScript types for every icon component and the IconBase props

Common Use Cases

  • Adding consistent UI icons (buttons, nav, status indicators) to a React app without designing or hand-optimizing SVGs
  • Swapping between icon packs (e.g. migrating from Font Awesome to Feather) without changing component usage patterns
  • Building admin dashboards, marketing sites, and design-system component libraries that need broad icon coverage out of the box

Under The Hood

Architecture React Icons is a Yarn/Lerna monorepo whose core publishable package lives at packages/react-icons. At publish time, scripts/fetcher.ts downloads SVG source from each upstream icon project (Font Awesome, Ionicons, Material Design, etc.), scripts/build.ts (via esbuild) parses and optimizes each SVG with cheerio/svgo into a serializable IconTree, and per-icon-set entry points (lib/fa/index.mjs, lib/md/index.mjs, …) are emitted so react-icons/fa only pulls in Font Awesome’s icons. At runtime, every icon is a thin function produced by GenIcon(data) in src/iconBase.tsx, which recursively converts the IconTree into React elements and renders them inside a shared IconBase component; IconBase reads an optional IconContext.Provider (src/iconContext.tsx) for ambient color/size/className/style defaults and merges those with per-icon props before emitting the final <svg>. Tech Stack The package is written in TypeScript and built with esbuild (esbuild-register for the build scripts themselves); SVG fetching/parsing during the build step uses cheerio and svgo, with find-package/glob/p-queue handling monorepo file discovery. React is a peer dependency pinned only to "*", and sideEffects: false plus per-icon-set exports drive tree-shaking. The repo also ships auxiliary workspaces — a CRA demo app, a webpack4 compatibility test app, a TypeScript type-check app (ts-test), and an Astro-based docs/preview site — used to validate the built output across bundlers and frameworks. Code Quality There is no dedicated unit-test suite for the icon-generation or rendering logic itself; the closest coverage is default Create-React-App snapshot tests in the demo workspaces, which mostly assert the demo app renders. Correctness instead leans on a strict, generated TypeScript surface (IconTree, IconBaseProps, IconType), a standalone type-check script run in CI (tsc -p ./scripts/tsconfig.json), an ESLint config (eslint.config.cjs), and a check.ts build script that verifies fetched icon sets match the expected manifest before publishing. API Design The public API is deliberately minimal: each icon is a drop-in React component named in PascalCase with a two-letter icon-set prefix (e.g. FaBeer, MdHome), accepting the same props across every icon set — standard SVG attributes plus size, color, and title. Global theming is opt-in via <IconContext.Provider value={{ color, size, className, style }}>, avoiding prop-drilling for common cases. Getting started requires a single import line and no build configuration, and the maintained docs site plus the README’s per-icon-set table (license, version, icon count) make it easy to discover which pack to use.

Used by 64 apps in this directory

TypeScript
76%
AGPL 3.0

Abby

Developer Tools · Product Management

166

Statically typed feature flags, remote config, and A/B testing with framework-native SDKs for TypeScript teams.

View details
31
Repo Health
70
Technical
64
Dependency
Built with
TypeScript 76%
MDX 18%
Updated 1 years ago
Go
59%
Apache 2.0

agent-orchestrator

AI Agents · AI Code Assistants · Developer Tools

12,440

A local desktop workspace that gives every coding task its own agent, Git branch, and worktree, then tracks tasks, pull requests, CI, and reviews for 27 coding agents on one live Kanban board.

View details
86
Repo Health
83
Technical
68
Dependency
Built with
Go 59%
TypeScript 38%
Updated 4 days ago
TypeScript
56%
Other

agenta

AI Development · Developer Tools · Devops

4,788

The open-source LLMOps platform unifying prompt engineering, evaluation, and observability for teams building reliable LLM applications.

View details
91
Repo Health
77
Technical
67
Dependency
Built with
TypeScript 56%
Python 39%
Updated 5 days ago
Python
85%
MIT

ai-toolkit

AI Design Tools · AI Development

12,143

An all-in-one open-source training suite for finetuning diffusion models—FLUX, SDXL, Wan video, and audio—on consumer GPU hardware via CLI or web UI.

View details
79
Repo Health
66
Technical
72
Dependency
Built with
Python 85%
TypeScript 14%
Updated 5 days ago
Python
89%
Apache 2.0

Apache Airflow

Data Engineering

46,995

Define, schedule, and monitor complex data workflows as Python code — with a powerful UI, 80+ provider integrations, and battle-tested scalability across thousands of production deployments.

View details
96
Repo Health
89
Technical
64
Dependency
Built with
Python 89%
Updated 4 days ago
Rust
86%
Other

Arroyo

Analytics · Data Engineering

5,039

A distributed stream processing engine written in Rust that lets you write SQL to run stateful, real-time computations over data streams with subsecond results.

View details
86
Repo Health
74
Technical
62
Dependency
Built with
Rust 86%
Updated 1 weeks ago
Python
66%
Other

AutoGPT

AI Assistants · Automation · Productivity

187,596

Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.

View details
93
Repo Health
78
Technical
66
Dependency
Built with
Python 66%
TypeScript 33%
Updated 4 days ago
JavaScript
99%
Other

ChartBrew

Analytics · Databases

4,063

Open-source reporting platform to build live dashboards from SQL, NoSQL, APIs, and SaaS tools with an AI assistant that creates charts from natural language.

View details
90
Repo Health
83
Technical
64
Dependency
Built with
JavaScript 99%
Updated 1 weeks ago
TypeScript
98%
AGPL 3.0

Checkmate

Analytics · Devops · Monitoring

10,895

Self-hosted uptime and infrastructure monitoring with multi-protocol checks, global geo-coverage, and beautiful real-time dashboards.

View details
90
Repo Health
82
Technical
67
Dependency
Built with
TypeScript 98%
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