Bird
Raised Fist0
Figmabi_tool~15 mins

Variables in prototypes in Figma - Real Business Scenario

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Scenario Mode
šŸ‘¤ Your Role: You are a UX designer working on an interactive sales dashboard prototype in Figma.
šŸ“‹ Request: Your manager wants you to create a prototype that dynamically shows different sales regions based on user selection using variables.
šŸ“Š Data: You have sales data for four regions: North, South, East, and West. Each region has monthly sales figures.
šŸŽÆ Deliverable: Create a Figma prototype using variables that lets users select a region from a dropdown and see the corresponding monthly sales chart update dynamically.
Progress0 / 6 steps
Sample Data
MonthNorthSouthEastWest
Jan120090011001000
Feb130095011501050
Mar1250100012001100
Apr1400105012501150
May1500110013001200
Jun1600115013501250
1
Step 1: Create a dropdown component in Figma with options: North, South, East, West.
Use Figma's component and variant features to build the dropdown with these four options.
Expected Result
A dropdown menu that lets users pick one of the four regions.
2
Step 2: Define a variable named 'SelectedRegion' to store the user's dropdown choice.
In Figma's prototype panel, create a variable 'SelectedRegion' of type 'Text'.
Expected Result
A variable ready to hold the selected region name.
3
Step 3: Set the dropdown's onChange interaction to update 'SelectedRegion' with the chosen region.
Add an interaction: On dropdown change -> Set variable 'SelectedRegion' to dropdown value.
Expected Result
When user picks a region, 'SelectedRegion' updates accordingly.
4
Step 4: Create four frames, each showing the monthly sales chart for one region using the sample data.
Design bar charts or line charts for North, South, East, and West sales data separately.
Expected Result
Four distinct charts, each representing one region's monthly sales.
5
Step 5: Use Figma's conditional visibility feature to show only the chart matching 'SelectedRegion'.
Set each chart frame's visibility condition: visible if 'SelectedRegion' equals that region's name.
Expected Result
Only the chart for the selected region is visible in the prototype.
6
Step 6: Link the dropdown and charts in prototype mode to test dynamic updates.
Run prototype, select different regions from dropdown, observe chart changes.
Expected Result
Chart updates instantly to show sales data for the chosen region.
Final Result
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ Select Region: [ North ā–¼ ]     │
ā”œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¤
│ Month │ Sales                 │
│ Jan   │ ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ 1200       │
│ Feb   │ ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ 1300      │
│ Mar   │ ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–‰ 1250      │
│ Apr   │ ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ 1400     │
│ May   │ ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ 1500    │
│ Jun   │ ā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆā–ˆ 1600   │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
Bonus Challenge

Add a second variable to let users select the year (e.g., 2023 or 2024) and update the sales chart accordingly.

Show Hint
Create a 'SelectedYear' variable and duplicate sales data frames for each year. Use conditional visibility with both 'SelectedRegion' and 'SelectedYear'.

Practice

(1/5)
1. What is the main purpose of using variables in Figma prototypes?
easy
A. To store information that makes prototypes interactive
B. To change the color of shapes automatically
C. To export images faster
D. To create new pages in the file

Solution

  1. Step 1: Understand what variables do in prototypes

    Variables hold data like numbers or text to change prototype behavior dynamically.
  2. Step 2: Identify the correct purpose

    Among the options, only storing information for interactivity matches variables' role.
  3. Final Answer:

    To store information that makes prototypes interactive -> Option A
  4. Quick Check:

    Variables = store info for interactivity [OK]
Hint: Variables store data to make prototypes respond [OK]
Common Mistakes:
  • Thinking variables change colors automatically
  • Confusing variables with exporting features
  • Assuming variables create new pages
2. Which of the following is the correct syntax to set a variable named score to 10 in a Figma prototype?
easy
A. Set(score, 10)
B. Set(score = 10)
C. Set("score", 10)
D. Set('score' = 10)

Solution

  1. Step 1: Recall the syntax for setting variables

    Variables require the name as a string in quotes and the value separated by a comma.
  2. Step 2: Compare options

    Only Set("score", 10) uses quotes around the variable name and a comma to separate name and value.
  3. Final Answer:

    Set("score", 10) -> Option C
  4. Quick Check:

    Set("name", value) syntax [OK]
Hint: Variable names need quotes in Set() function [OK]
Common Mistakes:
  • Omitting quotes around variable name
  • Using equals sign instead of comma
  • Using single quotes incorrectly
3. Given the variable count is set to 3, what will be displayed if the text element contains: You clicked {{count}} times?
medium
A. You clicked 0 times
B. You clicked {{count}} times
C. You clicked times 3
D. You clicked 3 times

Solution

  1. Step 1: Understand variable usage in text

    The syntax {{count}} replaces with the current value of the variable count.
  2. Step 2: Substitute the value

    Since count = 3, the text becomes "You clicked 3 times".
  3. Final Answer:

    You clicked 3 times -> Option D
  4. Quick Check:

    {{count}} = 3 substitution [OK]
Hint: {{variable}} shows current variable value in text [OK]
Common Mistakes:
  • Leaving {{count}} as is without substitution
  • Mixing order of words
  • Assuming variable is zero if not set
4. You wrote Set(count 5) to set a variable but it doesn't work. What is the error?
medium
A. Missing comma between variable name and value
B. Variable name should not be in quotes
C. Value must be a string, not a number
D. Set function cannot set numbers

Solution

  1. Step 1: Check the Set() function syntax

    Set() requires two arguments separated by a comma: name and value.
  2. Step 2: Identify the missing comma

    The code misses the comma between count and 5, causing syntax error.
  3. Final Answer:

    Missing comma between variable name and value -> Option A
  4. Quick Check:

    Set(name, value) needs comma [OK]
Hint: Remember comma separates name and value in Set() [OK]
Common Mistakes:
  • Forgetting the comma
  • Using wrong quotes around variable name
  • Thinking numbers can't be set
5. You want to create a prototype that counts how many times a button is clicked. Which sequence correctly updates and shows the count using variables?
hard
A. Set("count", 1) on start; on click: Set("count", 1); display text: "Clicked {{count}} times"
B. Set("count", 0) on start; on click: Set("count", {{count}} + 1); display text: "Clicked {{count}} times"
C. Set(count, 0) on start; on click: Set(count, count + 1); display text: "Clicked count times"
D. Set("count", 0) on start; on click: Set("count", count + 1); display text: "Clicked {{count}} times"

Solution

  1. Step 1: Initialize the count variable correctly

    Use Set("count", 0) with quotes around name to start at zero.
  2. Step 2: Update count on click using current value plus one

    Use Set("count", {{count}} + 1) to add one to current count value.
  3. Step 3: Display the count using {{count}} syntax

    Text must use "Clicked {{count}} times" to show updated count.
  4. Final Answer:

    Set("count", 0) on start; on click: Set("count", {{count}} + 1); display text: "Clicked {{count}} times" -> Option B
  5. Quick Check:

    Initialize, increment with {{count}}, display with {{count}} [OK]
Hint: Initialize zero, increment with {{count}} + 1, display with {{count}} [OK]
Common Mistakes:
  • Not using quotes around variable name
  • Not referencing variable with {{}} when updating
  • Displaying variable name without {{}} in text