On this page
Quick steps
Select the parent main component
Select the main component (or component set) that contains the nested instance, such as a button that contains an icon instance.
Open Expose properties from
In the right sidebar, open the Properties section and find Expose properties from.
Choose Nested instances
Select Nested instances and tick the instances whose properties should show on the parent.
Check an instance
Select an instance of the parent. The nested instance's properties now appear below the parent's own properties in the right sidebar.
What a nested component is
A nested component is an instance placed inside another main component. A button that contains an icon instance, or a card that contains a button, are both nested setups. Edit the icon's main component and every button picks up the change. That's the reason to nest: one fix travels through the whole system.
Nested instance properties not showing
- Nested instances aren't exposed. Turn it on from Properties → Expose properties from → Nested instances, as in the steps above.
- The option isn't there. Nested instances only appears if the component already has nested instances that have their own properties, or an instance that's already exposed. A plain nested icon with no properties has nothing to expose. Add properties to the nested component first.
- A boolean hides the nested instance. If a boolean property hides an exposed nested instance, that instance's properties are hidden in the sidebar too. Toggle the boolean on to see them.
- The library isn't updated. If the nested component comes from a library, the new properties arrive only after the library is published and you accept the update. See Figma library not showing.
Components can't contain instances of themselves
You see this message when you drop an instance into a main component and Figma refuses it. Placing a button's instance inside the button's own main is the obvious case. The confusing case is indirect: if component A already contains B, putting A inside B would make a loop. Figma's help center doesn't document the message, so treat the loop as the likely explanation rather than a confirmed one.
To find the loop, open the component you're dropping in and check its layers for an instance of the component you're editing, including one nested deeper down. Remove or swap that instance, and the drop will work.
Nested instance is swapped with parent instance
This one shows up in prototypes as "Couldn't play interaction: nested instance is swapped with parent instance". Figma doesn't document it, but a forum thread with over 23,000 views collected these fixes from people who hit it:
- Make sure every variant in the set has the same nested layer structure. One variant with an extra group or a duplicate instance can trigger it.
- Look for an instance of the component inside one of its own variants. Detach it, then publish the library again.
- If one variant keeps causing it, delete that variant and rebuild it from a working one.
Overrides you can't make on a nested instance
Some edits are never allowed on an instance, however deep it is: layer order, position, constraints and text layer bounds. That's why you can't drag an icon to a new spot inside a button instance or resize a text box inside a card. Make those changes on the main component, which you can reach with Go to main component. If the main component sits in a library, hover the library name in the right sidebar and choose Go to main component in library.
| Action | Mac | Windows |
|---|---|---|
| Go to main component | Mac⌃⌥⌘K | WindowsCtrlAltShiftK |
| Detach instance | Mac⌥⌘B | WindowsCtrlAltB |
| Quick insert (swap an instance) | Mac⇧I | WindowsShiftI |
Detaching to get around these limits breaks the link for good. A nested instance can't be detached on its own either: you'd have to detach the parent first. The detach instance guide covers that. If you need a flexible area where instances can hold different content, a slot may fit better than a nested instance; see Figma slots.
Check what nesting does to the combinations
Every exposed nested property multiplies how many ways the parent can look. Instancer, our plugin, includes exposed nested instance properties when it builds a combination grid, with path-based names like Icon/variant so they don't clash with the parent's own properties. Keep exposed instances at the first level: deeply nested instances may not be picked up.
If you're setting up the parent from scratch, how to create a component in Figma covers the basics.
Ranked listThe best Figma plugins for design systems in 2026Frequently asked questions
How do I expose nested instances in Figma?
Select the main component, open Properties, and under Expose properties from choose Nested instances. Pick the instances to expose. Their properties then show on the parent instance.
Why does Figma say components can't contain instances of themselves?
Figma doesn't document the message. The likely cause is a loop: the component you're dropping in already contains, somewhere inside it, an instance of the component you're editing. Remove or swap the instance that closes the loop.
Why can't I move or resize a layer inside an instance?
Figma doesn't allow position, layer order, constraints or text layer bounds overrides on instances. Go to the main component with ⌃⌥⌘K / Ctrl+Alt+Shift+K and make the change there.
Can I detach a nested instance on its own?
No. Detach the parent instance first, then the nested instance inside it can be detached.
More in Components & variants
- How to Generate All Component Variants in FigmaFigma shows only the variants you draw. Here's how to lay out every combination of variant, boolean and nested props as a matrix, by hand or with Instancer.
- How to Make a Skeleton Loader in FigmaHow to design a skeleton loader in Figma: grey blocks with auto layout, a component with variants, a Smart Animate shimmer, and a plugin that converts frames.
- How to Add Properties to a Figma ComponentAdd boolean, text, instance swap, variant and slot properties to a Figma component, link them to layers, and fix 'not used within component' warnings.
- How to Detach an Instance in Figma (and Remove a Component)Detach a Figma instance with ⌥⌘B or Ctrl+Alt+B. Why Detach is missing, how to detach a nested instance, and how to turn a main component back into a frame.
- How to Create a Component in FigmaCreate a Figma component with ⌥⌘K or Ctrl+Alt+K, the Create component button or a right-click. Plus bulk creation, instances and what the purple icon means.
- How to Swap an Instance in FigmaSwap a Figma instance from the Instance menu, with Quick insert (Shift+I) or by Alt-dragging a component onto it. Plus go to main, reset and restore shortcuts.
- How to Add a Slot to a Figma ComponentAdd a slot to a Figma component with Convert to slot (⌘⇧S or Ctrl+Shift+S) or Wrap in new slot. Settings, limits, and when to use slots vs instance swap.
- How to Export Figma Variables to JSON (and CSS, Tailwind or CSV)Export Figma variables to JSON natively, convert them to CSS or Tailwind with Style Dictionary, and move variables between files with Variable Master.
- How to Make Design Specs in FigmaWhat a Figma design spec should include, how to build a component spec template by hand, what Dev Mode already covers, and how to generate specs with Autospec.
- How to Add a Hover Effect in FigmaMake Default and Hover variants, connect them with While hovering, Change to and Smart animate. Plus why Figma hover states stick or don't fire, and the fix.
- Why Is My Figma Library Not Showing Up?Figma library or components not showing? Add the library to the file, publish and accept updates, and check the Invalid list. Every cause, most common first.
