Toolkits that render their own UI need icons, and the good free sets ship as
loose SVG files with no Go packaging. go-icons closes that gap: each repo
embeds a curated subset of one free, MIT-licensed icon set and serves it by name.
The file-type packs (seti, material) key on a file name —
Icon(filename) matches by base name, then extension, then a generic-document
fallback, and Folder() returns the folder glyph. The general-purpose pack
(iconoir) keys on the icon's own name — Icon(name), with
Has and Names to enumerate the set.
Simple Icons brand logos (CC0-1.0)
The Simple Icons brand-logo set embedded as SVG and keyed by the icon's own name โ Icon("reddit") returns the Reddit glyph, Icon returns "" for an unknown name, and Has and Names enumerate the set. Unlike the file-type sets beside it this is keyed by brand rather than by file name, and it is CC0 rather than MIT. Pure data โ it returns SVG strings and draws nothing.
Seti UI file-type icons (Jesse Weed, MIT)
A curated subset of the Seti UI icon set embedded as SVG documents keyed by file name. Icon(filename) matches by exact base name first (go.mod, LICENSE, .gitignore), then by extension, then falls back to a generic document; Folder() returns the folder glyph. Pure data โ it returns SVG strings and draws nothing.
Material Icon Theme file-type icons (Material Extensions, MIT)
A curated subset of the Material Icon Theme embedded as SVG documents keyed by file name. Same small contract as seti โ Icon(filename) resolves by base name then extension with a generic-document fallback, Folder() returns the folder glyph. Pure data โ it returns SVG strings and draws nothing.
Iconoir general-purpose UI icons (Luca Burgio, MIT)
The Iconoir line icon set embedded as SVG documents keyed by the icon's own name (zoom-in, folder, undo, settings, โฆ). Icon(name) returns the glyph or an empty string when unknown; Has and Names enumerate the set. Icons stroke in currentColor, so the renderer's ink recolours them. Pure data โ it returns SVG strings and draws nothing.
vscode-icons file-type icons (Roberto Huertas, MIT)
A curated subset of the vscode-icons set embedded as SVG documents keyed by file name. Same small contract as seti โ Icon(filename) resolves by base name then extension with a generic-document fallback, Folder() returns the folder glyph. Every embedded icon is verified to rasterise under go-gfx/gfx; icons using unsupported SVG features are omitted. Pure data โ it returns SVG strings and draws nothing.
Devicon language & tool logos (konpa, MIT)
Colourful programming-language and tool logos from Devicon, embedded as SVG. Unlike a file-type theme, Icon(filename) maps a source file's extension to the logo of the language it is written in (.go โ Go, .py โ Python, .tex โ LaTeX โฆ); unknown files and Folder() fall back to two minimal neutral glyphs. Every logo is verified to rasterise under go-gfx/gfx. Pure data โ it returns SVG strings and draws nothing.
Twemoji emoji graphics (CC-BY-4.0) and markdown-it-emoji shortcodes (MIT)
The 4,009 Twemoji 17.0.3 emoji as embedded SVG, keyed by the emoji itself โ SVG("๐ฉโ๐ป") returns the document however FE0F is placed โ plus the 1,903 :shortcode: names of markdown-it-emoji, Find and Cut to locate emoji in text. 10.1 MB of SVG embedded as 2.1 MB, read lazily, nothing parsed before first use. The graphics are CC-BY-4.0, not MIT: attribution is required. Pure data โ it returns SVG strings and draws nothing.