A set of platform and framework icons from the people behind https://sentry.io.
# yarn
yarn add platformicons
# npm
npm install platformiconsReact is a peer dependency, so make sure it’s installed in your project.
The package ships both CommonJS and ESM builds:
"main"→build/index.js(CommonJS — works with webpack, Gatsby, etc.)"module"→esmbuild/index.js(ESM — works with Vite, Astro, etc.)
Most bundlers pick the right entry automatically. Static SVG imports ensure both module systems resolve icons correctly.
import{PlatformIcon}from‘platformicons’;functionApp(){return<PlatformIconplatform="javascript-react"size={32}/>;}| Prop | Type | Default | Description |
|---|---|---|---|
platform | string | — | Platform identifier (e.g. "python-django", "javascript-react") |
size | string | number | 20 | Icon width and height in pixels |
format | "sm" | "lg" | "sm" | "sm" uses compact icons from /svg, "lg" uses detailed icons from /svg_80x80 |
radius | number | null | 3 | Border radius in pixels |
withLanguageIcon | boolean | false | Show a small language badge in the bottom-right corner (e.g. the Python logo on a Django icon) |
languageIconStyles | React.CSSProperties | {} | Custom styles for the language badge |
Platforms use a language-framework naming convention:
python-django
javascript-react
ruby-rails
go-echo
Both dashes and dots are accepted (python-django and python.django are equivalent). If an exact match isn’t found, the library falls back to the language icon (the part before the first dash), then to a generic default icon.
node-* is an alias for javascript-* for backwards compatibility.
You can get the full list of supported platform keys at runtime:
import{platforms}from‘platformicons’;// platforms is a string[] of all valid platform keysTo avoid render jank when icons appear on a new page, you can preload them:
import{preloadIcons}from‘platformicons’;// Preload all icons (both sizes)preloadIcons();// Preload only small or large iconspreloadIcons(‘sm’);preloadIcons(‘lg’);This inserts <link rel="preload"> tags into the document head.
If you aren’t using React, the raw SVG files are included in the package:
platformicons/svg/— small icons (solid backgrounds, optimized for small sizes)platformicons/svg_80x80/— large icons (transparent backgrounds, 80x80px)
Platformicons uses GitHub Actions to publish changes. You don’t need to update the version in package.json since that’s done automatically.
- Make a change but don’t update the version in package.json
- Merge with Master
- Head to the Release workflow and then run the workflow
- This will create an issue in getsentry/publish
- Add the accepted label to publish
See CONTRIBUTING.md for development setup and how to add new icons.