Suggestion: Show-hide Interaction

PROBLEM: There is no way to create an accordion or collapsible menu without endless duplicate pages

FIX: If you could show/hide objects, groups, components, you could easily create a collapsible section, which if used within an auto layout with fill container would resize nicely.

There are so many uses for this kind of behaviour. Whole components (like a left nav) could be setup with default behaviour that would just work where they were placed, without the need for complex prototyping.


Not 100% sure but interactive components might help here. Abstracts a lot of the prototyping from the page design to the components themselves.

Good suggestion @AndrewSpencer I tried it without success. The sections maintain their initial layout with respect to the thing above or below them. It could just be a bug with variants at this point because it behaves correctly in the design view. It just goes wonky in the prototyping view.

Interactive components is going to support this, but doesn’t currently: Support Auto Layout in Interactive Components - #10 by nikolasklein

1 Like

This would be so helpful. Without an ability on “Click → Show/Hide X” I have to create many more frames and interactions which feels unnecessary. Is something like this planned?


I would also love to see a “-> Show/Hide X” interaction. It would be perfect for things, like tooltips, that need to show on hover (for which an overlay is overkill and which also can’t take advantage of a component text property) or (as noted above) for showing/hiding content in a collapsible panel or accordion frame without requiring separate variants for the “closed” and “open” options.

1 Like

Is there any plan on adding this? I’d even settle for allowing a boolean variable for visibility if adding show/hide in the interactions is going to take longer. This seems like a feature that would be easy to implement relevant to some of the other features released recently for Figma, but it would have a huge impact for users.

Fixing variant bugs would solve this.