Use variables to mimic filtering interaction

Hi Figma community,

I am attempting to prototype using variable to show an interaction where a user applies a checkbox filter, and a set of cards updates based on which filters are selected. I have figured out how to do in a binary fashion, where only one filter can be applied at a time, but not when multiple filters are applied at once.

The logic I have instrumented looks like this:

  • When the user starts on the page, no filters are applied, but ALL cards are shown (this is a common pattern in UX/UI design.
  • I created a frame with auto-layout with all the cards, and I bound each individual card to a single filter value using boolean variables and the show/hide functionality – such that, when a user applies one filter (if checkbox = true), then all the cards with filter value assignments that are NOT the user-applied filter will be hidden.

What I would like to happen is:

  • When the user starts on the page, all cards are shown and no filters are applied.
  • The user applies filter #1, and all cards besides the ones assigned to the filter value for the user-applied filter are hidden. So only cards with values = to the value of filter #1 are shown.
  • Then, the user is able to apply filter #2, which then ADDS the cards with values = the value of filter #2 to the set of filter #1 cards on the page.
  • Hopefully, this pattern above could be applied to any number of combinations of filters applied, so that I don’t have to do this the old school way and create 400+ frames and noodles to represent all the permutations of filter combinations.

I tried to film a video walkthrough of this issue, but Figma won’t let me post it because I am a first-time poster in this forum :roll_eyes:

This is a very basic pattern that most UX designers have had to prototype. It is frustrating that variables are meant to be so flexible to accommodate any interaction, but don’t seem to serve this very basic use case.

Does anyone have an answer for this?

This is just a workaround for a limited number of filters, but I’ve set one boolean variable to the layer/component I want to show/hide, and then wrapped that in a group or frame which I can then toggle with a second variable. I’ve done this and it worked great for up to three variables, but not great for maintenance or scalability.