Skip to main content
Stephen_Moy1
New Member
October 5, 2023
Question

On click toggle boolean variable to show/hide elements on page

  • October 5, 2023
  • 7 replies
  • 33652 views

Basically I have a component which is always in the background of the design. When a toggle link is clicked I want to hide this in the prototype - and display it when the toggle clicked again. So basically the element shows/hides when another, separate element is clicked.

I’ve setup a local boolean variable called “Grid Visible” which has the values true/false.

I’ve then ensured the background component has this applied to it in the Layers panel by right clicking the eye icons and applying “Grid Visible” to it.

If I go back to the Local Variables panels and click the “Value” so it slides between true/false the visibility of the component disappears and reappears - so that’s all working!

But when I try to Prototype I can get the link (which is in a totally separate component) to work with “On Click” and then “Set Variable” or “Conditional”. This is what I currently have (below). In my head this is going On Click if the value = false, set it to false. If not, set it to true but nothing changes in the prototype - am I missing something?

Screenshot 2023-10-05 at 20.38.42

“True” is the default value. So a click would set it to false (to hide the element). Then another should return it to it’s default state.

As I mentioned, if the “Local Variables” panel, toggling the boolean variable does show/hide the elements. So I assume that’s all setup correctly. It’s just the logic of the link/click action.

Hope someone can help and tell me where I’m going wrong here!

This topic has been closed for replies.

7 replies

uxcal
New Participant
October 6, 2023

Hi Stephen,
I’ve made an example exactly as you have described, and it works correctly for me (toggle show and hide on the square by clicking the button - see screenshot below). Are you able to share your file so we may have a look?

Stephen_Moy1
New Member
October 8, 2023

Thanks for the reply @uxcal! I thought I had it right…

I recreated and it worked, so I think the problem was I may’ve overcomplicated it by having all the components and rules in a ‘design system’ file that were used in another file. Basically the ‘toggle’ is in the header so I had a component with that. Then I set the visibility on the grid (item I wanted to show/hide) in the same file. But I guess when they’re pulled into the file they don’t communicate?

So anyways, setting up in the file seemed to work! 🙂

One odd thing I noticed was when I duplicated an Artboard with this working. The component with the interaction had boolean as “missing” and needed to be setup again. No biggie but thought it was worth mentioning!

Screenshot 2023-10-08 at 19.34.53

Matt_Meeks
Active Member
January 16, 2024

@Stephen_Moy1 @uxcal I need to be able to do this, too, but I’m not able to do this:

I’ve then ensured the background component has this applied to it in the Layers panel by right clicking the eye icons and applying “Grid Visible” to it.

I don’t see a way to apply any variable to any eye icons. What am I missing?

February 3, 2024

Is there a tutorial on this?? I can’t seem to find anything. I’m trying to make a DnD map where I can click on an icon on the map key and then have other icons on the map appear.

Stephen_Moy1
New Member
May 25, 2024

Hi @Solika_O_Neill. There are probably other tuturials available on YouTube but I used this one as a base for mine. Hope it helps or sends you down a YouTube rabbit hole of other linked tutorials that might be closer to what you need 🙂

Amy_Hitt
New Member
June 13, 2024

In case anyone else has this question, it’s explained in this video: https://youtu.be/VEuwKJAz7Jg?feature=shared&t=410

madhavan-bct
New Member
January 16, 2025

is there any way to reusable script using many place in the same figma file/layer?