Developer guidesThe manifest

The manifest

Reference for icons/manifest.json in an icon pack: slug, label, icon names, keywords, license, author and source.

{
  "version": 1,
  "slug": "starter-shapes",
  "label": "Starter Shapes",
  "license": "GPL-3.0-or-later",
  "author": "Your name",
  "source": "https://example.com/my-icon-pack",
  "icons": [
    { "file": "circle.svg", "name": "circle", "label": "Circle", "keywords": ["round", "dot"] }
  ]
}
body
versioninteger
Required

The manifest schema, not your pack's version. Leave it at 1.

body
slugstring

The collection's slug. Templates reference icons as slug/name. Without it, the folder's name is used.

body
labelstring

The collection's visible name.

body
iconsarray
Required

One entry per icon with file, name, label and optional keywords.

body
license, author, sourcestring

Shown under the collection on the Packs screen. Free text, never acted on.

Icon names

name is the reference, used verbatim. It must match:

^[a-z0-9](?:[a-z0-9_-]*[a-z0-9])?$

An invalid name is skipped, never rewritten, and reported on the Packs screen.

A template points at an icon as collection-slug/name. Changing a name later breaks every page using it.

The manifest describes, it does not restrict

An SVG without an entry still arrives, named after its file. Only its label is then derived from the file name.