GeoIcons is a geography icon library: the map shape of every country, territory, and world region as tree-shakeable SVG components for React, Vue, Angular, and vanilla JS. Accessible by default and themed with currentColor, adjustable stroke and fill. Free under GPLv3, commercial license available.
No reviews yetBe the first to leave a review for GeoIcons
Maker
📌
Hey Product Hunt 👋
There are plenty of country outlines out there as raw SVG and PNG files, but they are not developer-friendly. You end up downloading assets, dropping them in a folder, wiring up your own sizing and coloring, and shipping every file whether you use it or not. None of it behaves like the rest of your icon set.
GeoIcons fixes that. Every country, territory, and world region is a 24x24 component that themes with currentColor and takes a stroke width, just like your other icons. Each one is its own import, so you only ship the icons you actually use. No registry, no bundle bloat. React, Vue, Angular, and vanilla all supported from the same set.
It is 422 icons today and still growing, with country subdivisions (states, provinces) and flags planned next.
It's free under GPLv3 for open source, with a straightforward commercial license for closed-source products (verified offline, no tracking). Icons render identically either way.
Would love feedback on the catalog and which regions or representations to add next. Ask me anything!
Report
the currentColor approach is a really thoughtful touch, makes them slot into any design system without fiddling. props for keeping it accessible by default too, that's often an afterthought.
Report
Maker
@serkangzelytiq Thanks so much! That was exactly the goal. Accessibility was also something I wanted to get right from the start rather than bolt on later.
the currentColor approach is a really thoughtful touch, makes them slot into any design system without fiddling. props for keeping it accessible by default too, that's often an afterthought.
@serkangzelytiq Thanks so much! That was exactly the goal. Accessibility was also something I wanted to get right from the start rather than bolt on later.