Open-source project
vorillaz/devicons avatar
vorillaz/devicons

vorillaz/devicons: developer logos as a font, an SVG sprite and React, Vue or Svelte components

devicons - Crisp and clear logos & icons for developers.

2,779 stars209 forksMDXMIT

At a glance

What is it?
Devicons is an MIT-licensed icon set for developer logos, shipped as a font, an SVG sprite and generated components for React, Vue and Svelte. The README points to the docs site for installation; the repository itself is a pnpm workspace with a single build pipeline.
Who is it for?
Adopt devicons if you want one icon source that covers a CSS font, an SVG sprite and generated React, Vue or Svelte components from the same build. Do not adopt it if you need a documented CDN URL, a Nuxt or Angular wrapper, or an install command printed in the README, because none of those appear in the repository.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 143 days ago.
What is it written in?
Mainly MDX, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What devicons actually ships, and who needs it

The README describes the project in one line: "A collection of icons for developers." The package table is the useful part. There are six entries. The devicons package is the icon font, CSS and SVG sprite. Three framework packages wrap the same artwork: @dev.icons/react, @dev.icons/vue and @dev.icons/svelte. @dev.icons/core is the build pipeline that produces the rest, and @dev.icons/figma is a Figma plugin with no documentation link in the table.

That shape tells you who this is for. If your product shows language, framework or tool logos (a language switcher, a pricing table of supported runtimes, a docs sidebar), you are the target. If you need general-purpose UI glyphs such as arrows, chevrons or shopping carts, this is not that library. The topics list on the repository is fonts, icons, logos, react, svelte, vue, and the artwork is the developer-brand kind.

The monorepo layout reinforces the intent. apps/ holds the website, packages/ holds the six published units, examples/ holds one example per consumption path (core, font, react, svelte, vue), and scripts/ holds maintenance scripts. There is no separate distribution repository and no vendored copy of the icons in the README.

One build pipeline, four consumption paths

The root package.json is the clearest description of the architecture. Every build script delegates to @dev.icons/core, and the flags decide which outputs get produced:

- pnpm -F @dev.icons/core build runs the full pipeline. - The build:icons script passes --no-frameworks --no-font-pkg, so it emits the icon set without the framework packages and without the font package. - The build:frameworks script passes --no-font --no-sprite --no-font-pkg, so it emits only the framework components. - The build:font script targets the devicons package directly.

The framework components are generated, not hand-written. Three scripts exist for that: generate:react, generate:vue and generate:svelte, each calling a generate target inside the matching package. A clean:generated script removes the output afterwards. That is the mechanism worth understanding: the icons are the source of truth, and the React, Vue and Svelte packages are artifacts of a code generation step. If you fork the project to add a logo, you regenerate rather than edit component files.

Releases are automated through semantic-release with the conventionalcommits preset, and the repository keeps a CHANGELOG.md at the root. The dry-run scripts (release:dry and release:font:dry) let a maintainer preview a release without publishing. The most recent release listed is v1.1.0, published on 2026-04-19, with two canary releases before it on the same day. The last push to the repository was on 2026-05-10.

Installing devicons and rendering a first icon

The README does not print install commands. Its Getting started section says only: "See the installation guide and quick start." Both links point at devicons.io, at /docs/installation and /docs/quick-start. So the authoritative commands live on the documentation site, and the package names below come from the README's package table rather than from a quoted install line.

The package names are devicons for the font, CSS and sprite, and @dev.icons/react, @dev.icons/vue and @dev.icons/svelte for the framework wrappers. The repository is a pnpm workspace with [email protected] pinned in packageManager, which matters if you are contributing rather than consuming:

bash
pnpm install
pnpm build
pnpm test

Those three scripts exist in the root package.json. pnpm install resolves the workspace, pnpm build runs the core pipeline, and pnpm test fans out across packages in parallel. Expect the build to regenerate framework components and font assets, which is why clean:generated exists as a separate script.

For a first real use, the React path is the best documented in the repository layout, because examples/react/ exists as a runnable example directory. A component from @dev.icons/react is imported and rendered like any other React component. The exact prop names and the icon identifier scheme are not in the README, so check the React docs page at devicons.io/docs/react before you commit to a naming convention in your codebase.

If you only need CSS, the devicons package is the one to install. The README labels it "Icon font, CSS, and SVG sprite", which means you can either set a class on an element or reference the sprite, depending on which build output you include. The README does not show the class prefix or the sprite identifier, so those are documentation lookups too.

Where devicons runs into trouble

The README is a signpost, not a manual. It contains no install command, no usage example, no CDN URL, no list of available icons, and no note on bundle size. Everything operational is deferred to devicons.io. That is a deliberate choice for a project whose artwork changes often, but it means the repository alone is not enough to evaluate the package. If devicons.io is down or the docs lag behind a release, you have the package table and nothing else.

Generated components are the second constraint. Because the React, Vue and Svelte packages come out of a generator, the component API is a function of the generator, not of hand-tuned ergonomics. Adding a missing logo means touching the icon source and rerunning the pipeline, which is fine for a maintainer and awkward for a consumer who just wants one extra glyph.

Third, the framework coverage is exactly three: React, Vue and Svelte. There is no Angular, Solid, Astro or plain web-component package in the table. A Nuxt or Next.js user is covered by the Vue and React packages respectively, but anyone outside those three ecosystems falls back to the font or the sprite.

Finally, the Figma plugin row in the package table has a dash in the Docs column. If you are evaluating devicons for a design-to-code handoff, the README gives you no documentation to read.

devicons compared with nvim-web-devicons and vim-devicons

The name devicons collides with a well-known Neovim plugin, and the search data shows people arriving with that expectation. The distinction is worth stating plainly, because the two solve unrelated problems despite the shared word.

nvim-web-devicons and vim-devicons are editor plugins. They attach a glyph to a filename in a file tree or a status line inside Neovim and Vim. Their job is to make a text editor's buffer list readable by mapping file extensions and exact filenames to icons, and they operate inside the editor process.

vorillaz/devicons is a web asset library. It publishes an icon font, a CSS file, an SVG sprite and generated React, Vue and Svelte components, consumed by a web application at build time or through a stylesheet. There is no editor integration in the repository, no Vim or Neovim plugin file, and no filename-matching logic. If you found this repository while looking for a file-tree icon plugin, you are in the wrong place.

The same caution applies to other similarly named projects in the search results, such as PlantUML devicons. The README here describes a web icon collection and nothing else. The practical test: if your build step involves a bundler and JSX or SFC files, this is your project. If it involves a Vim configuration file, it is not.

Licence, maintenance and the cost of upgrading

The licence is MIT. In practice that means you can use devicons in commercial and closed-source products, modify the icons, and redistribute them, provided the copyright notice and permission notice travel with the copies. It does not give you trademark rights to the logos depicted, which is a separate question from the code licence and one the README does not address. If your product displays a third-party brand logo, the brand owner's guidelines govern that use, not the MIT text in this repository. That is not legal advice; it is the boundary the licence file draws.

The last push to the repository was on 2026-05-10, and the most recent release is v1.1.0 from 2026-04-19. The repository is not archived. Upgrade cost is low for consumers: the root package.json pins [email protected] and the release process runs through semantic-release with conventional commits, which in a monorepo of independently versioned packages usually means the framework packages move on their own cadence. The presence of canary releases (v1.1.0-canary.1 and v1.0.0-canary.1, both on 2026-04-19) suggests pre-release tags are used for testing before a stable cut.

For contributors the cost is higher than for consumers. You need pnpm, you need to understand the core build flags, and you need to rerun generate:react, generate:vue or generate:svelte after changing icons. The check script (pnpm -F @dev.icons/core check) is the validation step the repository exposes.

Editorial conclusion

Adopt devicons if you want one icon source that covers a CSS font, an SVG sprite and generated React, Vue or Svelte components from the same build. Do not adopt it if you need a documented CDN URL, a Nuxt or Angular wrapper, or an install command printed in the README, because none of those appear in the repository. Before writing any code, open devicons.io/docs/installation and check that the package names on the registry match the table in the README, then confirm whether you want the font package or the framework package, since they are separate installs.

Frequently asked questions

How do I install devicons?

The README does not print an install command; its Getting started section points to the installation guide and quick start at devicons.io/docs/installation and devicons.io/docs/quick-start. The package names to look for are devicons for the font, CSS and sprite, and @dev.icons/react, @dev.icons/vue and @dev.icons/svelte for the framework components.

What is the icon for a programming language in devicons?

The README describes the project only as "A collection of icons for developers" and does not list individual icons or their identifiers. The package table tells you the artwork is available as an icon font, CSS, SVG sprite and generated framework components, but the specific icon names live in the documentation at devicons.io.

Is vorillaz/devicons the same as nvim-web-devicons?

No. nvim-web-devicons is a Neovim plugin that maps filenames to glyphs inside the editor. vorillaz/devicons is a web asset library that publishes an icon font, CSS, an SVG sprite and React, Vue and Svelte components, and the README contains no editor integration.

Which frameworks does devicons support?

The README's package table lists React, Vue and Svelte components, plus the devicons font package and the @dev.icons/core build pipeline. There is no Angular, Solid or web-component package listed.

What licence does devicons use?

The repository is MIT licensed, which permits commercial use, modification and redistribution as long as the copyright and permission notice are kept. The licence covers the code and assets; it does not grant rights to the third-party brand logos the icons depict.

Official sources

  1. License: MIT
  2. Project website
  3. README
  4. Releases
  5. vorillaz/devicons on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/vorillaz-devicons.svg)](https://hysenlabs.com/projects/vorillaz-devicons)