← Atlas · Topics: icons, assets, components
Phosphor
- Type
- icon library
- Verdict
- Very useful
- Licence
- Ship licence, open source permissive
open-source-permissiveFree. MIT licence across the core assets and the official packages - Agent channels
- none
- Pricing
- free
- Reviewed
What it is
Phosphor is an open-source icon family whose selling point is six weights of every glyph: Thin, Light, Regular, Bold, Fill and Duotone. The icons are designed on a 16×16 grid so they read well small and scale up, and the stroke data is kept in the source files. The @phosphor-icons/core catalog held about 1,530 icons at review, grouped into 18 categories that include brands. The project lives in the phosphor-icons GitHub organisation, with Tobias Fried listed as author; the homepage repository has about 7,500 stars. The website is a JavaScript app with a search, weight switcher, size and colour controls, and copy or download for each icon.
When to open it
Open Phosphor when one product needs several visual tones from the same icon: a thin weight for large marketing art, regular for UI, fill for active states and duotone for illustrations or empty states. It suits friendly consumer apps and diagrams more than dense developer tools, where a strict 2px stroke set may fit better.
Most useful
- Weight as a prop:
@phosphor-icons/reacttakesweight,size,colorandmirrored, andIconContextsets defaults for a whole tree - Server-safe imports: a
/ssrsubmodule for React Server Components and other places where React context is not available - Web font with no build step:
@phosphor-icons/webloads one stylesheet per weight from a CDN and draws icons withphandph-fillstyle classes - Many official targets: Vue (components prefixed with
Ph), Flutter, SwiftUI, Elm and web components, plus plugins for Figma, Sketch and Penpot - Build helpers:
packstrips the web font down to the icons you use, andunplugingenerates sprite sheets for several bundlers - Long list of community ports for Rails, Laravel, Astro, Nuxt, Rust frameworks, WordPress and more, linked from the homepage README
Using it with agents
There is no llms.txt or MCP server, so the agent works from the npm packages. The shadcn CLI accepts phosphor as its iconLibrary, which makes generated components import from @phosphor-icons/react. Ask the agent to use the /ssr import inside server components, to set shared defaults through IconContext, and to look icon names up in the @phosphor-icons/core catalog, which lists each icon's name, category and tags.
Watch out for
- Counts are out of date in places: the homepage README still says 1,248 icons, well below the current catalog
- Releases have slowed.
@phosphor-icons/reactwas last published in May 2025 and the core GitHub release tags are older still, although the repositories were touched in 2026 - Recent React docs use
Icon-suffixed names (HorseIcon) while older examples use bare names, so match the style of the version you install - Duotone draws a second layer at reduced opacity in the current colour. Check contrast on coloured backgrounds before shipping it
- The web font loads a separate stylesheet and font file per weight, so pulling in all six adds real weight to a page
- Brand icons remain their owners' trademarks whatever the MIT licence says
Reusable ideas
- Offer weight as a single prop so one icon set can cover hero art, UI and selected states
- Design at the smallest target size (16px) and scale up, rather than shrinking a 24px drawing
- Ship a tool that subsets the icon font so no-build users are not stuck with the full set
- Keep a public list of community ports so the official team doesn't have to maintain every framework