Mosher Labs
Guide

How to Build a Figma Icon Library for Your Design System

A design system’s icon library isn’t just a folder of icons dropped into a Figma page — it’s a set of components a team can trust to behave consistently. Here’s what that actually requires.

What makes an icon library “production-ready”

Consistent frame size

Every icon sits in the same fixed frame — typically 24×24 — regardless of the source file’s original dimensions, so they align correctly at any shared instance size without individual adjustment.

Real variant structure

Related states of the same icon — like a Black and White color variant — belong in one component set with a variant property, not as separate, disconnected components a designer has to find and match manually. This applies per icon, not across your whole library — see why combining every icon into one variant set backfires for the reasoning.

Predictable naming and layout

Icons arranged in a clean, consistent grid with predictable names are the difference between a library people actually use and one they route around.

How VectaGrid structures the output

Each imported icon becomes two components — Color=Black and Color=White — combined into a single component set with Black pinned as the default variant. Every set is normalized to a 24×24 frame first, then arranged in a clean grid on the current page, so the library is ready to publish without a manual cleanup pass.

FAQ

Common questions

A component is a single reusable element. A component set groups related components under one entry in the Assets panel with variant properties — like Color=Black / Color=White — so a designer swaps variants from one dropdown instead of hunting for a separate, similarly-named layer.

Skip the manual work — VectaGrid does this automatically.

Drop in a folder of SVGs and get a normalized, variant-ready component library in seconds. Free for up to 100 icons.

Install Free on Figma

Questions first? Email support@mosherlabs.dev or see the full VectaGrid page.