I’ve tested the new Figma Variables feature and have some suggestions.
1 - When we have a Component Instance with Variants inside another Component, we cannot use the Variables to define the desired Variant to be shown in that Instance. This function only works on Instances of Components that are outside of another Component.
2 - Still on Component Variants, if the Component has two or more Properties, we cannot use more than one Variable to define the value of each of its Properties in its Instances.
3 - When we copy an object with interactions whose action changes a Variable, the new copy will be created with the previously defined Variables all empty, forcing us to review all the interaction again.
4 - It would be useful to have a function for “Set Mode” instead of just a “Set Variable” in object interactions. In this way, we could create several Modes with predefined values for each Variable and, when interacting with that object, we would Set only the Mode and thus all Variables would be changed at once, instead of defining each Variable separately.
5 - A “List” type of Variable would be useful, where we could pre-define the possible values of the Variable. As it currently stands, we can only create Variables of type String and have to be careful to always correctly write the value to be defined for the Variable, as any mistake can ruin the entire interaction.
6 - Now with the Variables, it would be interesting to create an Editable Text component to be applied inside Inputs, in this way the prototype would become more dynamic and interactive, allowing filling out forms and storing such information in Variables to be analyzed. With this we could create validations on the screen according to the filling in of the fields. Example: If all mandatory fields are not filled in, when submitting the form, we would display an alert message directly on the prototype, also marking the fields that were not properly filled in.
7 - It would be useful to allow us to apply Conditions on properties that accept Variables. For example, an object’s visibility property can only be associated with Boolean Variables, however we could create a Condition that, based on the value of a non-Boolean Variable, returns “true” or “false”.
8 - With the possibility to Show/Hide a certain object according to the status of a Variable, it would be useful to create new types of event triggers for interactions: “On Display” / “On Hide”, as the “After Delay” event (which could be useful in these cases) fires when the object is loaded, even when it is invisible in the prototype.
9 - Another option for the suggestion above would be to allow the triggering of Actions according to the change in the value of a Variable, which would bring thousands of interesting possibilities.
Well, thats all for now. In general, the new functionality is very good and already allows us to make the prototypes much more interactive, in addition to reducing the number of replications of the same prototype just because of a simple change of Status on the screen.
Oh! One more thing… create a Topic about Variables in the Forum. It will be much better to keep suggestions and questions related to such an IMPORTANT feature in the same place.