Unified SVG Icon Packages for Typst?

Hi Typst community :wave:

Many of us use icons in our documents, and Typst Universe already hosts a variety of icon packages — for example:

These fall into two main categories:

  • Font-based: require fonts installed locally (version mismatches can be an issue)
  • SVG-based: embed data directly in the package (self-contained)

I’m particularly interested in SVG-based icon packages because they’re dependency-free and easier to manage. But right now, each package has its own structure, API, and build process — which makes switching between icon sets or maintaining them a bit messy.

What if we had unified SVG icon packages?

By “unified,” I mean:

  • Consistent function/API
  • Shared build tooling and directory structure
  • Easy to generate new icon sets from existing sources

This is technically feasible — for example, using the iconify/icon-sets project as a source. I’ve built a PoC script, iconity, that converts Iconify’s JSON sets into Typst-ready SVG files.

But here’s the challenge:

The Iconify collection is huge — it has hundreds of icon sets, and some icon sets generate multi-megabyte SVG data. Typst Universe likely isn’t intended to host that volume or scale.

So I’m wondering, how should large or numerous icon packages be distributed? Or should I just offer a script and let users generate the SVG icon data?

3 Likes