SVGPulse
← All guides
Workflow

Preparing icons for a Figma design handoff

An icon handoff should communicate the intended design, not just provide a folder of drawings. Designers and developers need to agree on size, color behavior, naming, and interaction states. A little structure at the asset stage prevents small inconsistencies from spreading through the finished interface.

SVGPulse guides · Updated November 10, 2026

Import an editable source

Use an SVG when the design workflow needs vector shapes. Inspect the imported result rather than assuming that every editor interprets all SVG features identically. Simple paths are easier to move between tools than elaborate filters or unusual effects. Keep the original export alongside the design file so you can compare the result if a shadow, gradient, or clipping boundary looks different after import.

Keep the outer frame predictable

Place icons in a consistent frame even when their visible geometry occupies different amounts of space. This helps align them in buttons, lists, and cards. Distinguish the frame dimensions from the visual size of the artwork. If a symbol needs an optical adjustment, document that exception instead of changing its parent spacing unpredictably. Test the frame beside real text and with the font used by the project.

Organize by function

Use names that explain the symbol's meaning or intended action. A hierarchy such as navigation/arrow-right is easier to search than a sequence of unnamed vectors. Do not duplicate slightly different copies across every screen unless they represent intentional variants. Keep a small collection of approved sizes and states so the design file remains usable as the product grows.

Specify color behavior

Tell the developer whether the icon should inherit the component's text color, keep a fixed brand color, or use a two-tone treatment. A screenshot cannot communicate this reliably. Record state changes such as active, selected, disabled, and error. If a button changes background on hover, show how its icon remains legible in that state. Keep the distinction between decoration and meaningful status visible in the handoff.

Check the implemented component

The handoff is not complete until the asset works in the real layout. Compare the browser result at normal zoom, including small screens and long labels. Check for clipping, unexpected stroke scaling, and differences in how effects render. When an issue appears, identify whether it comes from the export, the import, or the component's CSS. Update the shared source so the next screen does not repeat the same mistake.

Create a reference component before importing everything

Start with one representative icon and place it in a component that reflects the intended interface. Include a text label and the background where the icon will normally appear. Set the outer dimensions deliberately, then compare the visible drawing with another icon from the same family. A consistent frame makes layout easier, but it does not guarantee equal visual weight. Check internal padding and alignment before turning a large batch into components. Once the reference looks right, use it to review the rest of the set. Keep the original imported artwork available while testing any geometry edits so that you can compare or revert the change. This is particularly useful when an icon contains masks, gradients, or multiple paths whose relationships are easy to disturb while simplifying layers for a cleaner component tree.

Describe interaction states alongside the design

A static default icon does not explain what happens on hover, keyboard focus, selection, loading, or failure. Show the states that matter for the component and write down which parts change. A favorite control might switch between outlined and filled artwork while also exposing a selected state in code. A download button might temporarily replace its arrow with a progress indicator. Explain whether the icon inherits the label color or uses fixed values, and identify any brand marks that require separate treatment. Include narrow layouts and realistic text lengths in the design file. These examples give developers a usable behavior reference instead of forcing them to infer interaction rules from one attractive frame. Keep the specification focused on outcomes: what the person sees, what action the control performs, and what information communicates the current state.

Review the implemented result with the same reference

After implementation, compare the rendered component with the approved reference at normal browser zoom. Look at visible icon size, line weight, text alignment, and spacing. A design frame and a CSS box can have matching dimensions while the artwork appears different because of export padding or an altered viewBox. Check the public page rather than only a development screenshot, and try the interaction with keyboard and touch input. If a mismatch appears, identify whether it comes from the asset, layout, font metrics, or component styles before changing multiple settings. Update the design reference or implementation notes when a deliberate adjustment is agreed. A handoff is most useful when it remains a shared source of intent throughout implementation, not a one-time export that becomes disconnected from the actual product as soon as code changes.

Continue reading: Choosing arrows for navigation, links, and carousels

Try it with an icon

Browse a collection, customize an icon in the studio, and review the result in your actual project.

Browse icon collections →