Hello everyone,
I’ve created icons, all vector layers with the same name, and every icon has a variant of sizes - small (16px) medium (24)and large (32). They also have round/sharp Boolean property.
I’ve created buttons, also with size variants with matching names and sizes. There’s also variant for only label, only icon, left icon and right icon.
There’s also instance swap for every icon size.
I also have the icon as nested instance.
So I take an instance of the button and I change its size, then I change the icon - lets say from “search” to “plus” for example - but if I want to change the size of the button, the instance swap return to its default icon instance.
What should I do, or what did I do wrong?
Did you ever figure this out? I read the attached post and looked at the figma file and can’t make heads or tails of it. I’ve set “hug” on everything I can think of and that does nothing. Here is my setup and sequence of steps.

The best I can figure is to clone and detach the icon set and create a new icon set that’s resized to start with. Then I’m swapping for icons of the same size and it works. But there’s gotta be a better way. Any help would be appreciated.
I have the same issue.
Instance swap + using a single set of icon component does not work.
I have tried every single possible combination and nothing stops it from resetting.
Same here
Hey everyone — really appreciate you all taking the time to weigh in with your experiences in this thread.
From what I’m seeing here, it sounds like the common issue is that changing the size of a button causes the swapped icon instance to reset to its original state. I did some testing and this appears to be tied to a known limitation: When an icon is swapped to a different size, Figma Design treats it as a different variant, and overrides tied to one variant don’t always carry over to another.
One solution that’s helped in similar cases is to build a single icon variant property across all sizes. This allows Figma Design to better preserve instance swaps when size changes occur, since it can stay within the same variant structure. For a refresher on this, have a look at this Figma Learn article: Create and use variants → Variant properties and values.
I realize this may not be the resolution you were hoping for, but I hope it helps acknowledge and clarify a bit more on the “why” behind the behavior. If you’re still running into this and want a deeper look, our Product Support team would be happy to take a look into specifics. When reaching out, it’s helpful to include:
- the link to this Forum thread for context
- a full-size screen recording of the issue (if possible)
- a link to the affected file
- make sure support-share@figma.com has edit access.
Let me know how it’s going — and rest assured, we're sharing your feedback with our product and engineering teams to help guide future improvements. If you have any follow-up questions, want to add more detail, or if I’ve misunderstood anything you’re describing, don’t hesitate to let me know — I’m happy to keep digging.
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.