Hello, I will do my best to explain the issue.
First some files:
Prototype example
File
Explanation:
In this file you will see a simple interactive component made with a label and an icon that goes red while hovering.
If i paste an instance of this component inside a frame, you can then change the icon of said instance and everything works as expected (See: Expected)
If i create a menu component, and place a couple of instances of the button inside, and then change the icon, then things goes unexpected (See: Unexpected): The icon on the modified button will remain with the default color, while the label will change colors.
The unmodified instance, will still hover as expected.
From here, in this file you can see a reference guide of the components and their layer hieriachy.
Note how the Menu main component has working buttons.
That means that the problem is only when dealing with instances with interactive components inside.
This bug has been here since always and its workarounds are pretty dirty and time-consuming.
Do you guys noted this?
Do you have any clean workaround?
Am I missing something obvious here?
A (maybe possible) solution for this would be:
- Make it work as expected (don’t know how difficult it may be)
- Allow to modify instance state attributes, and make them like “!important”
Example: Select an instance within a main component, and see which color (and other values) have each state of said child instance. Then change the colors, and tell Figma that for THAT child instance you want THAT default state colors, and THAT hover state color.
Hope someone finds a solution for this.
Thank you!