Skip to content

Repository files navigation

Platformicons

A set of platform and framework icons from the people behind https://sentry.io.

Installation

# yarn
yarn add platformicons
# npm
npm install platformicons

React 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.

Usage

import{PlatformIcon}from‘platformicons’;functionApp(){return<PlatformIconplatform="javascript-react"size={32}/>;}

Props

PropTypeDefaultDescription
platformstringPlatform identifier (e.g. "python-django", "javascript-react")
sizestring | number20Icon width and height in pixels
format"sm" | "lg""sm""sm" uses compact icons from /svg, "lg" uses detailed icons from /svg_80x80
radiusnumber | null3Border radius in pixels
withLanguageIconbooleanfalseShow a small language badge in the bottom-right corner (e.g. the Python logo on a Django icon)
languageIconStylesReact.CSSProperties{}Custom styles for the language badge

Platform Names

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 keys

Preloading

To 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.

Using SVGs Directly

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)

Publishing Changes

Platformicons uses GitHub Actions to publish changes. You don’t need to update the version in package.json since that’s done automatically.

  1. Make a change but don’t update the version in package.json
  2. Merge with Master
  3. Head to the Release workflow and then run the workflow
  4. This will create an issue in getsentry/publish
  5. Add the accepted label to publish

Contributing

See CONTRIBUTING.md for development setup and how to add new icons.

About

A platform and framework icon font.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

43 stars

Watchers

47 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages