How to Make Icons in Figma: Grid Setup, Strokes, and Clean SVG Export
Figma is a genuinely good icon tool once you set it up right. The 24px grid workflow, the stroke decisions that matter, the export settings that produce clean SVG — and the point where a dedicated tool wins.
Icora Team
Design
Figma has quietly become the tool most working designers draw icons in — not because it is the best vector editor ever made, but because it is where the rest of the design already lives. And it is genuinely capable at icon work, provided you set it up deliberately. This is the workflow that produces consistent, developer-friendly icons in Figma, plus an honest look at where the tool runs out of road.
Step 1: The Frame and the Grid
Icons are drawn on a fixed artboard, and for interface work the standard is a 24×24 frame (Material and most modern libraries) or 20×20 (compact UIs). Create the frame, then add a layout grid: a 1px pixel grid for snapping, plus keylines — the guide shapes that keep different icons optically aligned. A simple keyline set is a 20px square, an 18px circle, and 20×16 / 16×20 rectangles, all centered with a 2px margin. Draw a component from these once and paste it into every icon frame as a locked, hidden-on-export layer.
Pro Tip
Turn on Snap to Pixel Grid before drawing anything. Half-pixel coordinates are the number one cause of icons that look blurry at exactly the size users see them.
Step 2: Draw with Shapes First, Pen Second
Most icons are boolean combinations of primitives — rectangles, circles, and lines — with the pen tool reserved for the few genuinely organic curves. Built from primitives, your geometry stays editable and your corner radii stay consistent. Figma's boolean operations (union, subtract, intersect, exclude) are non-destructive, so you can adjust the underlying shapes long after combining them.
Decide your style rules before icon number one, not during icon number nine: stroke weight, corner radius, cap style, fill policy. These are the seven consistency properties covered in our consistent icon set guide, and they matter more than any individual icon's cleverness.
Step 3: The Stroke Decision
Figma lets you keep strokes as live strokes or convert them to filled outlines (Outline Stroke). Keep them live while designing — editable weight is the whole point. The decision arrives at export time. Live strokes export as SVG stroke attributes, which scale their weight proportionally and can be re-themed with one CSS rule. Outlined strokes export as filled paths — fixed geometry, no weight changes possible, but immune to the scaling quirks some renderers have with strokes.
- Keep live strokes if the icons ship to web developers:
stroke="currentColor"theming and weight variants stay possible. - Outline before export for contexts that mangle strokes: some icon pipelines, laser cutting, embroidery digitizing, and a few older asset systems.
- Never mix outlined and live-stroke icons in the same shipped set — they respond differently to scaling and theming, and the inconsistency surfaces later.
Step 4: Components and Variants
Make each icon a component, and use variants for the dimensions your system needs: size (16/20/24), weight (regular/bold), and style (outline/filled). Name them with a searchable convention — icon/arrow-right, not Vector 47. This is also what makes handoff work: developers can find, inspect, and export any icon without asking you.
Step 5: Exporting SVG That Developers Won't Curse At
Figma's SVG export is decent but not clean. Expect wrapper groups, clip paths from the frame, occasionally odd fill-rule choices, and ids you did not ask for. Three settings help: export from the component (not a screenshot of it), enable "Outline text" if any text survived into the icon, and disable "Include id attribute." Then run every export through an optimizer — the cleanup pass in our SVG optimization guide turns Figma's output into the terse markup that belongs in a codebase, and the componentization step in our design-to-code piece takes it the rest of the way.
Warning
Check exported SVGs for hardcoded black fills (#000000). If the icon should inherit the UI's text color, swap fills and strokes to currentColor before shipping — otherwise dark mode arrives and every icon disappears.
Where Figma Runs Out of Road
An honest boundary line, since we build a competing tool for part of this: Figma is excellent for designing a curated set by hand. It has no answer for volume consistency — producing forty icons in one locked style is forty manual drawing sessions. It does not trace: a client PNG or a sketch cannot become paths inside Figma. And animation has to happen somewhere else entirely. Those three jobs are what dedicated generators and tracers are for: generate or trace the draft set in a tool like Icora, do the node-level cleanup there, then bring finished SVGs into Figma as components — the two tools compose rather than compete.
Need forty icons in one style rather than four? Generate the set at icora.io/create, refine it in the Studio, export clean SVGs, and drop them into your Figma library as components.
Try Icora FreeFrequently Asked Questions
What size should icons be in Figma?
Draw on a 24×24 pixel frame for standard interface icons (20×20 for compact UIs), with roughly a 2px safety margin. Build size variants as components rather than freely scaling instances, so stroke weights stay optically correct.
Should I outline strokes in Figma before exporting icons?
Keep strokes live while designing. At export, keep them live if developers will theme and scale the icons with CSS; outline them only for pipelines that mishandle strokes, like embroidery or certain asset systems. Never ship a mix.
Why do my Figma SVG exports look messy?
Figma wraps exports in groups and clip paths and sometimes adds ids and odd fill rules. Export from the component with "Include id attribute" off, then run the file through an SVG optimizer like SVGO to strip the leftovers.
Can Figma convert a PNG image to a vector icon?
No — Figma has no image tracing. To turn a PNG or sketch into editable paths you need a tracing tool (Illustrator Image Trace, Inkscape, or Icora), after which the resulting SVG pastes into Figma as normal vector layers.
Is Figma good for designing icons?
Yes, for hand-drawing curated sets it is one of the best options — boolean tools, components, and variants map well to icon systems. Its limits are volume (every icon is manual), tracing (none), and animation (none).
Found this helpful? Share it!
Ready to Create Stunning Icons?
Put these principles into practice with Icora's AI-powered icon generator, professional studio tools, and developer-ready export.
Start Creating Free