Icon packs#

tkinter-icons ships no glyphs. It is the renderer; the icons come from one of sixteen packs, each installed as an extra:

pip install "tkinter-icons[material]"
from tkinter_icons import MaterialIcon

Each pack is its own PyPI distribution because each carries its own font file, but you should never have to think about that. Install the extra, import from tkinter_icons, and the pack’s name is an implementation detail.

The sixteen sets#

Each card carries a sample of the set, the extra that installs it, and roughly how many icons it has. Open one for the same glyphs drawn in every style the pack offers, a runnable example, and the exact figures.

Bootstrap Icons
Bootstrap Icons sample glyphs Bootstrap Icons sample glyphs

The Bootstrap project’s own set, with an outline and a fill for most icons. Familiar vocabulary if you have written for the web.

Bootstrap Icons
Devicon
Devicon sample glyphs Devicon sample glyphs

Language, framework, and tooling marks, each in a plain outline and the logo’s own shape, both with optional wordmarks.

Devicon
Eva Icons
Eva Icons sample glyphs Eva Icons sample glyphs

A small, rounded UI set with a matching outline and fill for nearly every icon.

Eva Icons
Fluent System Icons
Fluent System Icons sample glyphs Fluent System Icons sample glyphs

Microsoft’s system set. The largest here after Material, in three weights, with the design size carried in every name.

Fluent System Icons
Fluent System Icons (Regular)
Fluent System Icons (Regular) sample glyphs Fluent System Icons (Regular) sample glyphs

Fluent’s regular weight on its own — the same drawings, one style, a much smaller font.

Fluent System Icons (Regular)
Font Awesome 6 (Free)
Font Awesome 6 (Free) sample glyphs Font Awesome 6 (Free) sample glyphs

The set most people mean when they say icon font, with brand marks alongside the interface glyphs.

Font Awesome 6 (Free)
Google Material Icons
Google Material Icons sample glyphs Google Material Icons sample glyphs

Google’s own icons in four cuts of every glyph: baseline, outlined, round, and sharp.

Google Material Icons
Ion Icons
Ion Icons sample glyphs Ion Icons sample glyphs

Ionic’s set, drawn for touch targets and a little heavier than most, with outline variants in the names.

Ion Icons
Lucide Icons
Lucide Icons sample glyphs Lucide Icons sample glyphs

A light, evenly weighted community set descended from Feather. The most consistent stroke here.

Lucide Icons
Material Design Icons
Material Design Icons sample glyphs Material Design Icons sample glyphs

The largest set of all, community-extended well past Google’s original. If an icon exists, it is probably here.

Material Design Icons
Meteocons
Meteocons sample glyphs Meteocons sample glyphs

Ninety-four hand-drawn weather symbols with a warmer, less systematic feel than the other forecast set.

Meteocons
Remix Icon
Remix Icon sample glyphs Remix Icon sample glyphs

A neutral system set drawn on a strict grid, with a line and a fill for everything.

Remix Icon
RPG Awesome
RPG Awesome sample glyphs RPG Awesome sample glyphs

Swords, potions, monsters, and spell effects. For games and character sheets, not toolbars.

RPG Awesome
Simple Icons
Simple Icons sample glyphs Simple Icons sample glyphs

Brand and product marks, thousands of them. Not a UI set — pair it with one.

Simple Icons
Typicons
Typicons sample glyphs Typicons sample glyphs

A small, sturdy set from an earlier era of icon drawing, in outline and fill.

Typicons
Weather Icons
Weather Icons sample glyphs Weather Icons sample glyphs

Forecast symbols with day and night variants, plus names that map straight from common weather APIs.

Weather Icons

Side by side#

Install is the extra to add to pip install "tkinter-icons[...]". Icons counts distinct names across all of that pack’s styles.

Icon set

Install

Styles

Icons

Bootstrap Icons

[bootstrap]

fill, outline

2,078

Devicon

[devicon]

plain, plain-wordmark, original, original-wordmark

1,229

Eva Icons

[eva]

outline, fill

980

Fluent System Icons

[fluent]

regular, filled, light

12,879

Fluent System Icons (Regular)

[fluent-regular]

none

6,336

Font Awesome 6 (Free)

[fontawesome]

solid, regular, brands

2,141

Google Material Icons

[google-material]

baseline, outlined, round, sharp

8,936

Ion Icons

[ionicons]

none

1,414

Lucide Icons

[lucide]

none

1,601

Material Design Icons

[material]

outline, fill

14,896

Meteocons

[meteocons]

none

94

Remix Icon

[remix]

line, fill

2,356

RPG Awesome

[rpg-awesome]

none

990

Simple Icons

[simple]

none

3,369

Typicons

[typicons]

outline, fill

672

Weather Icons

[weather]

none

1,182

Note

Counts, styles, and the previews above are read from the installed packs when the documentation is built, not typed in — so they describe exactly the release you are reading about.

Choosing a pack is the shorter answer if you would rather be told than compare.

Using two at once#

Nothing stops you. Name both extras, import both classes, and they coexist — each icon holds its own icon set, so the two never interfere.

pip install "tkinter-icons[lucide,simple]"
from tkinter_icons import LucideIcon, SimpleIcon

save = LucideIcon("save", size=20)
github = SimpleIcon("github", size=20)

The usual reason is a UI set plus a logo set: no general-purpose pack has a GitHub mark, and no logo pack has a “save” icon.

Warning

There is deliberately no [all] extra. The sets serve disjoint purposes, so no application draws from all sixteen, and installing every one costs about 22 MB on disk to get fifteen sets nobody opens — the bundling that extras exist to avoid. Name the ones you use.

Styles#

Some packs draw the same icon more than one way — outline and fill, solid and regular. Those are styles, and a pack that has them takes a style argument:

from tkinter_icons import BootstrapIcon

BootstrapIcon("house", style="outline")
BootstrapIcon("house", style="fill")
BootstrapIcon("house-fill")            # same thing, style carried in the name

Of the sixteen, seven have no styles at all and take no style argument. The Styles column above lists what each pack accepts, each pack’s own page marks its default, and Icons and names covers how a name resolves against a style.

Upstream sources#

Every pack redistributes someone else’s icon font under its own license, and ships that license inside the installed package. Drawing the glyphs in your application is what these licenses are for, but a few carry attribution terms — see THIRD-PARTY-NOTICES.md for the details per pack, or a pack’s own page for its upstream project and license.

Nothing installed yet?#

If you got here from an error message, this is what it was telling you: the base package is a renderer, and it needs a pack before it can draw. Pick one from the grid above and install it as an extra. Anything from the list works with the same code.

pip install "tkinter-icons[bootstrap]"     # Bootstrap Icons
pip install "tkinter-icons[fontawesome]"   # Font Awesome 6 Free
pip install "tkinter-icons[material]"      # Material Design Icons