Skip to main content
Question

Seeking Automation for Large Icon Library (5,000+ Icons) with Variants in Figma

  • February 9, 2026
  • 1 reply
  • 38 views

yuval_peleg

I am trying to build a structured icon library in Figma using the Streamline icon set (Line, Solid, and Duotone styles). I have about 5,000 unique icons per style, and I’m struggling to automate the import process.

The Context

Originally, my folder structure was:

Style > Category > Sub-category > Icon.svg

Using a script, I restructured the folders to make it easier to create components with variants:

Category > Sub-category > Icon Name > Style=X.svg

(Where "Style=X" is the actual filename, e.g., "Style=Line.svg", "Style=Solid.svg")

The Problem

When I drag the main folder into Figma, it ignores the directory structure entirely and "dumps" all 15,000+ SVGs onto the canvas as flat layers. To make matters worse, because many files share the same name (e.g., "Style=Line.svg"), Figma appends ascending numbers to the names, breaking my naming convention.

I have tried several plugins—both icon-specific and general library managers—but none of them seem capable of taking the three style files for each icon and merging them into a single component with three variants.

The Manual Nightmare

I started doing this manually, but with 5,000 icons, it’s a nightmare. For every single icon, I have to:

  1. Drag the three style files into Figma.

  2. Combine them as variants.

  3. Manually rename the component to a path string (e.g., Category / Sub-category / Icon Name) so the Assets panel organizes them correctly.

My Goal

I want a library organized by Categories and Sub-categories, where each icon is a single component containing three variants (Line, Solid, and Duotone).

Current Folder Structures Available:

  1. Style / Category / Sub-category / Icon.svg

    Example: C:\icons\streamline-sharp-duo-style\Arrows\Big Movement\Arrow_Expand.svg

  2. Category / Sub-category / Icon Name / Style=X.svg

    Example: C:\icons\Arrows\Big Movement\Expand\Style=Line.svg

If anyone has a solution, a plugin I might have missed, or a workflow to automate this process, it would be a lifesaver. I am desperately trying to avoid creating 5,000 components by hand♥

1 reply

noam giraff
  • New Member
  • February 10, 2026

Following up, I’d also appreciate a response on this matter.