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:
-
Drag the three style files into Figma.
-
Combine them as variants.
-
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:
-
Style / Category / Sub-category / Icon.svgExample: C:\icons\streamline-sharp-duo-style\Arrows\Big Movement\Arrow_Expand.svg
-
Category / Sub-category / Icon Name / Style=X.svgExample: 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♥
