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...
A great practical guide showcases the principles of transition animation with examples that are basic, compact, and can be used immediately by anyone in their design process. These insights are not rules set in stone, but rather guiding considerations for new product creation.
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
“Org Admins on the Enterprise plan can set a public link sharing policy for Design and FigJam files at the workspace level. This allows customers to have different policies for different workspaces, thereby unlocking user testing and external collaboration in some areas of the business without sacrificing security in other areas.”
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.
A quick how-to video from Zander on creating a glowing animation inspired by the Disney logo. (And one more with a hover scale effect.)
Glowing loading animation in figma, supafast.
— Zander Whitehurst (@zander_supafast) October 16, 2023
Celebrating Disney turning 100 🥳 pic.twitter.com/uzXZSTFjFr
Step 2: Learn from Vijay Verma how to create a cute animation using variables and conditions.
Create something spooky! Here's a quick tutorial to design this little guy in @figma using variables and conditions 👻. Small video shared and also get the code cheatsheet shared below. 📷✨ pic.twitter.com/K0TsE9iSiK
— vijay verma (@realvjy) October 20, 2023
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
Admins in Enterprise organizations can now make workspaces feel distinct with customized icons, header colors, and descriptions.
Great update to the OkColor plugin letting you specify both absolute and relative chroma in colors.
Last OkColor update 🌈 you can now use relative chroma in OkLCH: https://t.co/ZUhIw7cojP
— Doko Zero (@dokozero) October 9, 2023
It does not replace OkLCH's absolute chroma which is important, but it brings the advantage of OkHSL's saturation while keeping the features of OkLCH.
More infos 🧵↓
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
Organizations can require approval for using plugins and widgets, and now Akbar shows a new way to request it straight from the plugin’s popup. They’ve also made it easier for admins to review the requests. (If you’re a plugin author, consider specifying networkAccess in the manifest.)
Want to use a plugin or widget but need approval from your admins? @figma's got your back! Now you can quickly do that from inside any file you’re working on. pic.twitter.com/PcYYMysZTK
— Akbar (@actuallyakbar) October 11, 2023
I shared the teaser in issue #132, but last week Builder.io introduced Visual Copilot, “a completely reimagined version of the Builder Figma-to-code plugin that will save developers 50–80% of the time they spend turning Figma designs into clean code.” The major difference between Visual Copilot and previous design-to-code tools is a specialized AI model that was trained to solve this problem. The features include one-click conversion, automatic responsiveness, extensive framework and library support, customizable code structures, and easy integration with the existing codebase.
One of the most exciting parts of this announcement is still in private beta and targeted at teams with well-maintained design systems. This feature in Visual Copilot uses AI to map reusable components in your Figma file to those in your code repository and generates code using your existing components when you have them. This could be genuinely useful to get the first rough version ready in no time.
In addition to setting the default role, admins can get email notifications to keep track of who has upgraded and what action led to their upgrade.