Not sure why this is happening.
To clarify, I have a master component that is composed of multiple child sub-components and some of these sub-component children have variables assigned to certain values (to get around Figma’s limitation with forcing specific fixed master component values that are unchangeable on instance placements - which is stupid since most other parts can be changed as you prefer on instance placements like text strings, colors, etc.), but for SOME of the child sub-components, but NOT ALL of them, the variable modes in the layer controls do NOT show up unless you click several layers down in to the stack of subcomponents.
For other children though… ALL the variables are exposed at the top. This means 4 of the variable modes can be changed with one click… but 1 other cannot unless you dig down into the sub-components.
But trying to teach my designers how to change those values (rather than just “break” instances and manually change them) is a nightmare because now they potentially have to click down in to the stack to adjust a variable value while with others, it’s at the top level…
Is there a reason this is happening?
I would share screenshots, but I’m pretty sure I’d get fired for breaking NDA… .
Hopefully that makes sense.
EDIT : I think I figured it out. If you have instance swapping of said sub-component children with variable values that can be changed, if those subcomponents aren’t the default instances, then the variables cannot be changed at the top level when they are swapped in.
So to keep from NDA breaking - I’m going to try to describe with a different set of items from what I made to explain.
So let’s say I have a master object, and within that object, there’s multiple button instances I have placed and within some of those buttons there’s several sub-components I want to be able to change the size of to fixed values (without bloating things with variants of every combined possible width and height in a matrix).
So I set up a variable set where I can just change modes and have that force a size change of those buttons in the master object. Now - note in the “default” component for the “master object” - if I don’t have any of those buttons with variable size changes in them in that default state, and I place an instance of that master object… and swap in one of the buttons with variable sizes into that instance (remember the buttons are 1 layer down in the stack of the “master object”), the variable values won’t show up in the layer controls.
That seems broken.
Whether or not the button with variable size controls IS or IS NOT in the default said “master object” component I made, any time one of those variable size buttons IS brought into any instance of the master object placement, those variable controls SHOULD be exposed at the top level. Digging down into the stack to change these seems silly unless somehow when instances are placed or have sub-component instances updated, they’re not checking and pushing these changes up the stack to be exposed in the variable layer controls.
I’m not sure why the engineers aren’t doing this. I can attempt to elaborate further if someone official needs a better explanation…
Again - just can’t break NDA.