elementary icons is the vector icon set behind elementary OS
Named, vector icons for elementary OS
At a glance
- What is it?
- The elementary icons repository holds the named, vector artwork that elementary OS and the Pantheon desktop environment ship, built with Meson and installed as a freedesktop icon theme. It suits anyone packaging an elementary desktop, and it is not a general purpose icon set for unrelated applications.
- Who is it for?
- Adopt elementary icons if you are packaging elementary OS or Pantheon, or if you want a coherent named vector icon theme with matching sizes across actions, apps, categories, devices, emblems, mimes, places, status and volume icon directories. Do not adopt it as a general purpose icon library for an unrelated product, since the set is designed for one desktop environment and the artwork reflects that.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Meson, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Named artwork, not a generic glyph dump
elementary icons is described as an original set of vector icons designed specifically for elementary OS and its desktop environment, Pantheon. The word that matters is named. Every file in the repository carries a semantic filename rather than a codepoint, and the README's own examples show the convention: an application-default-icon.svg in the apps directory at 64 pixels, a preferences-desktop-locale.svg in categories, a utilities-terminal.svg, a dialog-password.svg and a battery-empty.svg in status, a document-revert.svg and an edit-flag.svg in actions. That naming discipline is what makes the set usable as a freedesktop icon theme, because the desktop resolves an icon by looking up a name and a size directory rather than by indexing a sprite sheet. The repository topics name freedesktop-icon-theme and named-icons alongside vector and icons, and the directory layout at the top level is a set of themed subdirectories: actions, apps, categories, cursors, data, devices, emblems, emotes, mimes, places, po, status and volumeicon, plus scripts and an index.theme.in file that is the template the theme index is generated from.
The build is Meson and Ninja, with three dependencies
The build system is the primary language of the repository, which is not a joke about icon projects: the artwork is SVG and the packaging is done properly. The README lists three dependencies, meson for the build system, rsvg for rendering SVG and xcursorgen for the cursor set, and cursors/ in the tree confirms the cursor part is real rather than aspirational. The build itself is the standard Meson then Ninja sequence. Run meson to configure the build environment, then ninja to build.
meson build --prefix=/usr
cd build
ninjaInstalling is the same toolchain, with ninja install as the target.
sudo ninja installThe prefix of /usr is the conventional one for a system-wide icon theme on a Linux distribution, which tells you the intended deployment model: this is meant to be installed into a system or an image, not vendored into a single application directory. The presence of meson_options.txt and meson.build at the root, plus a pre-commit file and a scripts/ directory, points to a repository that expects pre-commit checks and some scripted generation before the artwork is packaged.
The directory layout is the taxonomy of a desktop
The top level entries describe the scope of the set in plain terms. There are actions/ for verbs the user can invoke, apps/ for application icons, categories/ for category placeholders, cursors/ for pointer shapes, data/ for filesystem and storage categories, devices/ for hardware, emblems/ for the small overlay badges that mark an item, emotes/ for expressive faces, mimes/ for file type associations, places/ for user-facing locations, po/ for translation files, status/ for the state indicators such as battery and security levels, and volumeicon/ for the sound state. Alongside them sits index.theme.in, the template that becomes the icon theme's index. The status directory is a good illustration of the design intent, since the README's examples include an empty battery and a high security indicator rather than generic shapes, which is the kind of specificity that only makes sense for one desktop environment's settings panels. The po/ directory and the translation status badge point at the same idea from a different angle: the icon names are part of a localised interface, not merely filenames.
The naming convention is the integration contract
Because a desktop looks up icons by name, the filenames in this repository are effectively a public interface that other software depends on. A settings panel that wants a battery indicator asks for a specific name, and the elementary theme provides it. That has a consequence for anyone reusing the set outside elementary OS: you inherit the naming vocabulary without inheriting the design language, and any software expecting a different convention will not find the artwork. It also means the set is not a drop-in replacement for a generic theme in the way that a broad multi-family set would be, where you can pick icons for many applications out of the box. Here the strength is coverage of the operating system's own surface area, actions, status, categories and device icons, and the weakness is that the application icons are scoped to the applications elementary OS actually ships. For packaging a Pantheon or elementary session, that is exactly right, and for anything else it is a curated set with a narrow centre of gravity.
What the repository does not tell you
The documentation is short, and several things an integrator would want are not in it. There is no description of the size directories the theme ships beyond the 64 pixel and 48 pixel and 24 pixel examples visible in the README's image paths, and no statement of the complete list of supported sizes. The README does not document how to regenerate the index.theme file from index.theme.in, though the presence of the template and the scripts directory makes the existence of a generation step likely. There is no note on backporting the set to a distribution that packages icons under a different prefix, and no guidance on which applications outside the elementary ecosystem are covered. CONTRIBUTING.md is present at the root, so contribution expectations are documented somewhere, and the .github/ directory holds the workflows. What you should take from all this is that the repository is a well-organised asset collection with a working build, not a documented framework with a specified compatibility matrix.
Versioning and the pace of an icon set
The release history is short and infrequent, which is what an asset set looks like. icons 8.1.0 was released on 2024-10-24, icons 8.2.0 on 2025-10-31, and icons 9.0.0 on 2026-08-23. That is roughly a year between the first two and about ten months to the last, so a major bump is a periodic event rather than a response to a weekly stream of upstream requests. The last push to the repository was on 2026-10-22, so the tree is being worked on between releases. Two consequences follow for a team that packages this theme. First, you are consuming a versioned snapshot, and the.x.y numbering tells you the theme will change in ways that are not patch level, so an upgrade is a visual review rather than a routine bump. Second, since new applications appear in elementary OS over time, a theme that is a year old will be missing icons for newer software, which is the kind of gap that shows up as a generic placeholder in a settings panel rather than as an error.
Licence and the difference between artwork and software
The licence recorded for the project is GPL-3.0, and the repository carries a COPYING file at the root. That is worth thinking about carefully, because icon sets are used differently from libraries. A GPL-3.0 licensed set of images can be redistributed, and the obligation travels with the assets rather than with a linked binary in the way it does for code, but there are real questions for a commercial product: how the assets are packaged, whether the theme is distributed on its own or fused into a larger image, and whether the artwork inside a proprietary product constitutes a derived work. None of those questions have a simple answer, and this is not legal advice. What is fair to say is that the licence choice is stricter than the MIT and Apache terms that many commercially friendly icon sets use, and a team shipping this theme inside a closed product should settle the question before, not after, the artwork is in the image. The comparison worth naming is with a permissive multi-family icon set, which ships thousands of application glyphs under a permissive licence and covers far more software, at the cost of a design language that is not elementary's.
Editorial conclusion
Adopt elementary icons if you are packaging elementary OS or Pantheon, or if you want a coherent named vector icon theme with matching sizes across actions, apps, categories, devices, emblems, mimes, places, status and volume icon directories. Do not adopt it as a general purpose icon library for an unrelated product, since the set is designed for one desktop environment and the artwork reflects that. Verify two things before you build: that you have meson, rsvg and xcursorgen available, since the build needs all three, and that you are prepared for a GPL-3.0 licensed asset set, which is the term recorded in the repository and in its COPYING file. The practical first step is to run meson build --prefix=/usr followed by ninja in the build directory, then install with ninja install and confirm that the theme index resolves for your desktop session.
Frequently asked questions
What is the elementary icons repository?
It is an original set of vector icons designed specifically for elementary OS and its desktop environment, Pantheon, organised as a freedesktop icon theme with named SVG files across actions, apps, categories, devices, emblems, mimes, places, status and other directories.
How do I build elementary icons?
Install meson, rsvg and xcursorgen, then configure the build with meson, change into the build directory and run ninja. The README shows meson build --prefix=/usr followed by cd build and ninja.
How do I install the elementary icon theme?
Run ninja install from the build directory, which the README shows as sudo ninja install. The /usr prefix is the conventional location for a system-wide freedesktop icon theme on Linux.
What licence is the elementary icon set under?
The project is licensed under GPL-3.0, with the licence text in the COPYING file at the repository root. That is stricter than the permissive terms many commercial icon sets use, so check the terms before shipping the artwork in a closed product.
How often are new versions of elementary icons released?
The recorded releases are 8.1.0 on 2024-10-24, 8.2.0 on 2025-10-31 and 9.0.0 on 2026-08-23, so major versions arrive roughly annually rather than with every upstream change. The last push to the repository was on 2026-10-22.
Official sources
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.
[](https://hysenlabs.com/projects/elementary-icons)Was this useful?