Turns out, you can copy text styles from the selected text!
Brilliant tip from Molly Hellmuth — create a special text style for labels where line height aligns to your grid. No matter what variable is used for padding, the height of your UI elements will be a multiple of the base grid. (This is also a nice way to keep your labels aligned with icons.)
The Styles Organizer plugin now supports all types of styles and variables, so it got a new name. This is one of my most used plugins for managing a design system and maintaining style consistency inside Figma files.
A new version of the Style Setuper plugin that makes setting up text and color styles a breeze now creates text styles using type variables, so changing your font properties is very easy.
A widget that makes all your local variables and styles visible. You can narrow down the list to a specific collection or type.
Luis shows where styles and variables can be used in the Figma UI.
Daniel Destefanis from Figma made a plugin that shows how text layers within a selection are styled (or unstyled). This plugin complements the existing native Figma feature Selection colors and is a great way to see what layers aren’t using styles or select layers by font. Read more in Daniel’s Twitter thread.
Scan local text styles, convert their properties into typographic variables, and bind them back to the text styles. Christine Vallaure recommends this plugin in her recent video and shows how to use it.
How to preserve a button’s volume across multiple themes? Ridd suggests combining brand variables with a style wrapper for reusing gradients.
We all want those juicy buttons 🤌
— Ridd 🤿 (@ridd_design) December 19, 2023
But how do you add texture while maintaining themeability in @figma ?
Here's a quick breakdown 👇 pic.twitter.com/MslvJ27mKz
Designer Advocate Anthony DiSpezio recommends the best approach for defining variables for theming: primitive variable → semantic variable → semantic style. The core advice is to keep using styles: “Styles represent a group of properties that should be applied to a layer or part of a layer. Variables represent individual values within that style.”
(Years ago, I noticed that when Apple announces a change at WWDC it’s better to go with it even if it doesn’t make sense at the moment — they see the roadmap much further. I wonder if it’s the same case with Figma and styles. At the moment they often feel redundant, but Figma made it very clear that they’re not going anywhere — hopefully something will make it clear soon why it was worth keeping them around.)
Defining variables for theming? This is THE best approach I can recommend:
— Anthony DiSpezio (@adispezio) October 24, 2023
$primitive-variable: ff0066
↳$semantic-variable: $primitive-variable (alias)
↳Semantic Style: $semantic-variable
I'll try and explain in the comments...
“Demystify the synergy between Figma Variables, Figma Styles, and Tokens Studio — a trio of ways composed to develop your design token workflow.”
Luis is rethinking the relationship between variables and styles. The future typography tokens are a great example, but even today this applies to styles with more complicated color fills. TL;DR: “Create variables in a private space, feed them into styles, and publish only styles to consumers.”
I'm starting to (re)think variables a little bit
— luis. (@disco_lu) September 27, 2023
And looking at them more like "data sources" for our styles within systems
This means 1) locking variables away in the system 2) Maintaining styles for longer than I originally thought pic.twitter.com/VFX7JwemkK
Allie Paschal writes about her process of migrating the Native Mobile Design System from using color styles to variables. Pretty cool to see that she already adopted a newly released scoping for color variables. I didn’t realize that some companies may not allow external plugins in Figma, so it’s nice to see that this process is completely manual and self-sufficient.
A preview of the design lint plugin for identifying and fixing issues like missing tokens or styles.
A new plugin from the Tokens Studio: “Already have your variables set up and want to bulk apply them to your work? You can swap styles with variables or apply variables that match raw number values to elements in any file with access to your variables collections!” See also the walkthrough video.
Interested in learning how to migrate from Styles to Variables? Join Luis Ouriach, Akbar Mizra, Jacob Miller from Figma, and Jack Minogue from Ford for a look at approaches you can use to lower the friction of your rollout of variables.
Great help article if you’re still struggling with understanding the difference between variables and styles, or questioning if styles are becoming obsolete.
Great video from Chad on a conversion technique I described above. Recommend watching this video before you embark on a journey to update your color system.
A few new plugins for converting styles to variables came out last week, and I’m still trying to pick a favorite. The best part of Styles to Variables Converter is that after creating variables it updates existing styles to use them, so if you delete or detach styles objects will fall back to variables. A slightly more popular Styles to Variables plugin doesn’t seem to do this yet. I also wish these plugins let me map styles to existing variables, or at least specify a target collection.
Confused by how variables are different from styles? Design Systems Product Manager Jacob Miller explains: “Styles can contain multiple fills as well as blend modes, and that restricts their use case for design-code alignment and where we can apply them. […] Variables are a single value. They’re more atomic. This means we will be able to use color variables anywhere you see a hex code.” This is my favorite way to think about it: “One way to think of it is a style is a CSS class (a group of values), whereas a variable is like a CSS variable.”
Styles can contain multiple fills as well as blend modes, and that restricts their use case for design-code alignment and where we can apply them.
— Jacob Miller (@pwnies) June 22, 2023
I.e. you can’t apply a style to the color of an effect or a gradient stop, because how would that work if the style were composed…