Theme switch with variables

Hello, here is my problem:
I have 2 themes (A and B) for a button with icon and label text.
Depending on the chosen theme, the button automatically displays the A or B icon variant by using variables.

It works very well, except that if I apply an override color on the icon of theme A, this color resets if I apply theme B.

I would like this color to be preserved when I change themes.

Anyone have a solution for this?

Figma link here

Hey @flo_che I personally don’t have a rec. on a solution for this. I’m not very fluent when it comes to variables

I did check with the support team, and in general, this this should work, but would need to actually look at the file into the file to be sure :pensive: It looked like the above you provided is just an example. Would you be willing to share a copy of the file you’re working with? If you can’t, no worries (also, please don’t post a direct link to a copy here to protect your work).

Thank you Kim, here is link to the editable Figma.

And some screenshots of the file

Thanks for this! I’m going to follow up with you via DM shortly with further instructions.

Hi Kim, I did not receive the request from support team. Is it possible to use my email address that you mentioned via DM ?

@flo_che I created an example file around button issues I’ve had in the past working with scaling+icons+modes, and how to fix them. Hoping this helps point you in the right direction.

Example Figma File

Sorry about that! I just PM’d you.

Thank you Nate for your help, your example file is very complete, but doesn’t solve my problem.

@Florent_Chevillard One idea is you could manage/change the icon color using color variables vs overides, which would preserve your colors when you switch modes.

Get Example File

Did you find a working solution?
@Nate_G your example almost works for me, but I want to use a different color icon per button state (default, hover, pressed). So multiple variables per Theme for one icon.
In my case the icon color override did not work.

@Jan-Willem_van_Veelen One quick idea, you could try setting up color variables for each theme for your default, hover, pressed states and assigning those to the corresponding icons.

Thanks @Nate_G for the suggestion. I tried this set-up, but it seems that after Figma changes the icon-version, it does not apply the icon-color variable. Maybe applying the variables happens in the wrong order, so first color change, then icon-variant (that is then in it’s default color). I’ll keep digging into it and will let you know if/when I figure out a solution.

1 Like