React Icons

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

Library
npm
v5.7.0
12,619stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
77/100Good
Development Activity76
Maintenance64
Community68
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
78/100Good
Architecture82
Code Quality62
Innovation80
Learning Curve88

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 61 apps in this directory

TypeScript
76%
AGPL 3.0

Abby

Developer Tools · Product Management

167

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

View details
30
Repo Health
70
Technical
63
Dependency
Built with
TypeScript76%
MDX18%
Updated 1 years ago
TypeScript
59%
Other

agenta

Developer Tools · Devops · AI Development

4,489

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
TypeScript59%
Python39%
Updated today
Python
86%
MIT

ai-toolkit

AI Development · AI Design Tools

11,757

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
77
Repo Health
66
Technical
75
Dependency
Built with
Python86%
TypeScript13%
Updated 2 days ago
Python
90%
Apache 2.0

Apache Airflow

Data Engineering

46,530

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
66
Dependency
Built with
Python90%
Updated today
Rust
86%
Other

Arroyo

Data Engineering · Analytics

5,005

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
Rust86%
Updated 1 weeks ago
Python
68%
Other

AutoGPT

Automation · Productivity · AI Assistants

186,687

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
67
Dependency
Built with
Python68%
TypeScript31%
Updated today
JavaScript
99%
Other

ChartBrew

Analytics · Databases

4,041

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
65
Dependency
Built with
JavaScript99%
Updated 6 days ago
TypeScript
97%
AGPL 3.0

Checkmate

Devops · Analytics · Monitoring

10,556

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

View details
91
Repo Health
82
Technical
69
Dependency
Built with
TypeScript97%
Updated yesterday
Go
76%
AGPL 3.0

Coder

Devops · Developer Tools · Code Editors

14,199

Self-hosted cloud development environments and AI coding agents — defined in Terraform, connected via WireGuard, automatically shut down when idle.

View details
93
Repo Health
90
Technical
71
Dependency
Built with
Go76%
TypeScript22%
Updated today

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

Search