heroicons

Hand-crafted MIT-licensed SVG icons from the makers of Tailwind CSS, in outline and solid styles with first-party React and Vue components.

Library
npm
v2.2.0
23,878 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
51 /100 Fair
Development Activity 8
Maintenance 32
Community 64
Maturity 60
Momentum 40

Technical Analysis

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

Heroicons is a free, open-source icon set built by the Tailwind CSS team. It ships as plain SVG source you can copy straight into HTML, plus first-party framework packages (@heroicons/react, @heroicons/vue) so each icon can be dropped in as a component instead of hand-copied markup.

The library covers four icon families - 24x24 outline, 24x24 solid, 20x20 solid (“mini”), and 16x16 solid (“micro”) - so the same glyph set scales cleanly across page headers, inline text, and dense UI like table rows or badges. Every icon inherits color from CSS via currentColor, making them trivial to theme alongside Tailwind’s utility classes or any other styling approach.

The project intentionally keeps its scope narrow: the maintainers only accept bug-fix contributions, not new icons or new framework targets, which keeps the set consistent and the release cadence predictable rather than sprawling into a community-graveyard of half-supported variants.

What You Get

  • Four ready-made icon families - 24x24 outline, 24x24 solid, 20x20 solid, and 16x16 solid - covering headers down to dense inline UI
  • First-party @heroicons/react and @heroicons/vue packages with per-icon named exports (e.g. BeakerIcon) instead of a single monolithic import
  • Plain SVG source for any icon, copy-pasteable directly into HTML with no build step or package install required
  • Icons that inherit color via currentColor, so they restyle automatically with Tailwind utility classes or any CSS color rule
  • A consistent naming and export convention (upper camel case, always suffixed Icon) across every size and framework package
  • Deprecated-icon handling baked into the build so renamed/retired icons keep working with a @deprecated warning instead of breaking silently

Common Use Cases

  • Dropping icons into a Tailwind CSS project’s buttons, nav bars, and form fields with matching visual language
  • Building a React or Vue admin dashboard that needs a consistent, tree-shakeable icon set instead of a full icon-font
  • Using the 16px/20px “micro”/“mini” solid styles for dense UI like table actions, badges, and inline status indicators
  • Copying raw SVG markup into a static site or email template where installing an npm package isn’t practical

Under The Hood

Architecture

Heroicons isn’t a runtime library with application logic - it’s a source-to-package build pipeline. Hand-drawn SVGs live under src/{16,20,24}/{solid,outline}/, and scripts/build.js walks that source tree, optimizes each file with SVGO, and emits three parallel outputs: optimized raw SVGs (optimized/, mirrored into the root 16/, 20/, 24/ folders published as the bare heroicons npm package), React components (react/, transformed via @svgr/core and Babel into named exports like BeakerIcon), and Vue single-file components (vue/, compiled via @vue/compiler-dom). Each framework target ships as its own scoped package (@heroicons/react, @heroicons/vue) with its own package.json and exports map, so what breaks if the core abstraction changes is the shared naming convention enforced by scripts/verify-names.js, not any shared runtime code.

Tech Stack

The toolchain is pure Node.js build tooling with no runtime dependencies in the published packages themselves: SVGO 3 for SVG optimization/minification (with per-size svgo.*.mjs configs), @svgr/core plus @babel/core and @babel/plugin-transform-react-jsx to turn SVG into React components, @vue/compiler-dom to compile the same SVGs into Vue render functions, camelcase for deriving component names from filenames, and prettier/rimraf for output formatting and cleanup between builds. CI (.github/workflows/CI.yml) runs on GitHub Actions against Node 18, installing dependencies and running npm run build as its only check - there’s no separate lint or test job.

Code Quality

There is no conventional unit test suite; correctness is instead enforced structurally by scripts/verify-names.js, which diffs icon filenames across all four style directories (micro, mini, solid, outline) and fails the build if any style is missing an icon the others have, with an explicit allowance for icons deprecated out of the micro set. Generated framework code is auto-formatted (Prettier config in prettier.config.js) rather than hand-styled, and the packages ship hand-maintained .d.ts type declarations per icon/size via the exports map in each framework’s package.json. Contribution scope is deliberately narrow - the maintainers state they only accept bug-fix PRs, not new icons or new framework targets - which keeps the codebase small and consistent rather than sprawling.

What Makes It Unique

Heroicons’ distinguishing choice isn’t a novel rendering technique - SVG-to-component generation is a well-trodden pattern - but its four-tier size/style system (16px and 20px solid “micro”/“mini” variants alongside the standard 24px outline/solid pair) purpose-built for dense UI contexts like table rows and inline badges, plus being maintained by the Tailwind CSS team itself, which keeps its currentColor theming and naming conventions tightly aligned with how Tailwind projects already style things.

Used by 36 apps in this directory

TypeScript
53%
MIT

MentraOS

AI Development · Developer Tools

2,391

The open source operating system and SDK that lets developers build one app and run it across smart glasses from Even Realities, Vuzix, Mentra Live, and more.

View details
92
Repo Health
77
Technical
66
Dependency
Built with
TypeScript 53%
Java 16%
Updated 6 days ago
Go
72%
MIT

Ollama

AI Development · Developer Tools

184,509

Run Llama, Gemma, DeepSeek, and other open LLMs on your own machine with one command and an OpenAI-compatible API.

View details
92
Repo Health
85
Technical
67
Dependency
Built with
Go 72%
C 19%
Updated 1 weeks ago
Python
100%
Other

OpenBB

Analytics · Databases · Invoicing Finance

74,601

The AI Workspace for Finance: Connect Data, Run AI Agents, Build Analytics

View details
80
Repo Health
80
Technical
65
Dependency
Built with
Python 100%
Updated 1 weeks ago
TypeScript
85%
MIT

openwork

AI Assistants · Automation

24,237

OpenWork is a free, open-source desktop app for running AI agent workflows on your own files with 50+ LLMs, extensible skills, and MCP server support — the open-source alternative to Claude Cowork and Codex.

View details
87
Repo Health
89
Technical
67
Dependency
Built with
TypeScript 85%
Updated 6 days ago
TypeScript
50%
Other

Phase Console

Devops · Security

931

End-to-end encrypted secrets management for engineering teams — from local dev to Kubernetes production.

View details
85
Repo Health
73
Technical
63
Dependency
Built with
TypeScript 50%
Python 48%
Updated 1 weeks ago
Elixir
80%
AGPL 3.0

Plausible Analytics

Analytics

29,631

Open-source, cookie-free web analytics that respects visitor privacy and replaces Google Analytics.

View details
88
Repo Health
84
Technical
71
Dependency
Built with
Elixir 80%
TypeScript 15%
Updated 1 weeks ago
Rust
63%
MIT

Readur

Bookmarks Archiving · File Storage · Knowledge Management

804

A self-hosted document management system that OCRs, indexes, and makes every PDF, scan, and Office file instantly searchable.

View details
83
Repo Health
78
Technical
67
Dependency
Built with
Rust 63%
TypeScript 32%
Updated 6 days ago
Rust
72%
Apache 2.0

Rivet

AI Agents · Developer Tools

6,326

Stateful actors as a primitive for AI agents, real-time collaboration, and durable execution — with in-memory state, WebSockets, queues, and scheduling built in.

View details
87
Repo Health
81
Technical
64
Dependency
Built with
Rust 72%
TypeScript 25%
Updated 6 days ago
TypeScript
98%
Apache 2.0

rowboat

AI Assistants · AI Development

18,060

Build, test, and deploy multi-agent AI workflows with a visual editor, RAG data sources, MCP tool integration, and a production-ready REST API.

View details
88
Repo Health
72
Technical
65
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