Skip to main content
Simon_Coong
July 24, 2023
Question

Figma variables, and multiple swappable styling libraries

  • July 24, 2023
  • 23 replies
  • 7798 views

In the past, when you created Colour Styles and Text Styles, you could (along with identically named components) swap them out for each other by using the “Swap library” functionality in the Libraries panel. That functionality still works, and is great.

However, Variables don’t seem to swap over in the same manner, which makes some sense as they’re not detected by the “Swap library” panel currently. Is there any way you can switch out Variables in batch when swapping libraries so they update everything eg colour, padding margin, booleans etc, or am I unable to use Variables for anything outside of local styling for now?

For context, I’m creating a design system for a white-label product that can swap the associated branding on the fly depending on the target client. Naturally, colours, fonts, logos etc need to be switched out, and they work fine with the older method of library definition, but Id like to be able to specify padding, margins and other similar properties as part of the branding libraries so that they update the associated components correctly.

Any help is appreciated and thanked in advance.

This topic has been closed for replies.

23 replies

Mona10
New Member
July 4, 2025

Hej Figma Team,

we'd like to report what we consider to be a critical bug related to swapping component libraries, which severely affects our workflow in Figma.

Issues when swapping libraries:

  • Design variables are not correctly transferred, even if they exist in both libraries and are named identically.
  • Modes defined in variables are ignored during the swap.
  • Styles that reference variables retain their link to the original library, but do not switch to the equivalent variable in the new library, even if an identical one exists there.

Why this is a bug: This behavior makes variable-based library swapping essentially unusable. The idea of evolving and maintaining design systems through versioned libraries becomes impractical – at least when variables are involved.

For teams working with structured design systems and variables, this is a disaster. It causes significant manual effort, breaks system logic, and undermines component reliability.

We've seen comments in the Figma Forum suggesting this behavior is not considered a bug.
But how can this not be a bug? It directly contradicts the purpose of libraries: enabling consistent, scalable, and maintainable design systems. If variables don’t transfer during a swap – even when they exist in the new library – their use becomes meaningless in this context.

Please prioritize fixing bugs / existing features over releasing new features!!!! 

Our request: Please reconsider this behavior and treat it as the bug it clearly is. We urgently need a fix or, at the very least, an official statement about planned improvements.

Thx a lot!!!

Christian_Klose
New Participant
July 7, 2025

I agree with that 100%. I don’t understand that the Figma team has apparently still not managed to enable a native variable swap. Even with the plugins from the community, it is not possible to switch smoothly between library versions. Another annoyance: components and variables that are set to “Hidden from publish” can neither be swapped via the native library swap nor via the plugins, even if there are equivalents in the target library. 

This means that the entire “variables” feature is basically unusable for design systems that are provided via the community. The libraries would have to be freed from variables and you would have to go back to styles and variants for different modes, which really makes the work extremely time-consuming.

Dear Figma team, please focus on these essential functionalities that are important for working with design systems instead of getting lost in new products!

Martin_Niklaus
New Member
November 24, 2025

this is just plain bad and a feature that is not finished. please fix this