Use Interactive Components to create conditional prototyping flows?

TL;DR: Can I realise in Figma that, upon clicking radio button (changing component state) to change the ‘Navigate to’ screen on a button, i.e. by changing the button or it’s state, to let the prototype go to a different screen (i.e. continual prototyping logic)?


I’m working on a project where I’m digitising paper documents to an online platform. It’s basically creating a GoogleForms/Typeform questionnaire (quite large, 150+ fields), with an administration dashboard around it to review data. My issue herein is creating conditional prototyping flows. I would like to realise something in Figma that allows me to skip certain screens depending on component states (i.e. radio button states (yes/no or possibly checkboxes).

Option 1: Duplicating screens with changing Continue buttons If I want to realise that, if ‘question 1 = A, then continue to screen 2, else skip and continue with 3’, then I see no other way than to duplicate screen 3. This way I can do 1-2-3-X or 1-3-X. And with each additional piece of conditional logic, it gets more complex with more duplicates.

Option 2: Make Component X change state of component Y (but how?) An alternative, for which I absolutely have no idea how to accomplish, is by having components change other component states. For example, clicking RadioButton → Set ‘ContinueButton’ state to ‘NavToScreen3’. But I’m pretty sure this is not an option.

At this point I’m considering offering Google Forms or something similar that features this conditional logic as a way to visualise the proces and designing a few pages to visualise the look & feel of the form separately. That, unless someone can suggest some ways how to create conditional prototyping logic. This would make Figma so incredible.

5 Likes

I’m using the beta now and can confirm there’s no easy way to do this. I really like your “Option 2” solution. Like the “Change to” interaction but instead of changing this component, change that component (from one variant to another).

Even better would be some sense of variables/memory, so that even if an interactive component is “destroyed” when it gets instantiated again it remembers which variant it was on before.

6 Likes

Would be so great, indeed, if one component could alter another. Sadly yet it doesn’t. I’ve switched for this purpose to questionnaire web apps. Hopefully we’ll see some updates in the future. :slight_smile:

This is a no-brainer, no idea why this hasn’t been implemented already. Instead I’m fudging conditional logic creating multiple screens on the same screen. Hopefully someone will write a plug-in that will enable this. Simply being able to store a variable and be able to modify this with basic interactions would be amazing. Users could display this variable as a text string in a field or modify/increment/combine this stored variable for basic math functions. Even a simple boolean conditional logic - true or false should be possible at a minimum.

1 Like

This one is much requested from my side!