Skip to content
IconMind

Documentation

Contributing

Three ways to help. The first takes about a minute.

Request an icon

No design skills needed, and it is the most useful thing we get — a request is real demand, where a roadmap is a guess.

Open an icon request →

Tell us the concept, what it means in one sentence, and where you would use it. Requests with a concrete use case almost always make better icons than ones that just complete a list.

Submit an icon

Icons are written, not drawn: each one is a TypeScript declaration in scripts/draw/icons/, built from a small vocabulary of forms (row, col, poly, arc, disc, frame) and shared bodies (ring, machine, page, shield…). The build compiles it into all six cells, and the constructors throw on anything the design guidelines forbid — so the fast feedback loop is the compiler, not a review comment.

git clone https://github.com/iconmind/iconmind.git
cd iconmind && pnpm install

# add your icon to a batch file in scripts/draw/icons/, then:
pnpm icons:build        # compiles every declaration into its six SVG cells
pnpm icons:validate     # 30+ geometry rules, under 5 seconds
pnpm icons:duplicates   # is it a twin of something we have?

A contact sheet renders any subset at 88, 24 and 16px, which is how compositions are actually judged:

ONLY="my-icon its-siblings" npx tsx scripts/review/sheet.mts outline-regular out.png

One icon per pull request, or one family. Branch icon/<slug>, commits in Conventional Commits. No changeset needed — releases are automatic and step the patch version on merge.

Contribute code

pnpm workspace with Turborepo. packages/icons is the source of truth; every framework package — React, Vue, Svelte, Solid, Preact, React Native, Astro, Flutter, the Blade SVGs — is generated from it by one generator, which is why component files are build output, not source. Fix a drawing once and ten packages agree.

pnpm typecheck && pnpm test && pnpm icons:validate

Naming

Slugs are public API — renaming one is a breaking change, so it is worth an extra minute up front. Use the real term from the domain: reranker, not sort-smart. No brand names. No abbreviations unless the industry already uses them (llm, api, mcp).

Originality

Icons must be your own work. Shared industry metaphors — a cylinder for a database, a shield for security — are common language and free to use. Copying the distinctive shapes of another set is not. If a similarity is reported we redraw first and discuss afterwards.

Language

Everything a second person might read is in English: metadata, code comments, validator messages, issue templates.

License

By contributing you agree your work is released under the MIT License. There is no CLA.