Phosphor Icons
1,512 MIT icons in six weights, from Thin to Duotone
Phosphor is an open-source icon family of 1,512 icons drawn at a 16x16 base grid, each shipped in six weights — Thin, Light, Regular, Bold, Fill and Duotone — for roughly 9,000 total assets. Weight is a runtime prop rather than a separate import, so a single component swaps from hairline to filled without changing the icon name. Official packages cover React, Vue, vanilla web (webfont and SVG), Web Components, Elm and Flutter, with first-party plugins for Figma, Sketch and Penpot. It is MIT licensed and suits product teams that want one icon system to cover both dense UI chrome and large marketing display use.
npm i @phosphor-icons/reactPick Phosphor over Lucide when the design needs filled or duotone icons, or when one icon must appear at both 16px in a table row and 96px in a hero — the weight prop covers that range from a single import, which a stroke-only set cannot. It is the right default for Vue, Elm, Flutter and Web Components projects, where Lucide's ecosystem is thinner. Watch the bundle: importing from `@phosphor-icons/react` is tree-shakable but duotone icons carry two paths and an opacity layer, so do not pull hundreds of them into one client route, and note the marketing site still quotes the stale 1,248 figure from an older release.
Why it is here. The only widely used open-source icon family where weight is a prop rather than a separate icon set, which makes a single visual system stretch across an entire product.
- six weights including Duotone
- weight as a runtime prop
- drawn on a 16x16 base grid
- official Figma, Sketch and Penpot plugins
- MIT with no attribution requirement
Verified 2026-08-15. HTTP 200. https://phosphoricons.com (renders as a JS shell, no readable content), https://github.com/phosphor-icons/homepage, https://github.com/phosphor-icons/core, https://github.com/phosphor-icons/react, web search for the v2.1 icon count








