A new video in the Introduction to design systems course by Figma explains design tokens.
Designer Advocate Ana Boyer shares some common questions, answers, and resources that she came across when learning about design systems, tokens, and variables.
🎨 Been a minute since I've been online! Thought I'd kick off posting again by sharing some questions, their answers, and some resources that I came across when learning about Design Systems (DS), Tokens, and Variables 🧰
— Ana (@_AnaBoyer) October 26, 2023
Luis shows how to descope and unpublish primitive variables from the design system.
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...
Updated corner radius UI makes it easier to bind a variable to each individual corner.
Hot off the press: It's shipped!
— Figma (@figma) October 24, 2023
Corner Radius UI improvements are now live, making it easier to bind a variable. https://t.co/secUOlvvbX
Great idea, but I wish this plugin would suggest the nearest color for a fill of the selected object and not just for the hex value. With some polish, this could be an essential linting step before handing mockups off to a developer.
Nate Baldwin works on design systems at Intuit and writes about his experience of using Figma’s REST API to tie design tokens directly to design resources and integrate Figma as part of a CI/CD pipeline for their multi-product setup. The article is quite technical, but he explains every step of the process.
Ridd points out two common problems with UI kits (manual updates of shared attributes and maintaining multiple breakpoint variants) and shares a variable system to make your life way easier.
Ready to see how variables in @figma can level up your UI Kit?
— Ridd 🤿 (@ridd_design) October 17, 2023
Here's my system 👇 pic.twitter.com/IfiMnS1FHx
Ridd shares a few repeatable steps to start prototyping with variables — creating the variable you need, assigning the variable to the UI, testing the connection, and setting up your triggers.
If you're like me, you were a bit overwhelmed the first time you started prototyping with variables 😬
— Ridd 🤿 (@ridd_design) October 10, 2023
But once you master it you start to realize something...
It follows the same repeatable steps 👇 pic.twitter.com/aYO4me0Gmy
Dave Williames made a next-level prototype using variables. The experimental pixel art editor uses over 40 variables to draw on a 16×16 grid with 16 colors, add frames, and play them with adjustable speed! Absolutely mind-blowing.
I rely on Luis for thought-provoking organization and design systems insights. In this thread, he discusses a way to translate brand colors into primitive and semantic color scales. At work, I use two design systems — one made by a smaller team where the same designers control the brand, design system, and product, and another from a larger organization with these are separate functions. I can see how his approach of explicitly using brand colors in primitives can work well in larger orgs.
It's pretty common when working with brand that you're provided with the "brand palette", which might not automatically translate into your token structure
— luis. (@disco_lu) October 9, 2023
To feed them into a global palette, you can still rely on the primitive / semantic relationship, but with an extra step pic.twitter.com/eZ61LLD9Ts
Have “ghost” variables in your file and need to get rid of them easily? Here is how to easily detach deleted variables still lurking in your file, as explained by Miggi.
Molly Hellmuth shares a few tips from her recent talk “Design System Traps & Pitfalls” at Smashing Conference. Here are the five ways to de-risk variable adoption for your design system — create a map for your token structure, start using variables with numbers only, use variables and color styles together, stress-test new features, and roll out changes gradually.
💡 5 tips to make sure variables don't break your Figma design system
— Molly Hellmuth (@molly_hellmuth) October 13, 2023
As I shared in my @smashingconf talk "Design System Traps & Pitfalls", adopting new features comes with risk..
Here are 5 ways to de-risk variable adoption for your design system👇 pic.twitter.com/tgOOorlc3r
An interesting idea on using a composite style with an alpha channel for a hover state instead of creating variables for every variant. Won’t work in every case, but it was interesting to learn that the same overlay approach is used in Material 2.
An idea 💡
— luis. (@disco_lu) October 10, 2023
If your hover states are consistently within the same colour range e.g. adding 30% black to *anything* that is hovered, then instead of creating variables for every single variable's hover state, you create a single ––hover variable and use it within a composite style pic.twitter.com/k9QsF0xhBb
Ridd is back with a video and a thread on choosing the right variable types for updating the state of components.
By far my favorite use case for variables in @figma prototypes is being able to update the state of a component 💪
— Ridd 🤿 (@ridd_design) October 6, 2023
But it took me a bit to wrap my head around the feature...
So here's a ~1 min video walking you through how it works (more below)👇 pic.twitter.com/KUd8lUkY2e
“Demystify the synergy between Figma Variables, Figma Styles, and Tokens Studio — a trio of ways composed to develop your design token workflow.”
Molly shows how to add real interactions to your prototypes. Variables make this slide show really easy to make.
💡Figma tip: Make your prototype update content like it’s the real thing!
— Molly Hellmuth (@molly_hellmuth) September 29, 2023
All you need is one variable and a few components in place. Like a carousel container, a couple of tab-group variants, and some nifty interactions.
Let's dive in 👇 pic.twitter.com/JhBxVsX9tC
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
This one is a more practical and hands-on guide to Figma variables, with detailed instructions on implementing, organizing, applying modes, publishing to the library, and transferring them to code.
Molly Hellmuth with tips on the best ways to name, organize, use, and theme color variables.
💡 10 things I learned while adding variables to my Figma design system
— Molly Hellmuth (@molly_hellmuth) September 20, 2023
Like the best ways to name, organize, use, and theme colors.. without getting overly complicated!
Some were easy, some took days of testing and re-testing... 👇 pic.twitter.com/KPJnG5gIs7