Hey, guys, we can push overrides to main component from an instance, all right.
But why can’t we push the changes you made in the compontent into all instances. I mean, let’s say you changed something in the main component, but if that aspect is already somehow defined in the instance, the instance wouldn’t change!
It’s kind of insane, do you know what I mean? I mean the component’s main purpose is for us to be able to just work with component, and the instances must change accordingly on the fly, by themselves. But in this system it does not work this way.
We need a ‘Reset overrides on all instances’ option, to be able to push reset all instances from a single click, from the main component right-clicking.
This is especially hard on you if you’re making a design system like I am. The use case I have is that I have nested components and if I update the icons in one I still have to go manually updated all the instances across 85 components.
Perhaps I’m trying for too much nesting, but deleting (or trying to replace via "paste over) a Sub-Component in the Parent means any valid Instance over-rides (e.g. text) will be lost when you update the client file.
…and that’s effectively a ‘silent fail’ insofar as it’s pretty easy to miss when those small changes occur, and you might not notice for a while, when successive changes have occurred and it’s not so easy to step back.
So, one of the things you might do to protect against that (i.e. minimise where you need to manage over-rides) is to apply ‘scenario specific’ over-rides on the Parent Component, make that into a new local Parent Component, then use instances of the new ‘Parent With Over-rides’ for the local need, e.g. prototype of a specific app state.
Of course… the problem then is things like auto-layout, hug-contents, and even over-rides themselves, start to ‘break down’ with too many levels of nesting, and things start getting too complicated.
I still think we need to have the option to undo each single override of an instance by itself, as then we can add and remove specific overrides for each instance.
Adding salt to the wound, as for now we can only create overrides (sometimes accidentally) and when we want to reset that override we need to reset all overrides, and when you have a lot of nested components in the instance you need to reset the override, you will loose everything inside that instance (I’m talking layouts here).
There is a reset all changes, but that gets rid of everything including any icon or text content updates. It’d be great to include a “Reset Styles” ontop of the " Reset Size" & “reset Property” they already have
IMO it’s a bit risky – at least if you can’t be 100% sure which instances of a master component exist – but I have been there too.
What I’d prefer would be an easy way to find all instances from a master component in a library in any other file – on a scoped file by file basis.
I’m f*** annoyed by this, too. The problem I have all the time, is also that instances keep previous defaults as if they were set as overrides, even though they were not. So if I do a change in the master, I have to check every instance and reset, e.g. the fill of text fields.
In Sketch there was a checkbox to disable specific overrides in the master (Symbol). This way you could be sure that no instance would be different from the master. In Figma this is a mess.
Yeah, previously when you change the master component, the instances would change too. And now they don’t. It’s like, what the point in master component at all then?
I think it’s definetely a bug, that happened after some recent update. We need to report it to @Figma_Moderation
Btw, @Sebastian40 how about ‘Reset all’ changes or the solution posted by Daniel_Pavlovic above:
“Just delete the Element inside parent component and apply new one, all instances will reset as element is deleted.”
@Tazh_Studio thanks for the hint.
But I’m adapting an entire design system of a brand for another brand, so this is complex and comprehensive. I do not want to always “Reset all”, because I would have to restore some overrides.
The other solution can also be applied in only some cases.
I’m also encountering issues with this. We want to push an override for an autolayout change to ALL instances, without disrupting the other instance overrides. The instances are keeping the previous defaults as if they were an override. If we did “Reset All”, it would cause major issues by breaking the other overrides.