Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Tokens Studio for Figma is a allowing you to integrate Tokens into your Figma designs.
We have a dedicated Slack server so the community can exchange ideas, best practices or simply ask a question. .
The type
of Design Token defines which category of design property this decision belongs to, or when it can be applied.
For example, the system could interpret a Token with a Value of #22c55e
applied to a text layer as a string property to create a text element or a color hex code.
When we define a Token Type of color
alongside the Value, it's much easier to communicate that this design decision is to be applied when the color of a text element should be green.
Most often, type
matches a design property. For example, the type
of Color can be applied to any design element requiring color.
The DTCG Specifications define how the Token is written depending on its type
. For example, a Typography Token requires several design decisions to be composed into a single token, whereas a Color Token does not.
Tokens Studio supports 24 unique Token Types, and the DTCG is constantly adding new Token Types to the specification.
If you are ready to jump into Tokens Studio, this guide will walk you through the nuances of each Token Type.
Next, let's explore the value
of a Design Token as this anatomic property depends on the Token's Type.
There are many 'Official' Token Types are listed in the .
It's quick and easy to get the Tokens Studio Plugin for Figma ready for use in your Figma files.
Select the ribbon icon button to Save the Plugin to your Figma account.
That's it! You can now open the Tokens Studio Plugin in any of your Figma files.
The Plugin is free to use! There are some advanced features that require a Pro licence but you don't need one to get started exploring the Plugin.
Once you've saved the Plugin to your Figma account, you can open it in any Figma file.
There are several ways to open a Plugin in Figma and their UI is always changing.
You can use Figma's quick actions menu to search for Tokens Studio.
Open the quick actions menu by keyboard shortcut:
On a mac computer : command + p
On a windows/linux computer : control + p
Or, you can press the icon button at the bottom of the interface with four geometric shapes tp open the menu.
Once you search for "Tokens Studio", select it to open the Plugin.
Once the Plugin is open, you are ready to start a new Token Project to explore the Plugin.
Navigate to the in the Figma Community.
→
→
If the steps below aren't working for you, check out Figma's official docs on working with plugins for the most up to date instructions. →
You might be wondering: "What is a Design Token?"
The answer depends on who you ask.
Watch this 1min video clip of Sam from the Tokens Studio team explains what a Design Token is "like I'm 5" during an interview with Sil from the Into Design Systems conference.
The Tokens Studio team broadly agrees with the below definition:
a method to express design decisions
platform-agnostic
shareable across disciplines, tools, and technologies
composed from a common vocabulary
Tokens Studio is working with the DTCG as they shape Design Token specifications. Our docs will highlight where and why our tools deviate from these specifications.
A Design Token holds all the key pieces of information needed to communicate a design decision.
According to the Design Tokens Community Group (DTCG), a Design Token is made up of:
Name: acts as the unique identifier of the design decision
Value: the data for what was decided
Type: the design property the decision applies to
Description (optional): additional context about the decision
Design Tokens live in JSON files. The DTCG specifications define this common language or how to format Tokens within their JSON files so they can be a shared source of truth across different tools and technologies.
This means that if you are thoughtful with how you structure your Design Tokens, you should understand the who, what, where, when, why, and how of every design decision at a glance.
These Design Decisions should be easily understood by everyone on your team - including engineers, other designers, stakeholders, and your future self!
This is what we mean when we say Design Tokens are a shared source of truth for design decisions shared across cross-functional teams.
When Design Tokens are applied to design elements in our design tool of choice, engineers can easily see the Token representing the designer's decision and then pull the details of the Token directly from the code.
This reduces the time it takes to communicate and understand design decisions, as Designers and Developers are essentially "speaking the same language" and working with a shared source of truth that lives in code.
When digital products are built with Design Tokens, it creates the foundation for a CICD pipeline between design and development, dramatically reducing the engineering effort to implement design changes.
Tokens Studio provides a suite of tools that allow designers to produce engineer-ready code so they can easily share design decisions with engineers and cross-functional team members.
In Figma, the Tokens Studio Plugin provides a no-code interface to create and manage Design Tokens, connect Tokens to styles and variables, and easily sync to external code repositories for version control and a shared source of truth with engineers.
For large organizations, agencies and freelancers, the Tokens Studio standalone platform provides powerful workflows that support integrations with other tools commonly used by cross-functional team members, including Framer, In Design, Blender, and PowerPoint, to name a few.
Design Tokens capture design decisions used to scale a design system, and they include all the important information engineers need to bring big ideas to life quickly.
You can use Tokens Studio in design tools or a standalone platform to work with Design Tokens in a no-code interface, then sync your Token JSON files to an external code repository to create a shared source of truth with Engineers.
Those JSON files can be transformed by Engineers using Style Dictionary into whatever programming needs are required for the project.
Now that you've got the basics of what a Design Token is and what Tokens Studio does, let's take a closer look at each anatomic part of a Token, starting with the Types of Tokens available to work with.
Then you'll learn about Token Values as they are dependent on the Token Type, and how you can use the Description to add additional context about your design decision.
We've saved the "best" for last, as Token Names are the most customizable part of working with Design Tokens.
While we'd love for everyone to have a pro licence to unlock the full power of the Plugin for Figma, the reality is that not every person working on a Tokens Studio powered project needs one. Generally speaking:
Designers maintaining Design Systems powered by Design Tokens would benefit from a pro licence.
Designers wanting to sync Variable Collections (with multiple modes) to a code repository would benefit from a pro licence.
Designers who require view only/read access to your Token projects do not need a pro licence.
Engineers inspecting Figma files requiring access to the Plugin do not need a pro licence.
Design systems teams who are scaling quickly may benefit from our more powerful tool, the Tokens Studio Platform, a dedicated Token management application.
Below you'll find each of the features exclusive to pro licence holders and a breif description of what you can and can't do without a pro licence.
Select a question to reveal the answer.
The Themes feature in Tokens Studio allows you to define combinations of Token Sets that are intended to be applied together to style design elements. Under the hood, the Plugin creates a themes configuration file that can be shared with developers and used in code.
Multiple Themes can be applied at the same time to create a matrix of possible concepts that a single design element can be styled with. This is also known as multi-dimensional theming.
Here's the breakdown of what you can do with Themes depending on your licence:
Create a new Theme
Apply Tokens included in Themes to design elements in Figma
Update existing Theme
Toggle Themes on/off to apply styling to design elements in Figma
Delete a Theme
+ Everything free licence holders can do
The Themes feature creates additional data that can be shared with Figma, which unlocks several powerful workflows:
Connecting design tokens to Variable Collections with multiple Modes.
Styles attached to your Tokens can be managed in the Plugin or Figma.
Non-local Variable Collections and Styles that retain their references to a published libraries in a different Figma files by syncing your Themes to your external Tokens Storage provider.
Color Modifiers allow you to easily create consistent, scalable color systems by adjusting and blending colors with fine-grained control within Tokens Studio.
Modifying your Color Tokens is a powerful way to create dynamic color schemes.
For example:
Generate a color ramp from a single 'base color'.
Introduce subtle variations between interactive states.
Create new modified Color Tokens
Apply modified Color Tokens
Advanced color spaces - LCH, SRGB, P3, HSL
Create colors in Hex, RGB, RGBA, ARGB, HSLA
Edit existing modified Color Token
+ Everything free licence holders can do
If you are working with one of the supported Git sync providers, you can take advantage of version control workflows and advanced token storage options.
Here's the breakdown of what you can do with syncing to External Storage depending on your licence:
Sync Tokens as a folder with multiple files.
Sync Tokens to all Git providers.
Create a new branch in a connected Git repository.
Sync Tokens as a single file to any Git provider.
Switch between branches in a connected Git repository.
+ Everything free licence holders can do
Pro licence holders will notice additional navigation actions on the Tokens Page of the plugin. Selecting either the Token Flow or Second Screen icon buttons will open these features in a web browser to unlock additional ways of viewing the relationships between Tokens.
Free licence holders will not see these icon buttons.
The value
of a Design Token defines what the design decision is and, in some cases, where the decision came from.
The Values that are possible for a Token are determined by itstype
.
For example, a hard-coded Value of #22c55e
is possible when the Token Type is color
, but not when it is fontFamily
.
While it's helpful to give a human-readable name to a hard-coded value, the real power of Design Tokens comes from referencing another Token.
If you write the Value of a Token as the name of an existing Token in the system wrapped in curly brackets, it will inherit its value from the referenced Token.
For example, looking at the value of a Color Token applied to the label of a button component, you can see it has a value of {brand.colors.success.on-success}
and same value of #b1f1cb.
So if you were to ask yourself, "where did the label color decision for the button come from?" the answer is, "it's coming from my band decisions for success colors".
Values that reference another Token define where the design decision came from.
The ability to reference another Token as a value creates a flexible and dynamic system which scales very quickly.
For example, if you decide that the text for success elements should be white instead of a light green, you only need to change the value of one Token (the {brand.colors.success.on-success}
Token), and all components referencing it will change.
In addition to hard-coded and references to other Tokens, Tokens Studio also supports math equations as the Value in compatible Token Types.
For example, you can create a Typography scale which is customized for different view-port sizes using a math equation.
To sum it all up, the power of a Design Token lies in the flexibility of its Value.
For design systems that support multiple themes, products, brands, or clients, using Token Values effectively means managing more design assets with the same components and minimal effort.
If you are ready to jump into Tokens Studio, this guide will through the more technical nuances of each Token Value you can work with in the Plugin for Figma.
Next, let's explore the description
of a Design Token as this anatomic property can help provide additional context about your design decisions.
Boolean Tokens define layer visibility of an element as true or false.
It does not control component properties, as Figma doesn't allow it.
Boolean Tokens are great for hiding or showing layers that may be visible within a component under certain conditions.
For example, a card with some actions that are only visible once the card has been interacted with.
You could create two Boolean Tokens:
card.show-actions.default
with a value as false
.
card.show-actions.interaction
with values as true
.
Then, apply the Boolean Tokens to the Actions layer of each variation of the card design.
The syntax used to write string values for Design Tokens is important, so be sure to write your Boolean Token value with all lowercase letters and ensure there are no spaces.
There are only two possible values for the Boolean Token:
true
The layer is visible.
false
The layer is not visible.
When trying to reference another Token as the Value for a Boolean Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = boolean
You can apply a Boolean Token to show or hide any design element and all of its children layers.
With one or more elements selected in Figma, click on the name of your chosen Boolean Token in the Plugin to instantly apply its value.
boolean
is not yet an official Token Type in the W3C DTCG specifications. Tokens Studio has added Boolean as a Token Type to support Figma's Boolean Variable.
When transforming Boolean Tokens, there are no specific configurations to be aware of.
Running the SD-Transforms pre-processor as part of the generic package will prep your Boolean Tokens for Style Dictionary.
Mentioned in this doc:
None yet!
None yet
The type
is the anatomic part of a Design Token that defines the category of design property the decision belongs to, or when it can be applied.
Tokens Studio (TS) supports 24 unique Token Types.
These terms are not the only way to describe Token Types; they are the labels the Tokens Studio team uses for simplicity across our documentation.
If your team uses different descriptive terms, that's totally okay!
Official
For example, Dimension Token is an official type.
Unofficial
Unofficial Token Types were created by Tokens Studio before the W3C DTCG Specs defined an alternate Token Type.
For example, Border Width Token is an unofficial type defined by the spec as a Dimension Token.
Composite
When elements are styled by composing many related design decisions together, they are combined into a Composite Token Type.
For example, a Typography Token is composed of 9 independent text-related properties.
Property
Each design decision that is a part of the Composite Token is referred to as a property of their respective Composite Token in our guides.
For example, fontFamily
and fontWeight
are unofficial Tokens we created to independently define the properties that Compose a typography
Token.
They may be included in the DTCG Specifications in the future, in which case they would be official property Tokens.
Compatible
A Token Type with properties that is compatible with another Token Type.
For example, the dimension
Token Type is compatible with fontSize
when referenced within a typography
Composite Token.
Compatible Token Types are visible by default when defining Token Values which reference another Token in the plugin. This becomes important when creating and maintaining Tokens in the plugin.
In the Plugin, you select which Type of Token you'd like to create using a no-code interface. Under the hood, Tokens Studio will write the Token as properly formatted JSON files so they can be used in code.
You might recall that Design Tokens are platform agnostic, written in a common language so they can shared across different tools and technologies.
This means that engineers working with Design Tokens have to transform them from JSON files into whatever specific programming needs they have before they can work with them.
Some Tokens we create in Tokens Studio (TS) have subtle differences in how the Token type
is written compared to the DTCG specifications. In the case of unofficial Token Types, which don't exist in the DTCG spec, we have to transform the TS Type into something Style Dictionary is prepared to work with.
The SD-Transforms package's preprocessor will transform the TS Token Type to the Style Dictionary Type, as described in the table below.
Each Token Type has unique properties and specifications, which are documented in detail. Select the common name of the Token Type in the table below to access its docs.
Mentioned in this doc:
None yet!
The name
of a Design Token tells us who, or which parts of our system, this design decision is intended for.
The name
acts as the unique identifier for each design decision in the system and are the most customizable part of a Token's anatomy.
For example, a Token with a Name of button.success.hover.label.color
almost tells a story about the design decision without knowing anything else about the Token.
success
= This design decision applies to elements communicating a successful interaction, in this case, a button
.
label
= The Token belongs to a label, most likely a text element.
color
= Changes the color of the glyphs in the text layer.
hover
= This decision only applies under the condition of a hover interaction.
How you write your Token Names is highly flexible, and there are many factors that go into creating the ideal Token Name templates (also called Token taxonomies), that will work for you, your project, and your team.
So instead of suggesting "the right way" to name your Design Tokens, we will share some of the qualities of a great Token Name, and link you to the technical specs so you can figure out "your right way".
A great name for a design token is:
unique
simple for humans and machines to read and remember
specific to the type of decision being captured in the Token
supportive of a well-organized Token structure
foundational to automation between design and development processes
scalable as the system matures.
Check out this video clip from the Into Design Systems Conference 2024 where Sam from the Tokens Studio team talks about what makes a great Token Name.
We have compiled the technical requirements of naming Tokens to help you get started. There are links to further learning resources from the community included in this guide.
Now that you've learned the basics of what a Design Token is and each of its parts, you are ready to explore some of the broader concepts to deepen your Token knowledge, or jump into Tokens Studio to put what you've learned so far into practice!
Asset Tokens define the location of assets to style the fill or stroke of a design element as a URL.
Asset Tokens define the location of assets that are stored outside of your Design Tool, and when applied to a design element, the asset will fill the layer.
For example, a product photo across several pages on a marketing website.
When it comes time to change your assets, you can update the Asset Token in the Tokens Studio Plugin and the changes will be applied across your entire design system with just a couple of clicks.
An Asset Token can reference any URL or path to an asset file, such as:
URLs pointing to images or icons hosted online.
Local file paths if working within a local environment.
The image source needs to have its own CORS (Cross-Origin Resource Sharing) validation.
Some websites already have that implemented (e.g. Unsplash).
You can put your images behind a CORS proxy if needed.
When trying to reference another Token as the Value for an Asset Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = asset
You can apply an Asset Token to fill the background of text, polygonal shape, and frame layers in Figma when the Token is applied.
With one or more elements selected in Figma, click on the name of your chosen Asset Token in the Plugin to instantly apply its value.
When transforming Asset Tokens, there are no specific configurations to be aware of.
Running the SD-Transforms pre-processor as part of the generic package will prep your Asset Tokens for Style Dictionary.
Mentioned in this doc:
Asset token enhancements (to include icons) - [Feature Request](# Asset token enhancements)
Token Sets are where our Design Tokens live in the Tokens Studio Plugin.
It might help to imagine each Design Token as a 'file' containing data about every individual design decision you make and the Token Set as the 'folder' where these 'files' are located, which helps you to keep things organized.
However, like any folder and file system you might be familiar with, the Design Tokens in the Token Set must all have unique names.
Have you ever tried to add a file to a folder on your computer that already has a file with the same name? Your computer will ask you if you want to keep both files and rename the new one or replace the old file.
In the Plugin, the Tokens page is where you will manage the Token Sets for this project:
Create new Token Sets.
Select a Token Set to see its Tokens.
Change the order of existing Token Sets.
Update or delete a Token Set.
Once you select a Token Set from the left-side menu, the Design Tokens living in that JSON file are displayed on the right.
The current Token Set selected will have the container previewing its name highlighted in blue.
On the Tokens page of the Plugin, Token Sets are listed in the left-side navigation panel.
A Token Set in the plugin has:
A unique name.
A status.
Indicated by a checkbox next to its name.
A position.
Arranged in a list.
If you do not have have edit access to your Token Project, you won't be able to take action on the Token Sets.
The name of each Token Set must be unique. Ideally, Token Set names follow the same best practices as Design Tokens, like avoiding spaces, special characters, emoji's.
There are 2 different ways you can write your Token Set Names:
Flat names appear in a list.
Folder names appear in a tree structure which can be expanded and collapsed.
Each /
that appears in the Set name will create a "folder" in the tree.
Folders create visual groups of Token Sets, indicated by a triangle icon on the left of the folder name.
Selecting the folder name will expand or collapse all Token Sets within it.
In the Token Set name examples below, the left has a flat name brands-berry
and the right has a folder name brands/berry
.
To change the name of a Token Set, right click on the current name of the Set, located in the left side panel of the Tokens page in the plugin.
Select Rename.
Enter the new name in the input.
The current name will appear in the modal heading for reference.
Select Change to save your new name.
Select Cancel to close the modal without changing the current name.
The Status of the Token Set is indicated by the checkbox next to its name:
Enabled - Checkmark is visible.
Disabled - Checkbox is empty.
Set as Source aka Reference Only - Circle is visible.
Change the Status by:
Selecting the checkbox.
Toggle between the Enabled and Disabled status.
Right-click on the Token Set name to open the menu.
Select The Set as Source option.
When the Status of a Token Set is Enabled, you have told the plugin that all Tokens within the Set are "available" to take action on. This includes:
Passing the Value of the Token to design elements where the Tokens have been applied.
Being referenced in the Value of another Token.
Populating attached Styles and Variables in Exports to Figma.
Pre-filling new Themes (pro)
For example, when creating a new Token with a Value that references another Token, the plugin will only show the Tokens in sets where the status is Enabled.
When the Status of a Token Set is Disabled, you have told the plugin to ignore all Tokens within the Set when performing actions.
For complex Token Structures where you have lots of Token Sets, you can disable the Token Sets that don't apply to the task you are working on temporarily.
For example, when working on a new component in dark mode, you can disable the Token Sets for your light theme to focus on your specific area of work. When you apply Token Data from the plugin to your Figma designs, only the dark-mode values will be applied.
When the Status of a Token Set is Set as Source, you have told the plugin that these Token Sets serve as a source of information to pass along your Token structure but you might not actually work with them in Figma. They act as a foundation or source of truth for Token values, but other actions should be ignored.
When Tokens in enabled Token Sets reference Tokens from a source Token Set, the plugin resolves the references so they can inherit their value.
Source Token Sets are ignored when creating new styles/variables, but reminds the plugin to include the resolved values to enabled Token Sets that are references them.
Tokens in Sets with a Source status are not intended to be directly applied to design elements.
For example, you are creating a new Token Set for a brand
called vanilla
. You'll want to have the Token Set for primitive-colors
with a status of Set as Source so you have all the colors in your primitives available to reference in your new brand Color Tokens.
The Position of your Token Sets in the plugin can configured to organize them in any way that suits you. However, the position also has some functional implications for the way the plugin passes information through your Token Structure.
Recall that Token Names within each Token Set must be unique. Token Names in different Token Sets can be identical, which provides the basis of Theming.
If you have more than one enabled Token Set with the same Token Names, how does the plugin know which Value it should pay attention to?
The position of the Token Set!
The lowest Enabled Token Set in your list will override the values from the sets higher on the list.
This allows for a cascading system of defaults and overrides, similar to CSS specificity.
You can change the order by dragging and dropping the Token Set to a new location.
Hover or select the Token Set to reveal the re-order icon to the left of the name.
With the Token Set selected, drag it to the desired position.
You might have to do this slower than expected due to known issues with this functionality.
If you are using folder names, you can follow the same steps to reorder folders of Token Sets. It helps to close the folders when dragging.
The actions at the top of the Tokens Page control how the Plugin displays the Tokens Sets and Design Tokens below.
The first action on the left will toggle the left sidebar section below it to hide or show the Token Sets within it.
It's super handy for when you need more space to work with your Design Tokens!
However, to navigate to a new Token Set to see its Design Tokens, you'll need to expand the sidebar to see the list of Token Sets. The plugin is also does not show the name of the current Token Set anywhere else, so be mindful of where you are while you are working.
From the Tokens Page of the Plugin, the New Set action is at the bottom of the Token Set list (left-side navigation panel).
Select the New Set button.
Give the Set a unique name.
Select Create to save your new Token Set.
Or, choose Cancel to close the modal without creating a new Set.
You can duplicate a Tokens Set, which will also duplicate all of its Tokens.
Navigate to the Token Set you wish to duplicate.
Right click on the name of the Token Set.
Select Duplicate.
Give the Set a unique name.
Select Save to finish duplicating your Token Set.
Or, choose Cancel to close the modal without duplicating.
The new Token Set will appear directly below the Token Set you duplicated.
The plugin should automatically navigate you the new Token Set you just duplicated, however, you should always double-check before editing.
The current Token Set showing in the plugin has an accent color highlighting the name in the left-hand list.
To delete a Token Set, right click on the current name of the Set, located in the left side panel of the Tokens page in the plugin.
Select Delete.
Enter the new name in the input.
The current name will appear in the modal heading for reference.
Select Change to save your new name.
Select Cancel to close the modal without changing the current name.
Anytime you make changes to the Token Sets in your project, the Plugin is updating the code files under the hood. If you are syncing your Tokens to a remote storage provider, the plugin will remind you to push your changes.
When you open the Commit Changes modal, you can navigate to the Diff View which will show you the Token Set changes that were made:
New Token Set names appear first with all Tokens within it listed below.
Removed Token Set names appear next with all Tokens within it listed below.
The $metadata
file may show a configuration change as adding, removing, and reordering Token Sets changes the position of all other Token Sets, which impacts the functional way the Token Data behaves.
Select a question below to view the answer.
Mentioned in this doc:
None yet!
color
as the Token Type.#b1f1cb
with a different application depending on the Token Type that is defined. The concept of Design Tokens originated at Salesforce, where and coined the term. A good explanation can be found on
"Design tokens are the visual design atoms of the design system — specifically, they are named entities that store visual design attributes. We use them in place of hard-coded values (such as hex values for color or pixel values for spacing) in order to maintain a scalable and consistent visual system for UI development." -
The specifications for this common language can be found on the and business groups pages, which are managed by the (also referred to as DTCG throughout our docs).
A Design Token, according to the , is:
When you sync Design Tokens to an external code repository, engineers can see your design decisions in code as platform-agnostic Tokens. Using a tool like , they can transform the Design Tokens into any programming language or tool-specific code they need.
→
→
The Tokens Studio Team is collaborating with , an open-source alternative to Figma, to build a native solution to work with Design Tokens in a design tool.
→
Style Dictionary is most popular tool for transforming Design Tokens into development-ready code. While Style Dictionary was created by Danny Banks at Amazon, in August 2023 the Tokens Studio team, lead by Joren Broekema, officially joined the effort to grow the functionality of Style Dictionary. →
→
You can change the e-mail of your Tokens Studio account at Once logged in, you can choose 'Edit billing' in the left panel. You can update the billing information, including the e-mail. Note: this e-mail is not linked to the actual access to the Pro features in the plugin, but only for the account page and billing related communication.
→
→
The hard-coded values define what the design decision is, and the specifications for what values are accepted for each Token Type is defined by the .
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
Tokens Studio Plugin GitHub -
You might recall from our that the type
determines what Values are acceptable.
Before you jump into the technical docs for each Token Type, you may want to review the that will help strengthen your knowledge.
Official Token Types are listed in the
Tokens Studio will continue to support unofficial Token Types for now. We've already built a conversion into our SD-transforms script; .
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Remove composition tokens
Expand Token Types -
→ More information on CORS can be found .
Asset
is not yet an official Token Type in the W3C DTCG specifications, but there is mention of a 'File' Token Type under consideration ().
→
CORS information -
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
Design in Figma -
MDN Web Docs -
Katie Cooper demo's Asset Tokens during the How to Leverage Tokens Studio to level up your Design System presentation -
Tokens Studio Plugin GitHub -
In code, , so you can think of a Token Set as the no-code version of a JSON file.
The new Token Set will appear at the bottom of your list or folder, depending on if you used flat or folder names ().
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Enhance Token and Token Set Organization -
Import Read Only Token Sets -
color
as the Token Type.✓
Can be a Property of border
, shadow
color
color
color
✓
Composite
typography
typography
typography
✓
Property of typography
fontFamilies
and fontFamily
fontFamily
fontFamily
✓
Property of typography
fontWeights
and fontWeight
fontWeight
fontWeight
✓
Property of typography
fontSizes
and fontSize
fontSize
fontSize
✓
Property of typography
lineHeights
and lineHeight
lineHeight
NA
✓
Property of typography
letterSpacing
dimension
dimension
X
Property of typography
(in TS, not DTCG)
paragraphSpacing
dimension
dimension
X
Property of typography
(in TS, not DTCG)
textCase
textCase
NA
X
Property of typography
(in TS, not DTCG)
textDecoration
textDecoration
NA
✓
Can be a Property of border
, shadow
, typography
dimension
dimension
dimension
✓
number
number
number
✓
Composite
border
border
border
✓
Composite
boxShadow
shadow
shadow
X
borderRadius
dimension
dimension
X
borderWidth
dimension
dimension
X
spacing
dimension
dimension
X
sizing
dimension
dimension
X
asset
asset
NA
X
boolean
boolean
NA
X
text
content
NA
X
other
other
NA
X
opacity
opacity
NA
X
composition
each type in the composition is added individually
NA
Color Modifiers allow you to easily create consistent, scalable color systems by adjusting and blending colors with fine-grained control within Tokens Studio.
Modifying your Color Tokens is a powerful way to create dynamic color schemes.
For example:
Generate a color ramp from a single 'base color'.
Introduce subtle variations between interactive states.
In the Color Token form, define your Token Name and assign the Token Value by referencing another Color Token.
Select the Add new modifier button on the right side of the Modify label.
Choose your desired color space:
LCH
SRGB
P3
HSL
Choose your desired modifier
Define the modification amount by entering in a number between 0
and 1
based on your desired effect.
Be sure to Save your new modified Color Token
You can also use the Color Modifier (pro feature) with the Color Picker tool in the plugin by Selecting the color swatch to the left of the Token Value Input.
The plugin currently supports four popular types of modifications to Color Tokens.
Increases the lightness (luminosity) of the base color by your chosen value.
Reduces the lightness (luminosity) of the base color by your chosen value.
Adjusts the opacity of the base color by your chosen value, often reducing it to make the color more transparent.
Combines your base color with another color, allowing you to control the proportion of each color in the mix.
The lighten modifier increased the lightness (luminosity) of the base color by defining a numeric value that represents a percentage of adjustment.
0
= no change in lightness (0%)
0.5
= 50% increased lightness
1
= 100% increased lightness,
which significantly increases the lightness but does not necessarily make the color white.
The maximum lightness is usually capped to maintain the integrity of the color's hue and saturation.
The darken modifier reduces the lightness (luminosity) of the base color by defining a numeric value that represents a percentage of adjustments.
0
= no change in lightness (0%)
0.5
= 50% reduced lightness
1
= 100% reduced lightness,
which significantly darkens the color, but does not necessarily make the color black.
The maximum darkness is usually capped to maintain the integrity of the color's hue and saturation.
The alpha modifier adjusts the opacity of the base color by defining a numeric value that represents a percentage of adjustment for fine-grained control of transparency.
0
= fully transparent (0%), making the color invisible
0.5
= 50% opacity, making the color semi-transparent
1
= full opacity (100%), the color appears 'solid'
The mix modifier combines the base color with another color token by defining a numeric value that represents the proportion of the mix for fine-grained control over the balance between the two colors.
0
= only the base color (0% of the mixed color)
0.5
= an equal mix of both colors (50% base color, 50% mixed color)
1
= only the mixed color (100% of the mixed color)
There are some known limitations with Modified Color Tokens.
Figma Variables does not support Modified Colors, as they aren't able to resolve the value of these sorts of 'dynamic references'.
The plugin will Export your Modified Color Tokens as Color Variables which will show their Resolved Values in hex codes, which Figma can support. Changes you make to these Tokens in the plugin will also update to the connected Variable when you Export your changes.
Today, we have to resolve your Modified Colors into Hex when Exporting to Figma, and to align with the current definition of Color Tokens in the W3C DTCG specification.
When transforming Color Tokens that have been modified, there are specific configurations to be aware of.
SD-Transforms generic package includes a specific transform to convert Tokens Studio modified colors to their resolved color values.
You can add an optional transform to convert Tokens Studio modified colors to a specific format
, for example e.g. hsl
which will ensure that the resolved color value will be formatted as the resolved value in HSL.
There's also a global option which allows you to set the color format once for all colors that have a modifier, so you don't have to set this for every token individually.
Tokens Studio uses the ColorJS.io library for the implementation of modified colors.
Mentioned in this doc:
HSLA calculated color values are incorrect
Choosing HSLA in the color picker converts the Token to RGBA
Unexpected results when renaming borderRadius Tokens
Angle of the gradient in degrees (deg for short).
Two or more colors.
The position of each color in percentage.
0%
is the start
100%
is the end
Here's an example of how to write the value of a linear gradient with two stops that appear to change colors diagonally (on a 45 degree angle).
To add additional color stops, add them between the round brackets, being sure to define the color value and the position as a percentage.
Here is the same example with a third color stop added exactly at half way between (50%).
You can also Import Color Styles of gradients you've created in Figma to see how they are written in the plugin.
Like Color Tokens with a single value, you can reference another Token in your gradients by adding curly brackets { } around the Token name you want to reference.
Here's an example of a linear gradient with two stops, with colors that appear to change horizontally from light to dark gray:
Like Color Tokens with a single value, you can write the value of your gradients to have colors with reduced opacity by defining each color stop in RGBA.
RGBA colors use a unitless number to define the alpha value, converted into a percentage in Figma. For example:
1
= 100% opacity
0.4
= 40% opacity
0.06
= 6% opacity
Here's an example of a linear gradient with two stops, with colors that appear to change vertically from light with 40% opacity 0.40
to dark gray with 100% opacity 1
:
This also works when your colors are defined as hard-coded values instead of referencing another Token.
Gradients are Color Tokens with multiple values, and can be Exported to Figma as Color Styles. Tokens Studio also supports Styles with Variable References.
Here are some tips for creating Color Styles with Variable References using the Plugin.
When you Export to Figma as Color Styles, select these Options from the menu to create Color Styles with Variable References:
The option for Color styles
is selected.
The option for Create styles with variable references
is selected.
Themes and Token sets where the gradients are located are active
.
Themes and Token sets where the variables are attached are reference only
.
Note that if the Tokens referenced include modified colors that haven't been resolved, the connection to the Variable will not work as expected.
For example, a Token included in the gradient written as rgba({colors.gray.900, 0.5)
will not be connected to the colors.gray.900
variable because the Plugin has not yet resolved the value, written as a 50% opacity in RGBA.
You could create a new Token, for example, gradient-stop
with a value of rgba({colors.gray.900, 0.5)
, then reference the {gradient-stop}
Token in the gradient value instead.
Linear - Supported
Radial - Requested
Conic - Requested
Positioning a gradient on a layer
As design Tokens are intended to be used in code, we are not able to control the position of a gradient on a layer within the plugin in the same way you can in Figma.
The plugin is only able to store the degree of the gradient.
Without any translation information, the positioning of the gradient on a layer cannot be accurately determined.
By default, the plugin applies the gradient to the "edges" of the design element you select when applying the Token.
Today the Plugin isn't able to capture your Variable References when importing your Gradient Color Styles from Figma. It will create the Token with with resolved values as Hex codes.
However, Tokens Studio has yet to support Gradients as an independent Token Type. It is on our radar as we work towards more closely aligning with the DTCG spec.
When transforming Color Tokens with gradient values, there are specific configurations to be aware of.
The SD-Transforms generic package will convert color Token values with Figma's "hex code RGBA" into actual rgba()
format for CSS.
Color Tokens with gradient values are technically a composite Token as it contains multiple values. Composite Tokens require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
None yet!
Gradients with values in the HSL and P3 color spaces aren't working as expected.
Color Tokens define solid, reduced transparency, or gradient colors in a color space of your choice.
Color Tokens define the visibility and emphasis of design elements, ensuring we can read text easily, see the difference between objects in the background and foreground, and help us identify what we should pay attention to.
Many of the properties supported by this token are individually defined in CSS.
Color Tokens can be used to define these design properties:
Fill color
Border color
Shadow color
Depending on how you define the Value of your Color Tokens you can achieve:
Solid color
Values written with full opacity
For example, a Hex color that is black #000000
Reduced opacity
Values written with reduced opacity
For example, an RGBA color that is black at 10% opacity rgba(0,0,0,0.1)
Gradients
Multiple color values with their position, direction, and angle defined
Modified colors (pro feature)
Adjusting the value of a base color using a specific operation, like lighten or darken.
Using the plugin for Figma, you can define your Color Tokens in the following color spaces:
Solid colors
Hex: #ff0000
RGB: rgb(255, 0, 0)
Reduced opacity with alpha values
RGBA: rgba(255, 0, 0, 1)
ARGB: #80FFFF00
(also known as Hex8)
HSLA: `hsla(120, 50%, 50%, 1)
Modified colors - Pro feature
LCH
SRGB
P3
HSL
When trying to reference another Token as the Value for a Color Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = color
After you've created Color Tokens, they can be referenced in another Color Token and composite Tokens with a color property defined:
Like all tokens in the plugin, you can Create a Color Token by opening its Create New Token form and defining the Token Name and Value.
However, Color Tokens can also be created using a Color Picker, accessible by selecting the color swatch to the left of the Token Value Input.
Defining the Value of your Color Token as RGBA
, HSLA
or ARGB
allows you to use the alpha value built into these color spaces.
The alpha modifier adjusts the opacity of the color.
In RGBA
and HSLA
the alpha value is defined as a numeric value that represents a percentage of adjustment for fine-grained control of transparency.
0
= fully transparent (0%), making the color invisible
0.5
= 50% opacity, making the color semi-transparent
1
= fully opaque (100%)
For example, if you want a Color Token that is black with a 25% opacity you would write the value of the token to be:
or
The ARGB
format is sometimes called "Hex 8" by developers because it uses 8 hexadecimal digits: the first two digits represent the alpha (opacity) channel, and the next six digits represent the RGB color channels.
If we were to write the same Color Token that is black with a 25% opacity in ARGB it's value would be:
You can reference an existing Token as a part of an RGBA or HSLA Token Value to create a reduced opacity version of that Token.
For example:
Creates a new token which references the grey.900
Color Token with only 6% opacity.
It's also possible to write your RGBA or HSLA Token Value by referencing a Color Token and a unitless Number Token in the value.
For example, a Number Token called brand.opacity.border.default
with a value of 0.06
would be added to the example above:
Ensure you are using a unitless Number Token!
The Opacity Token Type in the plugin is intended for layer visibility in Figma only, not for use in Color Tokens as a modifier.
The opacity can be defined in the color picker by:
Typing the alpha value between 0 and 1 in the last input.
Adjusting the second slider which controls the alpha value.
Select a card below to jump to its guide.
A Color Token defines the color styling of text, polygonal shape, frames, groups or graphic elements in Figma when the Token is applied.
You can apply the Token to fill the element with its value, or change its stroke color.
With one or more elements selected in Figma, right-click on the name of your chosen Color Token in the Plugin to see the it's options. Select your desired design property by clicking on it to apply the Token.
The Color Token has a special feature on the Tokens Page of the plugin, which allows you to toggle between a list or grid view.
This can be especially helpful if you need to see your Token Names while working in the plugin.
Color Tokens can be Exported to Figma as Color Styles. Tokens Studio also supports Styles with Variable References.
Here are some tips for creating Color Styles with Variable References using the Plugin.
When you Export to Figma as Color Styles, select these Options from the menu to create Color Styles with Variable References:
The option for Color styles
is selected.
The option for Create styles with variable references
is selected.
Themes and token sets where the referenced Tokens are located are active
.
Themes and token sets where the variables are attached may need to be configured as reference only
.
When transforming Color Tokens with gradient values, there are specific configurations to be aware of.
The SD-Transforms generic package will convert color token values with Figma's "hex code RGBA" into actual rgba()
format for CSS.
Mentioned in this doc:
When the value of a Color Token with reduced opacity includes a reference to another Color Token which has reduced opacity, the resolved value is incorrect.
Dimension Tokens define the size, space, radius, or position of a design element as a numeric value with a unit of measurement.
The primary difference between a Number Token and a Dimension Token is a unit of measurement.
Number tokens are intended to be unitless.
For example: 4
Dimension Tokens are required to have a unit of pixels
or rem
.
For example: 4px
The Dimension Token is used for design decisions requiring a distance and unit of measurement for a specific property of a design element.
Many of the properties supported by this token are individually defined in CSS.
Dimension Tokens can be used to define these design properties in Figma:
size
space
border-radius and width
absolute position location
background blur effects
This is a great way to define tokens that might be used in various use cases, such as a sizing scale applied to text elements, icons, and containers.
Dimension Tokens support responsive and static design properties:
Responsive - value in rem units
Example: 2rem
applied as a min-height property on an auto-layout frame applies a 32px min-height value to the frame
Static - value in pixels
Example 32px
applied as border-radius rounds the corner of a frame to 32px
According to the W3C DTCG specification, the value of a Dimension Token must include a numeric value and a unit of measure, either Pixels (px) or Rems (rem).
The syntax used to write numeric values for Dimension Tokens is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
Dimension Tokens require a number and a unit of measurement without any spaces as the value. For example:
16px
1rem
Avoid between the number and the unit. For example:
16 px
1 rem
Unitless numbers are not allowed. For example:
16
Negative numbers are supported but may not apply to all design properties.
For example, -4px
would work for a spacing
property but not as a border radius
property.
To support responsive design, you can define your Dimension Token in rem units, and the plugin automatically converts the value to the pixel equivalent when applying the Token in Figma.
For example, a Dimension Token with a value of 1rem
, when applied as a will appear as 16px
in Figma.
When you have design elements that should remain static even when users change their preferences, the Dimension Token value can be defined in pixel units.
The plugin only supports Dimension Tokens in pixels or rem units, to align with the W3C DTCG specification.
We do not support:
percentage (%)
em units
When trying to reference another Token as the Value for a Dimension Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = dimension
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example, if you want to reference a Number Token without a unit, you can force the reference by adding the token name, followed by the required unit for a Dimension Token.
Select the card below to jump to the technical docs for more information.
After you've created Number Tokens, they can be referenced in another Number Token and several compatible Token Types.
A Dimension Token can define the numeric value and unit of measurement of several design properties when applied to frames, groups or graphic elements in Figma.
With one or more elements selected in Figma, right-click on the Dimension Token Name in the Plugin to see the design property options.
Select your desired design property by clicking on it to apply the Tokens value instantly.
The spacing property defines the distance between layers of an auto-layout frame in Figma when the Dimension Token is applied.
For independent styling per side, you can repeat the steps above and apply different Dimension Tokens to each position of the same design element.
The Sizing property defines the width or height of polygonal shape, frames, groups or graphic elements in Figma when the Dimension Token is applied.
For independent styling per side, you can repeat the steps above and apply different Dimension Tokens to each position of the same design element.
The Border Radius property defines the corner roundness of polygonal shape, frames, groups or graphic elements in Figma when the Token is applied.
For independent corner styling, you can repeat the steps above and apply different Dimension Tokens to each corner position of the same design element.
A Border Width property defines the thickness of the stroke applied to text layers, polygonal shapes, frames, groups or graphic elements in Figma when the Dimension Token is applied.
For independent border styling, you can repeat the steps above and apply different Dimension Tokens to each side of the same design element.
The Background Blur property of the Dimension Token defines the intensity of the Layer Blur Effect in Figma when the Token is applied in Figma.
The Background Blur property must be applied to container design elements, like frames, groups, and polygonal shapes with a reduced opacity color fill applied.
The x position and y position properties of the Dimension Token define the absolute position of the design element when the Token is applied in Figma.
X Position
The element is absolutely positioned on the horizontal axis in relationship to the parent container.
If no parent container is present, it positions the element on the Figma canvas.
Y Postion
The element is absolutely positioned on the vertical axis in relationship to the parent container.
If no parent container is present, it positions the element on the Figma canvas.
Dimension Tokens are a relatively new addition to the W3C DTCG specification, which defines this token as being applied to many different design properties.
If we want to fully align with the spec, it requires Tokens Studio to phase out the following unofficial Token Types, which we introduced long before the Dimension Token was added to the spec:
When transforming Dimension Tokens, there are specific configurations to be aware of.
Token Values entered as a number without a unit converted to a number with pixels as a unit.
Token Values entered with math equations need to be checked and resolved.
Running the SD-Transforms pre-processor as part of the generic package will prep your Dimension Tokens for Style Dictionary.
Mentioned in this doc:
Figma resources:
None yet!
Figma is natively halving/doubling their background blur effect values, creating a disconnect between tokens managed by Token Studio and any parsed output.
Known CSS quirk which can be solved with a custom Style Dictionary transform
None yet!
Add elevation and depth to design elements by composing several shadow-related design decisions into a single Box Shadow Token.
Each design decision (color, spread, blur, offeset) that is a part of a Composite Token is referred to as a property of the Box Shadow Token in our guides.
While the Token Type label is specific to Box Shadow, this Token supports Inner Shadow and Drop Shadow design decisions.
Each property composed to create the shadow can be defined as it's own Token and referenced within the Box Shadow Composite Token:
X
Y
Blur
Spread
Shadow color
Like all Composite Tokens, you define the value of each property individually.
When you create the Box Shadow Token in the plugin, you can reference each Token you've already created as a property or enter a hard-coded value.
In the plugin, use the UI button to select between drop shadow
or inner shadow
.
The dedicated Token Type of each property within the Box Shadow Token has unique specifications, described in detail in their own technical docs.
You can add another shadow layer to the current token by selecting the plus icon button in the Box Shadow Token form.
When you apply the Box Shadow Token to your design element in the Figma UI, you will see multiple shadow effects applied, one for each shadow layer you created within your token.
When you export a multiple-layer Box Shadow Token to Figma as a Style, you will see a single Effect Style applied, with multiple shadow effects within its value.
If you'd prefer to reference an existing Box Shadow Composite Token as the value instead of defining each Property, select the Token's Reference mode button (2x2 circle icon).
When trying to reference another Token as the Value for a Box Shadow Token, you will see Tokens in the dropdown list that are:
Lving in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
boxShadow
Box Shadow Tokens defines the inner or outer shadow styling of text, polygonal shape, and frame layers in Figma when the Token is applied.
With one or more elements selected in Figma, click on the name of your chosen Box Shadow Token in the Plugin to instantly apply its value.
Box Shadow Tokens can be attached to Effect Styles in Figma. Tokens Studio also supports Styles with Variable References.
Here are some tips for creating Effect Styles with Variable References using the Plugin.
When you Export to Figma, select these Options from the menu to create Effect Styles with Variable References:
Effect Styles
is selected.
Number
and Color Variables
are selected.
Create styles with variable references
is selected.
Ensure your Export to Figma as Themes or Sets configuration includes all necessary Tokens.
Themes and token sets where the referenced Tokens are located are active
.
Themes and token sets where the variables are attached may need to be configured as reference only
.
You'll notice the Effect Style will be created on Export, with all possible values mapped to the appropriate Variables, based on the Token Type for each property:
color
(will create as color variable)
dimension
(number variable)
number
(number variable)
The plugin had Box Shadow support long before the spec defined the shadow
token, and as a result, we have some legacy decisions which do not completely align with the DTCG spec.
We write the type
as BoxShadow
where the spec writes it as shadow
.
When you run the SD-Transforms npm package we will adjust this automatically to match the specification, details below.
The Plugin currently supports number
Tokens in numeric value properties.
The spec requires dimension
values only.
When transforming Box Shadow Tokens, which are a Composite Token there are specific configurations to be aware of.
Composite Tokens require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of boxShadow
to align with the DTCG Format Token Type of shadow
.
The innerShadow
properties need to be transformed to inset
to be CSS compatible.
Mentioned in this doc:
None yet!
UI issue where the dropdown menu needs repositioning.
Removing one shadow from a Token with many shadows combined does not remove the deleted shadow from the array in the JSON file.
Alignment with the W3C DTCG format for shadow
token type
Add visual separation to design elements by composing several stroke-related design decisions as a single Border Token.
Each design decision (color, border width, and stroke style) that is a part of the Composite Token is referred to as a property of the Border Token in our guides.
The Border Token defines the stroke styling properties for containers, text elements, and polygonal shapes.
Each property composed to create the Border can be defined as it's own Token and referenced within the Border Composite Token:
Color
Border Width
Stroke Style
Like all Composite Tokens, you define the value of each property individually.
When you create the Border Token in the plugin, you can reference each Token you've already created as a property or enter a hard-coded value.
The dedicated Token Type of each property within the Border Composite Token has unique specifications, described in detail in their own technical docs.
Stroke Style defines the line shape. It's value is written as a string depending on your desired style.
solid
creates a continuous line.
dashed
creates a line of many small sections.
You can adjust the fine-grained settings for the dash using the Figma UI as there currently isn't a Token Specification for it.
Tokens Studio does not have a dedicated Token Type for Stroke Style at this time.
If you'd prefer to reference an existing Border Composite Token as the value instead of defining each Property, select the Token's Reference mode button (2x2 circle icon).
When trying to reference another Token as the Value for a Border Token, you will see:
Tokens living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
border
A Border Token defines the stroke styling of text, polygonal shape, frames, groups or graphic elements in Figma when the Token is applied.
You can apply a Border Token to all sides of the design element at once, or each side independently.
With one or more elements selected in Figma, right-click on the Border Token Name in the Plugin to its options.
Select your desired design property by clicking on it to apply the Tokens value instantly.
For independent border styling, you can repeat the steps above and apply different Border Tokens to each side of the same design element.
Tokens Studio has approached our Border Token differently than how it is defined in the current W3C spec:
We allow the borderWidth
property to be a number
or dimension
Token Type where the spec defines only dimension
.
We allow unitless numbers where the spec defines a dimension property
which must include a unit.
The spec allows for a dedicated borderStyle
Token Type, which we do not yet support.
As we move towards more closely aligning with the W3C DTCG specifications, we may adjust the Border Composite Token in the future.
When transforming Border Tokens, which are Composite Tokens, there are specific configurations to be aware of.
Composite Tokens require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
If the borderWidth
property is entered as a number without a unit, the ts/size/pxx transform will convert the value to a number with pixels as a unit.
Mentioned in this doc:
None yet!
The string value Dashed
or DASHED
does not work as expected, only dashed
is accepted.
Applying independent borders with different colors does not work as expected.
The Border Width Token was one of the first token types we supported in the plugin.
Since then, a lot has changed.
The Design Tokens Community Group (DTCG) hosts a Token specification on the W3C community group pages for web standards. Although it's in draft form, the tools and technologies working with Design Tokens are trying to align with the W3C DTCG specification.
If we want to fully align with the spec, it requires Tokens Studio to phase out the Border Width Token. However, we believe the choice should be yours!
If aligning with the W3C DTCG spec is important to your project, we suggest using Dimension Tokens instead.
If you love Border Width Tokens and want to make your voice heard, we've set up a forum in our feedback tool where you can leave your comments! Hopefully with enough support the DTCG may reconsider having Border Width as its own Token Type.
The Border Width Token defines the thickness of a stroke around a design element, such as:
Container design elements, like frames, groups, and polygonal shapes.
Text elements.
The Border Width Token supports numeric values:
With or without a unit.
Single and multi-value.
The syntax used to write values for Border Width Tokens is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
For example:
Rem units (rem)
To support responsive design, you can define your Border Width Token in rem units
, and the plugin automatically converts the value to the pixel equivalent when applying the Token in Figma.
For example, a Border Width Token with a value of 0.25rem
will appear as a 4px
thick stroke in Figma.
When you have design elements that should remain static even when users change their preferences, Border Width Tokens can be defined in pixel units.
For example 4px
.
When trying to reference another Token as the Value for a Border Width Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = borderWidth
number
dimension
A Border Width Token defines the thickness of the stroke applied to text layers, polygonal shapes, frames, groups or graphic elements in Figma when the Token is applied.
You can apply a Border Width Token to all sides of the design element at once, or each side independently.
Select one or more elements with a stroke already applied in Figma, then right-click on the Border Width Token Name in the Plugin to see the it's options.
Select your desired design property by clicking on it to apply the Token's value instantly.
For independent border styling, you can repeat the steps above and apply different Border Tokens to each side of the same design element.
When transforming Border Width Tokens, there are some specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of borderWidth
to align with the DTCG Format Token Type of dimension
.
Token Values entered as a number without a unit will be converted to a number with pixels as a unit.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
None yet!
Border Radius was one of the first Token Types we supported in the plugin.
Since then, a lot has changed.
The Design Tokens Community Group (DTCG) hosts a Token specification on the W3C community group pages for web standards. Although it's in draft form, the tools and technologies working with Design Tokens are trying to align with the W3C DTCG specification.
If we want to fully align with the spec, it requires Tokens Studio to phase out the Border Radius Token. However, we believe the choice should be yours!
If aligning with the W3C DTCG spec is important to your project, we suggest using Dimension Tokens instead.
If you love Border Radius Tokens and want to make your voice heard, we've set up a forum in our feedback tool where you can leave your comments! Hopefully with enough support the DTCG may reconsider having Border Radius as its own Token Type.
Border Radius defines the corner roundness of a design element, such as frames, groups, or polygonal shapes.
The Border Radius Token supports numeric values with or without a unit.
The syntax used to write values for Spacing Tokens is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
For example:
Rem units (rem)
To support responsive design, you can define your Border Radius Token in rem units
, and the plugin automatically converts the value to the pixel equivalent when applying the Token in Figma.
For example, a Border Radius Token with a value of 1rem
will appear as a 16px
corner radius in Figma.
When you have design elements that should remain static even when users change their preferences, Border Radius Tokens can be defined in pixel units.
For example, 4px
.
When trying to reference another Token as the Value for a Border Radius Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = borderRadius
number
dimension
You can define the value of a Border Radius Token to mimic how multi-value Border Radius properties are written in CSS.
When you click to apply the token value (without right-clicking), the plugin will apply the border radius based on the number of values in your token.
Single value - For example, 10px
Applies the value to all corners.
Two values - For example, 8px 64px
The first value is applied to the radii on the top and bottom.
The second value is applied to the radii on the right and left.
Three values - For example, 16px 8px 32px
The first value is applied to the radius on the top.
The second value is applied to the radii on the right and left.
The third value is applied to the radius on the bottom.
Four values - For example, 2px 4px 8px 16px
The first value is applied to the radius on the top.
The second value is applied to the radius on the right.
The third value is applied to the radius on the bottom.
The fourth value is applied to the radius on the left.
You can also write multiple value Border Radius Tokens with references. For example, {radius.sm} {radius.md}
.
Figma does not support Variables with multiple values!
If you export your Tokens to Variables in Figma, multiple value Tokens will be skipped, as Figma only supports single values.
A Border Radius Token defines the corner roundness of polygonal shape, frames, groups or graphic elements in Figma when the Token is applied.
You can apply a Border Radius Token to all sides of the design element at once, or each side independently.
With one or more elements selected in Figma, right-click on the Border Radius Token Name in the plugin to see the its options.
Select your desired design property by clicking on it to apply the Tokens value instantly.
When transforming Border Radius Tokens, there are some specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of borderRadius
to align with the DTCG Format Token Type of dimension
.
Token Values entered as a number without a unit will be converted to a number with pixels as a unit.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
None yet!
Spacing was one of the first Token Types we supported in the plugin.
Since then, a lot has changed.
The Design Tokens Community Group (DTCG) hosts a Token specification on the W3C community group pages for web standards. Although it's in draft form, the tools and technologies working with Design Tokens are trying to align with the W3C DTCG specification.
If we want to fully align with the spec, it requires Tokens Studio to phase out the Spacing Token. However, we believe the choice should be yours!
If aligning with the W3C DTCG spec is important to your project, we suggest using Dimension Tokens instead.
If you love Spacing Tokens and want to make your voice heard, we've set up a forum in our feedback tool where you can leave your comments! Hopefully with enough support the DTCG may reconsider having Spacing as its own Token Type.
Spacing defines the distance between design elements.
The Spacing Token supports numeric hard-coded values with or without a unit. You can also enter negative numeric values to achieve a 'stacked' appearance. You can also enter a string value of AUTO
to support Figma's approach to space-between
.
The syntax used to write values for Spacing Tokens is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
For example:
Rem units (rem)
To support responsive design, you can define your Spacing Token in rem units
, and the plugin automatically converts the value to the pixel equivalent when applying the Token in Figma.
For example, a Spacing Token with a value of 0.5rem
will appear as a 8px
in Figma.
When you have design elements that should remain static even when users change their preferences, Spacing Tokens can be defined in pixel units.
For example 4px
.
The plugin supports a string value of AUTO
to match Figma's unique way of defining the CSS property of justify-content: space-between
in their Auto Layout feature.
When trying to reference another Token as the Value for a Spacing Token, you will see
Tokens living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = spacing
number
dimension
You can define the value of a Spacing Token to mimic the way multi-value spacing properties are written in CSS.
When you click to apply the Token Value (without right-clicking), the plugin will apply spacing based on the number of values in your token.
Single value - For example, 10px
Applies the value to the Gap
property.
Two values - For example, 8px 64px
The first value is applied as padding to the top and bottom.
The second value is applied as padding to the right and left.
Three values - For example, 16px 8px 32px
The first value is applied as padding to the top.
The second value is applied as padding to the right and left.
The third value is applied as padding to the bottom.
Four values - For example, 2px 4px 8px 16px
The first value is applied as padding to the top.
The second value is applied as padding to the right.
The third value is applied as padding to the bottom.
The fourth value is applied as padding to the left.
You can also write multiple value Spacing Tokens with references. For example, {space.sm} {space.md}
.
Figma does not support Variables with multiple values!
If you export your Tokens to Variables in Figma, multiple value Tokens will be skipped, as Figma only supports single values.
A Spacing Token defines the distance between layers of an auto-layout frame in Figma when the Token is applied.
You can apply a Spacing Token to all design properties at once, or each independently.
Select one or more auto-layout elements in Figma, right-click on the Spacing Token Name in the Plugin to its options.
Select your desired design property by clicking on it to apply the Tokens value instantly.
When transforming Spacing Tokens, there are some specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of spacing
to align with the DTCG Format Token Type of dimension
.
Token Values entered as a number without a unit will be converted to a number with pixels as a unit.
Mentioned in this doc:
None yet!
Exporting to variables when the Spacing Token value is AUTO
creates a 0
value.
Number Tokens define the numeric value of several design properties that don't require a unit of measurement.
The primary difference between a Number Token and a Dimension Token is a unit of measurement.
Number tokens are intended to be unitless.
For example: 4
Dimension Tokens are required to have a unit of pixels
or rem
.
For example: 4px
The Number Token is used for design decisions with a numeric value that doesn't benefit from a unit of measurement. For example:
Math equations to create scales
A -90
degree rotation of an image filling the background of a hero section of a website.
Number Tokens can define these design properties in Figma; however, many of these properties benefit from a unit of measurement, and a Dimension Token is preferred:
rotation
background blur
absolute position location
size (Dimension Token preferred)
space (Dimension Token preferred)
border-radius and width (Dimension Token preferred)
The syntax used to write numeric values for Number Tokens is important.
Number Tokens require a unitless number as the value. For example:
16
A number with a unit should not be used. For example: 16px
When trying to reference another Token as the Value for a Number Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = number
After you've created Number Tokens, they can be referenced in another Number Token and several compatible Token Types.
A Number Token can define the numeric value of several design properties when applied to frames, groups or graphic elements in Figma.
With one or more elements selected in Figma, right-click on the Number Token Name in the Plugin to see the design property options.
Select your desired design property by clicking on it to apply the Tokens value instantly.
The spacing property defines the distance between layers of an auto-layout frame in Figma when the Number Token is applied.
For independent styling per side, you can repeat the steps above and apply different Number Tokens to each position of the same design element.
The Sizing property defines the width or height of polygonal shape, frames, groups or graphic elements in Figma when the Number Token is applied.
For independent styling per side, you can repeat the steps above and apply different Number Tokens to each position of the same design element.
The Border Radius property defines the corner roundness of polygonal shape, frames, groups or graphic elements in Figma when the Token is applied.
For independent corner styling, you can repeat the steps above and apply different Number Tokens to each corner position of the same design element.
A Border Width property defines the thickness of the stroke applied to text layers, polygonal shapes, frames, groups or graphic elements in Figma when the Number Token is applied.
For independent border styling, you can repeat the steps above and apply different Number Tokens to each side of the same design element.
The Background Blur property of the Number Token defines the intensity of the Layer Blur Effect in Figma when the Token is applied in Figma.
The Background Blur property must be applied to container design elements, like frames, groups, and polygonal shapes with a reduced opacity color fill applied.
The x position and y position properties of the Number Token define the absolute position of the design element when the Token is applied in Figma.
X Position
The element is absolutely positioned on the horizontal axis in relationship to the parent container.
If no parent container is present, it positions the element on the Figma canvas.
Y Postion
The element is absolutely positioned on the vertical axis in relationship to the parent container.
If no parent container is present, it positions the element on the Figma canvas.
The rotation property defines the numeric degree of rotation on its access when the Number Token is applied to any design element in Figma.
This means you can assign negative values to control the direction of rotation.
Number
is an official Token type in the W3C Design Token Community Group specifications.
Tokens Studio has approached Number Tokens differently than how it is defined in the current W3C spec to align with Figma's number variables more closely.
However, we will be iterating on Number Tokens in the near future to more closely align with the W3C DTCG specifications.
We allow a unit in a Number Token (this will change).
We allow a Number Token to be used with many of the same properties the specification defines as requiring a Dimension Token.
We don't yet require a Number Token in all use cases the spec defines it as a requirement, such as a "gradient stop position."
Number Tokens are a relatively new addition to the W3C DTCG specification, which defines this Token as being applied to many different design properties.
If we want to fully align with the spec, it requires Tokens Studio to phase out several unofficial Token we introduced long before the Number Token was added to the spec:
When transforming Number Tokens, there are specific configurations to be aware of.
Token Values entered as a number without a unit converted to a number with pixels as a unit.
Token Values entered with math equations need to be checked and resolved.
Running the SD-Transforms pre-processor as part of the generic package will prep your Number Tokens for Style Dictionary.
Mentioned in this doc:
None yet!
None yet
None
Sizing was one of the first Token Types we supported in the plugin.
Since then, a lot has changed.
The Design Tokens Community Group (DTCG) hosts a Token specification on the W3C community group pages for web standards. Although it's in draft form, the tools and technologies working with Design Tokens are trying to align with the W3C DTCG specification.
If we want to fully align with the spec, it requires Tokens Studio to phase out the Sizing Token. However, we believe the choice should be yours!
If aligning with the W3C DTCG spec is important to your project, we suggest using Dimension Tokens instead.
If you love Sizing Tokens and want to make your voice heard, we've set up a forum in our feedback tool where you can leave your comments! Hopefully with enough support the DTCG may reconsider having Border Width as its own Token Type.
Sizing defines the height or width of a design element.
The Sizing Token supports numeric values, with or without a unit.
The syntax used to write values for Spacing Tokens is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
For example:
Rem units (rem)
To support responsive design, you can define your Sizing Token in rem units
, and the plugin automatically converts the value to the pixel equivalent when applying the Token in Figma.
For example, a Sizing Token with a value of 2rem
will appear as a 32px
in Figma.
When you have design elements that should remain static even when users change their preferences, Sizing Tokens can be defined in pixel units.
For example 4px
.
When trying to reference another Token as the Value for a Sizing Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = sizing
number
dimension
A Sizing Token defines the width or height of polygonal shape, frames, groups or graphic elements in Figma when the Token is applied.
You can apply a Sizing Token to all sides of the design element at once, or each side independently.
With one or more elements selected in Figma, right-click on the Sizing Token Name in the Plugin to its options.
Select your desired design property by clicking on it to apply the Tokens value instantly.
When transforming Sizing Tokens, there are some specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of sizing
to align with the DTCG Format Token Type of dimension
.
Token Values entered as a number without a unit will be converted to a number with pixels as a unit.
Mentioned in this doc:
None yet!
Opacity Tokens define the transparency of a layer, or how opaque it appears.
Opacity Tokens define a layer's opacity. In Figma, they can be applied to any design element that supports reduced opacity.
For example, you might have a Button that changes opacity when hovered over.
You could create two Opacity tokens:
button.opacity.default
with a value of 1
(fully opaque)
button.opacity.hover
with a value of 0.8
(slightly transparent)
Then, apply the Opacity Tokens to the background container layer of each variation of the Button design.
An Opacity Token can define any level of transparency from fully opaque to fully transparent. The values range from:
1
(layer is fully opaque)
0
(layer is fully transparent)
Any decimal value between 0
and 1
can be used to set varying levels of transparency.
When trying to reference another Token as the Value for an Opacity Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = opacity
You can apply an Opacity Token to change the transparency value of any design element and all of its children layers.
With one or more elements selected in Figma, click on the name of your chosen Opacity Token in the Plugin to apply its value instantly.
When transforming Opacity Tokens, there are specific configurations to be aware of.
For Opacity Token values entered in percentages, the SD-transforms package converts the value from %
to number between 0
and 1
-> ts/opacity
.
Mentioned in this doc:
None yet!
Values entered less than 1% are resolving to 1% in Figma
Ex: 0.1%
will resolve to 1%
Including an Opacity Token in the value of a Color Token produces unexpected results.
We may want to avoid using Opacity Tokens in Color Token values as Figma assigns the Opacity value to layer transparency and not a color modifier.
When Exporting Color Tokens with Opacity Tokens referenced in the value as Color Variables, the Variable is not created as expected.
Likely related to issue 1822 above.
None yet
Text Tokens define entire strings of text that change the written copy of your designs when applied to a text layer.
Text Tokens define the written content in your designs and can be applied to text elements.
Useful for:
UX writing
Creating themes for different languages
Capturing translations
When your product or brand names are still being iterated on
Text Token can have any combination of alpha-numeric values and may include emojis.
Known Issue
Text Tokens with values that are numeric only are not applying as expected.
Hard-coded values of Text Token would be a string of text you define directly.
For example, a Text Token named welcome.message
with the hard-coded value of:
When trying to reference another Token as the Value for a Text Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = text
Nested references
Text Tokens can also reference another Token nested somewhere within the value.
For example, a Text Token with a Name of customer-id
with the hard-coded value of:
When referenced within the value of another Text Token with a Name of app.home-page.title
:
Which would inherit the text content from the customer-id
token and have a resolved value of :
This is a great way to communicate to engineers the design decision to have text content; in this case, the client name comes from a database.
You could even add some notes in the Description of the Token for engineers, like "show the preferred name as the client ID if it exists in the database."
You can apply a Text Token to change the written content of a text layer in Figma when the Token is applied.
With one or more text layers selected in Figma, click on the name of your chosen Text Token in the Plugin to apply its value instantly.
For example, if you select the bounding box that a text layer is in by mistake, the Token is applied to the parent frame and no changes will be made to the text layer as it is a child.
Text is not yet an official token type in the W3C DTCG specifications. Tokens Studio has added Text as an unofficial Token Type to support Figma's String Variable.
When transforming Text Tokens, there are specific transforms to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of text
to align with the Style Dictionary compatible Token Type of content
.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
None yet!
When the value is purely numeric, results are unexpected.
None
Other Tokens allow you to capture design decisions that don't fit into another Token Type.
This provides flexibility to define and use tokens tailored to your specific needs. However, when applied to design elements, they don't interact with the Figma UI in any capacity.
Other Tokens can be used to define almost any design decision that works for you, your project and your team which aren't covered by an existing Token Type. For example:
Notes within your token sets you want to be surfaced to engineers.
Internal documentation.
Creating Tokens you don't want to interact with Figma.
Here are some creative ways the community is using Other Tokens:
Defining the CSS properties, like text alignment
Technical notes on where to find external documentation, like where to download a font family being used in the system.
Math equations referenced in Number or Dimension tokens to ensure they are preserved without cluttering the main token set.
For example:golden-ratio
: 1.618
An Other Token can have any hard-coded value as needed, including:
String
Numeric with units
Numeric without units
Math equations
When trying to reference another Token as the Value for an Other Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = other
You can apply an Other Token to attach it to any layer of a design element in Figma, however it does not change the element in any way.
With one or more elements selected in Figma, click on the name of your chosen Other Token in the Plugin to instantly attach the Token to the Element.
Other is not an official Token Type in the W3C DTCG specifications.
Tokens Studio has added Other as an unofficial Token Type to offer flexibility for custom properties not covered by the standard Token Types.
When transforming Other Tokens, there are some specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific properties to align with the DTCG Format.
Token Values entered as a number without a unit will be converted to a number with pixels as a unit.
Mentioned in this doc:
None yet!
None
Font Family defines a group of related fonts that vary in weight, style or width but maintain a consistent visual appearance and share the same design characteristics.
Font Family design decisions ensure that text elements are easy to read in a particular context while representing the visual style of the brand/product/service.
A design system will typically define which Font Family is to be used when text within a visual design calls for:
serif font
sans-serif font
mono-spaced font
decorative font
The Value of a Font Family Token must be identical to the text string value for the Font Family in the Figma design panel due to limitations from Figma (plugin API).
When writing the string value of a Font Family Token, pay close attention to:
Spelling
Spacing
Punctuation
Use of capital letters
To ensure your Font Family Token values are an exact match to what Figma has, you can:
Carefully type it out, paying attention to the syntax in Figma.
Save your Font Family and Font Weight pairs as text styles in Figma, then import them into the plugin to see how they appear.
Select the value from the Tokens Studio menu, pictured below.
When trying to reference another Token as the Value for a Font Family Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = fontFamilies
"The typography's font. The value of this property MUST be a valid font family value or a reference to a font family token." - 9.7. Typography
In Tokens Studio, the Font Family Token has a unique syntax in code which identifies if the token is:
An independent property Token
Part of a Typography Composite Token
Looking at the JSON format, the "type"
is written in plural "fontFamilies
" when the Font Size Token is defined as an independent property Token.
This example shows a Font Family property Token named font-family-sans
with a value of Satoshi Variable (see line 4).
This is in contrast to the Typography Composite Token, which has the property Token "type"
written in the singular "fontFamily"
.
This example shows a Typography composite token with the Font Family Token named font-family-sans
referenced as the value (see line 4).
When transforming Font Family Tokens, there are specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of fontFamilies
to align with the DTCG Format Token Type of fontFamily
.
Font Family, as a part of Typography Composite Tokens, require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
Figma Learn - [Add a font in Figma](# Add a font to Figma design)
None
Style text elements by composing many typography-related design decisions together into a single Typography Token.
Each of the nine design decisions (font size, letter spacing, etc.) that is part of the Composite Token is referred to as a property of the Typography Token in out guides.
Typography Tokens define a group of properties used to style text elements.
Typography Tokens can be applied to text layers to define all styling decisions in a single token.
Each property composed to style text elements can be defined as it's own Token and referenced within the Typography Composite Token:
Font family
Font weight
Font size
Line height
Letter spacing
Paragraph indent
Paragraph spacing
Text decoration
Text case
Like all Composite Tokens, you define the value of each property individually. When you create the Typography Token in the plugin, you can reference each Token you've already created as a property or enter a hard-coded value.
The dedicated Token Type of each property within the Typography Composite Token has unique specifications, described in detail in their own guides.
Font Weight defines the thickness and styling of the characters of a typeface.
It can be written as a unitless number, or a string value that exactly matches how Figma has written it their UI for the particular typeface.
It acts as a 'pair' with Font Family due to Figma's unique approach to text styling.
If you'd prefer to reference an existing Typography Composite Token as the value instead of defining each Property, select the Token's Reference mode button (2x2 circle icon).
When trying to reference another Token as the Value for a Typography Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
typography
Typography Tokens define all 9 styling properties of text when the Token is applied.
With one or more text layers selected in Figma, click on the name of a Typography Token in the Plugin to instantly apply its value.
Keep in mind, Tokens can only be applied to the entire layer. In the case of Typography, you might want to apply a Token to a particular word within the text layer, but that is not possible today due to limitations of the Figma plugin API.
Here are some tips for creating Text Styles with Variable References using the Plugin.
When you Export to Figma, select these Options from the menu:
Typography Styles
is selected.
Number
and String Variables
are selected.
Create styles with variable references
is selected.
Ensure your Export to Figma as Themes or Sets configuration includes all necessary Tokens.
Themes and token sets where the referenced Tokens are located are active
.
Themes and token sets where the variables are attached may need to be configured as reference only
.
You'll notice these Variables are created on Export based on their Token Type:
fontFamily
(will create as string variable)
fontWeight
(will create either as string or number variable, depending on if they are a string or a number)
letterSpacing
(number variable)
lineHeight
(number variable)
paragraphSpacing
(number variable)
paragraphIndent
(number variable)
You'll notice the Text Style will be created on Export, with all possible values mapped to the appropriate Variables, based on the Token Type for each property.
Known issue with Font Weight as Figma doesn't allow changing a Variable Type after its been created.
Figma doesn't allow the changing of a Variable type, so by deleting that single Variable in Figma, when you export the Typography Token as a Style with Variable References, the Plugin will create the variable with the new Token Type.
However, Tokens Studio has approached Typography Tokens differently than how it is defined in the current spec draft. We support:
Additional text properties not defined in the spec.
Dedicated Token Types for each text property.
We've made these adjustments in the plugin to align with Figma's unique approach to Typography.
When transforming Typography Tokens, which are a Composite Token with several adaptations to accommodate Figma's unique approach to Text Styling, there are specific configurations to be aware of.
Composite Tokens require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
If you are working in Android Compose, there is an optional transform to convert typography objects
into Android Compose shorthand (platform option).
Mentioned in this doc:
Color is an official token type in the W3C DTCG specifications () which is currently being updated to define expanded support for additional color spaces.
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
MDN Web Docs -
A written guide by Katie Cooper, Lead Product Designer -
Tokens Studio Plugin GitHub -
Color Transforms
HSLA
Color modifiers break when borderRadius Token is renamed
Modified colors aren't showing up in the second screen feature as expected -
You can define Color Token values as gradients by writing a . This includes:
If you'd like a template to explore Gradients with, click the file below to to download the zip folder. Then you can unzip and .
The plugin will support creating Tokens of any . However, we are not yet able to create all types of gradients in Figma. Unsupported gradient types will be skipped during the import and export with Figma processes.
In code, gradients are, but Figma doesn't treat them that way.
You can manually replace those values with References to another Token following.
gradient
is an official Token type in the in the W3C Design Token Community Group specifications.()
→
→ →
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
9elements.com -
Larsenwork -
joshwcomeau.com -
MDN Web Docs -
Tokens Studio Plugin GitHub -
Linear-Gradient Token Does Not Work With Other Color-spaces (Also When Creating Styles/Variables)
Expand gradient color support -
This doesn't quite match the , which focuses on the foreground color of text elements specifically.
This is based on restrictions of the for Color Tokens.
If you prefer a visual way to create reduced opacity Color Tokens you can open the color picker tool in the plugin .
Color is an official token type in the W3C DTCG specifications () which is currently being updated to define expanded support for additional color spaces.
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
Design in Figma -
MDN Web Docs -
Nate Baldwin's + Adobe -
Tokens Studio Plugin GitHub -
Referencing a (base+opacity) and adding another opacity to that, doesn't give the correct result
Expanded support for color spaces -
JSON Enhancements for color tokens and theming -
This doesn't match the , which focuses on distance, durations, frequencies, and resolutions.
You can also reference a Dimension Token in these additional Token Types; however, they are not recognized in the W3C DTCG specifications as official Token Types, .
→
→
The plugin supports a that allows you to reference a Border Width Token to avoid this issue.
→
to learn about reduced opacity colors using color spaces that support alpha.
This property can't yet be Exported to Figma as a reusable Effect Style from the plugin in the same way that can.
Dimension is an official token type in the W3C Design Token Community Group specifications ().
→
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
Design in Figma -
Design in Figma -
Design in Figma -
Design in Figma -
MDN Web Docs -
Tokens Studio Plugin GitHub -
Background blur > Figma values changed -
Similar to how shadows are defined in , you can combine multiple shadows in a single Box Shadow Token. Box shadow Tokens applied to text layers would translate to text-shadow
in .
Looking for the Blur Effect in Figma? That's currently a property within our .
Like all Composite Tokens, you may reference an existing Token as the value for each individual property, .
Shadow is an official token type in the in the W3C Design Token Community Group specifications ().
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
MDN Web Docs -
Tokens Studio Plugin GitHub -
Importing shadow styles causes the order of shadows to be reversed
TokenDropdown collides in Color input of box shadows
Multiple shadows in Box Shadow tokens -
Change boxShadow values from x and y to offsetX and offsetY
The properties within the Border Token closely align with the border
property in .
Like all Composite Tokens, you may reference an existing Token as the value for each individual property, as .
border
is an official token type in the in the W3C Design Token Community Group specifications.
→ →
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
Tokens Studio Plugin GitHub -
Caps For Dashed Value in Border Composite Token Does Not Work
Separated borders override colors
V2 release -
The W3C DTCG specification does not recognize Border Width as an and instead has defined Dimension Token as the preferred token for size-related design decisions.
Until we have a thoughtful solution to migrate between Token Types, we've included a custom transformation for this Token Type in the sd-transforms npm package .
→
The plugin supports a that allows you to reference a Border Width Token to avoid this issue.
→
→
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
W3C DTCG Spec - Unofficial Token Types -
The W3C DTCG specification does not recognize Border Radius as an and instead has defined Dimension as the preferred Type for radius-related design decisions.
Until we have a thoughtful solution to migrate between Token Types, we've included a custom transformation for this Token Type in the sd-transforms npm package .
→
If it has multiple values, it will apply the values to the independent properties defined in the Tokens Value.
For independent corner styling, you can repeat the steps above and apply different Border Radius Tokens to each corner position of the same design element. Or, you can modify your Border Radius Tokens to have .
→
→
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
Tokens Studio Plugin GitHub -
Color modifiers break when borderRadius token is renamed
W3C DTCG Spec - Unofficial Token Types -
The W3C DTCG specification does not recognize Spacing as an and instead has defined Dimension Tokens as the preferred token for space-related design decisions.
Until we have a thoughtful solution to migrate between Token Types, we've included a custom transformation for this Token Type in the sd-transforms npm package .
→
If you click to apply this Token to an element without accessing the right-click Token menu, the value will be applied to the gap (space between) property if your Spacing Token has a single value. If it has multiple values, it will apply the values to the independent properties defined in the Tokens Value.
For independent styling per side, you can repeat the steps above and apply different Spacing Tokens to each position of the same design element. Or, you can modify your .
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
AUTO Value is Created as '0' in Variables
W3C DTCG Spec - Unofficial Token Types -
According to the , the value of a Number Token must be a unitless number.
Color Tokens with
You can also reference a Number Token in these additional Token Types; however, they are not recognized in the W3C DTCG specifications as official Token Types, .
→
→
The plugin supports a that allows you to reference a Border Width Token to avoid this issue.
→
to learn about reduced opacity colors using color spaces that support alpha.
This property can't yet be Exported to Figma as a reusable Effect Style from the plugin in the same way that can.
→
"Represents a number. Numbers can be positive, negative and have fractions. Example uses for number Tokens are or unitless line heights. The $type
property MUST be set to the string number
. The value MUST be a JSON number value." -
→
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
Design in Figma -
Design in Figma -
Design in Figma -
Design in Figma -
MDN Web Docs -
Tokens Studio Plugin GitHub -
The W3C DTCG specification does not recognize Sizing as an and instead has defined Dimension Token as the preferred token for size-related design decisions.
Until we have a thoughtful solution to migrate between Token Types, we've included a custom transformation for this Token Type in the sd-transforms npm package.
→
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Deselecting The "All" Property In Spacing Tokens Removes Other Spacing Tokens
W3C DTCG Spec - Unofficial Token Types -
Opacity is not yet an official token type in the W3C DTCG specifications, but there is mention of a Percentage/radio
type under consideration ()
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
Tokens Studio Plugin GitHub -
Opacity issue: some values are wrongly rounded in Figma
Referencing a (base+opacity) and adding another opacity to that, doesn't give the correct result
Using Opacity in Tokens Creates Blank Variable
→
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Unable to Assign a Numeric Value in the Text Token Type
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Font Family Tokens define typeface as an individual property to be composed within a . It is not intended to be applied to text elements directly.
In this property is called font-family
.
Font Family is an official Token Type in the in the W3C Design Token Community Group specifications.( )
It is mentioned as a required part of a
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
Font Weight + Font Family Pairs explained by
Import Typography Styles from Figma into Tokens Studio -
Tokens Studio Plugin GitHub -
, this is known as the Text and Font Styling
properties, which are defined individually.
Like all Composite Tokens, you may reference an existing Token as the value for each individual property .
💌 Create a free account to upvote on the and we will notify you when we start working on it.
Typography Tokens can be . Tokens Studio also supports .
If you are converting your between numeric and string values and you've already exported to Figma as a Style with Variable References, you may need to delete the Variable from the Figma collection.
typography
is an official token type in the W3C Design Token Community Group specifications.()
Each property defined within the Typography Token has individual SD-Transform configurations to be aware of, which can all be found on the
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
Nate Baldwin's Typography + Dimension scale tool -
Import Typography Styles from Figma into Tokens Studio -
Marco Krenn's
Tokens Studio Plugin GitHub -
Enhanced Typography Support -
Expand Token Types -
Support Multiple Token Types per Layer -
Font fallbacks are a common practice in code to ensure the text remains readable even when the primary font is unavailable.
While Figma doesn't natively support font fallbacks, Tokens Studio allows you to define fallbacks for Font Family and Font Weight Token Types.
To define a fallback using the plugin, you can write the Token's value using the no-code or interface or modify the JSON file with comma-separated values.
To implement font fallbacks in your Font Family Token:
Use a comma-separated list in your token value.
Write the Font name (string value) in order of preference, from primary to fallback options.
Be sure to follow the guidelines for best practices outlined in the Font Family Token documentation. #add-doc-link/typography
Figma will use the first Font Family in the list.
Example:
When using Typography Composite Tokens, you can reference a Font Family Token that includes fallbacks:
Figma will only display the primary font, not the fallbacks.
When exporting to Figma variables or styles, only the primary font will be used.
Fallbacks are primarily for web and application development, not for use within Figma itself.
While it might be tempting to use fallbacks as a way to work around Figma's nuanced way of Font Weight + Style values as a combined string, which is written differently for each Font Family, we don't recommend this approach.
We will always pass the first value to Figma, so if it doesn't match, you'll still get the error even if you included the correct value as a fallback.
Tokens are intended to be used in code, which isn't as particular as Figma. So when you engineers receive a Font Weight Token with the same value repeated multiple times it might lead to unexpected results.
When transforming tokens for use in code, the Style Dictionary handles font fallbacks appropriately:
fontFamily
Tokens that contain multiple values (comma separated) will be processed slightly for CSS to ensure that when a Font Family name contains spaces, the value is put in quotes '
so it works in CSS.
Mentioned in this doc:
None yet!
None
Tokens Studio added support for Paragraph Spacing to accommodate Figma's unique way of handling text styles. They use this property to define the vertical distance between 2 paragraphs of text.
When we apply a Typography Composite Token to a text layer in Figma, these Paragraph Spacing values will change the text layer:
Preferred value - 0
No additional space between paragraphs.
A line break would be added to create the space needed instead.
This most closely matches how spacing between paragraphs would be done in code.
Relative to Font Size - value in rem units
Example: Paragraph Spacing at 0.5rem
with Font Size at 1rem
A person who has increased the font size of a mobile phone will see the space between paragraphs half the size of the text.
Fixed - value in pixels
Example 8px
The space between paragraphs will remain the same as a user zooms into a webpage.
Paragraph Spacing Tokens can be attached to Number Variables in Figma.
Like all Tokens defining a dimension design decision, the value of a Paragraph Spacing Token must include a numeric value and, ideally, a unit of measure.
Tokens without a unit specified are applied as the pixel equivalent in Figma.
When writing the hard-coded values for a Paragraph Spacing Token, you'll want to:
Avoid spaces
Include a number and unit of measure.
Values without a unit will be translated to pixels in Figma.
The value should always be greater than 0.
Or use the specified string (below) for the normal
value.
rem units (rem)
To support responsive design, you can define your Paragraph Spacing Token in rem units, and the plugin automatically converts the value to the pixel equivalent when the Typography Composite Token is applied to the text element in Figma.
For example, a Paragraph Spacing Token with a value of 1rem
, when applied as a Typography Composite Token, will appear as 16px
in Figma.
Pixel units (px)
While its not common, should you require the space between every paragraph to remain static even when users change their preferences, the Paragraph Spacing value can be defined in pixel units. For example:
When trying to reference another Token as the Value for a Paragraph Spacing Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = paragraphSpacing
dimension
number
Paragraph Spacing is not an official token type in the W3C Design Token Community Group specifications.
Tokens Studio has added Paragraph Spacing as an unofficial Token Type to support Figma's unique approach to this text property.
When transforming Paragraph Spacing Tokens, there are specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of paragraphSpacing
to align with the DTCG Format Token Type of dimension
.
Paragraph Spacing, as part of Typography Composite Tokens, requires the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
None yet!
None yet
None
In Typography, the Letter Spacing and Line Height properties are related to the Font Size.
When you assign a Token Value in Rem Units, it creates a relationship with the system's Base Font Size.
A Rem Unit acts as a multiplier of the Base Font Size. This allows the font size to be controlled by user preferences in a responsive way.
The value of 1rem in the Plugin can be configured in its settings.
Font Size, also known as point size or type size, defines the vertical size of each character/glyph in a typography design element.
A design system typically defines font sizes as a proportional scale to help with visual hierarchy and readability of text elements.
When we apply a Typography Composite Token to a text layer in Figma, these Font Size values will change the text layer:
Responsive - value in rem units
Example: heading at 2rem
paragraph at 1rem
a person who has increased the font-size of a mobile phone will see the heading text twice as large as the paragraph text
Fixed - value in pixels
Example 32px
the text will remain the same size when a user zooms into a webpage
Like all Tokens defining a dimension design decision, the value for the Font Size property must include a numeric value and, ideally, a unit of measure.
For Font Size Tokens, math might be used to create dynamic scales of font sizes that follow a particular multiplier, like the golden ratio.
The syntax used to write numeric values for the Font Size property is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
Value should always be greater than 0.
Rem units (rem)
To support responsive design, you can define your Font Size Token in rem units, and the plugin automatically converts the value to the pixel equivalent when the Typography Composite Token is applied to the text element in Figma.
For example, a Font Size Token with a value of 2rem
, when applied as a Typography Composite Token, will have letters appear as 32px
tall in Figma.
Pixel units (px)
Should you require the character size to remain static even when users change their preferences, the Font Size value can be defined in pixel units. For example:
Units not supported by Figma
percentage (%)
em and percentage combined
viewport width (vw)
You can still create Font Size Tokens with these units using the Tokens Studio plugin.
When you apply them to design elements in Figma, the Token will be present and visible to engineers inspecting the design element in Figma, but the Token won't interact with the Font Size property in Figma's UI.
It will be up to the engineers working to transform the design Tokens in Style Dictionary if they want to transform the values as you've entered them or change them in some way.
When trying to reference another Token as the Value for a Font Size Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = fontSizes
number
dimension
Font Size is not yet an official Token type in the W3C Design Token Community Group specifications.
"The size of the typography. The value of this property MUST be a valid dimension value or a reference to a dimension Token." - 9.7. Typography
Tokens Studio has added Font Size as an unofficial Token type in anticipation it will be added to the W3C specs in the near future.
In Tokens Studio, the Font Size Token has a unique syntax in code which identifies if the Token is:
An independent property Token
Part of a Typography Composite Token
Looking at the JSON format, the "type"
is written in plural "fontSizes
" when the Font Size Token is defined as an independent property Token.
This example shows a Font Size property Token named font-size-small
with the value in pixels (see line 4).
This is in contrast to the Typography Composite Token, which has the property Token "type"
written in the singular "fontSize"
.
This example shows a Typography Composite Token with the Font Weight property Token named font-size-small
referenced as the value (see line 5).
When transforming Font Size Tokens, there are specific configurations to be aware of.
Font Size Token values entered as a number without a unit converted to a number with pixels as a unit.
Token Values entered with math equations need to be checked and resolved.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of fontSizes
to align with the DTCG Format Token Type of fontSize
.
Font Size Tokens, as part of Typography Composite Tokens, require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
Figma resources:
CSS resources:
Community resources:
WHAT - LINK
Font size scalar tool
None yet
None
Line Height, also known as leading, defines the vertical distance of each line of text.
Line Height decisions are typically used to enhance the readability of text.
For example, it's common to use a larger Line Height value for long-form text than a short headline to make paragraphs easier to read.
When we apply a Typography Composite Token to a text layer in Figma, these Line Height values will change the text layer:
No changes to the Line Height - normal
By default, the system uses the value determined by the typeface it is pared with
Example 200%
Line Height will be twice as large as the font size no matter what the Font size
is
Responsive - value in rem
Example 2rem
A person with a webpage zoomed in will see this Line Height remain twice as large as a font size set at 1rem
Fixed - value in px
Example 32px
Line Height will remain the same even when the Font size
changes or the user tries to modify the text using system accessibility features.
Like all Tokens defining a dimension design decision, the value of a Line Height Token must include a numeric value and, ideally, a unit of measure.
Unless you are choosing to use the "default" value defined by the Font Family, which is commonly referred to as the normal
value.
For Line Height Tokens, math might be used to ensure that the bounding box for your text elements always sits on a 4/8 pixel grid.
normal (AUTO)
Figma supports the equivalent of the normal
Value in CSS (Figma has this as AUTO).
To write your Line Height Token with this value, it needs to match the following text string, which is case sensitive:
However, if you are Exporting your Typography Tokens to Figma as Styles with Variable references, Figma does not support this string value.
The syntax used to write numeric values for the Letter Spacing property is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
Value should always be greater than 0.
Percentage units (%)
To scale the Line Height relative to Font Size the Token value will be defined with a percentage to match Figma's unique approach to typography.
When the Typography Composite Token is applied, the Plugin will apply the percentage as a multiplier of the Font Size.
This is different from the way we would define this relationship in code. In CSS, we might enter this as a unitless number, which Figma does not support as unitless numbers in Figma as assumed to be pixels.
Rem units (rem)
While its not common, you can define your Line Height Token in rem units, and the Plugin automatically converts the value to the pixel equivalent when the Typography Composite Token is applied to the text element in Figma.
For example, a Line Height Token with a value of 1rem
, when applied as a Typography Composite Token, will appear as 16px
in Figma.
pixels (px)
While its not common, should you require the line height to remain static even when users change their preferences, the Line Height value can be defined in pixel units. For example:
Be mindful that the fixed value in pixels means the Line Height property is no longer related to the Font Size in the Typography Composite Token. If you change the Font Size, you'll also need to change the Line Height value.
Units not supported by Figma
length in cm, pt, etc
additional text-strings
initial - sets the property to default value
inherit - parent element determines the value
You can still create Line Height Tokens with these units using the Tokens Studio plugin.
When you apply them to design elements in Figma, the Token will be present and visible to engineers inspecting the design element in Figma, but the Token won't interact with the Line Height property in Figma's UI.
It will be up to the engineers working to transform the design Tokens in Style Dictionary if they want to transform the values as you've entered them or change them in some way.
When trying to reference another Token as the Value for a Line Height Token, you will seeyou will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = lineHeights
dimension
number
Line Height is not yet an official dedicated Token type in the W3C Design Token Community Group specifications.
"The vertical spacing between lines of typography. The value of this property MUST be a valid number value or a reference to a number Token. The number SHOULD be interpreted as a multiplier of the
fontSize
." - 9.7. Typography
In Tokens Studio, the Line Height Token has a unique syntax in code which identifies if the Token is:
An independent property Token
Part of a Typography Composite Token
Looking at the JSON format, the "type"
is written in plural "lineHeights
" when the Font Size Token is defined as an independent property Token.
This example shows a Line Height property Token named line-height-classic
with the value in percentage (see line 4).
This is in contrast to the Typography Composite Token, which has the property Token "type"
written in the singular "lineHeight"
.
This example shows a Typography Composite Token with the Font Weight property Token named line-height-classic
referenced as the value (see line 6).
When transforming Line Height Tokens, there are specific configurations to be aware of.
Token Values entered with math equations need to be checked and resolved.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of lineHeights
to align with the DTCG Format Token Type of lineHeight
.
Line Height Tokens, as part of Typography Composite Tokens, requires the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
WHAT - LINK
None yet!
None
Letter Spacing, also known as kerning or tracking, defines the horizontal distance between individual characters/glyphs of a word or other strings of text.
Letter Spacing decisions are typically used to style text elements to improve readability and creatively express a product or brand's visual language.
When we apply a Typography Composite Token to a text layer in Figma, these Letter Spacing values will change the text layer:
Default - value is 0
By default, the system uses the value determined by the Font Family
Characters/glyphs are closer together - values less than 0
Example -2%
Text styles with heavier Font Weight and larger Font Size to "tighten" headlines and display text on a marketing website.
Characters/glyphs are farther apart - values greater than 0
Example 1px
Text styles with lighter Font Weight and smaller Font Size "relax" the account number and phone number in the settings page of a customer portal.
Like all Tokens defining a dimension design decision, the value of a Letter Spacing Token must include a numeric value and, ideally, a unit of measure.
For Letter Spacing Tokens, math might be used to convert a unitless number into a percentage.
The syntax used to write numeric values for the Letter Spacing property is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
Value should always be greater than 0.
percentage (%)
To scale the Letter Spacing relative to Font Size the Token value will be defined with a percentage to match Figma's unique approach to typography.
When the Typography Composite Token is applied, the Plugin will apply the percentage as a multiplier of the Font Size.
This is different from the way we would define this relationship in code. In CSS, we might enter this as a number in em units, which Figma does not support, but Tokens Studio has written a custom Token Transformation to help.
Rem units (rem)
To support responsive design, you can define your Letter Spacing Token in rem units, and the Plugin automatically converts the value to the pixel equivalent when the Typography Composite Token is applied to the text element in Figma.
For example, a Paragraph Spacing Token with a value of -0.25rem
, when applied as a Typography Composite Token, will have letters appear as -4px
closer together in Figma.
pixels (px)
While its not common, should you require the space between every character of text to remain static even when users change their preferences, the Letter Spacing value can be defined in pixel units. For example:
Be mindful that the fixed value in pixels means the Letter Spacing property is no longer related to the Font Size in the Typography Composite Token. If you change the Font Size, you'll also need to change the Letter Spacing value.
Units not supported by Figma
Tracking is another CSS property related to Letter Spacing, typically defined in px or em units
1000px tracking = 100% letter spacing = 1em letter-spacing (CSS)
so a value of 4% would = 0.04em
You can still create Letter Spacing Tokens with these units using the Tokens Studio plugin.
When you apply them to design elements in Figma, the Token will be present and visible to engineers inspecting the design element in Figma, but the Token won't interact with the Letter Spacing property in Figma's UI.
It will be up to the engineers working to transform the design Tokens in Style Dictionary if they want to transform the values as you've entered them or change them in some way.
When trying to reference another Token as the Value for a Letter Spacing Token, you will see you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = letterSpacing
dimension
number
Letter Spacing is not yet an official dedicated Token type in the W3C Design Token Community Group specifications.
"The horizontal spacing between characters. The value of this property MUST be a valid dimension value or a reference to a dimension Token." - 9.7. Typography
Tokens Studio has added Letter Spacing as an unofficial Token Type to support Figma's unique approach to this text property which includes allowing the use of percentage as a value. If your Design Tokens are being used in code, we have included a transformation to correct this inconsistency, described below.
When transforming Letter Spacing Tokens, there are specific configurations to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of paragraphSpacing
to align with the DTCG Format Token Type of dimension
.
Letter Spacing Tokens, as part of Typography Composite Tokens, requires the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
None yet!
None yet
None
Font Weight defines the thickness of each character/glyph in the Font Family. Font Weight design decisions are typically used to communicate visual hierarchy or emphasize text elements.
bold
bold-italic
bold-wide
bold-wide-italic
The value of a Font Weight Token must be identical to the text string value for Font weight (plus styling) in the Figma design panel due to limitations from Figma (plugin API).
When writing your Font Weight Token values, pay close attention to:
Spelling
Spacing
Punctuation
Use of capital letters
To ensure your Font Weight Token values are an exact match to what Figma has, you can:
Carefully type it out, paying attention to the syntax in Figma.
Save your Font Family and Font Weight pairs as text styles in Figma, then import them into the plugin to see how they appear.
Select the value from the Tokens Studio menu (works for Typography composite Tokens only), pictured below.
You can enter any of these numeric raw values in the table below into the Font Weight Token, and the plugin will convert them to the corresponding resolved value for the Font Family Token they are paired with.
Keep in mind that your chosen Font Families may not support all Font Weights.
If you enter an incompatible value with your Font Family, the plugin will send an error message when you try to apply the Token or Export as Styles in Figma.
100
Thin Hairline
200
Extra Light ExtraLight Ultra Light UltraLight extraleicht
300
Light leicht
400
Regular Normal buch
500
Medium kraeftig kräftig
600
Semibold SemiBold Semi Bold DemiBold Demi Bold halbfett
700
Bold dreiviertelfett
800
ExtraBold Extra Bold UltraBold Ultra Bold fett
900
Black Heavy extrafett
950
Extra Black Ultra Black
Recall that Figma combines the thickness of letters with other text styling properties, like the slant or posture of the glyphs/characters, to create their unique Font Weight property.
This is written differently depending on the Font Family.
For example, 600 from the chart above and italic style would appear in Figma's Font Weight property as
Inter = Semi Bold Italic
Source Sans Pro = SemiBold Italic
SF Pro = Semibold Italic
This doesn't match the way font weights, font families, and their styles typically work in code. It also means that if you use the numeric value, the plug-in cannot communicate any additional styling properties (like italics) that Figma combines.
If you are converting your Tokens between numeric and string values and you've already exported to Figma as a Style with Variable References, you may need to delete the Variable from the Figma collection.
Figma doesn't allow the changing of a Variable type, so by deleting that single Variable in Figma, when you export the Typography Token as a Style with Variable References, the Plugin will create the variable with the new Token Type.
When trying to reference another Token as the Value for a Font Weight Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = fontWeights
number
dimension
"The weight of the typography. The value of this property MUST be a valid font weight or a reference to a font weight token." - 9.7. Typography
Tokens Studio has approached Font Weight Token differently than how they are defined in the current spec to support the unique way that Figma combines the Font Weight and additional styling properties.
When you use Style Dictionary as a part of your design-to-code pipeline, these text string values will be transformed into numeric values which align with the W3C specification and how these properties work in CSS.
In Tokens Studio, the Font Weight Token has a unique syntax in code which identifies if the token is:
An independent property Token
Part of a Typography Composite Token
Looking at the JSON format, the "type"
is written in plural "fontWeights
" when the Font Weight Token is defined as an independent property Token.
This example shows a Font Weight property Token named font-weight-default
with its value as a text string "bold"
(see line 2).
This is in contrast to the Typography Composite Token, which has the property "type"
written in the singular "fontWeight"
.
This example shows a Typography Composite Token with the Font Weight property Token named font-weight-default
referenced as the value (see line 5).
When transforming Font Weight Tokens, there are specific configurations to be aware of.
Recall that Figma combines the fontStyle
and fontWeight
properties into a single text string value. If this is true within your tokens, you'll want to look into the optional transform to add a separate fontStyle token
to be included in the CSS shorthand.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of fontWeights
to align with the DTCG Format Token Type of fontWeight
.
Font Weight Token entered as a text string that needs to be converted to its numeric value so it matches CSS.
Font Weight as a part of Typography Composite Tokens require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
None yet
None
This synchronization creates a shared source of truth, fostering collaboration and alignment between design and development teams.
You can manage version control in Tokens Studio without ever having the Figma to keep your changes in sync with engineers in code, and other designers working in multiple Figma files.
Tokens Studio offers out-of-the-box integrations with several third-party providers to sync your Design Tokens with code and store them externally for safekeeping outside of your local design files.
We support:
Connected to a code repository for remote Token storage that is version-controlled.
Syncing your Token files with design data platforms.
Once your sync provider is active, the Plugin will detect changes in real time, and indicate when you need to sync changes with the Tokens in remote storage.
Pro licence holders working with a Git sync provider can also create and switch between branches from within the plugin.
Git is an open-source system that tracks changes in code files.
Syncing your Tokens with a Git provider allows you to store your Design Tokens as code files in a repository. Tokens Studio has native features to push and pull Token changes easily and version-control your design decisions using the branching feature.
This allows you to explore design decisions before deploying them to a production environment.
Select any of the Git providers below to read its Sync Setup Guide
Cloud storage providers offer a platform to store, manage, and retrieve your Design Token data via an API.
Select any of the cloud storage providers below to read its Sync Setup Guide
Locally hosted Token storage providers offer an alternative to Git providers for projects that benefit from storing their Tokens on the same servers as the rest of their code.
Select any of the local hosted below below to read its Sync Setup Guide
When you are ready to sync your Tokens to a remote storage provider, check out these guides:
You can use the Tokens Studio plugin native integration with GitHub to sync your Design Tokens to a repository of your choice.
We support two-way sync, meaning you can use the plugin to:
Push JSON files of Design Tokens to GitHub
Pull the Tokens stored in GitHub into any Figma file
This means the Design Tokens living in code are the source of truth for our design decisions, which can be shared between design and development teams.
This guide outlines how to set up a GitHub repository and add it as a Sync provider in the plugin.
Set up a repository and personal access token in GitHub
Configure GitHub as a sync provider within the Tokens Studio plugin.
Use the plugin to sync your Design Tokens between GitHub and Figma design files.
Choose a specific and memorable repository name which will be used in the plugin as the destination for your Design Tokens.
Names that are easy to remember and type are ideal
Select if you want your repository to be:
Public
anyone can see it
Private
needs permissions to view
Your choice doesn't change the plugin's ability to sync with the repository
Add a README file
needs to be checked
This is mandatory because the plugin can not sync to an empty repository.
Add .gitignore can be None
Choose a licence can be None
Confirm by pressing the Create repository button
You are now looking at your new repository! Well done!
Save the URL of the repository somewhere safe as it's needed for the plugin configuration.
Not to be confused with anything to do with a Design Token, a Personal access Token is a passcode from GitHub you enter into the plugin that allows the connection to happen.
Log into you GitHub account:
Select your avatar on the top right
Select Account Settings
Select Developer Settings from the bottom of the options
Select Personal Access Tokens to see the two options, either will work:
Fine-grained Tokens
Repository-specific detailed access Tokens.
Tokens (classic)
Less specific, one PAT provides access to multiple repositories.
Generate a new classic access token
Select Generate new token (beta)
Add a Note of what the token is for.
Example: test-token repo sync to tokens studio
Select an Expiration time frame
Select scopes for access
repo
parent checkbox is the minimum requirement for the plugin
Scroll down to the bottom and select Generate token
Save the generated access token somewhere safe as it's needed for the plugin configuration.
You're ready to configure the Tokens Studio plugin in Figma!
Select Generate new token (beta)
Add a Name of what the token is for.
Example: test-token repo sync to tokens studio
Select an Expiration time frame
Add a Description to remind yourself what you made this token for
Choose your Repository access
Decide between All
or select
repositories
Select your Repository permissions
Find Contents and open the dropdown
Read and Write
is required for creating and editing tokens stored in your repository
Read-only
would allow you to view Tokens stored in code in the plugin, but not create or edit them.
Maybe helpful for product designers who just want view access of your Tokens for theme switching and applying Tokens for example.
Scroll down to the bottom and select Generate token
Save the generated access token somewhere safe as it's needed for the plugin configuration and you won't see it again once you leave the current GitHub page.
You're ready to configure the Tokens Studio plugin in Figma!
In Figma, open the Tokens Studio plugin and navigate to the Settings page using the navigation tab.
Under the Sync providers section, select the Add new button to see a list of all Token storage providers
Select GitHub
Some of the inputs on the form come from the GitHub steps above, others aren't so obvious as to where the info comes from.
This is a nickname that shows up in the plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: Radix - Community token files
2. Personal access token
3. Repository (owner/repo)
For example, if your URL says https://GitHub.com/amazingdesigner/radixtokens
, you will enter amazingdesigner/radixtokens
into the form in the plugin.
4. Branch
Your engineers might tell you what to add as the default repository branch where you will be pushing your Tokens, so if you aren't sure, ask them.
If you created a new repo following the steps above, you will enter main
.
You can create additional branches using the plugin later.
5. Token storage location (file/folder path)
This tells the plugin:
How to organize your Token JSON files in GitHub.
In a folder of multiple files, or a single file.
The location of where your Token data is stored.
The file or folder's pathway (or name) to sync with.
This setting impacts
How engineers can work with our Token files during the Token transformation stage of the design-to-development process.
May limit edit access of Tokens for other team members using the Tokens Studio plugin.
Folder
The folder option syncs Token data from the plugin into a folder that contains multiple JSON files or subfolders of JSON files.
In the plugin, enter the pathway of the folder where you want the Token data to be stored, which is the folder name without any extensions.
For example:
Our GitHub repository will have a folder called tokens
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is added to the folder as an individual JSON file.
Additional data files generated by the plugin are also added to the folder.
For example, themes
configuration.
Recall that storing your Token data in a folder (multi-file sync) is a pro feature.
If other team members are working with your Tokens and do not have a Pro Licence for Tokens Studio, your Tokens will be read-only for them.
File Path
Setting our Token storage as the file option syncs our Token data from the plugin into a single JSON file in code.
Combining Token data into a single file limits engineers' ability to work with Theme information when transforming Design Tokens.
→ Learn about the Themes (pro) feature in Tokens Studio here. #add-doc-link/themes-pro
File storage might work for you if:
You are using the free version of Tokens Studio.
Engineers are not using your Design Tokens in code.
In the plugin, we enter the pathway of the JSON file where we want our Token sets to be stored, which is the file name with the .json
extension.
For example:
Our GitHub repository will have a single code file called tokens.json
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is combined into this single file in our repository.
6. Base URL (Optional)
Base URL must be added to the GitHub credentials if your organization is running an enterprise server.
Looking at the URL of your repository, if you see a name between GitHub and .com, your organization is running an enterprise server. For example: https://github.hyma.com/amazingdesigner/radixtokens
In this example, the Base URL
you would enter into the plugin form is:
This tells the plugin to point to the API on this specific URL for our organization.
Once you Save your credentials, the plugin will compare your Tokens with whats in your repository.
You'll see a modal asking you to push or pull to GitHub to 'sync' the plugin data with your repository.
As you work in the plugin, push and pull indicators remind you to stay in sync with your GitHub repository.
Once your Token JSON files are synced to your GitHub repo, you have a shared source of truth between Designers and Engineers!
Mentioned in this doc:
None yet!
Occasionally you have to push/pull to GitHub several times for the indicator to clear.
How might we improve the experience of working with sync providers in general?
Tokens Studio supports math equations to calculate the Value of a Token.
This is a popular approach to a create scales for typography, spacing, size, or dynamically calculate the radius of a focus ring (pictured above).
Combining math equations with referenced to another Token can create a flexible and powerful design system.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
When you apply a Token with a math equation as its value, the Plugin applies the resolved value to the corresponding property in Figma.
Select a card to jump to its technical docs.
This means when you export a Token with math in its value as a Variable in Figma:
You won't see the references or equations.
The plugin sends the resolved value of the equation to Figma as a Number Variable.
Token Values written as equations can include hard-coded number values and references to other Tokens.
For example, if you want spacing.lg
to be twice as large as spacing.md
you can write an equation to calculate its value:
Or, you can replace the multipler with a reference to another Token named scale.multiplier
The syntax for writing a math equation varies based on the kind of equation you are writing.
Simple math equations can be written with or without brackets.
For example, 8 * 8
and (8 * 8)
will both resolve to 64
Complex formulas require spaces between operators to ensure the Tokens can be transformed correctly using Style Dictionary.
For example: 8 * 8
will transform as expected 8*8
will not.
Working with math in the plugin can be a powerful workflow enhancement, but there are some limitations to be aware of.
The plugin supports Tokens with more than one value. When these Tokens are referenced in a math equation, the plugin can not resolve the equation because it doesn't know how to interpret the value.
Referencing Tokens in our math equations that have values that contain units can lead to unexpected results.
This is because the math package we use can resolve equations with units, as long as the units aren't mixed.
For example:
A Token named size-2
with a value of 1.5rem
A Token named density-default
with a value of 2px
When both Tokens are included in a math equation written as:
The equation can't be resolved because the Tokens referenced contain a mix of rem
and pixel
units. If both Tokens have the same units, or are unitless, the equation would resolve as expected.
Workarounds
lineHeights = {lineHeights-calc-body-default}%
fontSize = {scale-rem-md}rem
Here are some math equations used by our team.
When using multipliers that aren't a whole number, you can use a rounding function to calculate values that don't include decimals, because a spacing value of 12.11px
might not be ideal.
To round to the nearest whole number, you can put our equation inside the roundTo
function.
For example, if sizing.sm
has a value of 2
2 * 1.33 = 2.66
Will calculate a resolved value of 3
For example, the Number Token called lineHeights-unitless.heading.relaxed
with a value of 1.5
would be written in a Line Height Token as:
Which calculates a resolved value of 150%
This equation requires having a Token which defines the value of 1 rem, and adjusting the Tokens Studio plugin settings to reference this Token as the value for "base font size".
In this example, there is a
Number Token called unitless-Token
with a value of 48
Number Token called rem-base
with a value of 16
A new Dimension Token is created with the value as an equation:
Which calculates a resolved value of 3rem
Tokens Studio has included this feature in the plugin to help design system maintainers work more efficiently.
When transforming Tokens with Math in their Values, there are specific configurations to be aware of.
Token Values entered with math equations need to be checked and resolved.
Token Values entered as a number without a unit converted to a number with pixels as a unit.
Tokens Studio uses the JavaScript Expression Evaluator for the implementation of math in token values.
Mentioned in this doc:
Sam I am Designs has a written guide and Figma community file featuring many of the math equations mentioned above.
None yet
While it's helpful to give a human-readable name to a hard-coded value
, the real power of Design Tokens comes from referencing another Token.
For example, looking at the value of a Color Token applied to the label of a button component, you can see it has a value
of {brand.colors.success.on-success}
and same value of #b1f1cb.
This means when you look at the value
of a Design Token which references an existing Token in your system, you can easily tell where the design decision came from.
There are lots of different words the community uses to describe this kind of Token Value:
Reference Tokens
Alias Tokens
Semantic Tokens
Decision Tokens
It's called an "Alias" Token because it provides a new name, or alias, for an existing design decision in our system.
Ideally, the new name/alias provides meaningful context about how, where, or when we intend to implement our design decisions.
However, when you are just starting to work with Design Tokens, the label "Alias" can get confusing, so in the Tokens Studio docs, we will say "Values that reference another Token" for clarity.
To write a Token Value which references another Token, you wrap the Token Name in curly brackets without any spaces.
For example: {green-500}
Composite Tokens, which have more than one value, can have one or more of its properties set to reference another Tokens.
The same Typography Composite Token example pictured above written in code is below. Line 7 has a hard-coded value, the rest are referencing another Token that exists elsewhere in the system.
In the Tokens Studio Plugin for Figma there are three ways to define the Value of a Token that references another Token .
Select a Token Name using a dropdown pre-populated with compatible Token Types.
Search for a specific Token Name from the same pre-populated dropdown.
Write the Token Name you are referencing inside curly brackets.
Select the plus sign next to your desired Token Type to create a new Token. Right click on an existing Token and select Edit to open its Token form.
Tap the down chevron icon within the Token Value input to open the pre-populated menu of compatible Token Names.
You can scroll through the list, or type the name of the Token in the input to filter the Token names in the dropdown.
Select the name of the Token you want to reference.
The list will close, and the selected token will appear in the Token Value input wrapped in curly brackets {theme-color.info.default}
Or, you can type the Token Name you are referencing inside curly brackets in the Token Value input.
For example {theme-color.info.default}
Once you start typing, if there are any matches the Plugin will show them below the input. You can select the name your desired Token to close the menu.
When you are finished creating the Token, press the button at the bottom of the Token form to close it.
The new Token appears on the Token Page. You can hover on the Token to view the data entered to create the Token.
Compatible Tokens are available to reference and are determined by the Token Type.
For example, a Typography Token is not compatible with a Color Token as their values have different properties.
So, when creating a new Color Token, the Plugin will not show Typography Token Names as an option to reference as its value.
The plugin will only show Tokens with compatible Types that are living in Token Sets that are currently active.
Active Token Sets have a checkmark visible next to the Token Set Name in the left menu on the Token page of the Plugin.
If the Token Name you want to reference is not in the dropdown list, you can "force" a reference by manually entering the Token Name between curly brackets.
For example, if you want to reference a Number Token without a unit in a Dimension Token which requires a unit, you can manually type the Number Token Name wrapped in curly brackets followed by unit:
Even if the plugin notifies you the Token is "not found," once you save your changes, you'll notice the reference has gone through and the Token should how the correct Resolved Value.
To make the forced reference process a little smoother, you can copy the Name of any Token by:
Right-click on the Token
Select Copy Token path
Then you can paste the name from your clipboard between curly brackets{Token-name}
in the value of your desired Token using the paste keyboard shortcut.
command + v (mac)
control + v (windows/linux)
This strategy comes in handy when writing complex Token Values which reference another Token. For example:
A Token with a Value that reference another Token will inherit its Value from the referenced Token.
This creates a flexible and dynamic system which scales very quickly.
For example, if you decide that the text for all success elements in your system should be white instead of a light green, you only need to change the value of one Token (the {brand.colors.success.on-success}
Token), and all components referencing it will change.
This means with thoughtful references in your Token Structure, you only have to make changes to 1 Token and the new value will cascade across the entire system.
In technical terms, this "inheritance" is known as Resolved Value, because the Plugin has to pass the Value through your Token Structure and perform any calculations necessary to display the resulting Value.
Compared to the Raw Value, which shows the Token Value exactly as it was written.
As we continue to align with the W3C specifications Design Tokens Community Group, we will be phasing out 'nested references'.
Nested references are not included in the DTCG specifications.
They are not supported by any other design tools.
As design Token and transformation tools become more sophisticated, nested references negatively impact the performance of Token resolution, so we can not continue to support it.
If your Token values are written with nested references:
It's time to make some changes.
Each Token Type has specific Transforms to be aware of that ensure accurate resolved values that are usable in code.
Mentioned in this doc:
None yet!
Occasionally when referencing a Token which exists in more than one Token Set, the incorrect values are showing in the Resolved Token Value preview when the Token is hovered on.
Text Case defines that the system should transform the capitalization of letters in a text element regardless of how they are typed.
Text Case design decisions are typically used to:
communicate the visual emphasis of text or
standardize data inputs and data display to ensure consistency
Occasionally, they are used for creative styling decisions, for example, a personal blog where the author wants:
HEADINGS to have all letters capitalized.
contact details to appear in lowercase.
When we apply a Typography Composite Token to a text layer in Figma, these Text Case values will change the letter casing:
All letters appear as typed - null
By default, the system will not transform the capitalization of letters
All letters capitalized - uppercase
Examples:
button labels
list of countries presented as abbreviations
No letters are capitalized - lowercase
Examples:
email address listed in a contact section
username entered in a sign-up form
The first letter of each word is capitalized - capitalize
Examples:
full name entered in a sign-up form
list of city names
The syntax used to write string values for Design Tokens is important, so be sure to write your Text Case Token value with all lowercase letters and ensure there are no spaces.
The Text Case Token has a few specific string Values depending on your needs.
null
Most of the time, text will appear as typed; the Text Case Token Value will be:
uppercase
When all letters should be capitalized, set the Text Case Token Value to:
lowercase
When none of the letters should be capitalized, set the Text Case Token Value to:
capitalize
When the first letter of each word should be capitalized, set the Text Case Token Value to:
Many people confuse Figma's "capitalize" with "title case," but they are different.
Title case has some words capitalized while others remain lowercase.
For example Hyma for Tokens Studio
Capitalize transforms all words.
For example Hyma For Tokens Studio
Not supported by Figma
Additional text-transform properties commonly used in CSS are not supported in Figma, such as Full Width
.
You can still create Text Case Tokens with these Values using the Tokens Studio plugin.
When you apply them to design elements in Figma, the Token will be present and visible to engineers inspecting the design element in Figma, but the Token won't interact with the Letter Case property in Figma's UI.
When trying to reference another Token as the Value for a Text Case Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = textCase
Text Case is not yet an official Token type in the W3C Design Token Community Group specifications.
Tokens Studio has added Text Case as an unofficial Token Type in anticipation of its inclusion in the W3C specs in the near future.
When transforming Test Case tokens, there are no specific transforms to be aware of.
Running the SD-Transforms pre-processor as part of the generic package will prep your Text Case Tokens for Style Dictionary.
However, Text Case, as part of Typography Composite Tokens, requires the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
None yet!
None yet
None
The name
of a Design Token tells us who, or which parts of our system, this design decision is intended for.
Each Design Token has to have a unique Name per location. However, Design Tokens in different locations may have identical names, and this provides the basis of Theming!
We have seen many different ways to talk about Naming Tokens over the years and it can be really hard to keep them straight! So here's the common terms we will use across our technical docs that you should be aware of.
These terms are not the only way to describe Token Names; they are the labels the Tokens Studio team uses for simplicity across our documentation.
If your team uses different descriptive terms, that's totally okay!
The period (.) character is used in a Token Name to create relationships between Tokens that should be grouped together.
Here are some additional terms related to Token Names with Groups that might be helpful:
This new name, or alias, is also referred to as its semantic name in the community.
For example, a new Token named success-default
with a value referencing {colors.green.500}
could be referred to as an Alias Token.
The name success-default
may also be referred to as a semantic Token, as it provides some meaningful context about how the colors.green.500
Token is intended to be used in the system.
Here are some additional terms related to Alias Tokens that might be helpful:
The Token Name appears anywhere in the Plugin you are creating, viewing or editing a Token.
From the Tokens Page of the Tokens Studio Plugin for Figma, there are three places to see the Name of a Token.
Token data on hover
Token form
JSON file
Hover on an existing Token to view its data. The name
appears as the first piece of data in the list.
If the Token has a flat name, you will see the full name on hover. If the Token has a name with Groups, you will only see the final part of the Token Path in the preview on hover.
Right click on a Token Name and select Edit to view its properties as a form. The first input displays the Name.
Use the Token View Toggle see your Tokens written in JSON code files. The Name will appear as the first part of data about the Token.
If the Token has a flat name, you will see the full name before the rest of the properties. If the Token has a name with Groups, the JSON file will organize the data by groups.
If you are comfortable working in code (and have edit permissions), you can edit Token Names in the JSON view. However, making changes to Token Names in the JSON files which have already been applied to design elements in Figma require a few extra steps to be aware of.
When you apply a Token to a design element in Figma, the name
of the Token can appear in a few placed in the Figma UI, depending on your project:
Styles and Variables - if the Token applied is attached to Style or Variable the matching name will appear in the design panel for the appropriate property when possible.
Unless you've set the Plugin to Apply all Tokens as Resolved Values.
Dev Mode - if you've configured Tokens Studio as a plugin in Dev Mode and selected it as your language.
If you want to learn more about how your Token names appear in Figma, check out these detailed guides:
During the transformation process, they often modify the Token names to match their preferred workflow.
Most common Token name modifications:
Change casing and punctuation.
Flatten them to remove groups.
Add or remove front matter/prefixes.
Remove designer-specific words.
It's important to consider how a Token Name may be modified during the transformation process to avoid unintentional naming collisions.
Now that you've got the basics covered, check out these guides related to Naming Tokens in the Plugin:
Mentioned in this doc:
None yet!
None yet.
The value
of a Design Token defines what the design decision is and, in some cases, where the decision came from.
For example, a hard-coded Value of #22c55e
is possible when the Token Type is color
, but not when it is fontFamily
.
Before you jump into Token Types, here's an overview of the terms and capabilities of Token Values you'll see across our guides.
Once you understand whats possible you'll be able to craft Token Values that will help you work smarter, scale faster, and manage less components.
These terms are not the only way to describe Token Values; they are the labels the Tokens Studio team uses for simplicity across our documentation.
If your team uses different descriptive terms, that's totally okay!
When you write a Token with an exact value
that doesn't require any work from a tool to interpret it, we call that a hard-coded value
.
Here are some additional terms related to hard-coded values that might be helpful:
When you write a Token with a value
including the name of another Token wrapped in curly brackets, we call that a reference, some folks call it an alias.
For example, {colors.green.dark.1200}
Working with References is one of the main advantages of working with Design Tokens!
You can write the value
of your Token to include a math equation.
For example, to calculate a border radius of a focus ring the value
of your Token could be
Working with Math to calculate Token Values is a powerful feature supported by Tokens Studio.
The exact value
as it is written, which could show referenced tokens, math equations, etc. is called the Raw Value.
For example
{green-500}
is the raw value
of a Token with a reference to another Token.
#22c55e
is the raw value
of a Token with a hard-coded value.
The final value of the Token which may be a result of inheriting its value from another Token, or calculating its value from a math equation is called the Resolved Value.
For example
A Token with a math equation as its raw value of 16 + 4
would have a resolved value of 20
A Token named green-500
with a raw value that is hard-coded as #22c55e
would have the same resolved value #22c55e
A Token named success-default
with a raw value referencing the {green-500}
would have a resolved value of #22c55e
Take a look at the image below showing the color Tokens applied to a button label and see if you can identify:
Which Tokens have a hard-coded value
?
Which Tokens are referencing another in its value
?
What is the raw value
of each token?
What is the resolved value
of each token?
From the Tokens Page of the Tokens Studio Plugin for Figma, there are three places to see the value
of a Token.
Token data on hover
Token form
JSON file
Hover on an existing Token to view its data. The value
appears as the second piece of data in the list under the Token Name.
If the Token has a value
with a math equation or references another Token, the resolved value appears below the input.
If you have edit permissions, you can make changes to the Value using the input. Be sure to save your changes using the bottom button when you are finished.
Use the Token View Toggle see your Tokens written in JSON code files.
If you are comfortable working in code (and have edit permissions), you can edit Token Values in the JSON view.
Jump to the guide on JSON view for more details by selecting the card below.
Recall that Token Names within each Token Set must be unique. Token Names in different Token Sets can be identical, which provides the basis of Theming.
If you have more than one enabled Token Set with the same Token Names, how does the plugin know which resolved Value it should inherit?
The status of Token Sets
The position of Token Sets
The plugin considers all Token Sets when inheriting the value from a Token being referenced.
Token Sets with an enabled
status are preferred, then source
then disabled
is last.
If there is more than one Token Set with the same status, the Token Set in the lowest position will `win`.
Jump to the guide on Token Values with References for more details by selecting the card below.
When you apply a Token to a design element in Figma, the resolved value
is applied to your chosen design property and displayed in Figma's UI. Each Token Type has different options that map to corresponding properties in Figma.
When you export your Tokens as Styles or Variables, the resolved value
is reflected in the matching Style or Variable.
If you are using values that aren't suppored by Figma, the plugin does all the work under the hood to convert them to something Figma can use. These nuances are described in detail in the guides for each Token Type.
Each Token Type has specific Transforms to be aware of that ensure accurate resolved values that are usable in code.
Mentioned in this doc:
None yet!
None yet.
The Composition Token is a Token Type we initially introduced to support design decisions that are typically composed of multiple parts, like typography, shadows and borders.
Since then, a lot has changed.
The Design Tokens Community Group (DTCG) hosts a token specification on the W3C community group pages for web standards. Although it's in draft form, the tools and technologies working with Design Tokens are trying to align with the W3C DTCG specification.
The W3C DTCG specification defines each of these composite design decisions as their own Token Type instead of a generic composition
Token Type.
You might have noticed Tokens Studio is aligning to the W3C DTCG spec by introducing as many of the same Token Types as reasonable and feasible.
We now support typography
, border
, and boxShadow
as independent Composite Token Types.
We know some of you love the idea of Composition Tokens as a way to have a single token which captures the values of as many design decisions as possible applied to a component. In fact, many of you have requested features to push this idea even further.
While this doesn't align with the direction of the W3C DTCG spec for a Token Type, it could be an interesting feature the Tokens Studio team could work on in the future.
The Composition Token allows you to combine multiple design decisions into a single Token.
When you apply a Design Token to a design element in Figma, the properties are applied to a single layer.
This means that if you try to apply a single Composition Token to a component, like a button, it will only apply the styling properties to the layer it's applied to: the container, the text, or the icons.
It is not possible to define a single Token (of any Type) for all children layers within a design element.
It's important to note that if you use the Composition Token Type, any individual property Tokens defined in the value that are attached to Styles or Variables in Figma will not show in the Figma UI as Styles or Variables.
We suggest replacing your Composition Tokens over time with the independently defined Token Types included in the W3C DTCG specifications.
There are numerous challenges with transforming these tokens so they are usable in code.
We have several bugs and known issues open specific to this token type.
When transforming Composition Tokens, which are not an official Token Type, the SD-Transforms package has to do a lot of heavy lifting to split out the individual 'Property Tokens' with it so they are usable in code.
Composite Tokens require the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
Mentioned in this doc:
The period (.) character is used in a Token Name to create relationships between Tokens that should be grouped together.
Token Groups helps to organize your Tokens into a tree structure in the Tokens Studio plugin and their code files.
It might help to imagine each Design Token as a 'file' containing data about every individual design decision you make and the Token Set as the 'folder' where these 'files' are located, which helps you to keep things organized. However, like any folder and file system you might be familiar with, the Design Tokens in the Token Set must all have unique names. Have you ever tried to add a file to a folder on your computer that already has a file with the same name? Your computer will ask you if you want to keep both files and rename the new one or replace the old file.
In this mental model, Token Names with Groups create the individual "file" of a Token into a series of "sub-folders" or sections that enable you to quickly navigate through your design decisions and perform bulk actions.
For example, these Color Tokens do not have any grouping, also known as Flat names:
Compared to grouped names, which replaces the dash (-
) with a period (.
):
These 3 Tokens would end up being grouped in JSON file:
When you use groups in your Token Names, this helps to create logical grouping of similar design decisions which makes them easier find and faster to work with in code.
This is especially helpful when you start working with Component Specific Tokens! Your engineers will see all the Tokens related to a component grouped together which helps them work faster!
In Tokens Studio, once a Token Group is created you can take advantage of powerful workflows which allow you take bulk actions on all Tokens with the Group:
Quickly add a new Token to a Group with it's name pre-filled.
Modify your Token Views by collapsing and expanding Token Groups.
Rename all Tokens within the Group.
Duplicate all Tokens in Group.
In the same Token Set (with a name change)
In a different Token Set
Delete all Tokens in a Group at the same time.
Tokens exported to Figma as Styles can be shortened
To create a Token Group, write the Name of the Token to include a period between each group. There is no limit to the number of groups within your Token Names.
Once a Token Group is created, hover on the Group Name to see a quick add action (icon button with a + symbol) to the right of the group name.
Selecting the quick add action allows you to create a new Token (same Token Type) within the same Group by pre-filling in the Token's name.
Once a Token is created with a grouped name, hovering on the Token Name displays only the final part of the name.
Once a Token Group has been created, from the Tokens Page of the Plugin, select the name of any Token Group to collapse or expand all Tokens within the group.
The plugin is organized by Token Type, so to improve the workflow, when you collapse or expand a Token Group that behaviour is applied across all Token Types with the same group name in the current Token Set.
For example, collapsing the button.danger
group in the Color Token part of the Plugin, also collapses that group in the Typography Token part of the plugin.
Making the name change to the group will rename all children below it at the same time.
Right click on a Token Group name to open its action menu.
Select Rename
Enter the new name in the input
Select the Change button to save your new name.
Or, select Cancel to close the confirmation modal without changing the name of any Tokens within the selected Group.
When choosing a new name for the Token Group, it's important to follow the best practices for naming based on your project requirements and the technical specs.
You may have spotted the helper text on the rename group form as a reminder that renaming only affects Tokens of the same type
.
This means if you have many Token Types with the same group structure in the name, you have to remember to manually change the name of each Token Type.
For example, lets say you have a Token Set with all Tokens starting the word semantic
and your team decides its not necessary anymore, you'll need to change the Group name for each Token Type in the set as a series of steps.
Duplicating a group will duplicate all Tokens within the Group it at the same time in a Token Set of your choice. This is handy when ideating on new ideas, setting up new themes or components with similar Tokens.
Right click on a Token Group name to open its action menu.
Select Duplicate
Select the destination Token Set where the Tokens should be added
If duplicating in the current Token Set, you must rename the group to ensure all Tokens maintain a unique name.
If you want to duplicate the Group to multiple destinations, you can re-open the Token Set select menu to add another destination.
Save and confirm your action.
Or, select Cancel to close the confirmation modal without duplicating the Tokens within the selected Group.
Deleting a Token Group will permanently remove all children Tokens within the Group it at the same time.
This is a destructive task so be sure you are intending to delete all Tokens within the group and subgroups before confirming the action.
Right click on a Token Group name to open its action menu.
Select Delete
Save and confirm your action
Or, select Cancel to close the confirmation modal and keep your Token Group.
You may have to go through your Tokens to check for broken references due to Tokens being deleted as the plugin does not Surface this information to you.
As your Token Names get more sophisticated, its common to add a prefix which helps to keep things organized for those on your team working with the Tokens.
But for those on your team not working with the Tokens directly, these prefixes may not be as helpful and often eat up the limited realestate they have to work with in the Figma UI.
A group is a set of tokens belonging to a specific category.
For example:
Brand
Alert
Layout
Groups are arbitrary and tools SHOULD NOT use them to infer the type or purpose of design tokens.
Tokens Studio is will be iterating on how we approach Groups in the near future to more closely align with the W3C DTCG specifications.
Support a Description of a Group
Support assigning a Type to a Group
Support additional data via Extension data in the JSON
Support deprecated data in the JSON
Mentioned in this guide
None yet!
The description
is the anatomic part of a Design Token that can be used to define additional details, like why or how we made this decision.
You can think of a Token's description as a place to add a note or reminder about this design decision for your engineers, designers, or future self.
For example, a Font Family Token may have a description with a link to download the files.
From the Tokens Page of the Tokens Studio Plugin for Figma, there are three places to see the Description of a Token.
Token data on hover
Token form
JSON file
Hover on an existing Token to view its data. If a Description was added to the Token, it appears as the last piece of data you can view about a Token on hover.
Right click on a Token Name and select Edit to view its properties as a form.
The Description input will be empty if no Description was entered.
If you have edit permissions, you can make changes to the Description by typing in the input. Be sure to save your changes using the bottom button when you are finished.
If you reference a Token with a Description as the Value in another Token, the Description does not get passed along. This allows you to write a unique description for each Token.
Use the Token View Toggle see your Tokens written in JSON code files. If a Token has a Description it will appear as the last part of the code for that Token. If no Descriptions was entered, the code files will not include a description for that Token.
If you are comfortable working in code (and have edit permissions), you can edit Token Descriptions in the JSON view.
There are some nuances about editing Tokens in the JSON view to be aware of, documented in its guide.
The plugin does not yet support Descriptions for Variables.
The SD-Transforms package's preprocessor will transform the TS Token Type to the Style Dictionary Type, as described in the table below.
Mentioned in this doc:
None yet!
None Yet!
Token Sets are where our Design Tokens live in the Tokens Studio Plugin.
However if you are comfortable working in a code editor, the Plugin has a JSON view!
The actions at the top of the Tokens Page control how the Plugin displays the Tokens Sets and Design Tokens below.
Once you select a Token Set from the left-side menu, the Design Tokens living in that JSON file are displayed on the right.
The current Token Set selected will have the container previewing its name highlighted in blue.
Select the Token View toggle above the Tokens list on the right side to switch between the JSON and List view
Once the JSON view is open, you can apply Token data to your Figma design assets in the same way you can from the Token List View. However, you can not apply a new individual Token from the JSON view.
You can use the collapse Token Set toggle on the left side of the search input to hide the Token Set list in the left panel temporarily so you have more space to view your code files.
Coming Soon!
Mentioned in this doc:
None yet!
None Yet
By now you know the Name of a Token acts as the ID for a design decision. This means when you change the Name of a Token, you are also changing the ID being used throughout your system to find that particular design decision.
The Plugin has some optional features to make renaming an existing Token a quick and easy task. However, its important to understand how it works so you can avoid breaking changes when possible and know how to handle them when they do come up.
When you attach a Design Token to a node in Figma using the Tokens Studio Plugin, there is an invisible connection created.
This connection allows the Plugin to send data to Figma so it can apply the design decisions captured in the Token to the node the Token has been applied to.
The way Figma identifies the individual connections mapped to a nodes is by the Name of the Token.
When you change the Name of a Token, the Plugin has a built in Remap feature to update the ID of attached connections to Figma nodes at the same time.
If you don't remap the connection between the Figma node and the Token to the new name, Figma won't be able to find the right Token because it's looking for the old name which no longer exists, and the Plugin won't know which nodes it is connected to.
This broken connection is is sometimes referred to as a breaking change or a broken Token.
There are three steps to renaming a Token in the Plugin:
Enter the new Name of a Design Token
Configure your Remap options to tell the Plugin where to apply the new name in your Figma file.
The Plugin applies the new name to design elements, components, styles or variables based on your Remap options.
Sync the changes to your Remote Storage provider and publish any Figma library updates.
There are a few ways to change the Name of a Token, each with a slightly different workflow:
Token Form
Token Group
JSON view
Be sure to follow the best practices for Token Names based on your project requirements and the technical specifications!
From the Tokens page of the plugin, navigate to the Token you want to update. Right click on its name and select Edit to view its properties as a form.
The Token Form for each Token Type is unique, but the Name always appears as the first input.
Once you've entered the new name
in the first input, select the Save button at the bottom of the Token Form. The plugin will:
Update the JSON file for the current Token Set to the new name.
Update any Tokens values that reference it with the new name.
If your Token Names are written with periods in them to create groups, you can make bulk name changes to all Tokens with the same group.
From the Tokens page of the plugin, navigate to the Token Group you want to update. Right click on a Token Group name to open its action menu:
Select Rename
Enter the new name in the input
Select the Change button to save your new name.
The plugin will:
Update the JSON file for the current Token Set to the new group name.
Update any Tokens values that reference these Tokens with the new group name.
Use the Token View Toggle to see your Tokens written in JSON code files. The Name will appear as the first part of data about the Token.
If the Token has a flat name, you will see the full name before the rest of the properties. If the Token has a name with Groups, the JSON file will organize the data by groups.
You can edit the Token name
or group directly in the JSON view, just be sure to save your changes using the action at the bottom of the plugin.
Once you've saved the changes to your JSON file, the Plugin does not perform any additional steps. This means you may have to manully update:
Any Token values referencing these Tokens with the new name. If you updated a group name, that impacts more than one Token.
Any Styles or Variables attached to that Token (the previous name will continue to be the ID that Figma is looking for).
Any design elements or components that have the Token applied to them in your Figma file.
Selecting one of these options changes the name of Tokens attached to layers of design elements:
Selection - Only elements actively selected on the Figma canvas.
Page - All elements on the current page within the Figma file.
Document - All elements on every page within the Figma file.
Rename in other sets - Select this to remap the Name across all sets.
Only visible when the name change happens from the Token form and there is a Token with the same name in another Token Set
Rename variable
If you are using mode switching, be sure to enable the Rename in other sets option at the same time.
Rename style
Once you've selected your Remap options, use the actions to confirm:
Select the Cancel button to save your Token name change in the Plugin and bypass the remapping feature.
Select the Yes button to confirm your selection, and start the remapping process.
The Plugin starts to scan your Figma file based on your configuration to remap to the new name.
You'll see the progress and a rough estimate of how long it will take at the top of the Plugin. If your file has a lot of pages, components, nested components, styles and variables, this could take some time.
It's best to let the Plugin complete remapping all nodes in the Figma file before doing anything thing else in the Plugin or your Figma file. If you rename another Token before closing the Plugin, the previous remap options will be selected for you to speed up your workflow!
If something unexpected happens and you have to close the Figma file before the remapping process finished, you can use the Remap feature from the Inspect page of the plugin at anytime. This is also helpful if you edited your Token names in the JSON view, or a non-local Figma file.
If you are syncing your Tokens to a remote storage provider, the Plugin will remind you to push (or send) your changes as soon as your Token Name change is saved by showing an indicator on the Push button in the footer of the Plugin.
If you haven't already, you may want to create a new branch dedicated to these name changes, and be sure to leave your developers a really nice commit message with additional details on the changes you made.
Mentioned in this doc:
None yet!
None yet.
"A fallback font is a font face that is used when the primary font face is not loaded yet, or is missing necessary to render page content. For example, the CSS below indicates that the sans-serif
font family should be used as the font fallback for Roboto
" -
→ Style Dictionary -
SD-Transforms -
Style Dictionary -
Chrome Developer Docs -
MDN Web Docs -
CSS-Tricks -
Tokens Studio Plugin GitHub - Tokens Studio Plugin GitHub -
Paragraph Spacing Tokens define the vertical distance between 2 paragraphs of text as an individual property to be composed within a . It is not intended to be applied to text elements directly.
This isn't a typical CSS property; you could define it by adding a .
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma - Explore Text Properties,
MDN Web Docs -
Tokens Studio Plugin GitHub -
Font Size Tokens define the height of the glyphs/characters as an individual property to be composed within a . It is not intended to be applied to text elements directly.
In this property is also called font-size
.
There are additional units properties that are not supported in Figma.
However, it is mentioned as a required part of a
→
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
W3 Schools -
Tokens Studio Plugin GitHub -
Line Height Tokens define the vertical distance of each line of text (related to its font size) as an individual property to be composed within a . It is not intended to be applied to text elements directly.
In this property is called line-height
.
Relative to - value in %
There are additional units properties that are not supported in Figma:
However, is mentioned as a required part of a
Tokens Studio has added Line Height as an unofficial Token Type to support Figma's unique approach to this text property which includes the use of percentage units in its value. If your Design Tokens are being used in code, we have included a transformation to correct this inconsistency, .
Line Height Token values entered as a percentage to accommodate Figma's unique approach to Typography need to be converted into a unitless number to match the
→
→
→
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
W3 Schools -
Tokens Studio Plugin GitHub -
Letter Spacing Tokens define the horizontal distance between each glyph/character (related to its font size) as an individual property to be composed within a . It is not intended to be applied to text elements directly.
In this property is called letter-spacing
.
Figma does not allow em units but to convert em units to percentages:
However, it is mentioned as a required part of a .
Letter Spacing Token Values entered as a percentage to accommodate Figma's unique approach to Typography need to be converted to em units in .
→
→
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
W3 Schools -
Tokens Studio Plugin GitHub -
Font Weight Tokens define the thickness and styling of the characters related to the Font Family as an individual property to be composed within a . It is not intended to be applied to text elements directly.
In this property is called font-weight
.
Font Weight in is written differently for each Font Family. It also combines the font-style property. So, for one Font Family, you might see several Font Weights:
In , font-style
and font-weight
are defined as independent properties.
To work around this limitation, we've into the plug-in, which allows the value of a Font Weight Token to be written in its numerical value, like 400
or 700
, and the plugin translates it into a text string that Figma recognizes.
Font Weight is an official Token Type in the in the W3C Design Token Community Group specifications.()
It is mentioned as a required part of a
→
→
→
→
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
MDN Web Docs -
Font Weight + Font Family Pairs explained by
Import Typography Styles from Figma into Tokens Studio -
Tokens Studio Plugin GitHub -
By default, Tokens Studio will store your in the Figma file you are working in, but their true power is unleashed when they can be stored outside of a design tool and synced with code.
is a popular Git-based source code repository hosting service.
If you haven't already, head over to and create a free account.
Sign into your account and navigate to the page.
Navigate to your
The Personal access token you saved in .
The URL from the repository has the owner/repository in it after the GitHub.com/
SD-Transforms -
Style Dictionary -
Tokens Studio Plugin GitHub -
Push/pull indicator persists with GitHub Sync
🧑💻
↕️
🔐
Here's the docs for under the hood.
For example, a with 2,4
as its value represents spacing on top/bottom and right/left.
One method is to create your math equations using the or Types which don't require a unit, and add them in later.
For example, you could create a sizing scale using then add the required unit when it is referenced in a .
In Figma, the only option for a , but your engineers might prefer the Token defined as a unitless number.
In this case, you can create a unitless Number Token with the preferred value, and write an equation in the to convert it to a percentage so it works well with Figma.
At the time of writing this doc, Math as a Token value is not mentioned in for Design Tokens.
→
→
Having trouble with Math equations not resolving properly? Check your syntax!
nmp -
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Math in token value enhancements -
An is how the DTCG W3C specification defines a Design Token with a Value which references another Token.
The name of the Token you selected to reference as the Value appears as the on the left, the on the right.
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Tokens referencing the same name are showing a different value
Expand accepted reference token types and units -
Text Case Tokens define a transformation to the capitalization of letters as an individual property to be composed within a . It is not intended to be applied to text elements directly.
In , this property is called text-transform
.
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
Tokens Studio Plugin GitHub -
You might recall from our that the Token Name acts as the unique identifier for each design decision in the system and are the most customizable part of a Token's anatomy.
Each Design Token has a location of where it lives in our system files. In code, Design Tokens live in JSON files. In Tokens Studio, they live in which are the no-code representation of a JSON file.
→ J
Before you get started , you'll want to get familiar with the Common Terms related to Naming and how to work with them in the Plugin for Figma.
The Token Name is the ID of the design decision captured in the Design Token. Each Token within a Token Set must have a unique name. Token Names are used in code by engineers, so there are some specific nuances to be aware of The Name is also how the Plugin attaches a Token to a design element, style or variable in Figma.
Token Groups helps to organize your Tokens into a tree structure in the Tokens Studio plugin and their code files. , you'll learn about the powerful workflow features we've added to the Plugin which allows you to take bulk actions on Tokens in the same Group!
When a new Token is created, its . The new Token created is sometimes referred to as an Alias Token, because it's purpose is to provide an alias, or a new name, or an existing design decision with some context about how the design decision is intended to be used in the system.
When or using , the Token Name will also appear to identify which Tokens are mapped to the specific layer you have selected.
The Token Name also appears when it is being in the Value input.
→
→ .
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
You might recall from our that the Token Type determines what values
are acceptable.
For example, #22c55e
is a hard-coded hex-code value
for a .
Each Token Type has different specifications about what kind of hard-coded value
is allowed based on its properties which are defined in the , managed by the Design Tokens Community Group (DTCG).
For example, the hard-coded string value accepted for a is different from a .
For example, the accepts0.33
as a numeric value
.
For example, the accepts Welcome back {name}
as an alphanumeric value
.
For example, the accepts underline
as a string value
.
If the value
of the Token is , it will appear as entered.
If the , the appears on the left, the on the right.
Right click on a Token Name and select Edit to view its properties as a form. The second input displays the .
The will appear in the code file. The are not shown in the JSON view.
In the example below, the Color Tokens are inheriting their value from the theme-color
Tokens being referenced as their . The change based on the position of the theme
Token Sets. Whichever Token Set is lowest in the list on the left passes it's value.
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
→
The problems related to transforming this token type have been described as "untenable to work with" by Joren Broekema, the lead engineer maintaining Style Dictionary,
→
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Request to remove/deprecate Composition Tokens -
Tokens Studio Plugin GitHub -
Composition Tokens On Text Don't Theme Switch After Closing and Reopening the Plugin
Blank composition properties causing the fill property to not be applied to Figma layer
Deprecate Composition Tokens and replace with a 'template' feature.
You might recall from the that you can think of the relationship between Tokens and Token Sets similar to files and folders you save on a computer.
You might recall from the that In code, engineers often combine all Token Sets into a single file of Tokens, which are organized by Token Name in alphabetical order.
→
Tokens Studio will automatically convert your Group Names to /
when
Follow the prompts from
So when you Export your Tokens to Figma as Styles, you can choose an
With this option enabled, the colors.green.100
Token will be exported as a Color Style in Figma called green/100
as the Plugin automatically converts the periods to forward slashes to work with Figma's grouping format.
→
group
is an official property of a Design Token in the W3C Design Token Community Group specifications.
As this work is defined it will be added to the resources section of this guide, and visible on our public roadmap,
Design Tokens Community Group -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
DTCG W3C Token Group Metadata -
You might recall from our that the description
is optional but very helpful to provide additional context about the Token.
Using the Plugin, when you with a Description to Figma as a Style, the Description will be available for Designers to see in the Figma UI.
If you , its Description will be automatically added to the Token that is created by the plugin.
→
While the description
of a Token is included in the as a plain text addition to a Design Token, we've included a specific transform in the generic sd-transforms package to convert the description
to a code comment
based on popular workflows of engineers in the community.
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Figma Learn -
Tokens Studio Plugin GitHub -
In code, , so you can think of a Token Set as the no-code version of a JSON file.
If you are familiar with , you'll feel right at home in the JSON view, as the keyboard shortcuts and actions are the same.
→
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
A refers to a design element, layer, style or variable. Each node can have several different types of Tokens applied depending on the type of node.
→
→
Open the Remap options modal so you can configure how the Plugin implements the new name in Figma, .
If you've changed a grouped Token Name from its form, the change will only apply to that individual Token. If you want to apply the changes to all Tokens within that group, consider renaming the group from the Tokens Page directly ().
Making the name change in the can be a helpful way to bypass the automatic renaming of Token values with references if its not desired.
If you only want to change the name of an individual Token with the group, consider renaming the Token from its Token Form ().
→
Open the Remap options modal so you can configure how the Plugin implements the new name in Figma, .
Making the name change in the can be a helpful way to bypass the automatic renaming of Token values with references if its not desired.
Find those Tokens and
Use the and select the Option to Update existing style and variable names
Use the from the Inspect page of the plugin.
After you've saved the new Token name from its or , the remap modal will open so you can configure where the Plugin should implement the name changes in the current Figma file.
If you are working with , selecting these options will automatically change the name of Styles of Variables attached to the Token with the name change.
→ J
If you are working in a multiple Figma file setup, be sure to so the rest of your team has access to any updated components, styles and variables related to the new names.
Figma Plugin API Docs -
Figma Learn -
Tokens Studio Plugin GitHub -
In software and web development, a Theme defines the styling choices applied to the graphic elements of an interface, influencing the appearance and atmosphere of websites and software applications within a specific context, such as a brand, platform, or user preference.
When you are working with Design Tokens, the concept of theming enables you to style the same components in different ways so you can do more without needing to manage more components.
For example, instead of having 2 button components, light-mode button and dark-mode button, you have a single button component that takes on the styling properties of the color mode theme that is currently active.
The Themes feature in Tokens Studio allow you to define combinations of Token Sets that are intended to be applied together to style design elements. Under the hood, the Plugin creates a themes configuration file that can be shared with developers and used in code.
Multiple Themes can be applied at the same time to create a matrix of possible concepts that a single design element can be styled with. This is also known as multi-dimensional theming.
We are working on several new guides to help you master working with Themes in the Tokens Studio Plugin for Figma - coming soon!
Creating, editing, and removing themes.
Multi-dimensional theming.
Detach styles and variables from Themes.
Attach local styles and variables to Themes.
As soon as your Token project includes Themes, there are JSON files created by the plugin to save your configuration data so it can be shared with developers. Once developers have the new Themes files in your external storage provider, they can use that data in their transformation process to turn the themes file into usable code.
SD-Transforms generic package includes a specific transforms to convert Tokens Studio themes into individual theme files for all possible permutations
If this is the first time you are working with Themes in your project, theres a couple things you'll want to do in the Plugin Settings make the transformation process as simple as possible:
Mentioned in this Guide
Community resources:
None yet!
None
The Export to Figma Options menu has important settings for creating or updating Styles and Variables connected to your Tokens.
Select the Styles & Variables Button from the Tokens page and choose Export Styles & Variables.
The Export to Figma Options menu is the first screen in the flow.
You select which type of Variables and/or Styles you want to export each time you use this feature.
This granular control allows you export a selection of your Tokens as Variables (for example, brand colors) in one step, then repeat the process to export a different selection of Tokens as styles (for example, brand Typography)
Or perhaps you are working on a new project, and your Color design decisions are ready to export, but your Typography is not.
The options under the Tokens exported to Figma should
label perform additional functions while creating or updating the Variables and Styles types you've selected.
For Token Names that include groups, the Ignore first part of Token name for Styles
option will export the Tokens as Styles with modified names.
This is helpful when your Token Names include prefixes intended for the Design System Team which are not helpful to see in Figma.
For example, a Token named mode-colors.brand.primary.default
With this option enabled will be created as a Style named: brand.primary.default
If your Token Names don't include any groups and you have this option enabled, the Token can't be exported, and you will see an error message from the plugin. "Some Styles were ignored due to Ignore first part of Token name setting"
For example, a Token named mode-colors-brand-primary-default
will have the whole name ignored by the plugin, and the Style can't be created without a name.
Recall that Tokens must have unique names, and a Token Name is the ID to the decision decision. That unique ID can be attached to a Style or a Variable in Figma.
If you are using Themes (pro), you have multiple Tokens with the same name located in different Token Sets which are grouped into Themes.
Multiple Tokens with the same name cannot be exported to the same Figma file as Styles as they will not have a unique ID,
To solve this problem, this option creates a unique ID in Figma by adding the theme-name before the Token Name.
For example, we may have a Theme Group called color-modes
with a few themes called:
light
dark
high-contrast
Each theme has a Token called mode-colors.brand.primary.default
but a unique value. We can't export the same Token to Figma more than once.
So, if you want the color Styles for each theme exported to the same Figma file, you can enable the Prefix Styles with the active theme name
setting.
In this example, you would need to run the Export to Figma three times, as each export will only prefix the active theme name.
Export 1 - Light theme
active
Return to the themes dropdown, turn this theme off, then repeat with the next theme.
Export 2 - Dark theme
active
Return to the themes dropdown, turn this theme off, then repeat with the next theme.
Export 3 - High-contrast theme
active
After the three exports, you would see Styles in Figma named (the plugin coverts your grouped named from periods to forward slash):
light/mode-colors/brand/primary/default
dark/mode-colors/brand/primary/default
high-contrast/mode-colors/brand/primary/default
This setting tells the plugin to connect newly exported Styles with previously created Variables.
This is a multi-step process, detailed in it its own guide.
When you update the names of Tokens in the plugin that are currently attached to Styles and Variables in Figma, the Update existing Style and Variable names
option ensures Figma will be updated with the new names.
This option moved from the Plugin Settings Page with Version 2.0
When you remove Tokens in the plugin that are currently attached to Styles and Variables the Remove Styles and Variables without connection to a Token
setting will delete those Styles and Variables from Figma.
This option moved from the Plugin Settings Page with Version 2.0
This option is destructive and can lead to unexpected results!
It should only be used when you are certain you have Variables or Styles that need to be deleted from Figma.
Once you've configured and saved your Export Options, the plugin will bring you to the Export from Themes or Token Sets page.
Select a card below to jump to the next Guide you are interested in.
Figma resources:
If your team is working with Variables in Figma, you can use the Tokens Studio Plugin to attach Design Tokens to Variables (and styles). This allows you to manage your Tokens and Variables in the same place, and easily sync your design decisions to a code repository.
Select a question to reveal the answer.
If your team is working with Styles in Figma, you can use the Tokens Studio Plugin to attach Design Tokens to Styles (and Variables). This allows you to manage your Tokens and Styles in the same place, and easily sync your design decisions to a code repository.
Select a question to reveal the answer.
Free licence holders for Tokens Studio can attach their Tokens to Styles and Variables in Figma by Exporting to Figma from Token Sets.
This has some limited capabilities compared to when you Export to Figma from Themes (Pro).
Create and maintain Styles and Variables in Figma powered by Token Sets in the plugin.
A Variable collection is created for each Token Set exported.
Creating modes within a Variable Collection is not possible when exporting from Token Sets.
Choose which Token Sets are attached to Styles and Variables.
Styles can have Variable references.
Local Styles and Variables supported (within the same Figma File).
Non-local Variable references
are not possible when exporting from Token Sets.
Once you have created Tokens in the plugin, select the Styles & Variables Button from the Tokens page.
Choose the Export Styles & Variables option.
The Export Options menu will open and allow you to choose which actions the plugin should perform on the Tokens included in your export:
Export your Tokens as Variables, Styles or both.
Choose any Style export specific settings.
Choose any update specific settings.
Once you confirm your Options, you'll see the Export as Themes or Token Sets page. If you have a Free licence for Tokens Studio, you'll be brought directly to the TokenSets page.
The Token Sets page is is where you choose which Tokens are included in your export.
If needed, you can review or modify your Options before you Export by selecting the Options button at the bottom of the plugin to open the menu.
Once you select the Export to Figma button, the Plugin will apply your Export Options to all compatible Tokens included in the Export.
If you've selected to Export your Token Sets as Variables, each Token Set is mapped to a Variable Collection of the same name.
The Export from Token Sets page will display the Number of Token Sets selected for export.
By default, the number of Token Sets selected will match the configuration from the plugin's Tokens Page before you start the Export process.
For example, if only the "Primitive" Token Set was Enabled
with the checkmark visible next to the Token Set Name on the left side of the Tokens Page, the Export from Token Sets would say 1 of X Sets selected for export
.
Token Sets with a status of Reference/Set as Source are not included in the count.
Select the change sets
button to adjust which Sets are selected for Export
Select the Change Sets button to review and adjust your Token Set configuration. You will see a list of all Token Set Names you have already created and their Export status.
Adjust the status by changing the Toggle next to the Set Name.
By changing the status of your Token Sets, you are telling the plugin which Tokens Sets should be included in the Export.
Enabled Token Sets are exported
Token Sets with the toggle active on the checkmark icon are Enabled
and will be included in the Export.
These Tokens are created or updated as Styles and Variables, depending on your Export Options.
Reference Token Sets are included in the export
Token Sets with the toggle active on the curly bracket icon have the Reference Only
status.
They are not directly exported, but this status reminds the Plugin that these token sets work together with the Enabled Token Sets and should be included in the export in a limited capacity.
Changes to the values of Tokens in Reference Only sets are not updated during the export.
Tokens added or removed in Reference Only sets are not updated during the export.
You can run a second Export with only these Token Sets as Enabled if you want to fully update Figma with changes you've made in the plugin.
Disabled Token Sets are ignored
Token Sets with the toggle active on the x icon have the Disabled
status and will be ignored during the export status.
If Tokens were updated or new Tokens were added to these Tokens Sets, this information will not be passed on to Figma during the Export.
Once you have confirmed the Token Sets to be included in the Export, you'll return to the Export from Token Sets page.
The count of how many Token Sets to be Exported should reflect the choices you made in the previous steps.
If needed, you can review or modify your Options before you Export by selecting the Options button at the bottom of the plugin to open the menu.
Once you select the Export to Figma button, the Plugin will apply your Export Options to all compatible Tokens included in the Export.
When exporting Variables, you'll see a feedback message at the bottom of your Figma file depending on your configuration.
If you are creating new Collections of Variables or adding Variables within an existing collection, the message will show a count of what was created (right side of the image below).
If you are updating existing Variables, the message will tell you that no Variables were created, but will not tell you that Variables were changed (left side of the image below).
It's also common to see a red message at the bottom of your file, indicating an error in the export.
Your Figma plan only allows for the creation of 1 mode
message will appear if:
You have a Free Figma plan.
The Figma file is in your Drafts instead of a Project.
The image below shows how to tell if your file is in your Drafts.
Move the file to a Figma project then Export to Figma as Variables again to create your other modes.
Once your Export has finished, check to ensure you have the output to Figma you expected. This depends on the combination of the Export Options and the Token Sets selected to export.
If you have unexpected results, you can select a guide below for more details that are helpful in troubleshooting.
Figma resources:
When thinking about Themes, most people focus on the parts of a Token Structure that support switching between options controlled by the users of an interface, such as a light or dark mode preference.
However, not all themes switch.
For example, this documentation website has a switch for light and dark color preferences, but regardless of what option you have active, the typography and dimension design decisions remain the same.
Themes that switch are intended to always have one of the themes active, you can think of this as an 'either this or that' logic in the system.
For example, this documentation website always has either light or dark theme active.
This guide covers how to create Themes that switch using the Tokens Studio Plugin for Figma using a very simple example.
Once you've got the basics down, you can start to think strategically about your Token Structure to take advantage of multi-dimensional theming.
You might recall from the Token Name Techincal Specs guide that when the system has more than one Token with the same name located in different Token Sets, we have to tell the system which Token Value it should pay attention to.
Without the use of the Themes feature, the Plugin looks for any Token Set which is currently active (checkmark visible). If there is more than one Token Set with an active status, the Plugin favors the Token Set at the bottom of the list. You can think about this as the 'last set wins' logic of the plugin.
However, this can get confusing to manage as your system scales.
With the Themes feature, we set up a logic that allows you to toggle which Tokens Sets are active in the 'either this or that' logic with a single click.
Ensure Token Sets to be included in either theme have identical Tokens (names and types)
Using the Themes Manager, create a Theme Group with a unique name.
Create a Theme within that group with a unique name.
Select the Tokens Sets included in the Theme.
Create at least 1 additional Theme within that group with a unique name.
Select the Token Sets indluded in the Theme.
The themes manager will show all themes created within the group with a toggle switch next to them. Turning on a toggle for a theme will switch off all other themes within the group.
In two or more Token Sets, ensure you have at least one Token with the same name
and type
. The value
can be different.
In this very simple example, both Token Sets mode-colors/light
and mode-colors/dark
have two Color Tokens named:
mode-colors.neutral.container.standard
mode-colors.neutral.foreground.standard
From the Tokens Page of the Plugin, open the Themes dropdown (it doesn't matter what Token Set is showing on the page):
Select Manage Themes
Select New Theme
From the create new theme modal, select the left input for Theme Group and enter a unique name.
In this example, the Theme Group name is mode-colors
Once you've added the Theme Group name:
Enter a unique name for the Theme in the input on the right.
Adjust the Token Set status below to ensure the checkmark is toggled on only for Sets to be included.
At least one Token Set must be enabled. There is no limit to how mant Token Sets can be included in a Theme.
Token Sets that belong to any additional Themes should be disabled (X icon toggled on, checkmark icon toggled off.
If you have a sophisticated Token Structure and you know the status of some Tokens Sets need to be reference only, ensure those are configured as needed.
Press the Save theme button when you are finished. You'll return to the Themes Manager where your new Theme will be visible.
In our simple example, the Theme name is light
, and the Token Set named mode-colors/light
is enabled (checkmark toggled on). The other Token Set in this project named mode-colors/dark
is disabled.
The steps to create additional Themes within the same Theme Group are similar to above.
From the Themes Manager, select the New Theme button
From the New Theme modal, select the Add Group dropdown to open it.
You'll see a list of any Theme Groups that already exist in your project.
Select the Theme Group you created in the previous step.
In this example, the previous Theme Group called mode-colors
appears in the dropdown.
Enter a unique name for the Theme in the input on the right.
Adjust the Token Set status below to ensure the checkmark is toggled on only for Sets to be included.
At least one Token Set must be enabled. There is no limit to how mant Token Sets can be included in a Theme.
Token Sets that belong to any additional Themes should be disabled (X icon toggled on, checkmark icon toggled off.
If you have a sophisticated Token Structure and you know the status of some Tokens Sets need to be reference only, ensure those are configured as needed.
Press the Save theme button when you are finished. You'll return to the Themes Manager where your new Theme will be visible.
In our simple example, the Theme name is dark
, and the Token Set named mode-colors/dark
is enabled (checkmark toggled on). The other Token Set in this project named mode-colors/light
is disabled.
You can repeat this process as many times as needed to support all the themes you'd like to switch between in the same Theme Group.
Now that you've created a Theme Group with more than one Theme, it will appear in the Themes dropdown from the Tokens Page of the Plugin.
Selecting any Theme from the group will enable the Token Sets in the Theme and disable the status of Sets in the other Themes in the group.
In this example, selecting the light
Theme changes the status of the color-modes/light
Token Set and disables the color-modes/dark
Token Set. Selecting the dark
Theme does the inverse.
Once you export your Themes that switch as a Variable Collection in Figma
The Theme Group is mapped to a Variable Collection with the same name.
Each Theme within the Group is mapped to a Variable Mode with the same name.
If you have more Themes in a Theme Group than you Figma plan will allow, the Plugin will prioritize them in order from top to bottom.
As soon as your Token project includes Themes, there are JSON files created by the plugin to save your configuration data so it can be shared with developers. Once developers have the new Themes files in your external storage provider, they can use that data in their transformation process to turn the themes file into usable code.
SD-Transforms generic package includes a specific transforms to convert Tokens Studio themes into individual theme files for all possible permutations
If this is the first time you are working with Themes in your project, theres a couple things you'll want to do in the Plugin Settings make the transformation process as simple as possible:
Mentioned in this Guide
Community resources:
None yet!
None
Don't have a Pro Licence? You can still Export to Figma using Token Sets
Choose which Themes are attached to Styles and Variables.
Styles can have Variable references.
Variable collections with mode switching is supported.
Separate Figma Files can have Styles and Variables attached to different Themes.
Also known as Non-local Variable references
Once you have created your Themes (pro) in the plugin, select the Styles & Variables Button from the Tokens page.
Choose the Export Styles & Variables option.
The Export Options menu will open and allow you to choose which actions the plugin should perform on the Tokens included in your export:
Export your Tokens as Variables, Styles or both.
Choose any Style export specific settings.
Choose any update specific settings.
Once you confirm your Options, you'll see the Export as Themes or Token Sets page. If you have a Pro licence for Tokens Studio, you'll be brought directly to the Themes page.
The Themes page is is where you choose which Themes are included in your export.
If needed, you can review or modify your Options before you Export by selecting the Options button at the bottom of the plugin to open the menu.
Once you select the Export to Figma button, the Plugin will apply your Export Options to all compatible Tokens included in the Export.
If you've selected to Export your Themes as Variables, each Theme Group is mapped to a Variable Collection with the same name.
Each Theme within the Group is mapped to a Variable Mode with the same name.
The Export from Themes page will display a list of all Themes you've already created.
If you don't see any Themes listed, (the example in the image below on the left) you'll need to create a Theme to complete the export.
To select which Themes to include in the Export, select the checkmark to the left of the Theme name. By default, all checkmarks are selected to be included for export.
Checkmark visible will be exported
Empty checkbox will not be exported.
If needed, you can review or modify your Options before you Export by selecting the Options button at the bottom of the plugin to open the menu.
Once you select the Export to Figma button, the Plugin will apply your Export Options to all compatible Tokens included in the Export.
When exporting Variables, you'll see a feedback message at the bottom of your Figma file depending on your configuration.
If you are creating new Collections of Variables or adding Variables within an existing collection, the message will show a count of what was created (right side of the image below).
If you are updating existing Variables, the message will tell you that no Variables were created, but will not tell you that Variables were changed (left side of the image below).
It's also common to see a red message at the bottom of your file, indicating an error in the export.
Your Figma plan only allows for the creation of 1 mode
message will appear if:
You have a Free Figma plan.
The Figma file is in your Drafts instead of a Project.
The image below shows how to tell if your file is in your Drafts.
Move the file to a Figma project then Export to Figma as Variables again to create your other modes.
Your Figma plan only allows the creation of 4 modes
message will appear if you have 5 or more Themes within your Theme Group.
The Plugin will export the first 4 Themes to your Variable collection (starting at the top of the Themes list) and skip the rest.
In the image below on the left, there are 5 Themes within the brands
Theme Group, and on the right, the first 4 Themes have been created as modes within a Variable collection in Figma called brands
.
The 5th Theme in our list at the bottom called black-berry
was not exported.
Once your Export has finished, check to ensure you have the output to Figma you expected. This depends on the combination of the Export Options and the Themes you selected to export.
If you have unexpected results, you can select a guide below for more details that are helpful in troubleshooting.
Figma resources:
As of the plugin's V2 launch, we are happy to support 21 unique Token Types that can be exported to Figma as Styles or Variables.
The Export feature creates and updates Styles or Variables attached to the Tokens with the same name in the plugin. This allows Tokens Studio to be the single place to manage design Tokens, Styles, and Variables in Figma.
Each time you Export to Figma, you choose:
The type of Style or Variables to export.
Which Themes or Token Sets are included in the export.
You may select the name of the Token Type below to learn more about that token type or keep reading to learn more about Exporting to Figma.
Boolean
none
Controls layer visibility, not component properties.
String
none
Replaces placeholder text when applied to text layers.
Color
Color
Variables referenced in the style value is possible.
none
Color
Variables referenced in the style value is possible.
Color
Color
Modified colors won't show their references in variables.
Number
none
Controls layer visibility applied as a number variable.
Number
none
Converted to a unitless number. Rem units are converted to pixel equivalent.
Number
none
If units are added to the token there are unexpected results (known issue).
Number
none
If units are added to the token, the unit will be dropped.
Number
none
If units are added to the token, the unit will be dropped.
Number
none
If units are added to the token, the unit will be dropped.
Number
none
If units are added to the token, the unit will be dropped.
none
none
Variables referenced in the token value will appear for color and border-width properties.
none
effect
Variables referenced in the token value will appear for color and dimension properties.
none
text
Variables referenced in the token value will appear in the text style for available properties. The 'particle' Tokens will be exported as variables according to their token type.
String
none
Exported as a part of the Text style created by the Typography Token (composite).
String / Number
none
Exported as a part of the Text style created by the Typography Token (composite).
Number
none
Exported as a part of the Text style created by the Typography Token (composite).
Number
none
Exported as a part of the Text style created by the Typography Token (composite).
Number
none
Exported as a part of the Text style created by the Typography Token (composite).
Number
none
Exported as a part of the Text style created by the Typography Token (composite).
none
none
Exported as a part of the Text style created by the Typography Token (composite).
none
none
Exported as a part of the Text style created by the Typography Token (composite).
Once you have created your Tokens in the plugin, select the Styles & Variables Button from the Tokens page to open the menu.
Select Export styles & variables.
Review the Export to Figma Options and select your configuration based on your desired task.
Choose to Export as Themes or Token Sets
Select which Theme or Sets to export
Confirm and complete the export.
The Export to Figma options allow you to make some key configurations:
Export your Tokens as Variables, Styles or both.
Define which types of variables you want to export.
Choose any Style specific settings.
Style name modifications.
Style values with variable references.
Choose any update-specific settings.
Token name changes.
Remove styles and variables no longer connected to a token.
Depending on your Tokens Studio licence and your Token Structure, you can choose to export to Figma connected to Themes or Token Sets.
Themes (pro)
Exports your selected Themes to Variables with multiple modes within a collection.
Maintains a connection with exported Styles and Variables for seamless updates.
Across multiple Figma files if desired.
Requires a pro licence for Tokens Studio
Token Sets
Exports your selected Token Set to Variables as a separate collections
Multiple modes are not supported.
Tokens aren't always connected to the Styles and Variables created from Token Sets.
When you update your Tokens, you may have to replace existing Styles and Variables.
Once you've confirmed your selection, the Styles or Variables you selected will be Exported to Figma.
There are some exceptions where the plugin has to 'skip' exporting some of your Tokens to variables.
The plugin supports Styles with Variable references. This allows you to create Color, Text, and Effect Styles with values connected to Variables, all powered by your Design Tokens.
This workflow requires a few steps to get started.
Figma resources:
You can import all your Variables from Figma into Tokens Studio in just a few clicks.
The Import Variables feature creates a Design Token for each Variable and a Token Set for each Mode in your Collection.
While the Import Variables feature is due for an update, this guide will walk you through how to get your Variables into Tokens Studio and point out the limitation that exist today and how to work around them.
Then, you can decide whether to use the Plugin to manage your Variables, export them to code in properly formatted JSON files as Design Tokens or move your Variables to another Figma file.
In the Figma file where your Variable Collections live, open the Tokens Studio Plugin.
If you don't already have Tokens in this file, select the New empty file option when the plugin loads.
Select the Styles & Variables Button from the Tokens page to reveal the Import and Export to Figma menu.
From the Styles and Variables menu
Choose the Import Variables action.
The Import Variables Modal appears with two options.
The Import Variables Modal appears with two options which tell the plugin how to import Number Variables.
Convert numbers to dimensions.
Use rem for dimension values.
When the Convert numbers to dimensions option is disabled (empty checkbox) the plugin will create all Number Variables with a Token Type of Number.
When the Convert numbers to dimensions option is enabled (checkmark is visible) the plugin will create all Number Variables with a Token Type of Dimension.
How can you decide which option is for you?
Number Tokens are intended to be unitless.
Dimension Tokens are required to have a unit of measure.
By default, the plugin will add the px
unit to your Dimension Tokens when you import, unless you specify otherwise using the second option.
When the Use rem for dimension values option is enabled (checkmark is visible) the plugin will convert the value from pixel to rem units, assuming 16
as the value of 1rem
.
As a note, this setting only works when the previous checkbox is also enabled.
Base font size setting
If you haven't configured the Base Font SIze Setting before you'll need to close the Import Modal and head to the Settings Page.
Select Change on the right side of the Base Font Size setting.
A form will open where you can enter in a unitless number (for example 16
)
Or use the dropdown to select a Number Token.
Once you have set the value, save your changes, and you can go back to the Import Variables flow.
Reminder that the Base Font Size Setting is saved to your Plugin account.
So when you open a new Figma file, the configuration you had for this setting in the last file "follows" you into the new file.
If you frequently adjust this setting, you'll want to check your configuration before importing your Variables as Dimensions with the Use rem value option enabled.
Once you've confirmed your Import Variable options, select the Import button at the bottom of the modal.
The plugin will display a list of Variable names and values to import.
Review the "diff" list and confirm the import.
Variable names in the section called New Tokens
are not connected to a Token in your file, and a new Token will be created with the same name.
The variable names in the section called Existing Tokens
are already connected to Tokens in your file, and the plugin has detected a change in their value. The import action will update the existing Tokens.
Green items are new or being added.
Red items are being removed.
There are a few ways to select what to Import from this list.
Select the Import all button at the bottom of the modal to import all Variables in the list, this would create all new Tokens and update all exisiting Tokens in the list.
Select the Create all button on the right side of the New Tokens
section to create new Tokens in that section of this list, and ignore the Variables in the Existing Tokens list.
Select the Update all button on the right side of the Existing Tokens
section to update the Tokens attached to the Variables in that section of this list without creating any new Tokens.
Select the plus icon button on the right side of any Variable name to create or update a single Token.
Select the trash can icon button on the right side of any Variable name to remove it from the list, or exclude it from the import process.
Collection = Token Set folder name.
Mode = Token Set
Variable = Design Token
When you import Variable collections into the plugin, you will see each Variable collection becomes a folder of Token Sets, with the folder name matching the collection name.
Each Mode within the Variable Collection becomes an individual Token Set, with the Set name matching the Mode name.
These Token Sets are nested within the same folder as the Variable Collection they came from.
Each Variable is created as a Design Token with the same name and value.
Any groups in the Variables (with the forward slash /
) are created as grouped Token Names (with a period .
).
The Tokens live in a Token Set with the same name as the Variable Collection and Mode.
If you only have 1 mode in your Variable Collections when you Import them, you'll still see the folder structure of Token Set names.
If you have not renamed the Mode in Figma, it will appear as collection-name/Mode 1
.
If you are using the Rem for Dimension Value Setting and you see values of NaNrem
in the confirm view, this is unexpected behaviour caused by a known issue in the plugin.
Once your Variables have been imported, there is a connection between the Variable and the Token in the plugin that shares the same name. In our docs, we use the term "attached" to describe this relationship.
There are a couple of ways to keep the values of your Tokens and Variables up to date, depending on how you like to work and if you are a Pro Licence holder for the Plugin.
If you prefer to work in Figma natively, you can repeat the Import Variables process anytime. This will update the values of attached Tokens in the plugin as long as the name of your Variables, modes, or collection has not changed.
If you were hoping to import your Variables and use Tokens Studio as your source of truth for maintaining your design decisions, our Themes feature (pro) makes this possible.
The Themes feature has a concept of Themes Groups, which allows the plugin to connect to a Variable collection with multiple modes.
The process has a few steps to be aware of, outlined in its own guide.
There are some known limitations of importing Variables to be aware of.
Today, when you import a lot of Variables into the Plugin, they all share the same configuration for converting Number variables into Dimension Tokens and if you want those values in rem or pixel units.
You may want your text-related Variables imported in rem units and other Variables in pixels or even unitless numbers.
A way to work around this after you've completed the import and the Tokens have been created:
Locate the Tokens or Token Sets you want to have the unique configuration and delete them from the plugin
Delete an entire Token set by right-clicking on the name of the Token Set and selecting delete.
Delete a specific Token by right-clicking on its name and selecting delete.
Repeat the Import Variables process with your new desired options and only the Variables without a matching Token Name in the Plugin will be imported with the new options.
Today, if you import your Variables first and then your Styles second, the Plugin can't read those connections and complete the references for you yet.
The only way to complete this task today is to manually change the Values of the Tokens created when you imported your Styles to reference a Token that is attached to your Variables.
Token Types don't match Variable Types
Figma has 4 types of Variables, and Tokens Studio supports 24 unique Token Types.
When you import Variables into the Plugin, it does not know the correct Token Type to assign to the new Token outside of those 4 Token Types.
This means you might have to manually change the type
of the Token created when you import your Variables. The fastest way to do this is to edit the code files.
If this is your first time working with Tokens Studio to manage your Variables, you might want to check out these guides:
Figma resources:
None yet!
Tokens Studio Plugin GitHub - Open issues for Token Type Border
None yet
None
Tokens skipped when exporting as Variables When Exporting to Figma, the plugin sometimes can't create or update your Variables as expected.
Your Export to Figma Options configuration allows you to skip certain types of Variables if needed.
However, there are three main reasons why the plugin will skip creating individual Variables when Exporting to Figma:
The Token Type isn't compatible with any Variable type.
The Token Value isn't supported in Variables.
You have exceeded the number of allowed variables.
While we have figured out how to support most Tokens to Figma as Variables, these are the Token Types that will be skipped when you Export to Figma as Variables as there is no compatible Variable Type.
Asset Token
Composition Token
Other Token
Composite Token Types will also be skipped as Figma only supports single value Tokens as Variables. However, they can be exported as Styles with Variable references where possible.
Select the Token Type to jump to its guide and read the specific pro-tips on exporting as Styles with Variable references:
Figma only supports a single value for a variable.
This means if you have a Token with multiple values, like a Color Token with its value defined as a linear gradient, that Token can not be exported to Figma as a variable.
Tokens Studio supports multiple values for:
The AUTO
value is used for Line Height Tokens and Typography Composite Tokens to match Figma's required string value.
The plugin isn't able to resolve the AUTO
value but relies on Figma to apply the correct value based on the Font Size.
Figma only accepts numeric values for this property, and therefore, it is skipped when exporting as Variables.
When you export as Text Styles, the AUTO
value will be applied in Figma as expected.
Figma's Number Variables must be unitless.
The plugin will skip Tokens with %
values that should be exported as Number Variables as it can't resolve the value and pass it over to Figma is a numeric value.
If the Token Type is text
or opacity
, those will be exported as those Variables support the percentage value.
If you export more than 5000 tokens as variables, we will create the first 5000 and skip the remaining Tokens.
This size of the Variable library is bound to lead to memory issues, so you might want to split up your Tokens into multiple collections.
If you are exporting more Themes than you are allowed to have as modes in Figma, we will create as many as possible and then skip the remaining.
In the plugin, under the Themes dropdown, you will see the list of Themes in each Theme group.
We will create as many as possible, starting at the top.
In the image below on the left, there are 5 Themes within the brands
Theme Group, and on the right, the first 4 Themes have been created as modes within a Variable collection in Figma called brands
. The 5th Theme in our list at the bottom called black-berry
was not exported.
Note that Figma doesn't allow Variable modes when a file isn't in a project
If you are on any paid plan and we aren't exporting your themes as expected, check to see if your Figma file is in your drafts folder.
The image below shows how to tell if your file is in your Drafts.
Move the file to a Figma project then Export to Figma as Variables again to create your other modes.
Figma resources:
If you were hoping to import your Variables and use Tokens Studio as your source of truth for maintaining your design decisions, our Themes feature (pro) makes this possible.
The Themes feature has a concept of Groups of Themes, which allows the plugin to connect to a Variable collection with multiple modes.
If you have a Pro Licence for Tokens Studio, here are the steps to attach the Imported Variables to Themes, allowing you to use the plugin to update your Variables.
The image below shows how Theme Groups and Themes map to Figma's Variable collections and modes.
Once you Import your Variables Into Tokens Studio, you've taken a "snapshot" of the Variables and their values as Tokens in the Plugin. You need to establish a relationship between the Tokens and the Variables, and Themes are how the Plugin is able to attach the Tokens to Variables across multiple modes and collections.
This is the same example used in the Import Variables Guide.
After the Import is complete, in the Plugin you will see:
Each Variable collection becomes a folder of Token Sets, with the folder name matching the collection name.
Each Mode within the Variable Collection becomes an individual Token Set, with the Set name matching the Mode name, nested within the folder name matching the collection name.
Each Variable is created as a Design Token with the same name and value.
To attach the Design Tokens in the Plugin to the Variables in Figma, you'll:
Create Theme Groups and Themes with names that match the Variable Collections and Modes.
Attach the Themes with Variables using the Export to Figma feature.
Check the connection between your Themes and Variables.
When the Plugin completed the import, each Token Set name contains the collection/mode
, so you will use this to create the theme-group/theme
names to match.
The easiest way to do this so there is an exact match is to copy the Token Set name.
Right-click on the Token Set Name (left side navigation panel on the Tokens page).
Select Rename.
The Rename Token Set modal appears with the current name inside the text input.
Select the current name from the input and copy it using a keyboard shortcut.
command + C on a Mac
control + C on a PC
Paste the name in a text editor of your choice.
For example brands/apple
is the full set name in the image below.
From the Tokens Page of the Plugin, open the Themes dropdown (it doesn't matter what Token Set is showing on the page):
Select Manage Themes
Select New Theme
From the Themes manager, select the New Theme button.
Once the Create Themes form is open:
Select + add group from the top left.
Paste in the part of the Token Set name that appears before the /
For example brands
Select the Theme name input and paste the part of the Token Set name that appears after the /
.
For example apple
Under the inputs is a complete list of all Token Sets.
Ensure only Token Set with the name matching the Theme you are creating has the Status of Enabled (checkmark icon button is highlighted).
Ensure all other Token Sets have a Status of Disabled (X icon button is highlighted).
Select Save Theme to finish.
You'll return to the Themes Manager where your new Theme is now listed.
Now you can repeat this process for the rest of the Token Sets created from your Imported Variables.
In this example, 3 Variable collections were imported with a total of 7 Token Sets.
brand
Variable collection has 3 more Token Sets to add.
primitive
Variable collection to be created as a Theme Group with 2 Token Sets.
theme
Variable collection to be created as a Theme Group with 2 Token Sets.
The good news is, if you are creating an additional Theme inside an existing Theme Group, you can select the Theme Group from the form instead of typing it each time.
In this example, the brands
Theme Group created previously appears in the dropdown while adding the new Theme called berry.
When all Token Sets have been added into Theme Groups, you are ready to create the connection to the Variables.
In this example, the Themes Manager shows 3 Theme Groups with names that match the imported Variable Collections and Modes.
You'll use the Export to Figma feature to attach your newly created Themes to your Variables in Figma. Once the connection is made, you can use The Plugin to manage your Variables.
This is a quick overview of the steps using this example.
Select the Styles & Variables Button from the Tokens page.
Choose the Export Styles & Variables option.
The Export Options menu will open, ensure you have:
All Variable types selected
None of the Style types selected
None of the toggles selected under the Tokens Exported to Figma should option.
Select confirm to close the Options menu.
You should be looking at the full list of Theme Groups and Themes in your Token Structure.
Select all Themes within the Theme Groups you just created (checkmark is visible).
Select Export to Figma to complete the action.
Your Variable collections should now be connected to Tokens Studio!
If you navigate back to the Themes manager, you'll see a count of attached Variables for each Theme.
You can test this by making a change to to a Token from the plugin, and running the Export to Figma action again, you should see the matching Variable change in the Figma UI.
If you have unexpected results, here are some additional guides that might be helpful in troubleshooting:
You can create Design Tokens in Tokens Studio by importing your Styles or Variables from Figma into the Plugin. This allows Tokens Studio to be the single place to manage Tokens, Styles, and Variables in Figma.
Each time you Import from Figma, you choose:
To import Variables or Variables.
Which Types of Variables or Styles to import at that time.
When importing variables:
When importing styles
While the process for importing Styles or Variables is similar, there are some differences to be aware of, described in detail in their guides:
For the Figma Styles which support Variable values, you can create and manage Styles with Variables references attached to your Design Tokens using the Tokens Studio Plugin for Figma.
This allows you to take advantage of the workflow benefits of working with Tokens Studio in Figma while sharing Styles and Variables with consumers of your Figma libraries.
If this is your first time Exporting to Figma, you'll want to get familiar with the basics of the process, then come back to this guide.
This is a multi-step process that involves a bit of prep work to allow the Plugin to attach your Tokens to the right features in Figma.
Each Token Type that supports Styles with Variable References, specific steps are included in its guide. However, the steps below outline the basics of how tis feature works.
Before you export your desired Tokens to Figma as Styles, ensure your Tokens have been created with Values that reference another token.
It's important that the Tokens being referenced as the value have a unique name from the Token being exported as Styles.
If you haven't already, complete the Export to Figma as Variables process for the Tokens being referenced as the values of the Tokens you want to export as Styles.
In order for the plugin to attach your Styles to the Variables you created, you may have to configure the status of Token Sets included in the export.
The process is slightly different if you are Exporting from Themes or Token Sets.
Open the Theme you want to Export as Styles
Ensure your Theme configuration has:
Token Sets being Exported as Styles are Enabled
.
Token Sets being referenced in their values may need to be set as Reference only
Confirm and save the Theme configuration and close the Theme modal.
Open the Export to Styles and Variables modal and select your Export Options:
The Style Types you want to create are selected (checkmark visible).
The Create Styles with Variable references is selected (switch is on).
Select Confirm to save your configuration and close this menu.
You can open this menu anytime using the Options button at the bottom of the Export to Figma modal.
Select the Themes you want to Export as Styles.
Ensure the themes you have exported as Variables are not selected.
Check the newly created Styles.
If the values are showing hard-coded values instead of your variables, don't worry!
There's a known issue with the plugin where occasionally it needs to create the styles before it can attach the Variable references.
Repeat the Export to Styles flow again, and the plugin will be able to map your variables to your styles.
When you see the name of your Variables in the values of the Styles, the process is complete!
If you are Exporting your Tokens from Token Sets, open the Export to Styles and Variables modal and select your Export Options to ensure:
The Style Types you want to create are selected (checkmark visible).
The Create Styles with Variable references is selected (switch is on).
Select Confirm to save your configuration and close this menu.
You can open this menu anytime using the Options button at the bottom of the Export to Figma modal.
From the Token Sets page, select the Change Sets Button to review your Token Set configuration.
Review your Token Set configuration:
Token Sets being Exported as Styles are Enabled
.
Token Sets being referenced in their values may need to be set as Reference only
.
Save and confirm.
Select the Export to Figma button
Check the newly created Styles.
If the values are showing hard-coded values instead of your variables, don't worry!
There's a known issue with the plugin where, occasionally, it needs to create the styles before it can attach the Variable references.
Repeat the Export to Styles flow again, and the plugin will be able to map your variables to your styles.
When you see the name of your Variables in the values of the Styles, the process is complete!
If you have unexpected results, read the Troubleshooting section below.
Here are the common issues you might run into the first couple of times you try this process.
If the Tokens you exported are created as styles with the correct value, but they are missing the connection to the attached Variable, the plugin is missing the information it needs to attach it to a variable.
Ensure the Tokens you Exported have values that are referencing existing Tokens.
Values are the name of a token inside curly brackets: {token-name}
Ensure the Tokens being referenced have been created as Variables
If not:
Export to Figma as Variables for the Referenced Tokens so they are created
Then repeat the Export to Figma as Styles step above
Ensure the Create Styles with Variable references option is enabled
If the Tokens you exported were created as Styles, but the values are "empty", the plugin is missing the information it needs to populate the values.
Ensure the Token Sets containing the Tokens being referenced in the Values have a status of enabled or reference only.
Ensure the Token Sets containing the Tokens being Exported as Styles have a status of Enabled
If the Tokens you exported were created as Styles, but some of the values are hard-coded and others are referencing Variables, the plugin is missing a connection to some the Variables.
Check your Token Values and Token Types for compatibility as not all Token Values and Token Types are compatible with Variables.
A common example is Typography Composite Tokens with Percentage (%)
in their values for Line Height or Letter Spacing.
The plugin will create the Text Style and show attached Variable references for most properties.
The values with percentages will remain as hard-coded values because Figma does not support numeric values with units.
Select a Token Type guide below for more details that are helpful in troubleshooting.
Figma resources:
Once the Plugin is connected to your Dev Mode account, you can select Tokens Studio
as a programming language option to view the data from the Plugin attached to the layers you are currently inspecting in Dev Mode.
From any Figma file, toggle to Dev Mode using the action at the bottom toolbar or use the keyboard shortcut shift + D.
From the Dev Mode panel, select the plugin tab on the top right of the Figma UI.
Use the search feature (underneath the Plugin tab) to look for Tokens Studio for Figma
.
Select the icon button with the ribbon symbol on the right side of the Plugin name to save it to your Figma account.
Once the Plugin has been saved to your Dev Mode account, you can view Design Tokens applied to design elements by the Tokens Studio Plugin.
From any Figma file, toggle to Dev Mode using the action at the bottom toolbar or use the keyboard shortcut shift + D.
Navigate to the Inspect Tab in Dev Mode.
Find the Programming Language selector and choose Tokens Studio
.
On the Figma canvas, select the specific layer you'd like to view.
The names of any Tokens applied to that layer with the plugin will appear in the Dev Mode panel where code is displayed.
If desired, you can use Figma's copy button to capture all Token Names appearing in Dev Mode to your clipboard to you can paste them elsewhere.
Mentioned in this guide:
None yet!
By default, Tokens Studio will store your Design Tokens locally in the Figma file you are working in.
Once you have added one or more Sync Providers to Tokens Studio, you can temporarily store your tokens locally in the Figma file. This is helpful for offline work, saving backups of your Figma files, or prepping a file to share with other people who won't have access to your sync provider.
Open the Tokens Studio plugin and navigate to the settings page.
Navigate to the sync provider section.
Select the local document option.
A confirmation dialog appears asking you to confirm this change
If you select cancel
The modal will close, and your current sync provider settings will remain.
If you select yes
Tokens currently in the plugin will be stored in the current Figma file
The push and pull actions from the bottom of the plugin won't be available.
Changes made to tokens will remain in the current Figma and can't be shared in other Figma files.
The Local document option will show as active on the plugin's settings page.
You can switch back to using a Sync provider to store your Tokens remotely at anytime.
Community resources:
None yet!
None yet
You can remove a Design Token that has been applied to a design element in Figma from the Tokens page or Inspect page of the Plugin.
This does not delete the Token from your project, it simply severs the connection that Tokens Studio has mapped to Figma based on your configuration.
If you delete a Token from your project, it does not automatically remove Token from your Design elements in Figma.
It's important to note that not all Tokens can be removed using the Tokens Studio Plugin for Figma.
Tokens that were applied with the Tokens Studio for Figma Plugin can be removed in the Plugin.
Tokens applied using Figma native features must be removed using the Figma UI as the Plugin can not remove a Style or a Variable. The Inspect page of the plugin will show how the Token was applied.
If you have a Token applied to a design element in Figma and you want to change it to a different Token, you can apply the new Token to the same property without needing to remove the original Token.
There are two places in the Plugin you can remove Tokens:
Tokens Page - remove an individual Token to selected Figma elements.
Inspect Page - remove one of more Tokens to selected Figma elements.
From the Tokens Page of the Plugin, you'll need to navigate to the Token Set where the Tokens applied to your selected Figma design elements live.
Selecting a Token with a ring on it will remove the Token from the Figma design elements (if they are not an instance of a component).
Select one or more design elements on the Figma canvas then navigate to the Inspect page of the Plugin. Tokens, Styles and Variables that have been applied will be listed.
Select the Tokens you want to remove by ensuring the checkmark to the left of the Token name is visible, then select the Remove Tokens button. If the selected design element is not an instance of a component and the Token was applied using the Plugin (Figma style or variable symbols not present) the plugin will remove the Tokens.
Mentioned in this doc:
None yet!
None yet.
Figma has 4 types of Variables, and Tokens Studio supports 24 unique Token Types.
When you import Variables into the Plugin, it does not know the correct Token Type to assign to the new Token outside of those 4 Token Types.
This means you might have to manually change the type
of the Token created when you import your Variables. The fastest way to do this is to edit the code files.
Here's a list of the common names of our Token Types, and how they should be written in the code files. For example, a Variable set for Font Family will be imported with the text
Token Type, because its created as a string variable in Figma.
The Settings page is where you can make personalized configurations to the plugin.
When you upgrade to a pro licence for Tokens Studio, you add the key here.
Be sure to press the Add licence key button when you are finished.
It's a good idea to keep a copy of your licence key handy wherever you safely store your passwords.
If you haven't upgraded to pro yet, select the GET PRO button by the licence key input to open a browser page with more details.
By default, Tokens Studio will store your design tokens locally in the Figma file you are working in, but their true power is unleashed when they can be synced with code.
You can manage your sync providers from the Settings Page.
To support moving towards the W3C Specifications for Design Tokens, as managed by the Design Tokens Community Group (DTCG), you can choose a Design Token Format that defines how tokens are written in their JSON files.
The plugin supports multiple languages thanks to the generous contributions of our open-source community members! ✨
Use the Language Selector to choose from:
English
French
Dutch
Chinese
Hindi
Spanish
The plugin sets the Base Font Size to 16px by default. To change this value, use the Change button and follow the prompts.
Enabling this setting creates a unique ID that can be shared with the Tokens Studio support team to help troubleshoot issues you might be having.
The recorded telemetry data collected is anonymized and is not shared with any third parties.
You can leave this setting disabled until a support team asks you to turn it on.
If it's been a while since you used the plugin, this setting will open the onboarding content we show new users to the plugin.
The plugin's V2 release made some major changes to the way we work with Styles and Variables in Figma.
As a result, we moved the related settings to the new Export to Figma workflow, in the Options menu.
Ignore first part of token name for styles.
Prefix styles with active theme name
Community resources:
None yet!
None yet
Current Tokens Studio "legacy" format
W3C DTCG spec format
The DTCG format prefixes the properties of a design token in the JSON file with the dollar sign ($
)
$value
$type
$description
Restrictions of special characters in token names are introduced to support this:
{
}
$
When creating Token names with these characters, an error message appears, and the action is blocked.
The choice of Token Format can be defined for Tokens stored in the local file or remote via a sync provider. For Git sync providers, different branches can have different Token Formats.
You can select a token format in two locations:
Plugin settings > sync/storage providers.
Sync actions at the bottom of the plugin when a remote storage provider is active.
On the plugin's settings page, you can see the Token Format being used in your file next to your token storage provider.
The default is legacy format
When you make the switch, you'll see W3C DTCG format
Tokens stored on the local document
If your tokens are stored locally in the Figma file (no external storage or sync providers), the Token format action is to the right of the local document option.
Tokens stored externally
When your tokens are stored externally via Sync providers the token format for the active sync provider will show.
The token format for other sync providers will be hidden.
When synced to external storage, the current token format also appears at the bottom of the plugin alongside the other Sync provider actions.
It's possible for different branches of a sync provider to have different token formats, so you can select the Token format icon button to switch formats if needed.
Select the Token format indicator to start the process of changing formats (from the settings page or sync actions):
A Token format modal appears to explain the process.
Confirm your decision to switch formats.
The plugin will convert your token JSON files to the format of your choice.
The plugin will convert your token JSON files to the format of your choice without any further action from you.
If you have unsaved changes that need to be synced to a remote storage provider that requires it, the plugin will prompt you to push changes so you don't lose your work.
A new branch is automatically created for you with updated JSON files.
The push changes modal will open.
A pre-filled commit message is added to help your engineers know what to do when they receive your changes.
Follow the prompts in the plugin to push changes to your sync provider.
Once you've synced your changes, the plugin will automatically have you working in the newly created branch. You'll see the W3C DTCG Token Format indicators next to the branch name at the bottom of the plugin.
When your design token format is set to W3C DTCG Format
using the steps above, you'll need to configure Style Dictionary to support this.
For each Token Type the SD-Transforms package will automatically convert the Tokens Studio specific Token Type to align with the DTCG Format Token Type where necessary.
Mentioned in this doc:
Community resources:
None yet!
Remove composition tokens [#2800](# Remove composition tokens #2800)
None
The Base Font Size provides the value for 1rem
in the plugin.
This feature not only supports responsive design decisions but also ensures the adaptability of the design, similar to how engineers work in code.
When you assign a Token's value in rem units, the property is related to the Base Font Size, which the user of your product or website can adjust.
For example, if the user increases the font size or uses a zoom feature, all design properties defined in rem units
will respond accordingly.
In contrast, design elements defined in pixels
will remain the same regardless of the user settings.
Figma does not support rem units
in Design Mode, but it will show a loose conversion of rem units in Dev Mode, always assuming 1rem = 16px.
When working with the Tokens Studio plugin for Figma, it automatically converts rem units
to pixels
for you.
The value of the Base Font Size is 16px
by default, but it can be changed.
The plugin supports the value of the Base Font Size token to reference another token if desired.
This could be helpful for sophisticated token structures, where a different Base Font Size is defined for each brand or theme.
Navigate to the Settings Page in the plugin.
Scroll down to the Base Font Size section.
You will see:
The current value of 1rem
unit
Navigate to the Settings Page in the plugin.
Scroll down to the Base Font Size section.
Select the Change Button to the left of the current value being displayed.
The Change Base Font Size Modal will open
Enter a new value in the form field:
Hard-coded value in pixels
For example: 18px
Reference a token by typing it's name in curly brackets or selecting the dropdown button
For example: {rem-base}
The compatible token types you will see are number
, dimension
and fontSize
Select the Confirm Button to save your changes.
The new value for 1rem
will appear in the Base Font Size settings.
ADD A BLURB HERE OF HOW IT WORKS
When working with the plugin's Base Font Size setting, there are a couple of things to be aware of.
The Base Font Size setting in the plugin is related to your Tokens Studio user account.
This means the setting is not specific to your Figma file or sync provider.
Changes made to this setting will apply to every Figma file.
If you work on many projects with different values for this setting, it is a good practice to check the Base Font Size value each time you open a new Figma file.
THERE IS AN ISSUE OPEN TO FIX THIS WITH THE MIGRATION ASSISTANT PROJECT
If the plugin can not find the token referenced in the setting, you will see a Broken Token icon next to the value as a reminder to change it.
There is a known issue with the form field, where it accepts some values that it should not. Until the issue is fixed, you'll want to avoid:
Values with rem units
The plugin will drop the unit and assume the number is the value in pixels.
For example, 1rem
will be 1px
as the value
Empty value
The plugin will assume 16px
when the input is empty.
Typos in the value
Incomplete references can be saved but will appear as broken on the settings page.
For example, {base-token
is missing the closing curly bracket }
CSS resources:
Community resources:
None yet!
Requests, roadmap and changelog
None yet!
You can import all your Styles from Figma into Tokens Studio with just a few clicks.
The Import Styles feature creates a Design Token for each Style in a Token Set of your choice.
This guide will walk you through how to get your Color, Text and Effects Styles into Tokens Studio.
Then, you can decide whether to use the Plugin to control your Styles, export them to code in properly formatted JSON files as Design Tokens or move your Styles to another Figma file.
In the Figma file where your Styles live, open the Tokens Studio Plugin.
If you don't already have Tokens in this file, select the New empty file option when the plugin loads.
Select the Token Set where you'd like the Tokens created from your Styles to live.
In the example below, we have selected the global Token Set.
Select the Styles & Variables Button from the Tokens page to reveal the Import and Export to Figma menu.
If you have multiple Token Sets in the Plugin, be sure you have selected the Token Set where you'd like the Imported Styles to be created as Tokens.
The selected set has a darkened accent color around the Token Set name.
The status of the checkbox next to the Token Set does not matter.
From the Styles and Variables menu
Choose the Import Styles action.
The Import Styles Modal appears with three options.
The Import Styles Modal appears with three options which tell the plugin which type of style to import. You can select as many options as you like:
When you import Color Styles, the Plugin will create a new Token with the Token Type of color
for these values:
Single-value colors with full or reduced opacity.
Gradient colors.
The plugin is not able to import Color Styles with these values:
Images.
Multiple fill colors.
When you import Text Styles, the Plugin takes a couple of extra steps to help define all the design decisions that are combined to create a Typography Token.
First, it creates an individual Token for each Text property within the Style and assigns the appropriate Token Type.
Font Family
Font Weight
Font Size
Line Height
Letter Spacing
Paragraph Spacing
Paragraph Indent
Text Decoration
Text Case
Then, a new Typography composite Token is created with a name that matches the Text Style Name. The value of the Token will reference the individual text property Tokens.
When you import Effect Styles, the plugin will create a new boxShadow
Token for each Style. If your styles are composed of multiple shadow layers, the Plugin will create the Shadow Tokens to match.
Once you've confirmed your Import Styles options, select the Import button at the bottom of the modal.
The plugin will display a list of Style names and values to import.
Review the "diff" list and confirm the import.
Style names in the section called New Tokens
are not connected to a Token in your file, and a new Token will be created with the same name.
The Style names in the section called Existing Tokens
are already connected to Tokens in your file, and the plugin has detected a change in their value. The import action will update the existing Tokens.
Green items are new or being added.
Red (right side) items are being removed.
There are a few ways to select what to Import from this list.
Select the Import all button at the bottom of the modal to import all Styles in the list, this would create all new Tokens and update all exisiting Tokens in the list.
Select the Create all button on the right side of the New Tokens
section to create new Tokens in that section of this list, and ignore the Styles in the Existing Tokens list.
Select the Update all button on the right side of the Existing Tokens
section to update the Tokens attached to the Styles in that section of this list without creating any new Tokens.
Select the plus icon button on the right side of any Style name to create a single Token.
Select the trash can icon button on the right side of any Style name to remove it from this list, or exclude it from the import process.
Once you confirm which Styles to Import, the Tokens will be created in the active Token Set, with names that match the attached Styles.
Once your Styles have been imported, there is a connection between the Style and the Token in the plugin that shares the same name. In our docs, we use the term "attached" to describe this relationship.
There are a couple of ways to keep the values of your Tokens and Styles up to date, depending on how you like to work and if you are a Pro Licence holder for the Plugin.
If you prefer to work in Figma natively, you can repeat the Import Styles process anytime. This will update the values of attached Tokens in the plugin as long as the name of your Styles or Design Tokens has not changed.
If you make changes to Tokens in the Plugin that are attached to Styles in Figma, you can use the Export to Figma features to update the connected styles.
We know there is lots of room for improvement with the Import Styles feature, and we are working on it!
Today, if you import your Variables first and then your Styles second, the Plugin can't read those connections and complete the references for you yet.
The only way to complete this task today is to manually change the Values of the Tokens created when you imported your Styles to reference a Token that is attached to your Variables.
Figma resources:
None yet!
Tokens Studio Plugin GitHub - Open issues for Token Type Border
None yet
None
You can now split up your Tokens across several Figma files connected to styles and variables and maintain the connected references!
For example, you can have your primitive Tokens published as variables or styles in a separate file from other Tokens which reference them.
This enables you to use Figma's native library publishing features to manage permissions of who has access to your Tokens without loosing any of the connected references.
To set up non-local variables, you will need:
A Tokens Studio Pro licence.
A Paid Figma account to support the use of Variable collections and modes.
A Git Sync Provider account used to access the same Tokens Studio files across multiple Figma files.
Ensure your storage provider is setup in folder pathway for multi-file sync option (pro)
To follow along this guide, you can duplicate a copy of the Figma playground file used in the images and videos below.
Here are some terms you'll see in our docs about this feature.
Local styles and variables are attached to Tokens in the current Figma file in which you are working.
Non-local styles and variables are attached to Tokens in a different Figma file than the one you are currently working in.
If you edit Tokens connected to non-local styles/variables in this file, the updates will not impact the styles and variables. You need to navigate to the Local File where the styles/variables are published and Export to Figma.
The image below shows an example of both Primitive (left) and Decision Tokens (right) in the Plugin.
A Theme is one or more Token Sets (containing design Tokens) grouped to apply a styling effect to design elements.
The Theme Name is Exported to Figma Variables as a Mode with the same name.
Each Token living in the Token Sets within the Theme is exported to Figma as an individual variable with the same name.
A Theme Group is a collection of 1+ related themes identified by a unique name using the Tokens Studio Themes feature.
The Theme Group Name is exported to Figma Variables as a Collection with the same name.
The image below shows how Theme Groups and Themes map to Figma's Variable collections and modes.
Before you Export your Tokens to your first Figma File as Variables, you'll want to ensure your Themes are set up properly. As a reminder:
Each Theme Group will create a Variable Collection
Each Theme in the Theme Group will be created as a mode within Variable Collection
Each Theme Group can only be synced to a single Figma File.
If you want a separate Figma File for brandA
and brandB
, they would need to be in separate Theme Groups.
In this guide, we will assume Primitive Tokens are referenced inside Decision Tokens for a single brand, with a light and dark color mode.
Create a Theme Group for your Decision Tokens, for example primitives
Create at least one Theme within the Theme Group, for example all
Ensure all primitive Token Sets required for the theme have the enabled status (checkmark visible).
Create a Theme Group for your Decision Tokens, for example brands
Create at least one Theme within the Theme Group, for example Apple
and Berry
Ensure all Token Sets within the Theme are configured as enabled (checkmark visible)
Create a Theme Group for your Decision Tokens, for example themes
Create at least one Theme within the Theme Group, for example light
and dark
Ensure all Token Sets within the Theme are configured as enabled (checkmark visible)
Once your Themes are setup, push your Themes configuration to your Sync Provider.
Now that Themes are ready, we will start Exporting them to our Figma Files. Each file you setup requires the same basic steps:
Pull Tokens into the Figma file from your remote Token storage provider.
Export the desired Theme Group to Figma as Variables.
Sync your updates to your remote Token storage provider.
Publish the Figma library.
Navigate to the next Figma file and enable all related published Figma libraries in the new file and repeat the process.
In Figma file 1, the Primitive Theme Tokens where all the hard-coded values in your system are located will be exported as their own variable collection.
First, you have to set up your Figma file:
Ensure your file is located in a Figma project (drafts have limited variables support).
Ensure you are syncing your Token project to an external storage provider.
Open the Tokens Studio plugin and navigate to the Styles and Variables Menu and select Export Styles and Variables
Option menu configuration
Select the Variable types to export based on what is in your Tokens.
Ensure "Create styles from variables" is not selected.
Configure other options as desired
Confirm your changes.
Once you've confirmed your options, you'll be brought to the Export to Figma from Themes part of the Plugin.
Ensure only the all
theme under the primitives
group is selected (checkmark visible).
Select Export to Figma to confirm your changes.
Open up the Variables featue in Figma to check your your work.
Sync your changes to your Token storage provider before closing the Plugin.
This ensures when you work in a new Figma file to publish additional themes, the Plugin can share the data with the new Figma file and keep your references connected.
Use Figma's native library publishing feature to publish your library.
Navigate to the Assets tab in your Figma file and
Select the book icon to manage your libraries.
Select the Publish button.
Figma will show you the new variables collection (primitives in the this example) created as something to publish.
Ensure you've selected the Variable collection (checkmark visible)
Select the Publish button to finish.
You are now finished the work in File 1, where in this example, the primitive theme has been published as a variable collection.
Next is File 2. In this example, a theme of brand decisions has Tokens with values that reference Tokens included in the Primitives theme which have been published as a variable collection in File 1.
In Figma file 2, the Brand Theme Tokens will be exported as their own variable collection.
First, you have to set up your Figma file:
Ensure your file is located in a Figma project (drafts have limited variables support).
Use Figma's native library feature to enable the previously published Primitives
library (File 1).
Reload the Figma file, this updates the plugin API with the newly connected library information.
Figma desktop app - right click on the file fab and select reload tab
Web browser - refresh the page.
Open the Tokens Studio plugin and navigate to the Styles and Variables Menu and select Export Styles and Variables
Option menu configuration
Select the Variable types to export based on what is in your Tokens.
Configure other options as desired
Confirm your changes.
Once you've confirmed your options, you'll be brought to the Export to Figma from Themes part of the Plugin.
Ensure only the apple
berry
cherry
and tangerine
themes under the brands
group are selected (checkmark visible).
Select Export to Figma to confirm your changes.
Open up the Variables feature in Figma to check your your work.
You should see the values of the variables created in this file referencing the Tokens that were published in a different file.
In this example, its primitive
decisions living in Figma file 1.
Sync your changes to your Token storage provider before closing the Plugin.
This ensures when you work in a new Figma file to publish additional themes, the Plugin can share the data with the new Figma file and keep your references connected.
Use Figma's native library publishing feature to publish the new Variables Collection (brand) as a shared library.
Navigate to the Assets tab in your Figma file and
Select the book icon to manage your libraries.
Select the Publish button.
Figma will show you the new variables collection (brands in the this example) created as something to publish.
Ensure you've selected the Variable collection (checkmark visible)
Select the Publish button to finish.
You are now finished the work in File 2, where in this example, the brand theme has been published as a variable collection.
Next is File 3. In this example, a theme of color-mode decisions has Tokens with values that reference Tokens included in the brand theme which have been published as a variable collection in File 2.
In Figma file 3, the Color Mode Theme Tokens will be exported as their own variable collection.
First, you have to set up your Figma file:
Ensure your file is located in a Figma project (drafts have limited variables support).
Use Figma's native library feature to enable the previously published Primitives
library (File 1) and Brands
library (File 2)
Reload the Figma file, to update the plugin API with the newly connected library information.
Figma desktop app - right click on the file fab and select reload tab
Web browser - refresh the page.
Open the Tokens Studio plugin and navigate to the Styles and Variables Menu and select Export Styles and Variables
Option menu configuration
Select the Variable types to export based on what is in your Tokens.
Configure other options as desired
Confirm your changes.
Once you've confirmed your options, you'll be brought to the Export to Figma from Themes part of the Plugin.
Ensure only the light-mode
and dark-mode
themes are selected (checkmark visible).
Select Export to Figma to confirm your changes.
Open up the Variables featue in Figma to check your your work.
You should see the values of the variables created in this file referencing the Tokens that were published in a different file.
In this example, its brand
decisions living in Figma file 2.
Once you've confirmed your options, you'll be brought to the Export to Figma from Themes part of the Plugin.
Sync your changes to your Token storage provider before closing the Plugin.
This ensures when you work in a new Figma file to publish additional themes, the Plugin can share the data with the new Figma file and keep your references connected.
Use Figma's native library publishing feature to publish the new Variables Collection (theme) as a shared library.
Navigate to the Assets tab in your Figma file and
Select the book icon to manage your libraries.
Select the Publish button.
Figma will show you the new variables collection (themes in the this example) created as something to publish.
Ensure you've selected the Variable collection (checkmark visible)
Select the Publish button to finish.
You are now finished the work in all 3 files in this example.
There are some known limitations when working with non-local variables in Figma using Tokens Studio.
When working in a Figma file, the information in the file is passed through their plugin API to Tokens Studio.
Unfortunately, when you enable a new library in your Figma file, this addition of the library data isn't automatically added to the plugin API data shared with Tokens Studio. The fastest way to 'refresh' the data Tokens Studio has available from Figma, is to reload the Figma file.
Reload the file using Figma desktop app
Right click on the file tab and select reload tab.
Close and reopen the file.
Reload the file using a Web browser
Refresh the page.
Close and reopen the file.
When you need to update your Tokens, you need to navigate to the local Figma file where they are published to update the styles and variables.
Once changes are made in the Plugin, repeat the Export to Figma steps with the same configurations to update the attached Variables.
Sync your changes (updating a connect variable is a change) to your remote Token Storage provider.
Use Figma's native library publishing feature to publish your library changes.
Navigate to any consuming Library files and perform updates to Tokens, Libraries, and Components as needed.
In our example, a change to our brand
Tokens would need to be Exported, synced, and published in File 2, then we would head to File 3 and:
Accept Figma's library updates from File 2.
Open the plugin and pull in changes from our sync provider.
Export to Figma with the same configuration as above to update any Variables/Styles which reference the new brand
Tokens we updated in File 2
Sync the changes (updated variables/styles) to our remote storage provider.
Use Figma's native library publishing feature to publish the library changes.
If your Token structure is more complex, including multi-dimensional theming, color modifiers, or values calculated by math equations, your theme configuration may need to be adjusted to export correctly to Figma.
Recall that Token Sets within Themes have a status of Enabled, Reference only or Disabled.
When splitting your Variable collections across multiple Figma files, you may have to remind the plugin to 'look at' Token Sets, which pass their value to the Tokens in the current theme, by using the Reference only status.
In the example above, our brand
themes have Tokens that inherit values from our primitive
Token Sets. Let's say our primitive Color Tokens are created using color modifiers, and our Dimension Tokens are created using math equations to produce size and spacing scales.
In our apple
theme configuration, we would want to ensure that all the Token Sets containing our primitive
Tokens have the status of Reference only.
This tells the plugin to 'look' at the Variable collection we published from Figma file 1 (Primitive library), pass any calculated values from our primitive colors and dimensions to Figma file 2 (Brand library) and attach referenced Tokens between the two files.
Without the status of Reference only on the primitive
Token Sets, the plugin might miss the calculated values needed to populate the brand
Token Sets.
With a simple Token structure, this doesn't appear to be as much of a challenge.
Figma resources:
→
SD-Transforms Read-Me -
Tokens Studio Plugin GitHub -
Color - Creates as Color Variables
String - Creates , and Tokens as String Variables
Number - Creates , , , , , , and Tokens as number Variables
Boolean - Creates as Boolean Variables
Color - Creates as Color Styles
Typography - Creates as Text Styles
Effect - Creates as Effect Styles
Design in Figma -
The Tokens Studio collection of Variable videos -
Our friends at have free learning resources on Variables -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Add support for scoping and publishing variables and styles -
Ignore parts of the token name for variables and styles -
Theme Switcher for non-DS designers so I don't need variables anymore -
Tokens applied with Figma UI as Styles or Variables are Fragile -
Create Variable Collections With The Plugin's Order of Themes -
Show updated number of Variables (or styles) when exporting to Figma with updated values -
Select a card below to jump to a comprehensive guide on working with Variables, or scroll down to see the .
Select a card below to jump to a comprehensive guide on working with Styles, or scroll down to see the.
The creation of Variable Modes within a Collection is only possible by
Design in Figma -
The Tokens Studio collection of Variable videos -
Our friends at have free learning resources on Variables -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Add support for scoping and publishing variables and styles -
Ignore parts of the token name for variables and styles -
Theme Switcher for non-DS designers so I don't need variables anymore -
Tokens applied with Figma UI as Styles or Variables are Fragile -
Show updated number of Variables (or styles) when exporting to Figma with updated values -
→
→
→
SD-Transforms Read-Me -
Tokens Studio Plugin GitHub -
The allows groups of Token Sets to work together to perform various tasks. When you attach your Tokens to Styles and Variables by Exporting to Figma from Themes, there are some powerful workflow advantages:
Design in Figma -
The Tokens Studio collection of Variable videos -
Our friends at have free learning resources on Variables -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Add support for scoping and publishing variables and styles -
Ignore parts of the token name for variables and styles -
Theme Switcher for non-DS designers so I don't need variables anymore -
Tokens applied with Figma UI as Styles or Variables are Fragile -
Create Variable Collections With The Plugin's Order of Themes -
Show updated number of Variables (or styles) when exporting to Figma with updated values -
→
→
→
→
→
Design in Figma -
The Tokens Studio collection of Variable videos -
Our friends at have free learning resources on Variables -
Tokens Studio Plugin GitHub - [Open issues for Figma export](Tokens Studio Plugin GitHub - )
Add support for scoping and publishing variables and styles -
Ignore parts of the token name for variables and styles -
Theme Switcher for non-DS designers so I don't need variables anymore -
Tokens applied with Figma UI as Styles or Variables are Fragile -
Create Variable Collections With The Plugin's Order of Themes -
Show updated number of Variables (or styles) when exporting to Figma with updated values -
To solve, you need to configure the Base font size setting in the Plugin ()
→
Design in Figma -
Figma only supports , and Tokens Studio supports 24 unique Token Types in the plugin.
Color Tokens as gradients ()
→
Each Figma plan allows for a different number of modes per Variable collection. →
Design in Figma -
The Tokens Studio collection of Variable videos -
Our friends at have free learning resources on Variables -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Add support for scoping and publishing variables and styles -
Ignore parts of the token name for variables and styles -
Theme Switcher for non-DS designers so I don't need variables anymore -
Tokens applied with Figma UI as Styles or Variables are Fragile -
Create Variable Collections With The Plugin's Order of Themes -
Show updated number of Variables (or styles) when exporting to Figma with updated values -
→
Color Variables - creates .
Boolean Variables - creates .
String/Text Variables - creates .
Number Variables - created or .
Color Styles - creates .
Text Styles - creates and optional Text Property Tokens.
Shadows - creates from Effects Styles.
Pay close attention to your and ensure the Tokens you want to export as Styles are NOT exported as Variables.
If you are , navigate to the Themes feature in the plugin.
Check your Token Values -
Check your Export Options -
Check your Theme and Token Set configuration outlined in
→
→
Design in Figma -
The Tokens Studio collection of Variable videos -
Our friends at have free learning resources on Variables -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Add support for scoping and publishing variables and styles -
Ignore parts of the token name for variables and styles -
Theme Switcher for non-DS designers so I don't need variables anymore -
Tokens applied with Figma UI as Styles or Variables are Fragile -
Create Variable Collections With The Plugin's Order of Themes -
Show updated number of Variables (or styles) when exporting to Figma with updated values -
Tokens Studio for Figma is integrated with Figma's , allowing developers to view and copy the names of Design Tokens applied with the Tokens Studio Plugin.
Figma Learn -
Tokens Studio Plugin GitHub -
Enhance data in Dev Mode -
This limits your ability to share your Tokens across multiple Figma files. A sync provider is required for a .
Tokens Studio Plugin GitHub -
→
→
→
→
Figma Learn -
Figma Learn -
Tokens Studio Plugin GitHub -
You can always grab it again by
Want to contribute to add a new language? Reach out to us on our
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
In support of moving towards the , as managed by the Design Tokens Community Group (DTCG), you can choose a Design Token Format (how tokens are written in their JSON files) from within the Tokens Studio Plugin.
→
The DTCG and their accepted values, which we will support in future releases.
→
→
→
SD-Transforms -
Style Dictionary -
Style Dictionary -
Design Tokens Community Group -
Tokens Studio Plugin GitHub -
Add empty line when writing to files (sync providers + local export)
Tokens Studio Plugin Github -
Change boxShadow values from x and y to offsetX and offsetY
Allow description in token groups
MDN Web Docs -
Tokens Studio Plugin GitHub -
Color Styles - creates .
Text Styles - creates and optional Text Property Tokens.
Shadows - creates from Effects Styles.
Design in Figma -
→
🔗
→
We refer to Tokens with as Primitive Tokens
We refer to Tokens with as a Decision Token as the new name, or alias, describes how the design decision is intended to be used in the system.
→
→
→
→
→
Design in Figma -
Playground file for non-local variables by Tokens Studio -
The Tokens Studio collection of Variable videos -
Our friends at have free learning resources on Variables -
Tokens Studio Plugin GitHub - Open issues for
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Add support for scoping and publishing variables and styles -
Ignore parts of the token name for variables and styles -
Theme Switcher for non-DS designers so I don't need variables anymore -
Tokens applied with Figma UI as Styles or Variables are Fragile -
Create Variable Collections With The Plugin's Order of Themes -
Show updated number of Variables (or styles) when exporting to Figma with updated values -
Color
Color
color
Font Family
String
fontFamilies
Font Weight
String / Number
fontWeights
Font Size
Number
fontSizes
Line Height
Number
lineHeights
Letter Spacing
Number
letterSpacing
Paragraph Spacing
Number
paragraphSpacing
Border Radius
Number
borderRadius
Border Width
Number
borderWidth
Dimension
Number
dimension
Spacing
Number
spacing
Sizing
Number
sizing
Number
Number
number
Opacity
Number
opacity
Text
String
textCase
Boolean
Boolean
color
You can use the Tokens Studio plugin native integration with Azure DevOps (ADO) to sync your Design Tokens to a repository of your choice.
We support two-way sync, meaning you can use the plugin to:
Push JSON files of Design Tokens to ADO
Pull the Tokens stored in ADO into any Figma file
This means the Design Tokens living in code are the source of truth for our design decisions, which can be shared between design and development teams.
This doc outlines how to set up an ADO repository and add it as a Sync provider in the plugin.
→Once set up, you can use the plugin's Push and Pull features to keep your Tokens in sync #add-doc-link/sync-push-pull
Set up a project, repository and personal access token in Azure DevOps
Configure Azure DevOps as a sync provider within the Tokens Studio plugin.
Use the plugin to sync your Design Tokens between Azure DevOps and Figma design files.
Once you've logged in to your Azure DevOps (ADO) account, navigate to the new project page.
Record your ADO Organization URL
From the home page of ADO, copy the URL in your web browser window.
Record the URL of somewhere safe, as it's needed for the plugin configuration.
Create a new project dedicated to storing and managing your Design Tokens.
Choose a descriptive name for your project that is specific to its purpose and is memorable.
Save the Project Name somewhere safe, as it's needed for plugin configuration.
Project description is optional
Select if you want your project to be:
Public
anyone can see it
Private
needs permission to view
Your choice doesn't change the plugin's ability to sync with the repository
Select Create
You are now looking at your new project. Well done!
A repo is automatically created in your new project with the same name.
Now you'll need to add a README
file to your repo as the plugin isn't able to sync to an empty repository.
From the left side navigation, select the Files option (under Repos)
Scroll to the section called Initialize main branch with a README or gitignore.
Ensure Add a README
is enabled.
Select Initialize to confirm
Now you can navigate to your Repo using the left side navigation.
You should see a README file has been added in the repository
The repo was given a name that matches the project by default, you can change it to something else if you'd like.
Save a copy of the Repo name as you need it to configure the plugin later.
Not to be confused with anything to do with Design Tokens, a personal access token is a passcode from Azure DevOps you enter into the plugin that allows the connection to happen.
Navigate to your Azure DevOps user settings.
Locate the Personal Access Tokens section and
Select new token.
Add a Name of what the token is for.
Example: test-token repo sync to tokens studio
Select the Organization you recorded from above.
Select an Expiration time frame
Select the necessary scopes for this token to authorize:
full access
or custom defined
is a choice made by you and your team
Scroll down to the bottom and select Create token
Save the generated access token somewhere safe as it's needed for the plugin configuration.
You're ready to configure the Tokens Studio plugin in Figma!
In Figma, open the Tokens Studio plugin and navigate to the Settings page.
Under the Sync Providers section, select the Add New button to see a list of all Token storage providers
add Azure DevOps as a sync provider.
Some of the inputs on the form come from the Azure DevOps steps above, others aren't so obvious as to where the info comes from.
Example https://dev.azure.com/my_organization_name
Each ADO project could have many repositories, and you could have the same named repository in many ADO projects, so this credential helps the plugin point the Tokens to the correct location.
Example: TokensTesting
Example: test-tokens
Your engineers might tell you what to add as the default repository branch where you will be pushing your Tokens, so if you aren't sure, ask them. You can create additional branches using the plugin later as needed.
Example: main
This tells the plugin:
How to organize your Token JSON files in ADO.
In a folder of multiple files, or a single file.
The location of where your Token data is stored.
The file or folder's pathway (or name) to sync with.
This setting impacts
How engineers can work with our Token files during the Token transformation stage of the design-to-development process.
May limit edit access of Tokens for other team members using the Tokens Studio plugin.
Folder
The folder option syncs Token data from the plugin into a folder that contains multiple JSON files or subfolders of JSON files.
In the plugin, enter the pathway of the folder where you want the Token data to be stored, which is the folder name without any extensions.
For example:
Our Gitlab repository will have a folder called tokens
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is added to the folder as an individual JSON file.
Additional data files generated by the plugin are also added to the folder.
For example, themes
configuration.
Recall that storing your Token data in a folder (multi-file sync) is a pro feature.
If other team members are working with your Tokens and do not have a Pro Licence for Tokens Studio, your Tokens will be read-only for them.
File Path
Setting our Token storage as the file option syncs our Token data from the plugin into a single JSON file in code.
Combining Token data into a single file limits engineers' ability to work with Theme information when transforming Design Tokens.
→ Learn about the Themes (pro) feature in Tokens Studio here. #add-doc-link/themes-pro
File storage might work for you if:
You are using the free version of Tokens Studio.
Engineers are not using your Design Tokens in code.
In the plugin, we enter the pathway of the JSON file where we want our Token sets to be stored, which is the file name with the .json
extension.
For example:
Our Gitlab repository will have a single code file called tokens.json
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is combined into this single file in our repository.
Once you Save your credentials, the plugin will compare your Tokens with what's in your repository.
You'll see a modal asking you to push or pull to ADO to 'sync' the plugin data with your repository.
As you work in the plugin, push and pull indicators remind you to stay in sync with your Azure DevOps repository.
Once your Token JSON files are synced to your ADO repo, you have a shared source of truth between Designers and Engineers!
Mentioned in this doc:
Community resources:
None yet!
How might we improve the experience of working with sync providers in general?
You can use the Tokens Studio plugin native integration with Bitbucket to sync your Design Tokens to a repository of your choice.
We support two-way sync, meaning you can use the plugin to:
Push JSON files of Design Tokens to Bitbucket
Pull the Tokens stored in Bitbucket into any Figma file
This means the Design Tokens living in code are the source of truth for our design decisions, which can be shared between design and development teams.
This doc outlines how to set up a Bitbucket repository and add it as a Sync provider in the plugin.
→ Once set up, you can use the plugin's Push and Pull features to keep your Tokens in sync. #add-doc-link
Set up a repository and personal access Token in Bitbucket.
Configure Bitbucket as a sync provider within the Tokens Studio plugin.
Use the plugin to sync your Design Tokens between Bitbucket and Figma design files.
Once you sign in, record your Bitbucket user name and store it somewhere safe as its needed to authenticate when you configure the Tokens Studio plugin to connect with your account.
Sign into your account and select the Create button, and select Repository.
Select the project the repository should belong to.
Choose a specific and memorable repository name which will be used in the plugin as the destination for your Design Tokens.
Add a README file
needs to be checked
This is mandatory because the plugin can not sync to an empty repository.
Enter your default branch name
We suggest using main
or ask your engineers what they prefer
Keep a copy of the default branch name handy as you'll need it for the plugin configuration later.
Include .gitignore can be None
You are now looking at your new repository! Well done!
From your browser, Copy the URL of the repository and it somewhere safe as it's needed for the plugin configuration.
The App password is generated from Bitbucket and acts as a passcode that allows the Tokens Studio plugin to connect to your Bitbucket account.
Navigate to your Bitbucket account settings.
Locate the Personal settings section, select Personal Bitbucket settings
Select App passwords.
Select Create app passwords
Add a Name of what the app password is for
Example: test-token repo sync to Tokens studio
Select the permissions for app passwords
Account = Read
Repositories = Write
Select the Create button
The page will display the New app password dialog
Save the generated password, and your Bitbucket username somewhere safe as it's needed for the plugin configuration.
You're ready to configure the Tokens Studio plugin in Figma!
In Figma, open the Tokens Studio plugin and navigate to the Settings page using the navigation tab.
Under the Sync providers section, select the Add new button to see a list of all Token storage providers.
Select Bitbucket
You'll need the information saved from the steps above to complete the Bitbucket sync configuration form.
1. Name
This is a nickname that shows up in the Plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: radix ui components
2. Bitbucket username
3. App password
4. Repository (owner/repo)
Occasionally your URL may contain a project related slug after the owner/repository. The screenshot above shows such a url. If the URL of your repo contains a slug, you'll only need the 2 sections after the bitbucket.org
For example, if your URL says https://butbucket.org/tokensstudiotest/bitnucketsync/src/main
you will enter tokensstudiotest/bitbucketsync
into the form in the plugin.
5. Branch
Your engineers might tell you what to add as the default repository branch where you will be pushing your Tokens, so if you aren't sure, ask them.
You can create additional branches using the plugin later.
6. Token storage location (file/folder path)
This tells the plugin:
How to organize your Token JSON files in Bitbucket.
In a folder of multiple files, or a single file.
The location of where your Token data is stored.
The file or folder's pathway (or name) to sync with.
This setting impacts:
How engineers can work with our Token files during the Token transformation stage of the design-to-development process.
May limit edit access of Tokens for other team members using the Tokens Studio plugin.
Folder
The folder option syncs Token data from the plugin into a folder that contains multiple JSON files or subfolders of JSON files.
In the plugin, enter the pathway of the folder where you want the Token data to be stored, which is the folder name without any extensions.
For example:
Our Bitbucket repository will have a folder called tokens
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is added to the folder as an individual JSON file.
Additional data files generated by the plugin are also added to the folder.
For example, themes
configuration.
Recall that storing your Token data in a folder (multi-file sync) is a pro feature.
If other team members are working with your Tokens and do not have a Pro Licence for Tokens Studio, your Tokens will be read-only for them.
File Path
Setting our Token storage as the file option syncs our Token data from the plugin into a single JSON file in code.
Combining Token data into a single file limits engineers' ability to work with Theme information when transforming Design Tokens.
→ Learn about the Themes (pro) feature in Tokens Studio here. #add-doc-link/themes-pro
File storage might work for you if:
You are using the free version of Tokens Studio.
Engineers are not using your Design Tokens in code.
In the plugin, we enter the pathway of the JSON file where we want our Token sets to be stored, which is the file name with the .json
extension.
For example:
Our Bitbucket repository will have a single code file called tokens.json
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is combined into this single file in our repository.
Once you Save your credentials, the plugin will compare your Tokens with whats in your repository.
You'll see a modal asking you to push or pull to Bitbucket to 'sync' the plugin data with your repository.
As you work in the plugin, push and pull indicators remind you to stay in sync with your Bitbucket repository.
Once your Token JSON files are synced to your Bitbucket repo, you have a shared source of truth between Designers and Engineers!
Mentioned in this doc:
None yet!
How might we improve the experience of working with sync providers in general?
You can use the Tokens Studio plugin native integration with Gitlab to sync your Design Tokens to a repository of your choice.
We support two-way sync, meaning you can use the plugin to:
Push JSON files of Design Tokens to Gitlab
Pull the Tokens stored in Gitlab into any Figma file
This means the Design Tokens living in code are the source of truth for our design decisions that can be shared between design and development teams.
This doc outlines how to set up a Gitlab repository and add it as a Sync provider in the plugin.
→ Once set up, you can use the plugin's Push and Pull features to keep your Tokens in sync. #add-doc-link
Set up a repository and personal access token in Gitlab
Configure Gitlab as a sync provider within the Tokens Studio plugin.
Use the plugin to sync your Design Tokens between Gitlab and Figma design files.
If you haven't already, head over to https://Gitlab.com/ and create a free account.
Choose a project name
In the project URL select the owner and choose a project slug
In the plugin, the project slug will act as the repository name
Names that are easy to remember and type are ideal
Select your Visibility level
Public
anyone can see it
Private
needs permissions to view
Your choice doesn't change the plugin's ability to sync with the repository
Initialize project with a README file
needs to be checked
This is mandatory because the plugin can not sync to an empty repository
Confirm by pressing the Create project button
You are now looking at your new repository! Well done!
Save the URL of the repository somewhere safe as it's needed for the plugin configuration.
Not to be confused with anything to do with a Design Token, a Personal access token is a passcode from Gitlab you enter into the plugin that allows the connection to happen.
Log into your Gitlab account:
Select your avatar on the top left
Select Edit Profile
Select Access Tokens from the left sidebar
Click Add new token
Add a Name of what the token is for.
Example: test-token repo sync to tokens studio
Select an Expiration time frame
Add a Description to remind yourself what you made this token for
Select scopes
Ensure the API
option is selected if you want the plugin to have read and write permissions
Select Generate token
Save the generated access token somewhere safe as it's needed for the plugin configuration.
You're ready to configure the Tokens Studio plugin in Figma!
In Figma, open the Tokens Studio plugin and navigate to the Settings page using the navigation tab.
Under the Sync providers section, select the Add new button to see a list of all Token storage providers
Select Gitlab
Add credentials for Gitlab
Some of the inputs on the form come from the Gitlab steps above, others aren't so obvious as to where the info comes from.
This is a nickname that shows up in the plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: UdayGitlab
For example, if your URL says https://gitlab.com/amazingdesigner/radixtokens,
you will enter amazingdesigner/radixtokens
into the form in the plugin.
As a note, be sure to use the URL of your repository and not the tree for the Group/Subgroup for your Project listed in Gitlabs UI as it won't work in the plugin.
Your engineers might tell you what to add as the default repository branch where you will be pushing your Tokens, so if you aren't sure, ask them.
If you created a new repo following the steps above, you will enter main
.
This tells the plugin:
How to organize your Token JSON files in Gitlab.
In a folder of multiple files, or a single file.
The location of where your Token data is stored.
The file or folder's pathway (or name) to sync with.
This setting impacts:
How engineers can work with our Token files during the Token transformation stage of the design-to-development process.
May limit edit access of Tokens for other team members using the Tokens Studio plugin.
The folder option syncs Token data from the plugin into a folder that contains multiple JSON files or subfolders of JSON files.
In the plugin, enter the pathway of the folder where you want the Token data to be stored, which is the folder name without any extensions.
For example:
Our Gitlab repository will have a folder called tokens
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is added to the folder as an individual JSON file.
Additional data files generated by the plugin are also added to the folder.
For example, themes
configuration.
Recall that storing your Token data in a folder (multi-file sync) is a pro feature.
If other team members are working with your Tokens and do not have a Pro Licence for Tokens Studio, your Tokens will be read-only for them.
Setting our Token storage as the file option syncs our Token data from the plugin into a single JSON file in code.
Combining Token data into a single file limits engineers' ability to work with Theme information when transforming Design Tokens.
→ Learn about the Themes (pro) feature in Tokens Studio here. #add-doc-link/themes-pro
File storage might work for you if:
You are using the free version of Tokens Studio.
Engineers are not using your Design Tokens in code.
In the plugin, we enter the pathway of the JSON file where we want our Token sets to be stored, which is the file name with the .json
extension.
For example:
Our Gitlab repository will have a single code file called tokens.json
synced to the Tokens Studio plugin in Figma.
Each Token Set created in the plugin is combined into this single file in our repository.
Base URL must be added to the Gitlab credentials if your organization is running an enterprise server.
Looking at the URL of your repository, if you see a name between gitlab and .com, your organization is running an enterprise server. For example: https://gitlab.hyma.com/amazingdesigner/radixtokens
In this example, the Base URL
you would enter into the plugin form is:
This tells the plugin to point to the API on this specific URL for our organization.
Once you Save your credentials, the plugin will compare your tokens with what's in your repository.
You'll see a modal asking you to push or pull to Gitlab to 'sync' the plugin data with your repository.
As you work in the plugin, push and pull indicators remind you to stay in sync with your Gitlab repository.
Once your Token JSON files are synced to your Gitlab repo, you have a shared source of truth between Designers and Engineers!
None yet!
How might we improve the experience of working with sync providers in general?
You can use the Tokens Studio plugin native integration with JSONBin to sync your Design Tokens JSON files with code.
Tokens Studio supports two-way sync, meaning you can use the plugin to:
push JSON files of Design Tokens to JSONBin
pull the Tokens stored in JSONBin into any Figma file
This means the Design Tokens living in code are the source of truth for our design decisions, which can be shared between design and development teams.
This doc outlines how to set up JSONBin as a Sync provider in the Tokens Studio plugin.
Set up a bin and API key in JSONBin
Configure JSONBin as a sync provider within the Tokens Studio plugin.
Use the plugin to sync your Design Tokens between the JSONBin and Figma design files.
Once you've logged in to your JSONBin account:
Create a new bin dedicated to storing and managing your Design Tokens.
Choose a descriptive name for your project that is specific to its purpose and is memorable.
Follow JSONBin's prompts to create your new bin.
You are now looking at your new bin! Well done!
The API key is generated from JSONBin, and acts as a passcode that allows the Tokens Studio plugin to connect to your JSONBin account.
Log into your JSONBin account:
Navigate to your JSONBin account settings
Locate the API Key section
Select Create Access Key
Add a Name of what the Token is for.
Example: test-Token repo sync to Tokens studio
Select the permissions for the Bin using the checkboxes
Full permissions for the plugin would be create
, read
, update
, and delete
Select Save Access Key
Save the generated key somewhere safe as it's needed for the plugin configuration.
You're ready to configure the Tokens Studio plugin in Figma!
In Figma, open the Tokens Studio plugin and navigate to the Settings page using the navigation tab.
Under the Sync providers section, select the Add new button to see a list of all Token storage providers
Select JSONBin
You'll need the information saved from the steps above to complete the JSONBin sync configuration form.
1. Name
This is a nickname that shows up in the plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: radix ui components
2. API Key
3. ID (optional)
If this is empty, Tokens Studio will create a new bin for you.
Save to confirm your credentials, and then follow the plugin's prompts to finish setting up the JSONBin sync.
As you work in the plugin, push and pull indicators remind you to stay in sync with your JSONbin.
Once your Token JSON files are synced to JSONbin, you have a shared source of truth between Designers and Engineers!
Mentioned in this doc:
Community resources:
None yet!
If you paste a JSON file in the plugin and save, you then need to click 'apply to' for the JSONBin to update.
How might we improve the experience of working with sync providers in general?
With the Tokens Studio plugin's integration with Supernova, you can create and manage Design Tokens and themes in Figma and sync to Supernova to create documentation.
Gather Design System Data and Authentication token in Supernova.
Configure Supernova as a sync provider within the Tokens Studio plugin.
Use the plugin to sync your Design Tokens between Figma and Supernova to keep your Design Token documentation up to date.
Log into your Supernova account and navigate to the Design System Project that you'd like to sync with Tokens Studio.
You'll land on the Design Tokens page in Supernova for your project.
Save the URL of the Design Tokens page somewhere safe as it's needed for the plugin configuration.
Each Design System project will require different code snippets for mapping Tokens Studio to Supernova. It's best to consult the Supernova docs to gather the right mapping code snippets or reach out to them for support:
Not to be confused with anything to do with Design Tokens, an access token acts as a passcode from Supernova you enter into the plugin that allows the connection to happen.
Log into your Supernova account:
Navigate to the Authentication section of your project
Generate a new authentication token with the necessary permissions.
Save the generated access token somewhere safe as it's needed for the plugin configuration.
You're ready to configure the Tokens Studio plugin in Figma!
In Figma, open up the Tokens Studio plugin and navigate to the Settings page using the navigation tab.
Under the Sync providers section, select the Add new button to see a list of all Token storage providers
Select Supernova
You'll need the information saved from the steps above to complete the JSONBin sync configuration form.
1. Name
This is a nickname that shows up in the plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: radix ui components
2. Supernova access token
3. Design System URL
Example:https://supernova.io/ws/test/ds/amazingdesigner/radixtokens
4. Supernova < > Tokens Studio Mapping
The exact code snippets provided by Supernova (see the steps above) limit the data that Tokens Studio can sync to Supernova.
Example mapping configuration:
Save to confirm your credentials, and then follow the plugin's prompts to finish setting up the Supernova sync.
As you work in the plugin, push and pull indicators remind you to stay in sync with Supernova.
According to the Supernova docs, Design Tokens synced to Tokens Studio cannot be edited directly in Supernova; all edits must be made in the Tokens Studio plugin interface.
This means pulling tokens from Supernova will only show changes to tokens made in the Tokens Studio plugin that were pushed to Supernova.
The Supernova team provides customer support for issues with Supernova sync, so you'll need to contact them directly through their support channels to triage issues and ask questions.
This is a great place to post questions and concerns to help other community members who might be having the same experience. It also allows the Tokens Studio team to help out where we can!
Mentioned in this doc:
Community resources:
None yet!
How might we improve the experience of working with sync providers in general?
By default, Design Tokens created with Tokens Studio are stored locally in each Figma file, accessed by opening the plugin.
If you want to share your Tokens across multiple Figma files or store them externally (not in Figma), you can set up remote Token storage with one of our integration partners and add them as a sync provider in the plugin.
Open the Tokens Studio plugin and navigate to the settings page.
Tap the Add new sync provider
A modal will open with a list of providers to choose from.
Tap the Choose button next to the provider you want to add
Once you select your sync provider, a modal will open with a form to add the necessary credentials.
Each provider's form will look slightly different. If you need help on how to fill out the form, make sure to check out their specific documentation for detailed instructions.
Select Save to continue. Sometimes you have to scroll the form to see the save button.
Once you Save your credentials, the plugin will compare your Tokens with whats in your repository.
You'll see a modal asking you to push or pull to 'sync' the plugin data with your storage provider, depending on the type of provider, permissions, and the Tokens you have in the plugin.
These images show the push and pull modals for a new GitHub sync, but it will look similar for most providers.
Pull from provider
If your sync provider already has Design Tokens, you'll see a dialogue asking if you want to pull your Tokens in.
If you select yes
Tokens in your remote storage will be pulled into the plugin.
Any Tokens currently in the plugin will be replaced with the Tokens in your remote storage, and they can not be recovered.
Once the pull is complete, the modal will close and you'll be returned to the Settings page of the plugin.
If you select cancel
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
The modal will close and you'll be returned to the Settings page of the plugin.
If you close the modal without making a selection
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
Closing the modal returns you to the Settings page of the plugin.
Push from local
If your sync provider does not have code files with Design Tokens, you'll see a modal asking if you want to push.
This would push or "send" the current Tokens in the plugin to your sync provider.
If you select Push changes
The commit message is required.
You can think of it as a short note to your engineers about what you are pushing, such as "initial token load."
Tokens in the plugin will be pushed to your remote storage.
Once the pull is complete, the modal will close and you'll be returned to the Settings page of the plugin.
If you select cancel
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
The modal will close and you'll be returned to the Settings page of the plugin.
If you close the modal without making a selection
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
Closing the modal returns you to the Settings page of the plugin.
Once your sync provider is connected, it appears on the settings page as Active. The plugin will tell you which Token Format your JSON files are being written in.
You'll notice the sync actions at the bottom of the plugin are now visible. These actions indicate when the plugin is out of sync with the Tokens in remote storage.
Push indicator:
Visible when changes you've made in the plugin need to be sent to the code files stored by your sync provider.
Pull indicator:
Visible when the plugin needs to "receive" changes made to the code files stored by your sync provider.
Once your sync provider is active, here are some workflow tips from the Tokens Studio team and community.
Capture a copy of the credentials you filled in the form and store them somewhere for safekeeping.
If you need to re-add the sync provider to the plugin, you'll have a record of what you put in each section of the form as a reference.
Once the sync provider is added, Tokens stored by your sync provider are easily accessed in any Figma file without needing to add the credentials again.
Once you open the Tokens Studio plugin in any Figma file:
Navigate to the settings page of the plugin
Navigate to the sync provider of your choice in the list and select apply
The pull from provider modal will open, asking if you want to pull in the Tokens being stored externally.
Follow the Pull steps above.
Once you've completed the Pull from your sync provider, your Tokens will be available in your new Figma file.
If your sync provider has write permissions, changes you make in the new Figma file can be Pushed back to the sync provider and then Pulled into other Figma files.
Community resources:
None yet!
None yet
The Multi-file sync feature allows you to sync your Token data to your remote Token storage provider in multiple JSON files, which live within a folder.
To set up Multi-file sync, follow the steps in the guide for your Git sync provider's Folder option of Token Storage Location.
When Tokens are stored in a folder
Each Token Set created in the plugin is added to the folder as an individual JSON file.
Additional data files generated by the plugin are added to the folder.
For example, Themes
configuration.
The following image shows the Github sync provider form with examples of the Token storage location as Folder and File paths. Your sync provider form may look different but the concept is the same.
If you have a Pro Licence for Tokens Studio, you can create a new folder from within the plugin, or sync to an existing folder in your repository with read and write capabilities in the plugin (when enabled).
If you have a Free Licence for Tokens Studio, you can not create a new folder in your repository but you can sync to an existing folder with read-only capabilities in the plugin.
The Multi-file sync feature requires a pro Tokens Studio licence, so what happens if other members of your team have a free licence?
When they Pull in your Tokens saved in your remote storage in Multi-file sync, they will be limited to read-only access in the plugin.
Teammates with pro licences for Tokens Studio will have the same collaborative access you establish with your sync provider.
In read-only access to your Tokens, your teammates can:
View Tokens and themes.
Theme switch.
Apply Tokens.
Pull updates from your sync provider.
They can not:
Edit Tokens or themes.
Push to your sync provider.
Export styles or variables to Figma or update their values.
This can be a great way to limit access to editing your Tokens and keep your licence costs down.
Community resources:
None yet!
None yet
None
For projects requiring highly controlled and secure data-sharing environments, you can host your Design Token JSON files on your servers or storage solutions.
You can use the Tokens Studio plugin to keep your Design Tokens in sync with your code files without passing your design data through any Git or 3rd-party storage providers.
We support two-way sync, meaning you can use the plugin to:
push JSON files of Design Tokens to your storage provider
pull the Tokens stored in your storage provider into any Figma file
You can configure the permissions of your Generic Versioned sync to be:
Read Only
Read / Write
Read / Write / Create
This means the Design Tokens living in code are the source of truth for our design decisions, which can be shared between design and development teams.
This doc outlines how to configure Generic Versioned storage and add it as a Sync provider in the plugin.
Once your Token JSON files are stored on your server, capture the URL endpoint.
Configure a new Generic Versioned sync provider within the plugin.
Use the plugin to sync Design Token changes between your server and Figma design files.
If you haven't already, store your Design Token JSON files on your server and create a storage endpoint.
Copy the URL where your Token JSON files are stored.
Store it somewhere safe, as it's needed for the plugin configuration.
Headers are optional authentication instructions for the plugin set up as key value pairs.
Refer to your server technical documentation for more details on headers.
For example, if you want to identify and track which users are accessing your Token files, you could set up a user authorization header:
Name = Authorization
Value = username
If your server requires authentication:
Copy and save the required header pair somewhere safe, as it's needed for the plugin configuration.
In Figma, open the Tokens Studio plugin and navigate to the Settings page.
Under the Sync providers section, select the Add new button to see a list of all Token storage providers.
Select Generic Versioned
You'll need the information saved from the steps above to complete the Tokens Studio sync configuration form.
1. Name
This is a nickname that appears in the plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: Hyma brand exploration
2. URL
3. Flow type (permissions)
The flow type sets the permissions between the plugin and your storage provider.
Read Only
Token data is pulled into the plugin to be viewed but cannot be edited.
Read requests are sent via GET calls to the endpoint.
Read / Write
Token data is pulled into the plugin to be viewed, and edits to those Tokens can be made and pushed back to storage.
New Tokens, sets, or themes can not be created.
Read/Write requests are sent via PUT requests to the endpoint.
Read / Write / Create
New Tokens, sets, and themes can be created.
Token data can be pushed and pulled between the plugin and your storage provider for two-way sync.
Read/Write/Create requests are sent via POST requests to the endpoint.
The POST request is expected to return:
Validation that the endpoint has tracking setup (or not)
updatedAt
field in the JSON, which can be used to set additional workflows on the storage side, like additional GET requests.
4. Headers
Save to confirm your credentials, and follow the prompts in the plugin to finish setting up the sync to your Generic Versioned provider.
As you work in the plugin, push and pull indicators remind you to stay in sync.
Once your Token JSON files are synced to your external storage, you have a shared source of truth between Designers and Engineers!
Mentioned in this doc:
Community resources:
How might we improve the experience of working with sync providers in general?
If your Design Token storage is set up on a local server, you can access your Token files (via their URL) in the plugin using the URL Sync option.
URL Sync operates in read-only mode.
This means you can't use the Tokens Studio plugin to create or modify your design Tokens, but you can apply your Tokens to design elements in Figma.
You'll need to modify the Token JSON files stored on your server and pull the updates into the plugin.
This means the Design Tokens living in code are the source of truth for our design decisions, which can be shared between design and development teams.
This guide outlines how to access your Token files stored on your local server using the URL Sync provider option in the plugin.
Once your Token JSON files are stored on your server, capture the URL.
Configure a new URL sync provider within the plugin.
Use the plugin to sync Design Token changes between your server and Figma design files.
If you haven't already, store your Design Token JSON files on your server.
Copy the URL on your server where your Token JSON files are stored. Store the URL somewhere safe, as it's needed for the plugin configuration.
Headers are the server authentication instructions for the plugin.
Refer to your server technical documentation for more details on headers.
If your server requires authentication:
Store the headers as a JSON object in the headers field.
Access-Control-Allow-Origin header must be *
Copy the required headers and
Store them somewhere safe, as they are needed for the plugin configuration.
In Figma, open the Tokens Studio plugin and navigate to the Settings page.
Under the Sync providers section, select the Add new button to see a list of all Token storage providers.
Select URL
You'll need the information saved from the steps above to complete the Tokens Studio sync configuration form.
1. Name
This is a nickname that shows up in the plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: Hyma brand exploration
2. URL
Example: `("Some-Header-Key":SomeHeaderValue)
Save to confirm your credentials, and follow the prompts in the plugin to finish setting up the sync to your server.
As you work in the plugin, pull indicators remind you to stay in sync with your URL storage.
Once your Token JSON files are synced to your URL storage, you have a shared source of truth between Designers and Engineers!
Mentioned in this doc:
Community resources:
None yet!
How might we improve the experience of working with sync providers in general?
Once a Sync provider is added to Tokens Studio, you may need to change the credentials.
Open the Tokens Studio plugin and navigate to the settings page.
Navigate to the sync provider of your choice in the list.
Select the three-dot menu icon on the right side of the sync provider details.
Select edit from the menu options.
A modal will open with a form to edit the necessary credentials.
Each provider's form will look slightly different. If you need help on how to fill out the form, make sure to check out their specific documentation for detailed instructions:
Select Save to continue. Sometimes you have to scroll the form to see the save button.
Once you Save your credentials, the plugin will compare your Tokens with whats in your repository.
You may see a modal asking you to push or pull to 'sync' the plugin data with your storage provider, depending on the type of provider, permissions, and the Tokens you have in the plugin.
These images show the push and pull modals for a new GitHub sync, but it will look similar for most providers.
If your sync provider already has Design Tokens, you'll see a dialogue asking if you want to pull your Tokens in.
If you select yes
Tokens in your remote storage will be pulled into the plugin.
Any Tokens currently in the plugin will be replaced with the Tokens in your remote storage, and they can not be recovered.
Once the pull is complete, the modal will close and you'll be returned to the Settings page of the plugin.
If you select cancel
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
The modal will close and you'll be returned to the Settings page of the plugin.
If you close the modal without making a selection
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
Closing the modal returns you to the Settings page of the plugin.
If your sync provider does not have code files with Design Tokens, you'll see a modal asking if you want to push.
This would push or "send" the current Tokens in the plugin to your sync provider.
If you select Push changes
The commit message is required.
You can think of it as a short note to your engineers about what you are pushing, such as "initial token load."
Tokens in the plugin will be pushed to your remote storage.
Once the pull is complete, the modal will close and you'll be returned to the Settings page of the plugin.
If you select cancel
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
The modal will close and you'll be returned to the Settings page of the plugin.
If you close the modal without making a selection
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
Closing the modal returns you to the Settings page of the plugin.
The sync provider will be connected and appear in the settings page as Active.
If you don't want this sync provider to be active in your current file, you can choose a different one from the list.
Community resources:
None yet!
None yet
Tokens Studio has a standalone web-based platform for dynamic creation and management of Design Tokens, currently in Beta!
Set up a project and API key in Tokens Studio
Configure Tokens Studio as a sync provider within the plugin.
Use the plugin to sync your Design Tokens between the Tokens Studio platform and your Figma design files.
Once you've logged into your Tokens Studio account:
Select New Project from the top-right corner of the home page
Give your project a title.
Now you are looking at the dashboard of your new project.
Locate the Connection String (ID of the project) on the right side of the page
Use the copy button to copy the connection string to your clipboard
Save the connection string ID somewhere safe as it's needed for the plugin configuration.
The API key is generated from the Tokens Studio Platform, and acts as a passcode that allows the plugin to connect to your account.
Log into your Tokens Studio Platform account:
Navigate to your project dashboard
Select the project name in the top left corner
Navigate to Settings
Select API Keys
Select Generate API Key
Add a Name of what the API Key is for.
Example: fimga-sync
Option to add a Description for the API Key
Example: test-token sync to plugin
Under Group select Admin which gives you read and write permissions
Select create key
Save the generated API key somewhere safe as it's needed for the plugin configuration.
You're ready to configure the Tokens Studio plugin in Figma!
In Figma, open the Tokens Studio plugin and navigate to the Settings page
Under the Sync providers section, select the Add new button to see a list of all Token storage providers
Select Tokens Studio
You'll need the information saved from the steps above to complete the Tokens Studio sync configuration form.
1. Name
This is a nickname that shows up in the plugin settings page later on to identify this specific sync provider configuration.
Choose something memorable to you and your project.
Example: Hyma brand exploration
2. API Key
3. ID (connection string)
This can typically be found in the project section of your Tokens Studio sync dashboard.
Save to confirm your credentials, and follow the prompts in the plugin to finish setting up the Tokens Studio Platform sync.
As you work in the plugin, it will continuously update the Studio platform to stay in sync without manual push or pull actions needed.
Mentioned in this doc:
Tokens Studio Platform - https://tokens.studio/studio
Style Dictionary - https://styledictionary.com/
Community resources:
None yet!
How might we improve the experience of working with sync providers in general?
The description
of a Design Token can be used to define additional details, like why or how we made this decision. The description
is optional.
You can think of a Token's description as a place to add a note or reminder about this design decision for your engineers or future self.
For example, a Font Family Token may have a description with a link to download the files.
Descriptions are technically meta-data, so the description
is available anywhere a Token is utilized. Engineers can view the description in code and design tools often add the description
to token properties.
For example, if a brand color is bright and vibrant it may have limited use cases. Any constraints can be added to the description
in the Token as below.
Only use for brand logo and branded illustrations as this lime green is not accessible for interactive elements.
When that Token is attached to a color style in Figma, the description
is visible to designers using Figma's native UI.
The additional context you can add to the description
of a Token helps cross-functional team members understand why or how they might use these design decisions in their own work.
Next, let's explore the name
of a Design Token as this anatomic property often provides an indication of design decisions that are detailed in the description
.
Once you have a sync provider connected, you can use the plugin to keep your tokens in sync.
For sync providers that have read and/or write permissions, the plugin will identify when changes have been made and notify you to:
Push to your sync provider.
Write access allows us to "send" changes made in the plugin to your code files.
Pull from your sync provider.
Read access allows the plugin to "receive" changes to your code files.
When you make changes in the plugin, it detects that your Token data is out of sync with the code files stored by your provider.
In the plugin, you will see the push icon button has a notification indicator visible to remind you to push (or send) your changes to your sync provider.
When you are ready to send those changes to your sync provider:
Select the push icon button to open the push modal.
The Push modal has three sections, accessible by selecting the tab in the plugin:
Commit
Diff
JSON
1. Commit
By default, when the Push modal opens, you see the commit form.
This is where you add a commit message containing a short note about what you are pushing to the sync provider.
The commit message is:
visible to engineers looking at your code files.
required each time you push Token data to a sync provider.
The Push Changes Button will be inactive until the commit form is completed.
2. Diff view
The Diff view shows the difference of what you are pushing to a sync provider and what is already at the source.
Token data being added will appear highlighted in green.
Token data being removed will appear highlighted in red.
3. JSON view
The JSON view shows the code in JSON, which will be sent to the sync provider.
Once you add a Commit message, you can select Push changes.
The plugin will take some time to connect to your sync provider and update the Token data.
Once the Push has been completed and your commit has been added to the sync provider, the plugin may ask if you want to Create a Pull Request.
If your sync provider supports Pull Requests, sometimes called a PR, the plugin can initiate that process.
A Pull Request signals to engineers and other folks consuming your code files that you've pushed changes to them and are requesting that they pull those changes to review them.
The code review and merge processes are handled by the sync prover.
After you've Pushed Changes to your sync provider, you can Create a Pull Request.
Selecting the Create a Pull Request button in the plugin will open a web browser to your sync provider, where you can complete the PR process.
The plugin will close the Push Modal and you can continue working in the plugin as desired.
Delay the Pull Request
Tapping outside the Push modal will close it without starting the PR process.
This allows you to push more than one set of changes before you ask your team to review your changes.
They will see each commit message you push from the plugin in the PR whenever you are ready.
When the plugin detects that the Token data in your connected code files has changed, you will see the pull button with a notification indicator to remind you to pull (or update) the new data from your sync provider.
The pull action is also helpful if you've been working in the plugin and aren't happy with your changes.
You can press the pull button at any time to 'reset' your Tokens to their original state in your code files.
When you are ready to receive changes from your sync provider:
Select the pull icon button to open the pull modal.
Review and accept the changes.
The modal will close and the pull indicator will no longer be visible.
The Pull modal separates the changes the plugin identifies so you can review them:
Token Sets where changes are detected are in collapsable headings
Tokens deleted are identified with a removed label
Token Values that are changed are identified with the
Previous value on the left
New value on the right
Metadata changes
When Token sets are removed/added
Themes changes
All changes to the theme configuration.
Select the Pull changes button once you are ready to accept the changes.
You will lose all Tokens in the plugin, and they can not be recovered!
If you want to keep the Tokens as they are currently in the plugin, you can select cancel.
Community resources:
None yet!
None
Once a project is completed, you may wish to remove a sync provider from the plugin. You can always add it again later.
Open the Tokens Studio plugin and navigate to the settings page.
Navigate to the sync provider of your choice in the list.
Select the three-dot menu icon on the right side of the sync provider details.
Select delete from the menu options.
A modal will open to confirm that you want to delete this sync provider.
If you select yes
The sync provider will be removed from the settings page of the plugin
The Tokens currently in the plugin will be stored locally by default.
The modal will close and the local document option will be selected in the list of sync providers on the plugin's settings page.
If you select cancel
The modal will close and you'll be returned to the plugin's Settings page.
The sync provider will remain on the plugin's settings page.
If you close the modal without making a selection
The sync provider will remain on the plugin's settings page.
If you don't want to work with your Tokens stored locally, you can add a new sync provider or choose an existing one from the settings page.
Community resources:
None yet!
None yet
If you are working with one of these Git sync providers and have a Pro Licence for Tokens Studio, you can use the plugin native integration to take advantage of branch workflows to version control changes to your Tokens:
By default, Tokens Studio will connect to the branch you identified in your sync provider settings. You can adjust your Default Branch at anytime from the Settings page of the Plugin.
The image below shows an example of a Github sync provider with the setting for branch
set to main
(number 4).
To support proper version control of your Token Changes, you can create a new branch or switch branches using the plugin.
When you are connected to Sync Provider that supports branching, the Sync Actions at the bottom of the plugin will be visible.
The Branch Button is on the left, displaying the current branch you are working on.
For example, in the image below, the main
branch is active.
Selecting the branch name from the Sync Actions at the bottom of the plugin will open the Branch menu which displays:
An option to Create a new branch.
Available branches from your sync provider.
Select the branch name from the Sync Actions at the bottom of the plugin to open the Branch menu.
Select the Create a new branch from option.
You'll see a list of current branches from your Sync provider.
Select the branch you want to make your new branch from.
Choosing an existing branch (like main
) will:
Ignore any local changes you have made to your Tokens in the plugin.
Pull in the Tokens from the branch you selected as the starting place for your new branch.
Choosing Current changes will:
Take the Tokens exactly as you have them in the plugin as the starting place for your new branch.
Follow the prompts in the plugin to finish creating your new branch.
If you have unsaved changes in the plugin (blue push notification is visible), you will be prompted to push your changes to the Sync Provider before creating the new branch so they aren't lost.
Once the new branch is created, the plugin will open the Push Modal to sync your Tokens to your new branch.
Select the branch name from the Sync Actions at the bottom of the plugin to see the available branches you can switch between.
Select a new branch name to switch to that branch.
The plugin will open the Pull modal to see if you want to replace your existing tokens with the Tokens in the new branch you've selected.
Sometimes, when you open the plugin, it reverts to the default branch in your Sync Provider configuration, for example, main
.
Other times, new branches created in a local file are automatically applied in all files sharing the same sync provider, which is not always desired.
Community resources:
None yet!
Currently no error is shown when you try to push changes to a branch where you don't have permissions for.
Branch switching conflicts over multiple files https://github.com/tokens-studio/figma-plugin/issues/2476
Branch settings in the plugin follow you across Figma files.
None yet
When you apply a Design Token to a node in Figma using the Tokens Studio Plugin, there is an invisible connection created that maps the Token data to the design element in Figma.
The way Figma identifies an individual design decision mapped to a node is by the Name of the Token.
In Tokens Studio, to Remap a Token is to tell Figma to change the ID of that connection to a different Token Name. Once the connection has been remapped to the new Token, the plugin can send updated data about your design decision to your Figma design elements.
You'll find the Remap Tokens feature handy when you are:
Troubleshooting broken Tokens
If you don't remap the connection between the Figma node and the Token to the new name, Figma won't be able to find the right Token because it's looking for the old name which no longer exists, and the Plugin won't know which nodes it is connected to.
This broken connection is is sometimes referred to as a breaking change or a broken Token.
Remapping a Token is not an automatic process, you have to tell the Plugin which connections it should remap. There are several places where you can Remap Tokens depending on your current workflow:
Inspect Page
When you change the Name of an individual Token or Token group from the List View of the Tokens Page, the Plugin will launch the Remap feature to update the ID of attached connections to Figma nodes at the same time.
The Remap options you can configure vary based on:
If you are changing an individual Token Name or part of a group.
If you have more than one Token Set with the same Token Names (common with theming).
If you are using Themes in your Token project.
Each of these workflows are described in detail in the Edit Token Names guide.
From the Inspect Page of the Tokens Studio Plugin, select some design elements in your Figma file to display the list of Tokens applied to the layer.
Tokens that have been applied using the Plugin can be Remapped. They appear with a chevron after their name.
Variables or Styles applied using the Figma UI can not be remapped using the Plugin. They appear with the hexagon or 2x2 dot icons before their name.
On the Inspect Page of the Plugin, once you have design elements in Figma selected with Tokens applied, you can remap a single token by selecting the chevron that appears after its name.
Once the Remap Modal is open, you can:
Type the new Token Name in the input, or
Select the chevron to the right of the name to choose from the list of compatible Tokens.
You can use the input above the Token List to search for a text string.
Be sure to select the Remap button to save your changes.
Once you are finished Remapping all desired Tokens, you'll need to navigate back to the Tokens Page and select the Apply Token Data button to push the new values to Figma to complete the process.
It's important to note that the Remapping using this workflow will only change the connections IDs for the currently selected Figma elements. This means you may have to repeat this process on additional components or pages of your design file. If you want to Remap a Token across more of your Figma file at the same time, you'll want to use the Bulk Remap feature described below.
The Bulk Remap feature allows you to change the connection IDs of multiple design elements in your Figma file using a match and replace workflow.
If you are familiar with a "find and replace" feature in a text/code editor, it works very much the same way.
To access the Bulk Remap feature from the Inspect page of the Plugin:
Select a design element in your Figma file with Tokens applied.
Select the Bulk Remap button to open the modal.
The Bulk Remap modal allows you to match and replace strings of Token Names using the inputs:
Match - the string you'd like the Plugin to find.
Replace - the new string that will replace all instances the Plugin finds that match.
Remap across document (slow) - tells the Plugin to expand the action across the entire Figma file instead of limiting it to the currently selected design elements.
Once you've filled out the inputs with your desired strings, be sure to select the Remap button to save your changes.
Once you are finished Remapping all desired Tokens, you'll need to navigate back to the Tokens Page and select the Apply Token Data button to push the new values to Figma to complete the process.
You may want to configure the Apply Token Data button to Apply to document
to ensure all Remapped Tokens are up to date.
Searching for a pattern instead of a specific string of text is a powerful way to speed up your workflow when you need to remap more complex Token Names.
For example, if you want to target the beginning of a specific Token Name, you might want to use RegEx to say “only replace this
if its the beginning of the string" by writing ^colors.fg
where ^
tells the Plugin to look at the beginning of the Token Name.
RegEx learning resources:
Mentioned in this doc:
None yet!
None yet.
The Inspect page of the Plugin is where you can see which Tokens have been applied to a selected design element in Figma and modify the Tokens as needed.
There are three main sections on the Inspect Page visible when a design element is selected in Figma:
The actions at the top of the Inspect Page control how the Plugin displays the Tokens being inspected below it:
When you type in the search input, only the Design Tokens with names that match will appear in the Token list below.
If you select another design element in Figma before clearing the search input, the Plugin will only display Token names that match your search. This can help speed up workflows where you are looking for specific Tokens across designs in your Figma file.
The Deep Inspect feature controls how many layers of your selected Figma element are being looked at by the Plugin.
Deep Inspect Off - empty checkbox
Currently selected layer is being inspected.
Only Tokens applied directly to the current layer appear in the Token list below.
Deep Inspect On- checkmark visible
Current layer and all children layers below are being inspected.
All Tokens applied to the current layer and children layers appear in the Token list below.
The Deep Inspect feature in the Plugin is the only way to see all Tokens applied to a design element at once. Figma's native features in Dev Mode or their Inspect views only shows the current selected layer and ignore all children layers.
The Inspect Options menu contains some handy filters if you are working with design elements in Figma with lots of Tokens applied to them:
Show broken references
Controls visibility of Tokens applied that have an issue blocking the Plugin from resolving the value of the Token correctly.
Most often there is an issue with the Token Name not being found in the plugin, or the value of the Token has an error.
Show resolved references
Controls visibility of Tokens applied with no issues detected by the Plugin.
For example you are only checking for Broken Tokens, you could deselect the show resolved references
option so the checkmark is not visible. That way any layers you are inspecting in the Plugin will only show Tokens with broken references in the list below so you can find what you are looking for faster.
Much like on the Tokens page of the Plugin, the Tokens View toggle allows you to switch between the no-code (list) and code (debug) views.
By default, the Inspect page is on the List view. You can select the i
icon button to toggle to the debug view.
When you are inspecting a selected layer in the Plugin from the Debug View, you will see all Tokens applied to the layer written in code.
You can also select one of the arrows to create a static annotation element next to the selected layer in the Figma file. The annotation element will include the names of all Tokens applied to the selected layer and an arrow indicating which layer the annotation belongs to.
For example, selecting the arrow pointing down will place the annotation element underneath the design element on the Figma canvas.
These actions allow you to interact with the Tokens listed below them:
The Select All feature controls the Tokens listed below it:
Select All Off - empty checkbox
Individual Tokens below it can be selected as required.
Select All On- checkmark visible
All Tokens below it will be selected with their checkmarks visible.
The Bulk Remap modal allows you to match and replace strings of Token Names using the inputs:
Match - the string you'd like the Plugin to find.
Replace - the new string that will replace all instances the Plugin finds that match.
Remap across document (slow) - tells the Plugin to expand the action across the entire Figma file instead of limiting it to the currently selected design elements.
Once you've filled out the inputs with your desired strings, be sure to select the Remap button to save your changes.
Once you are finished Remapping all desired Tokens, you'll need to navigate back to the Tokens Page and select the Apply Token Data button to push the new values to Figma to complete the process.
Selecting the Set to None feature was developed for working with instances of components in Figma.
You can not remove a Token from an instance of a component due to the way that components work in Figma. If you apply another Token, Style or Variable to the same property as an over-ride, when the Plugin runs the value of the Token applied to the main component will be applied, effectively erasing your styling over ride.
So to get around this limitation, you can use the Set to None feature which tells the plugin to change the value of the Token to none
without removing it. When the value is none
, you can style that property with another Token, Style or Variable in Figma. When the Plugin runs in the future, your over-ride will persist.
The Remove Selected button allows you to remove Tokens that are listed below with the checkmark visible from your chosen design elements on the Figma canvas.
The Plugin can not remove Variables or Styles applied to design elements with Figma's native features.
There are also some nuances of removing Tokens from the Inspect or Tokens Page of the Plugin to be aware of, which are described in detail in the Remove Tokens guide.
Once you've selected a design element in Figma, the Tokens applied are listed in the Plugin. Each Token Type will appear in the list with slight differences, but all Tokens in the list share the same anatomy:
The Tokens in the list are organized by the design property they have been applied to for the selected elements on the Figma canvas.
The design property appears as the heading of the Tokens listed below it.
The names of the design properties displayed on the inspect page don't always match the design properties displayed when you right click on a Token to apply it to a design element. Here's a list of the design properties you'll see on inspect page and the corresponding Token Type. You can select the Token Type to jump to its guide.
The Select Token control allows the bulk actions above the list to be applied to the Token:
Empty checkbox
This Token will be skipped from bulk actions.
Checkmark visible
Bulk actions will be applied to this Token.
When a Token is "broken" and it's value can not be resolved, the value will be replaced with an icon of a broken link (↓ more details below).
The Plugin will display a symbol next to the Token Name to indicate how it was applied to the design element.
Applied with Tokens Studio - no symbol
Applied as a Figma Style - 2 x 2 dots
Applied as a Figma Variable - Hexagon
Broken Token - Chain link with line through it.
Value Set to None - Circle with a line through it.
The Token Name that Figma is using as the ID of the design decision will show in the list. If the Token was applied using the Plugin directly, you can select the chevron to the right of the name to access the Remap feature.
The actions on the right side of the Token list interact with the layers within your selected design elements in Figma. These actions allow for fine-grained control of selecting the correct layers when debugging Tokens that are broken or require remapping:
Layer count - the number of layers the Token is applied to
Selecting the layer count will open a list of the layer names.
Layer navigation - will change the Plugin's current selected layers to the layers listed in the count to the left.
Mentioned in this doc:
None yet!
None yet.
is a Microsoft-owned suite of development tools and services you can use to create a Git-based source code repository.
If you haven't already, sign up for an Azure DevOps account at .
The URL of your Azure DevOps organization you saved in .
The Project name you saved from the
The Personal access token you saved from the .
The name of the repository you recorded in that matches the personal access token you entered
Azure Dev Ops -
SD-Transforms -
Style Dictionary -
Tokens Studio Plugin GitHub -
🧑💻
↕️
🔐
is a Git-based source code repository hosting service popular among teams using Atlassian tools.
If you haven't already, sign up for a Bitbucket account at
Review the options,
The username of the Bitbucket account you saved in is used as a part of the authentication process between the plugin and Bitbucket.
The App password you saved from .
The URL from the repository from the has the owner/repository in it (all characters after the bitbucket.org/)
If you created a new repo following , you will enter main
.
Bitbucket -
SD-Transforms -
Style Dictionary -
Tokens Studio Plugin GitHub -
🧑💻
↕️
🔐
is a popular option to store Design Tokens in a code repository.
Sign into your account and navigate to the page.
Navigate to your
The Personal access token you saved from .
The URL from the repository from the has the owner/repository in it after the gitlab.com/
Gitlab -
SD-Transforms -
Style Dictionary -
Tokens Studio Plugin GitHub -
🧑💻
↕️
🔐
provides a simple REST interface to store & retrieve your JSON data from the cloud.
If you haven't already, sign up for a JSONBin account at .
The API Key you saved from .
Enter the ID of the bin you created and saved from .
JSONbin -
SD-Transforms -
Style Dictionary -
Tokens Studio Plugin GitHub -
JSONBin not updating if JSON is manually added
🧑💻
↕️
🔐
is a design data platform popular for documenting design systems.
If you haven't already, sign up for a Supernova account at
→
→
The Access token you saved from
The URL of your design system project
Its essential to have the correct mapping structure, so copy/paste the configuration as outlined in the, including the square brackets [ ]
.
If you want to map multiple themes at once, then you can check out the Supernova docs on connecting to the plugin .
→
In the , we have a channel moderated by the Supernova team.
Supernova -
Supernova -
SD-Transforms -
Style Dictionary -
Tokens Studio Plugin GitHub -
🧑💻
↕️
🔐
Tokens Studio Plugin GitHub - Open issues for
The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.
Tokens Studio Plugin GitHub - Open issues for
→
→
Enter the complete URL you saved from
The optional authentication headers you saved from .
GitHub -
SD-Transforms -
Style Dictionary -
Ian Lawson's Guide (Medium Article) -
Tokens Studio Plugin GitHub -
🧑💻
↕️
🔐
→
Enter the complete URL you saved from
The authentication headers you saved from .
SD-Transforms -
Style Dictionary -
Tokens Studio Plugin GitHub -
🧑💻
↕️
🔐
Tokens Studio Plugin GitHub - Open issues for
If you haven't already, sign up for an account at
The API Key you saved from .
Enter the Connection String ID you saved from .
SD-Transforms -
Tokens Studio Plugin GitHub -
🧑💻
↕️
Tokens Studio Plugin GitHub - Open issues for
Tokens Studio Plugin GitHub - Open issues for
→
→
→
Tokens Studio Plugin GitHub -
Add error when TS plugin is not able to push changes
A refers to a design element, layer, style or variable. Each node can have several different types of Tokens applied depending on the type of node.
Updating
If you change the Name of a Token from the JSON View of the Token Page, you will need to use the Remap features on the Inspect page ().
→
The Bulk Remap feature in the Plugin supports , also known as RegEx, which is the technical name for pattern matching when searching.
Microsoft -
Medium Article by -
Test your RegEx -
Figma Learn -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin Github -
→
A.
B.
C.
D.
The annotations generated are static, acting like a snapshot in time. You can manually apply a Documentation Token if you want the annotations to change if the Token Names change in the future. →
A.
B.
C.
D.
Selecting the Bulk Remap button allows you to use a match and replace feature to update the names of multiple Tokens applied to design elements in your Figma file. This is helpful in fixing broken Tokens that were not .
→
The Plugin can not remove Tokens from instances of components. You'll need to use the Set to None feature instead ().
A.
B.
C.
D.
E.
F.
Each Token Type will preview the of the Token in a slightly different way. For example, Color Tokens display a swatch of the color, where as a Dimension Token shows the numeric value.
When the Value has been Set to None using the bulk action, the value will be replaced with an icon of a circle with a line through it ().
If you use the remap feature it will only apply the changes to the design elements on the Figma Canvas that are currently selected. You can use the actions to the right of the Token Name to check which layers are selected ().
→
Figma Learn -
Tokens Studio Plugin GitHub -
Tokens Studio Plugin GitHub -
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
Once a Token has been applied, it will remain attached until you manually remove it.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.
Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.
Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.
Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.
Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.
Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
All Token Types that accept numeric values can use math equations to calculate their value in Tokens Studio.
Jump to the guide on Tokens with Math Values by selecting the card below to learn more.
→ Read the Token Values with References guide for more details
→ Read the Token Values with References guide for more details
Select the Token Type card below to jump to its guide.
Select the Token Type card below to jump to its guide.
asset
Assets/images
backgroundBlur
Background blur
border
Border all sides
borderBottom
Bottom border only
borderColor
Border/stroke color
borderLeft
Left border properties
borderRadius
Border radius (all corners)
borderRadiusBottomLeft
Bottom-left border radius
borderRadiusBottomRight
Bottom-right border radius
borderRadiusTopLeft
Top-left border radius
borderRadiusTopRight
Top-right border radius
borderRight
Right border properties
borderTop
Top border properties
borderWidth
Border width
borderWidthBottom
Bottom border width
borderWidthLeft
Left border width
borderWidthRight
Right border width
borderWidthTop
Top border width
boxShadow
Box shadow
composition
Composition (legacy)
counterAxisSpacing
Row gap
description
Token description
dimension
Dimension without property specified
fill
Fill color
height
Height
horizontalPadding
Horizontal padding
itemSpacing
Spacing between items
maxHeight
Maximum height
maxWidth
Maximum width
minHeight
Minimum height
minWidth
Minimum width
number
Number without property specified
opacity
Opacity/transparency
paddingBottom
Bottom padding
paddingLeft
Left padding
paddingRight
Right padding
paddingTop
Top padding
rotation
Rotation
sizing
Size (width and height)
spacing
General spacing
text
String text content
textDecoration
Text decoration
tokenName
Token name
tokenValue
Token raw value
typography
Typography Composite
verticalPadding
Vertical padding
value
Token resolved value
visibility
Visibility state
width
Width
x
X position
y
Y position
If you encounter issues with your Tokens or have trouble opening the plugin, you can reset your Tokens using the Developer Console in Figma
You can think about this like a "factory reset" for the Tokens Studio Plugin.
Open the console in the Figma file where you are experiencing the issues.
Use the console to either
Replace the Token JSON to fix errors causing the issues
Run a command to perform a hard reset
Restart the Tokens Studio Plugin
Open your browser’s developer tools:
• Mac: Press Cmd + Option + I
• Windows: Press Ctrl + Shift + I
Navigate to the Console tab.
To replace the Token JSON, first you need to export it from the console. Then you can paste it into a code editor of your choice to make changes as needed, and paste the new JSON back into the console.
In the console, enter the following code then press enter:
This data identifier retreives the JSON from the Tokens Studio Plugin data stored in the Figma file.
Once you press enter, the JSON from the Tokens Studio Plugin are displayed in the console, as shown below in the blue text located below the command.
At the end of the JSON displayed in the console there is a Copy JSON button you can use to export the code to your clip board.
Once you've copied the JSON from the console, you can paste it into a code editor (like VS Code) to make changes as needed.
After editing the JSON in a code editor, you can paste it back into the console at the end of this command between quotes:
In the console, enter the following code then press enter:
Close the console and open the Tokens Studio plugin.
You’ll see the Get Started screen, indicating a successful reset.
Before we begin, we need to install Style Dictionary. You can install it using npm, which is a package manager for Node.js. Open your terminal and run the following command:
Once Style Dictionary is installed, we can start transforming our design tokens. Here's an overview of the process:
Define your design tokens in a JSON file.
Configure Style Dictionary to transform your design tokens into usable code.
Generate code for your target platform.
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
💡 Something to share?
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
💌 Visit to contribute or subscribe to updates.
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
,
,
,
,
,
,
,
,
,
,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
, ,
,
,
If you want to hard reset the Tokens Studio Plugin, removing all Token Data from Figma file, open the console using the .
is a powerful tool for transforming design tokens into usable code for different platforms, such as the web with CSS variables.
Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
This guide covers the basics of installing and using Style Dictionary. For full details, head to
We provide official transforms in the form of a package called . You can customize these transforms or create your own to fit your needs. More information can be found on npm.
is a web-based tool that allows you to transform your design tokens directly in your browser. It uses Style Dictionary under the hood and can be a convenient way to experiment with Style Dictionary without installing it on your computer.
→ Jump to the Dimension Token technical docs by selecting the card below.
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
Read the Sync Changes guide for more details
📸 ADD IMAGE 📸
→ Read the Add New Sync Provider guide for more details.
→ Read the Add New Sync Provider guide for more details.
→ Read the Add New Sync Provider guide for more details.
→ Read the Add New Sync Provider guide for more details.
→ Read the Add New Sync Provider guide for more details.
→ Read the Add New Sync Provider guide for more details.
→ Read the Add New Sync Provider guide for more details.
→ Read the Add New Sync Provider guide for more details.
Scoping and Hide from Publishing not supported
Tokens Studio is not yet able to control Figma's Scoping or Hide from Publishing features.
You can use the Figma native UI to adjust the desired Scoping and Publishing feature with no negaitve impact in the Plugin.
The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.
The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.
The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.
The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
The various Token Types supported by Tokens Studio have unique transforms to be aware of.
The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.
This feature requires a for Tokens Studio. If you are using this feature with a Free licence, you may be locked into read-only access to the feature.
Generic Versioned Storage is a way to host your Design Tokens on a local or remote server, which supports read-only, read/write, and read/write/create workflows.
When you host your Design Token JSON files on a web server or static hosting service, the plugin can access the Tokens (read-only) by syncing to the URL where your Token files are stored.
Export to Figma as Styles or Variables
Apply Token Actions + Settings
Dev Mode + Tokens Studio
green
scale. On the right right, it is referencing a Token from a grey
scale. Border Width
Unofficial Token converted to a Dimension Token.
Sizing
Unofficial Token converted to a Dimension Token.
Spacing
Unofficial Token converted to a Dimension Token.
Azure DevOps is a Microsoft-owned suite of development tools and services you can use to create a Git-based source code repository.
Bitbucket is a Git-based source code repository hosting service popular among teams using Atlassian tools.
{
and the first few letters of the name into the Tokens Value input to see any compatible Tokens that match. green
scale. On the right right, it is referencing a Token from a grey
scale. theme/light-mode
which has the Token called theme-color.background.default
with a light color as its value, compared to the example on the right in the theme/dark-mode
Token Set which has the value as a dark color. button-label-color,
which could be applied directly to the button design element and represented as a hex code, color style, or variable in Figma. name
input annotated. On the left side, the form is for a color
Token Type. On the right, the form is for a typography Token Type.
color
Token form with its value
input open, showing available Token Names that can be referenced as the value. Once a Token Name is selected from the list, it appears wrapped in curly brackets as the value
in the Token Form. green
scale. On the right right, it is referencing a Token from a grey
scale. value
of a hex code is shown under the Token Name. value
of a reference to a Token is shown under the Token Name. The resolved value
it inherits from the Token being referenced appears on the right side. colors.gray.light
is hovered on, revealing the plus-symbol quick action. Once the action is selected, a new Token Form is opened, pictured on the right. The Token form has the name input pre-filled with the group name colors.gray.light
. colors.gray.light
group is expanded on the left and collapsed on the right. colors.eggshell.300
has been right-clicked to reveal its action menu. When the edit
action is selected, its information appears as a form, pictured on the right. The annotations show the original name on the top of the Token form and a new name entered in the 1st input. eggshell
has been right-clicked to reveal its action menu. When the edit
action is selected, its information appears as a form, pictured on the right. The annotations show the original name on the top of the Token form and a new name entered in the input. rename in other sets,
which is only visible when certain conditions are met.Skipped Variables
Sometimes, the plugin skips exporting your Tokens to Figma even when you have the desired options configured correctly.
Import from Figma Create Tokens from Styles
primitives-all
Theme is selected (checkmark visible) for export. The Options button is highlighted to show how to open the menu. primitives/all
Theme selected on the right.spacing.large
Token shows a value of 24
and a Token Type of Number
.spacing.large
Token shows a value of 24px
and a Token Type of Dimension
.spacing.large
Token shows a value of 1.5rem
a Token Type of Dimension
.Manage themes
to view the Themes Manager. The example on the right shows the Themes Manager before any Themes are created. Create styles with variable references
is enabled. mode/dark
Theme is selected (checkmark visible) for export. The Options button is highlighted to show how to open the menu. Create styles with variable references
is enabled. Non-local Variables and Styles.
Steps for when your Variables live in a different Figma file.
headline.100.light
which was created by importing a text style from Figma with the same name. On the left, the Token name is being hovered on in the Tokens Studio Plugin, which shows all of its properties. Azure DevOps
Bitbucket
GitHub
Gitlab
Azure DevOps
Bitbucket
GitHub
Gitlab
GitHub
Gitlab
Azure DevOps
Bitbucket
JSONBin
Supernova
Token Studio Platform
URL
Generic Versioned
GitHub
Gitlab
Azure DevOps
Bitbucket
JSONBin
Supernova
Token Studio Platform
URL
Generic Versioned
The plugin currently supports Linear Gradient Colors within a Color Token by writing the value to .
Paragraph Indent defines the offset of the first word of every paragraph.
Paragraph Indent decisions enhance the legibility of compact text elements, like a magazine article appearing as a column on the side of a page design.
When we apply a Typography Composite Token to a text layer in Figma, these Paragraph Indent values will change the text layer:
Default value - 0
No additional space is added.
All words would be aligned tight to the left side of the text container.
Relative to Font Size - value in rem units
Example: Paragraph Indent at 0.5rem
with Font Size at 1rem
A person who has increased the font size of a mobile phone will see the space before the first word of each paragraph half the size of the text.
Fixed - value in pixels
Example 8px
The space before the first word in the paragraph will remain the same as a user zooms into a webpage.
Like all Tokens defining a dimension design decision, the value of a Dimension Token for Paragraph Indent must include a numeric value and, ideally, a unit of measure.
Tokens without a unit specified are applied as the pixel equivalent in Figma.
The syntax used to write numeric values for the Paragraph Indent property is important.
Be sure to avoid any spaces between numbers and units of measurement.
Units are always written in lowercase.
Value should always be greater than 0.
rem units (rem)
To support responsive design, you can define your Paragraph Indent Token in rem units, and the Plugin automatically converts the value to the pixel equivalent when the Typography Composite Token is applied to the text element in Figma.
For example, a Paragraph Indent Token with a value of 1rem
, when applied as a Typography Composite Token, will appear as 16px
in Figma.
Pixel units (px)
While its not common, should you require the space before the first word of every paragraph to remain static even when users change their preferences, the Paragraph Indent value can be defined in pixel units. For example:
Units not supported by Figma
Em units are commonly used in CSS for Paragraph Indent properties but they are not supported in Figma.
You can still create Paragraph Indent Tokens with these units using the Tokens Studio plugin.
When you apply them to design elements in Figma, the Token will be present and visible to engineers inspecting the design element in Figma, but the Token won't interact with the Text Indent property in Figma's UI.
When trying to reference another Token as the Value for a Dimension Token for Paragraph Indent, you will see you will see Tokens in the dropdown list that are:
Tokens living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = dimension
number
Paragraph Indent is not yet an official Token type in the W3C Design Token Community Group specifications.
Tokens Studio has added Paragraph Indent as a Token type to support Figma's unique approach to this text property.
In Tokens Studio, the Paragraph Indent Token has a unique syntax in code which identifies if the Token is:
An independent property Token
Part of a Typography Composite Token
Looking at the JSON format, the "type"
is "dimensions"
when the Font Size Token is defined as an independent property Token.
This example shows a Dimension Token named paragraphIndent-none
with the value in pixels (see line 4).
This is in contrast to the Typography Composite Token, which has the property Token "type"
written as"paragraphIndent"
.
This example shows a Typography Composite Token with the Paragraph Indent property Token named paragraphIndednt-none
referenced as the value (see line 10).
This difference in syntax for the Paragraph Indent Token is less than ideal as it doesn't match the DTCG definition for this property, which is intended to be dimension
. If your Design Tokens are being used in code, we have included a transformation to correct this inconsistency, described below.
When transforming Paragraph Indent Tokens there are specific transforms to be aware of.
The preprocessor in the SD-Transforms package will automatically convert the Tokens Studio specific Token Type of paragraphIndent
to align with the DTCG Format Token Type of dimension
.
Paragraph Indent, as part of Typography Composite Tokens, requires the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
None yet!
None yet
None
Text Decoration defines an optional line as a part of font styling properties, typically used to communicate the visual emphasis of text.
When we apply a Typography Composite Token to a text layer in Figma, these Text Decoration values will change the text:
By default - no lines are added to the text - null
The text appears as typed with no decoration added.
A line below the text - underline
It commonly indicates interactive text elements, like links.
A line in the middle of the text - strike-through
It commonly indicates information that is no longer accurate, like a to-do item that has been completed.
The syntax used to write string values for Design Tokens is important, so be sure to write your Text Decoration Token value with all lowercase letters and ensure there are no spaces.
The Text Decoration Token has a few specific values depending on your needs.
null
Most of the time, text will appear as typed; the Text Decoration Value will be:
underline
To create a line at the bottom of the text, enter the Text Decoration Value as:
strike-through
To create a line through the centre of the text, enter the Text Decoration Value as:
Not supported by Figma
There are additional text-decoration
properties commonly used in CSS that are not supported in Figma.
Overline
Line-above
Using the Tokens Studio plugin, you can still create a Text Decoration Token with these values.
When you apply them to design elements in Figma, the Token will be present and visible to engineers inspecting the design element in Figma, but the Token won't interact with the Text decoration property in Figma's UI.
When trying to reference another Token as the Value for a Text Decoration Token, you will see Tokens in the dropdown list that are:
Living in Token Sets that are currently active.
In the left menu on the plugin's Tokens page, a checkmark is visible next to the Token Set name.
Token Type is compatible:
The same = textDecoration
Text Decoration is not yet an official Token type in the W3C Design Token Community Group specifications.
Tokens Studio has added Text Decoration as an uofficial Token type in anticipation it will be added to the W3C specs in the near future.
This property in Figma matches CSS, so there is no specific transform for Text Decoration.
Running the SD-Transforms pre-processor as part of the generic package will prep your Text Decoration Tokens for Style Dictionary.
However, Text Decoration, as part of Typography Composite Tokens, requires the SD-Transforms option to expand composite Tokens into multiple Tokens
.
Mentioned in this doc:
Style Dictionary - https://styledictionary.com/
None yet!
None yet
None
Paragraph Indent Tokens define offset of the first word of every paragraph as an individual property to be composed within a . It is not intended to be applied to text elements directly.
Paragraph Indent is not a dedicated Token type in Tokens Studio. We use a for this property.
In , this property is called text-indent
.
Rem Units act as a multiplier of the base font size, so when a user changes their preferences to a larger font size or uses a zoom feature in your product, elements defined in rem units will respond accordingly.
The value of 1rem
can be configured in the .
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma - Explore Text Properties,
MDN Web Docs -
W3 Schools -
💡 Something to share?
Tokens Studio Plugin GitHub -
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
💌 Visit to contribute or subscribe to updates.
Text Decoration Tokens define the position of an optional line as an individual property to be composed within a . It is not intended to be applied to text elements directly.
In , this property is also called text-decoration
.
However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.
For example {token.name.here}
Jump to the guide on Token Values with References by selecting the card below to learn more.
Engineers typically transform Tokens used in code with , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.
→
Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.
→
SD-Transforms -
Design Tokens Community Group -
Design Tokens Community Group -
Design in Figma -
MDN Web Docs -
💡 Something to share?
Tokens Studio Plugin GitHub -
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
💌 Visit to contribute or subscribe to updates.
The name
of a Design Token acts as the unique identification for our design decisions in code.
While naming is a personalized part of working with Design Tokens, we've compiled guidelines to avoid common naming errors that cause technical issues for engineers.
This information is based on:
Knowing how things work "under the hood" can help you make better choices when choosing names for Tokens to avoid errors when your Tokens are used in code.
Tokens with the same names but different uses of capital letters will be seen in the system as unique Design Tokens.
For example, all of these Tokens would be viewed as unique Tokens by a back-end system: tokenName
tokenname
Tokenname
TokenName
You'll want to decide on a casing strategy for your Token's names and stick with it.
The period (.) character is used to create Groups of Tokens. Grouping Tokens helps to organize your Tokens into a tree structure in your design tools and code files.
You can think of the Groups in Token Names as a folder system for your design decisions.
For example, these Color Tokens do not have any grouping, also known as Flat names:
Compared to grouped names, which replaces the dash (-
) with a period (.
):
These 3 Tokens would end up being grouped in JSON file:
When creating your Token names, be sure to use period (.
) where you want to create a Group and not to represent the identification of a design decision.
This is a common mistake when creating Token Names for dimension properties where a scale needs a half or quarter step.
For example, a half step between spacing.1
and spacing.2
is commonly written as spacing.1.5
or spacing.1-5
However, both of these options are less than ideal once we pass our Tokens over to engineers who modify our Token Names as a part of the Transformation process.
During the transformation process, they often modify the Token names to match their preferred workflow.
Most common Token name modifications:
Change casing and punctuation.
Flatten them to remove groups.
Add or remove front matter/prefixes.
Remove designer-specific words.
For example, if the engineer writes their code in camelCase
, your Design Tokens would change:
Original: my-awesome-token
Transformed: myAwesomeToken
So when you write your Token names in the plugin without any issues, once engineers modify them, there could be multiple tokens with the same name.
This could be a problem that causes naming collisions because your engineer no longer has a unique ID for each design decision.
spacing.1.5
spacing15
spacing.1-5
spacing15
spacing.15
spacing15
It's important to be thoughtful with your naming structure to ensure each Design Token has a unique name, which acts as the identifier for a specific design decision.
If there are more than one identical Token names with different values, the system doesn't know which ID to pay attention to.
This is called a naming collision, which can be intentional.
In the case of theming, we have multiple Token sets containing Tokens with identical names but different values. We tell the system which theme is active, and it overrides all Tokens with the chosen values.
For example, a person selects dark mode on a website and all the components are styled based on the dark-theme Tokens in the backend.
This can also be unintentional.
The spacing Tokens from the earlier example might be written like this in Tokens Studio:
When flattened by engineers to remove dashes (-
) and periods (.
) in the transformation process, it would result in these Token Names:
Which causes a naming collision for spacing15
.
So, to avoid this issue when working with numeric scales, you could write the name of the fraction as a string.
For example, spacing.1-5
could be spacing.1half
.
When the same Tokens from above are flattened, they would appear as:
When creating your Token Names, you'll want to avoid strings that are considered "forbidden" because they can cause destructive issues in code.
In Tokens Studio, when you use a period (.
) to create token groups and export them to Figma, the plugin converts the period to forward slash (/
) to create the same groups in Figma automagically.
So, to avoid creating unintentional groups in Figma, do not use forward slashes (/
) when writing your Token names.
In your Token JSON files, an object with the dollar sign has an assigned property in the Design Tokens spec, typically the parts identified in the Anatomy of a Design Token (more on that below).
Examples:
"$description"
denotes the property of token description
"$type"
denotes the type of token
This means that Token names can't begin with the $
character but could technically exist in other parts of the name. We suggest you avoid it whenever possible to avoid complications in code.
Avoid using names that match the official anatomic parts of a Token, as these specific strings of text are reserved for functional logic when using Tokens in code:
name
type
value
description
One of the most common errors in naming Tokens happens with Typography design decisions being shortened to include the word type
as a shortform for Typography.
Curly brackets are used to identify Tokens with Values that reference another Token. #add-doc-link/token-values-references
Example: "$value": "{green-500}"
So if they are also in a Token Name it totally breaks the code. This is common when folks are trying to reference a keyword in a Token Name by using curly brackets, which is a clever idea, but problematic for the plugin to process and for engineers to work with.
Much like the curly brackets, square and round brackets are often used in code, and when we include them in our Token names it leads to undesirable results.
When transforming tokens in code, using spaces, emoji or special characters can cause problems and a lot of unnecessary custom transformations to fix.
This issue often happens when importing Styles or Variables from Figma into the Plugin. While designers might find adding emoji's and special characters to their Figma workflow, they are not suitable for use in Design Tokens, which are technically code.
Mentioned in this doc:
None yet
None yet
outlined in the latest W3C draft by the Design Tokens Community Group.
The most common issues with Token Names while transforming for code provided by the engineering team.
In Tokens Studio, there are workflow features for which allow you take bulk actions on an entire Group (any any subgroups).
Engineers use a tool like to transform Design Tokens into whatever specific formats they need.
Figma uses the forward slash to create groups and folders to organize , and
: "...token and names MUST NOT begin with the $
character."
SD-Transforms -
Style Dictionary -
Design Tokens Community Group -
Design Tokens Community Group -
Design Tokens Community Group -
Figma -
Figma -
Figma -
💡 Something to share?
Tokens Studio Plugin GitHub -
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
💌 Visit to contribute or subscribe to updates.
Once you have added one or more Sync Providers to Tokens Studio, you can switch between sync providers or temporarily store your Tokens locally in the Figma file.
Open the Tokens Studio plugin and navigate to the settings page.
Navigate to the sync provider of your choice in the list.
Select the apply button on the right side of the sync provider details.
After selecting a different storage provider from your list of options, the plugin will compare your Tokens with what is in your remote storage.
You may see a modal asking you to push or pull to 'sync' the plugin data with your storage provider, depending on the type of provider, permissions, and the Tokens you have in the plugin.
These images show the push and pull modals for a new GitHub sync, but it will look similar for most providers.
Pull from provider
If your sync provider already has Design Tokens, you'll see a dialogue asking if you want to pull your Tokens in.
If you select yes
Tokens in your remote storage will be pulled into the plugin.
Any Tokens currently in the plugin will be replaced with the Tokens in your remote storage, and they can not be recovered.
Once the pull is complete, the modal will close and you'll be returned to the Settings page of the plugin.
If you select cancel
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
The modal will close and you'll be returned to the Settings page of the plugin.
If you close the modal without making a selection
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
Closing the modal returns you to the Settings page of the plugin.
Push from local
If your sync provider does not have code files with Design Tokens, you'll see a modal asking if you want to push.
This would push or "send" the current Tokens in the plugin to your sync provider.
If you select Push changes
The commit message is required.
You can think of it as a short note to your engineers about what you are pushing, such as "initial token load."
Tokens in the plugin will be pushed to your remote storage.
Once the pull is complete, the modal will close and you'll be returned to the Settings page of the plugin.
If you select cancel
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
The modal will close and you'll be returned to the Settings page of the plugin.
If you close the modal without making a selection
Tokens currently in the plugin will remain, and you can choose to push them to your sync provider later.
Closing the modal returns you to the Settings page of the plugin.
Community resources:
None yet!
None yet
None yet
Read the Sync Changes guide for more details
💡 Something to share?
Tokens Studio Plugin GitHub - Open issues for
🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio
💌 Visit to contribute or subscribe to updates.
→ Jump to the Guide on Importing Styles for more details.