Variants: Set default variant based on order of property values

Right now it seems like the ‘default’ variant is set based on which variant is ‘upper leftmost’ in the variant container frame.

Instead, I suggest decoupling arrangement from precedence, and using the property ordering functionality to determine the default variant. The default variant should simply be the one with the first value for each property, regardless of where it’s placed in the variant frame. This would allow teams to set defaults directly from the properties panel, without having to move components around.

See this thread for some more context: How to set defaults / precedence of variants with multiple properties?


Yeah. It is mush logical based on Variants settings on right panel

Or better - let use choose the default variant (right click on variant → set default). For example when I have the sizing of button (large, medium, small), I don’t want to have the order medium-large-small, just because I want medium to be default (since I use it the most often). This makes mess in logical ordering.


Completely agree with @Matej_Herman and the button example mirrors my problem exactly. Our medium sized buttons is the preferred default but it makes no sense to order it M-L-S and create havoc in the visual hierarchy of a style guide. To be honest, I’m surprised this request doesn’t have more votes.

Absolutely agree with this — if you import an object, it makes way more sense for it to default to the first setting in each property, rather than arbitrarily pulling from the physical position of the element within the component group itself.

@Glenn_Lee’s suggestion to add a manual override for the default component state also makes a lot of sense — if they don’t want to bloat the right-click window, it seems like this could easily replace the Set as Thumbnail option in any instance where you’re right-clicking on a variant.

I’d like to be able to set the default variant, but without breaking the layer order or property order.

I’d just want to ‘mark’ one value as default