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.
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.pngOne 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:validateNaming
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.