Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 104 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Plugin for Figma - Public Docs

Getting Started

Loading...

Loading...

Loading...

Design Token Fundamentals

Loading...

Loading...

Loading...

Loading...

Loading...

Token Management

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...

Themes management

Loading...

Loading...

Working in Figma

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Settings Management

Loading...

Loading...

Loading...

Token Storage and Sync Integrations

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Inspect and Debug Tokens

Loading...

Loading...

Transform Tokens for Development

Loading...

Troubleshooting

Install the Figma Plugin

Install the Tokens Studio Plugin for Figma

It's quick and easy to get the Tokens Studio Plugin for Figma ready for use in your Figma files.

  1. Navigate to the Tokens Studio Plugin page in the Figma Community.

  2. 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 Tokens Studio Plugin page on the Figma Community is pictured with an icon button featuring a ribbon symbol is annotated with a label that says "save plugin".

→ Head to the Tokens Studio Plugin page on the Figma Community.

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.

→ Learn more about what a Pro licence unlocks here.

Open 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.

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. → Figma Learn - Use plugins in files

Quick actions menu for plugins

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.

The Figma UI is shown with the quick actions button annotated. The search input has "tokens studio" entered and the results show the Tokens Studio for Figma plugin listed as a matching action. An annotation is pointing at the matching action labelled "select to open".

Once the Plugin is open, you are ready to start a new Token Project to explore the Plugin.

Tokens Studio Plugin for Figma

Tokens Studio for Figma

Tokens Studio for Figma is a Figma Plugin allowing you to integrate Tokens into your Figma designs.

It gives you reusable tokens that can be used for a whole range of design options, from border radius or spacer units to semantic color and typography styles. It allows you to change tokens and see these changes applied to the whole document or its styles.

Slack Channel

We have a dedicated Slack server so the community can exchange ideas, best practices or simply ask a question. Join the Slack channel.

Token Anatomy - Type

Token Anatomy - Type

The type of Design Token defines which category of design property this decision belongs to, or when it can be applied.

Type = Design property

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.

Token Types for design properties

There are many 'Official' Token Types are listed in the .

Most often, typematches 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.


Up next - Value

Next, let's explore the value of a Design Token as this anatomic property depends on the Token's Type.

Token Anatomy - Description

Token Anatomy - Description

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.

Description = Additional context when needed

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 meta-data shared across tools and technologies.

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.


Up next - Name

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 .

W3C Design Tokens Community Group (DTCG) Specifications for Design Tokens
In this infographic, the Token examples on the right side highlight the Type. Both code blocks have coloras the Token Type.
An infographic example of documenting a Token with a value of #b1f1cb with a different application depending on the Token Type that is defined.
The Tokens page of the Tokens Studio Plugin shows all Token Types supported. The list is quite long, so the page is scrolled and shown side-by-side to capture them all.
In this infographic, the Token examples on the right side highlight the Value. The top code block shows a hard-coded value. The bottom code block has a value that references another Token.
Token Types
In this infographic, the Token examples on the right side highlight the Description. Only the bottom example has a description.
An infographic example of documenting a Font Family Token with a Description that includes a note and URL to download the Font.
In this infographic, the Token examples on the right side highlight the Name. The top code block shows a Token Name with groups. The bottom code block shows a flat Token Name.

Boolean

Boolean - Token Type

Boolean Tokens define layer visibility of an element as true or false.

It does not control component properties, as Figma doesn't allow it.


Design decisions

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.


Possible values

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.

Hardcoded string values

There are only two possible values for the Boolean Token:

  • true

    • The layer is visible.

  • false

    • The layer is not visible.

Values that reference another Token

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


Apply Boolean Tokens

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.


W3C DTCG Token Format

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.


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None yet

SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
https://styledictionary.com/
W3C Draft
Apply variables to designs, boolean
Visibility
Open issues for Token Type Boolean
Creating a new Boolean Token in the Tokens Studio Plugin for Figma.

Boolean Tokens can be attached to Boolean Variables in Figma.

Token Anatomy - Value

Token Anatomy - Value

The value of a Design Token defines what the design decision is and, in some cases, where the decision came from.

In this infographic, the Token examples on the right side highlight the Value. The top code block shows a hard-coded value. The bottom code block has a value that references another Token.

Value = What was decided

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.

An infographic example of documenting a Token applied to the text layer of a button label with different values depending on the defined Token Type.

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 Design Tokens Community Group.

Values that reference another Token

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.

An infographic example of documenting a Color Token applied to the text layer of a button label. The Value of the Token directly applied is referencing another Token. Following the pathway of referenced Tokens as Values shows where the Color comes from in the system.

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.

Scaling systems with thoughtful references

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.

An infographic example of documenting a Color Token applied to the text layer of a button label. The difference between the two buttons is the color of the label text which is controlled by the value of the middle Token. On the left side, it is referencing a Token from a greenscale. On the right right, it is referencing a Token from a greyscale.

Scaling systems with math

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.

Summary

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.


Up next - Description

Next, let's explore the description of a Design Token as this anatomic property can help provide additional context about your design decisions.

In this infographic, the Token examples on the right side highlight the Description.

Other

Other - Token Type

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.

Creating a new Other Token in the Tokens Studio Plugin for Figma.

Design decisions defined by Other Tokens

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

Possible Values

An Other Token can have any hard-coded value as needed, including:

  • String

  • Numeric with units

  • Numeric without units

  • Math equations

Values that reference another Token

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


Apply Other Tokens

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.


W3C DTCG Token Format

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.


Transforming Tokens

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.

→ SD-Transforms Read-Me Doc, Using the preprocessor

Token Values entered as a number without a unit will be converted to a number with pixels as a unit.

→ SD-Transforms Read-Me Doc, ts/size/px


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 8.0 Types

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Other

Requests, roadmap and changelog

  • None

Font Fallbacks

Font Fallbacks

Font fallbacks are a common practice in code to ensure the text remains readable even when the primary font is unavailable.

"A fallback font is a font face that is used when the primary font face is not loaded yet, or is missing glyphs 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" - Chrome for Developers

While Figma doesn't natively support font fallbacks, Tokens Studio allows you to define fallbacks for Font Family and Font Weight Token Types.


In the plugin

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.

Font Family Tokens

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:

{
  "sans-serif": {
    "$value": "Arial, Helvetica",
    "$type": "fontFamilies"
  }
}

Typography Composite Tokens

When using Typography Composite Tokens, you can reference a Font Family Token that includes fallbacks:

{
  "body-text": {
    "value": {
      "fontFamily": "{sans-serif}",
      "fontSize": "16px",
      "fontWeight": "400"
    },
    "type": "typography"
  }
}


Limitations and Considerations

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.


Transforming Tokens

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.

→ Style Dictionary - Built in Transforms fontFamily/CSS


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

CSS resources:

  • Chrome Developer Docs - Improved Fallback Fonts

  • MDN Web Docs - font-family

  • CSS-Tricks - CSS Basics: Fallback Font Stacks for More Robust Web Typography

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub - Tokens Studio Plugin GitHub - Open issues for Token Type Font Family

Requests, roadmap and changelog

  • None

Composition (legacy)

Composition - Legacy Token Type

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 encourage our community to migrate from using the 'legacy' composition Token Type to a corresponding official token type, as we may deprecate it in the future.

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 way it works today

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.


Transforming Tokens

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.

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,

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.

→

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

  • Request to remove/deprecate Composition Tokens -

Known issues and bugs

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

Requests, roadmap and changelog

  • Deprecate Composition Tokens and replace with a 'template' feature.

Text Decoration

Text Decoration - Token Type

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.


Design decisions

Text Decoration defines an optional line as a part of font styling properties, typically used to communicate the visual emphasis of text.

In , this property is also called text-decoration.

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.


Possible values

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.

Hard-coded values

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.

Values that reference another Token

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


W3C DTCG Token Format

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.


Transforming Tokens

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.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • None yet

Requests, roadmap and changelog

  • None

Token Description

Token Descriptions in Tokens Studio

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 might recall from our that the description is optional but very helpful to provide additional context about the Token.

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.


Working with Token Descriptions

From the Tokens Page of the Tokens Studio Plugin for Figma, there are three places to see the Description of a Token.

  1. Token data on hover

  2. Token form

  3. JSON file

1. Token Data on Hover

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.

2. Token Form

Right click on a Token Name and select Edit to view its properties as a form.

The Token Form for each Token Type is unique, but the Description always appears as the last input.

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.

3. JSON File

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.

However, if there is no description entered for the Token, you will have to manually type the the full syntax.

There are some nuances about editing Tokens in the JSON view to be aware of, documented in its guide.


In Figma

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.

The plugin does not yet support Descriptions for Variables.

→


Transforming Tokens

While the descriptionof 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.

The SD-Transforms package's preprocessor will transform the TS Token Type to the Style Dictionary Type, as described in the table below.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma Resources

  • Figma Learn -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None Yet!

Text (string)

Text - Token Type

Text Tokens define entire strings of text that change the written copy of your designs when applied to a text layer.


Design decisions

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


Possible values

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 string values

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:

Values that reference another token

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."


Apply Text Tokens

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.


W3C DTCG Token Format

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.


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Unable to Assign a Numeric Value in the Text Token Type

    • When the value is purely numeric, results are unexpected.

Requests, roadmap and changelog

  • None

Opacity

Opacity - Token Type

Opacity Tokens define the transparency of a layer, or how opaque it appears.


Design decisions defined by Opacity Tokens

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.


Possible Values

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.

Values that reference another Token

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


Apply Opacity Tokens

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.


W3C DTCG Token Format

Opacity is not yet an official token type in the W3C DTCG specifications, but there is mention of a Percentage/radio type under consideration ()


Transforming Tokens

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.

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Opacity issue: some values are wrongly rounded in Figma

    • Values entered less than 1% are resolving to 1% in Figma

    • Ex: 0.1% will resolve to 1%

  • Referencing a (base+opacity) and adding another opacity to that, doesn't give the correct result

    • 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.

  • Using Opacity in Tokens Creates Blank Variable

    • 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.

Requests, roadmap and changelog

  • None yet

Styles and Tokens Studio

Manage Styles in Figma with Tokens Studio

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.

Style Types as Token Types

You can select a Token Type below to learn more about it.

Figma Style Type
Token Type

Guides on working with Styles

Select a card below to jump to a comprehensive guide on working with Styles, or scroll down to see the.


Frequently Asked Questions

Select a question to reveal the answer.

Which Token Types match the different Style types?

Tokens Studio supports 23 unique Token Types and there is only 4 Style Types. Head to the Export to Figma (overview) guide which shows the relationships.

Manage Styles using Tokens Studio

I exported my Typography Tokens as Text Styles using the plugin, how can I get variables linked to the text properties of the styles in figma?

This workflow is covered in the comprehensive guide to creating Styles with Variable References.

Create Design Tokens in the Plugin from Styles

I've imported styles with Variable values, why aren't the references in the Tokens created in Tokens Studio?

This is a known limitation of the Plugin.

You can still import them but any connection to Variables will need to be manually created. Head to the Import Styles guide for more details.

Token Values
null
underline
strike-through
Typography Token
CSS
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
W3C Draft
9.7 Typography
Explore Text Properties, Decoration
Text Decoration
Open issues for Token Type Text Decoration
Creating a new Text Decoration Token in the Tokens Studio Plugin for Figma.
The Typography Composite Token form is open, with each property referencing another Token. The Text Decoration property is highlighted.
"Hello world"
Jan Six
👋 Welcome back, {customer-id}!
👋 Welcome back, Jan Six!
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
W3C Draft
8.0 Types
Open issues for Token Type Text
#2470
Creating a new Text Token in the Tokens Studio Plugin for Figma.
Cover

Text Tokens can be attached to String Variables in Figma.

Color Style

Color Token

Text Style

Typography Token

Effects Style

Box Shadow Token

answers to frequently asked questions ↓
Styles with Variable References
Import Styles from Figma
Cover

Export to Figma Create Styles from Tokens using the Plugin.

Cover

Create Styles with Variable References

Cover

Import from Figma Create Tokens from Styles

See the W3C DTCG Spec 9.0 Composite types for more details
→ If you love Composition Tokens and want to make your voice heard, we've set up a forum in Featurebase where you can leave your comments!
in this GitHub Issue.
SD-Transforms Read-Me Doc, Using the preprocessor
SD-Transforms Read-Me Doc, Using Expand
Read Me
Read Me
W3C Draft
9.0 Composite Types
Github #2800
Open issues for Token Type Composition
#2881
#1943
→ Request
Creating a new Composition Token in the Tokens Studio Plugin for Figma.
Intro to Design Tokens Guide
Export a Token
Import a Style from Figma into Tokens Studio
Read Figma's guide on Descriptions for Styles for more details.
DTCG Design Tokens Specifications
→ SD-Transforms Read Me - ts/descriptionToComment
Read Me
https://styledictionary.com/
W3C Draft
5.2.1 Description
Add descriptions to styles, components, and variables
Open issues for Token Descriptions
In this infographic, the Token examples on the right side highlight the Description. Only the bottom example has a description.
An infographic example of documenting a Font Family Token with a Description that includes a note and URL to download the Font.
In the Plugin on the Tokens Page, hovering on a Font Family Token shows a Description as the last piece of data displayed. In this example, the Description includes a note and link to download the Font Family.
In the Plugin on the Tokens Page, right-click on a Token Name to see its action menu and select Edit to see its Token Form. The Description input is at the bottom of the form.
The Token on the Right has a value which References the Token on the left.
Select the JSON view toggle from the Tokens Page to see the current Token Set as an editable code file. As descriptions are optional, if they are empty, it is not added to the code file.
JSON View
8.8 Additional Types
Style Dictionary
@Tokens-studio/sd-transforms
SD-Transforms Read-Me Doc, ts/opacity
Read Me
https://styledictionary.com/
W3C Draft
8.8 Additional Types
Adjust the properties of an asset
Opacity
Open issues for Token Type Opacity
#2380
#1822
#2977
Creating a new Opacity Token in the Tokens Studio Plugin for Figma.

Remove Sync Provider

Delete a sync provider

Once a project is completed, you may wish to remove a sync provider from the plugin. You can always add it again later.

Steps in the plugin for Figma

Open the Tokens Studio plugin and navigate to the settings page.

  1. Navigate to the sync provider of your choice in the list.

  2. Select the three-dot menu icon on the right side of the sync provider details.

  3. Select delete from the menu options.

Delete sync provider modal

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.


Resources

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Sync Providers Manage

Requests, roadmap and changelog

  • None yet

Pro Licence for the Figma Plugin

Pro Licence - Tokens Studio Plugin for Figma

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.

Frequently Asked Questions

Select a question to reveal the answer.

Where can I find pricing details on the Pro licence?

The pricing page has the most up to date details based on your geographic region.

Where can I add a licence key in the Plugin to turn on pro?

The Settings page of the plugin is where you can enter your licence key.

How can I change my email address on my Tokens Studio account for my pro licence access?

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.


Themes Management

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:

Pro Licence
Free Licence

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

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.

Pro Licence
Free Licence


Syncing Tokens to External Storage

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:

Pro Licence
Free Licence

→


Visual Flow and Table View of Tokens

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.

Font Weight

Font Weight - Token Type

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.


Design decisions

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.

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:

  • bold

  • bold-italic

  • bold-wide

  • bold-wide-italic

In , font-style and font-weight are defined as independent properties.


Possible values

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

Hard-coded values

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.

Numeric weights

Text Styles in Figma don't accept a numeric value for Font Weight, only a string value.

Text Variables in Figma has limited support for numeric values for Font Weights.

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.

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.

Raw Numeric Value
Resolved Value

If your system uses italics or other styling properties that Figma has combined into its Font Family and Font Weight pairing, we suggest using the text string value instead of the numeric value.

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.

Converting from numeric to string values

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.

Values that reference another Token

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


W3C DTCG Token Format

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

"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.

Token Type syntax

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).


Transforming Tokens

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.

→

"object, object"

When you transform your Typography Tokens, and they show "object, object" it means your SD-Transforms configuration needs to be adjusted to include "expand".


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

  • MDN Web Docs -

Community resources:

  • Font Weight + Font Family Pairs explained by

    • Import Typography Styles from Figma into Tokens Studio -

Known issues and bugs

Tokens Studio Plugin GitHub -

  • None yet

Requests, roadmap and changelog

  • None

Border Width

Border Width - Token Type

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.

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.

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.

There is no immediate plan to discontinue support of the Border Width Token Type.

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 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.

→


Design decisions

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.


Possible values

The Border Width Token supports numeric values:

  • With or without a unit.

  • Single and multi-value.

Hard-coded values

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.

Pixel units (px)

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.

Values that reference another Token

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


Apply Border Width Tokens

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.

If you click to apply this Token to an element without accessing the right-click Token menu, the value will be applied to all sides.

For independent border styling, you can repeat the steps above and apply different Border Tokens to each side of the same design element.

If you apply the Border Width Token to an element before a stroke is applied in Figma, you may have to remove and re-apply the Token after the stroke has been enabled for the Token Value to apply as expected.

The plugin supports a that allows you to reference a Border Width Token to avoid this issue.


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • W3C DTCG Spec - Unofficial Token Types -

Intro to Design Tokens

What is a Design Token?

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 original definition

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." -

Tokens Studio definition

The Tokens Studio team broadly agrees with the below definition:

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).

Design Tokens Community Group

A Design Token, according to the , is:

  • 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.


Anatomy of a Design Token

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.

Design Tokens are design decisions

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.

Shared source of truth

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.

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.


Tools to work with Design Tokens

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.

Tokens Studio Plugin for Figma

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.

→

Tokens Studio Platform

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.

→

Native Design Tokens in Penpot

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

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. →


Summary

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.


Up next - Token Anatomy

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.

Border Radius

Border Radius - Token Type

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.

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.

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.

There is no immediate plan to discontinue support of the Border Radius Token Type.

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 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.

→


Design decisions

Border Radius defines the corner roundness of a design element, such as frames, groups, or polygonal shapes.


Possible values

The Border Radius Token supports numeric values with or without a unit.

Hard-coded values

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.

Pixel units (px)

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.

Values that reference another Token

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

Multiple values

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.


Apply Border Radius Tokens

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.

If you click to apply a Border Radius Token to an element without accessing the right-click Token menu, the value will be applied to all sides if the 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 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 .


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Color modifiers break when borderRadius token is renamed

Requests, roadmap and changelog

  • W3C DTCG Spec - Unofficial Token Types -

Text Case

Text Case - Token Type

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.


Design decisions

Text Case defines that the system should transform the capitalization of letters in a text element regardless of how they are typed.

In , this property is called text-transform.

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


Possible Values

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.

Hard-coded Values

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.

Values that reference another Token

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


W3C DTCG Token Format

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.


Transforming Tokens

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.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • None yet

Requests, roadmap and changelog

  • None

Paragraph Spacing

Paragraph Spacing - Token Type

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.


Design decisions

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.

This isn't a typical CSS property; you could define it by adding a .

This property does not appear in Figma's Dev Mode

While you can apply the Token using the plugin to change Figma's Paragraph Spacing property, this value does not have a CSS equivalent property so it does not show up in Dev Mode when inspecting CSS.

The Token applied will show up when inspecting Tokens Studio in Dev Mode.

→ Read the Dev Mode guide here.

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.


Possible values

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.

Hard-coded values

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:

Values that reference another Token

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


W3C DTCG Token Format

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.


Transforming Tokens

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.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma - Explore Text Properties,

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • None yet

Requests, roadmap and changelog

  • None

Manage Sync Providers
Change Active Sync Provider

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

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

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

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

Learn more about the Studio Platform
Themes management
Color modifiers
Branch management when syncing Tokens to external storage providers
Visual flow and table views of your Token projects
https://tokens.studio/pricing
account.tokens.studio
Jump to the guide on Themes for more details.
Read the guide on Branch Switching (pro) for more details.

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

  "font-weight-default": {
   "value": "Bold",
   "type": "fontWeights"
 }
{
  "paragraph-3": {
 "value": {
   "fontFamily": "{font-family-sans}",
   "fontWeight": "{font-weight-default}",
   "lineHeight": "{line-height-classic}",
   "fontSize": "{font-size-small}",
   "letterSpacing": "{letter-spacing-tight}",
   "paragraphSpacing": "{paragraphSpacing.none}"
   "paragraphIndent": "{paragraphIndent.none}"
   "textCase": "{textCase.none}",
   "textDecoration": "{textDecoration.none}"
 },
 "type": "typography"
  }
}
Typography Token
CSS
Figma
CSS
written a conversion
→ Jump to the Typography Token guide for more details.
8.4 Font weight
typography token
SD-Transforms Read-Me Doc, alwaysAddFontStyle
SD-Transforms Read-Me Doc, Using the preprocessor
SD-Transforms Read-Me Doc, Font Weight
SD-Transforms Read-Me Doc, Generic - expand composite Tokens
Read Me
W3C Draft
9.7 Typography
8.4 Font Weight
Explore Text Properties, Font Weight
font-weight
font-style
Sam I am Designs
It took me 2 years to figure out that Typography in Figma is not how text properties work in code.
Video Tutorial by Sam I am Designs
Open issues for Token Type Font Weight
Creating a new Font Weight Token in the Tokens Studio Plugin for Figma.
Cover

Font Weight Tokens can be attached to String or Number Variables in Figma.

Once the Font Weight Token form is open, select the value dropdown to open the menu. The Token tab shows compatible Font Weight Tokens available to reference as the value.
Once the Typography Token form is open, select the Font Weight value dropdown to open the menu. The Weights tab shows compatible Font Weights for the selected Font Familily from Figma to set as the hard-coded value.
The Typography Composite Token form is open, with each property referencing another Token. The Font Weight property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

1px
'official token type'
detailed below↓
Conversation forum on Unofficial Token Types is here.
Border Composite Token
SD-Transforms Read-Me Doc, Using the preprocessor
SD-Transforms Read-Me Doc, ts/size/px
Read Me
W3C Draft
8.0 Types
Open issues for Token Type Border Width
Conversation Forum
Creating a new Border Width Token in the Tokens Studio Plugin for Figma.
Cover

Border Width Tokens can be attached to Number Variables in Figma.

The right-click menu of a Border Radius Token is open to reveal the design properties it can be applied to in Figma.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Dimension

Once a Token has been applied, it will remain attached until you manually remove it.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

6px
'official token type'
detailed below↓
Conversation forum on Unofficial Token Types is here.
→ Read the guide on Skipped Variables for more details.
More details above ↑
multiple values
SD-Transforms Read-Me Doc, Using the preprocessor
SD-Transforms Read-Me Doc, ts/size/px
Read Me
W3C Draft
8.0 Types
Adjust corner radius and smoothing
Open issues for Token Type Border Radius
#2668
Conversation Forum
Creating a new Border Radius Token in the Tokens Studio Plugin for Figma.
Cover

Border Radius Tokens can be attached to Number Variables in Figma.

The right-click menu of a Border Radius Token is open to reveal the design properties it can be applied to in Figma.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Dimension

Once a Token has been applied, it will remain attached until you manually remove it.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

null
uppercase
lowercase
capitalize
Typography Token
CSS
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
https://styledictionary.com/
W3C Draft
9.7 Typography
Explore Text Properties, Letter Case
Letter Case
Open issues for Token Type Text Case
Creating a new Text Case Token in the Tokens Studio Plugin for Figma.
The Typography Composite Token form is open, with each property referencing another Token. The Text Case property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

16px
Typography Token
margin to your paragraphs
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
https://styledictionary.com/
W3C Draft
9.7 Typography
Paragraph Spacing
The paragraph element
Open issues for Token Type Paragraph Spacing
Creating a new Paragraph Spacing Token in the Tokens Studio Plugin for Figma.
The Typography Composite Token form is open, with each property referencing another Token. The Paragraph Spacing property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

Jina
Jon
Jina Anne's Youtube
Salesforce, Lightning Design System
W3C community
Design Tokens Community Group
DTCG W3C specifications
Style Dictionary
Learn more about the Plugin for Figma
Learn more about the Studio Platform, currently in Beta!
Penpot
Learn more about the Penpot and Tokens Studio collaboration.
Read the Tokens Studio x Style Dictionary collaboration announcement here.
Each anatomic part of a Design Token and how they connect the Common Language as defined by the Design Tokens Community Group.
An illustrated analogy of the information captured by a Design Token.
The gecko represents Style Dictionary in this infographic.
Design Tokens can be applied to components or attached to reusable styles or variables in design tools.
In Tokens Studio, a Token Set is the no-code version of a JSON file.
Tokens Studio can share code files of Design Tokens between Designers and Developers in their tool of choice. Style Dictionary is represented by the Geko, and it is used to transform the tech-agnostic JSON files into usable code.
The four anatomic parts of a Design Token are next to code examples. Each part will be reviewed next.

Font Family

Font Family - Token Type

Font Family Tokens define typeface as an individual property to be composed within a Typography Token. It is not intended to be applied to text elements directly.

Creating a new Font Family Token in the Tokens Studio Plugin for Figma.

Design decisions

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.

In CSS this property is called font-family.

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


Possible values

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

Once the Font Family Token form is open, select the value dropdown to open the menu. The Token tab shows compatible Font Family Tokens available to reference as the value.

Hard-coded values

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.

Once the Font Family Token form is open, select the value dropdown to open the menu. The Fonts tab shows available Font Families from Figma to set as the hard-coded value.

Values that reference another Token

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 Composite Token form is open, with each property referencing another Token. The Font Family property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.


W3C DTCG Token Format

Font Family is an official Token Type in the in the W3C Design Token Community Group specifications.( 8.3 Font Family)

It is mentioned as a required part of a typography token

"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

Token Type syntax

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).

{
  "font-family-sans": {
      "value": "Satoshi Variable",
      "type": "fontFamilies"
    }
  }

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).

{
  "paragraph-3": {
    "value": {
      "fontFamily": "{font-family-sans}",
      "fontWeight": "{font-weight-default}",
      "lineHeight": "{line-height-classic}",
      "fontSize": "{font-size-small}",
      "letterSpacing": "{letter-spacing-tight}",
      "paragraphSpacing": "{paragraphSpacing.none}"
      "paragraphIndent": "{paragraphIndent.none}"
      "textCase": "{textCase.none}",
      "textDecoration": "{textDecoration.none}"
    },
    "type": "typography"
  }
}

Transforming Tokens

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.

→ SD-Transforms Read-Me Doc, Using the preprocessor

Font Family, as a part of Typography Composite Tokens, require the SD-Transforms option to expand composite Tokens into multiple Tokens.


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 8.3 Font Family

  • Design Tokens Community Group - 9.7 Typography

Figma resources:

  • Design in Figma - Explore Text Properties, Font Family

  • Figma Learn - [Add a font in Figma](# Add a font to Figma design)

CSS resources:

  • MDN Web Docs - font-family

Community resources:

  • Font Weight + Font Family Pairs explained by Sam I am Designs

    • It took me 2 years to figure out that Typography in Figma is not how text properties work in code.

    • Import Typography Styles from Figma into Tokens Studio - Video Tutorial by Sam I am Designs

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Font Family

Requests, roadmap and changelog

  • None

💌 Visit to contribute or subscribe to updates.

Imported Variable Types and Token Types

Imported Variable Types and Token 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.

Change Token Type in Code

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.

Token Type
Variable Type
Technical Type in Code

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

Local Document - Figma File Token Storage

Local Figma Document Token Storage

By default, Tokens Studio will store your Design Tokens locally in the Figma file you are working in.

This limits your ability to share your Tokens across multiple Figma files. A sync provider is required for a multi-file workflow in Figma.

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.

Steps in the plugin for Figma

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.

Your Tokens are now being stored locally

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.


Resources

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Sync Local Storage

Requests, roadmap and changelog

  • None yet

💌 Visit to contribute or subscribe to updates.

Style Dictionary + SD Transforms

Transforming Design Tokens with Style Dictionary

Style Dictionary 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: @Tokens-studio/sd-transforms, 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 https://styledictionary.com/

Install with NPM

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:

npm install style-dictionary

Using Style Dictionary

Once Style Dictionary is installed, we can start transforming our design tokens. Here's an overview of the process:

  1. Define your design tokens in a JSON file.

  2. Configure Style Dictionary to transform your design tokens into usable code.

  3. Generate code for your target platform.

SD-Transforms

We provide official transforms in the form of a package called @tokens-studio/sd-transforms. You can customize these transforms or create your own to fit your needs. More information can be found on npm.

Style Dictionary Configurator

Style Dictionary Configurator 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.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

Gradient Colors

Gradient Colors

You can define Color Token values as gradients by writing a . This includes:

  • 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

Limited gradient support

Today, the plugin only supports linear gradients when exporting to Figma.

Template files

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 .


How to create Gradient Color Tokens

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.


Gradients can reference another Color Token

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:

Reduced opacity (alpha values)

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.


Color Styles with Variable references

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.

Before you export your Gradient Color Tokens to Figma as styles, ensure the value is referencing another Color Token which has been Exported to Figma as a Variable.

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.


Limitations of gradient Color Tokens

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.

  • Linear - Supported

  • Radial - Requested

  • Conic - Requested

Positioning a gradient on a layer

In code, gradients are, but Figma doesn't treat them that way.

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.

Importing Styles with Variable References

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.

You can manually replace those values with References to another Token following.


W3C DTCG Token Format

gradient is an official Token type in the in the W3C Design Token Community Group specifications.()

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.


Transforming Tokens

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.

→ →

"object, object"

When you transform your Color Tokens, and they show "object, object" it means your SD-Transforms configuration needs to be adjusted to include "expand".


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

Gradient resources

  • 9elements.com -

  • Larsenwork -

  • joshwcomeau.com -

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Linear-Gradient Token Does Not Work With Other Color-spaces (Also When Creating Styles/Variables)

    • Gradients with values in the HSL and P3 color spaces aren't working as expected.

Requests, roadmap and changelog

  • Expand gradient color support -

Letter Spacing

Letter Spacing - Token Type

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.


Design decisions

Letter Spacing, also known as kerning or tracking, defines the horizontal distance between individual characters/glyphs of a word or other strings of text.

In this property is called letter-spacing.

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.


Possible values

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.

Tokens without a unit specified are applied as the pixel equivalent in Figma.

For Letter Spacing Tokens, math might be used to convert a unitless number into a percentage.

Hard-coded values

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 -4pxcloser 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

Figma does not allow em units but to convert em units to percentages:

  • 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.

Values that reference another Token

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


W3C DTCG Token Format

Letter Spacing is not yet an official dedicated Token type in the W3C Design Token Community Group specifications.

However, it is mentioned as a required part of a .

"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

Figma doesn't support a rem or em value number for responsive design.

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.


Transforming Tokens

When transforming Letter Spacing Tokens, there are specific configurations to be aware of.

Letter Spacing Token Values entered as a percentage to accommodate Figma's unique approach to Typography need to be converted to em units in .

→

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.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

  • W3 Schools -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • None yet

Requests, roadmap and changelog

  • None

Paragraph Indent

Paragraph Indent - Token Type

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.


Design decisions

Paragraph Indent defines the offset of the first word of every paragraph.

In , this property is called text-indent.

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.


Possible values

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.

Hard-coded values

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.

Values that reference another Token

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


W3C DTCG Token Format

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.

Token Type syntax

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.


Transforming Tokens

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.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma - Explore Text Properties,

CSS resources:

  • MDN Web Docs -

  • W3 Schools -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • None yet

Requests, roadmap and changelog

  • None

Variables and Tokens Studio

Manage Variables in Figma with Tokens Studio

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.

Guides on working with Variables

Select a card below to jump to a comprehensive guide on working with Variables, or scroll down to see the .


Frequently Asked Questions

Select a question to reveal the answer.

Which Token types match the different Variable types?

Tokens Studio supports 23 unique Token Types and there is only 4 Variable Types. Head to the Export to Figma (overview) guide which shows the relationships.

How do I make sure my Variables are hidden from publishing and scoped properly using Tokens Studio?

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 without adverse effects to the attached Tokens.

Why isn't Theme switching in the Plugin working?

Once you Export to Figma as Variables using Themes, you will be required to use Figma's native Mode Switching feature.

The Theme Switcher in the Plugin will not work once those themes are attached to a Variable Collection

Manage Variables using Tokens Studio

Why didn't the Plugin create Variable Collections with Modes? I have duplicate Collections I wasn't expecting.

You need to export to Figma from Themes (pro) in order for the Plugin to be able to create a single collection with multiple modes.

Head to the guide on Exporting to Figma from Themes for more details.

My Variable Collection names aren't what I expected, how do I fix this?

When Exporting to Figma to create Variables, the Collection Name is created from the Theme Group when exporting from themes, and the Token Set name when exporting from Token Sets. Head to the guide on Exporting to Figma for more details.

When creating Variables from Tokens using the Plugin, why are there less Variables then I have Tokens?

There are many reasons why the Plugin may have to skip creating a Variable. Head to the guides for Skipped Variables when Exporting to Figma for more details.

Create Design Tokens in the Plugin from Variables

After importing my variables into the Plugin, I'm confused at how things are organized in Tokens Studio.

Congrats on getting this far! Head to the comprehensive guide on Importing Variables for some handy visuals and pro-tips.

Remove Tokens from Figma elements

Remove Tokens from Figma Elements

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.

Component instances with Tokens applied can not be removed by the Plugin. You either need to remove them from the main component or use the Set to None feature.

→

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.


In the Plugin

There are two places in the Plugin you can remove Tokens:

  1. Tokens Page - remove an individual Token to selected Figma elements.

  2. Inspect Page - remove one of more Tokens to selected Figma elements.

1. Tokens Page

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.

You can identify Tokens that have been applied to the parent layer of your Figma design element by the ring around the Token preview.

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).

When you remove certain Token Types, Figma may remove its styling!

For example, when you remove a Color Token, Figma removes the color from the design element which may not be desired behaviour. However if you remove a Typography Token, the text properties will remain on the text element.

2. Inspect Page

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.

You can use the Deep Inspect feature to see Tokens applied to the current selected parent layer and all children layers.

→

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.


Resources

Mentioned in this doc:

  • Figma Learn -

  • Figma Learn -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None yet.

Dev Mode in Figma

Dev Mode in Figma

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.

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.

This setting is saved to your Figma user account.

This means each person on your team using Dev Mode will need to enable the Plugin from their individual Figma account.

Add Tokens Studio to 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.

Viewing Tokens Studio Data in Dev Mode

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.

Figma can only show Tokens applied to one layer at a time. To view any Tokens applied to children layers, you need to select those layers individually.

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.

A community plugin was created by Azmy Hanifa which allows you to see more Tokens in Dev Mode! →


Resources

Mentioned in this guide:

  • Figma Learn -

Community resources:

  • Figma Dev Mode Plugin by Azmy Hanifa -

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • Enhance data in Dev Mode -

Change Active Sync Provider

Change the active sync provider

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.

In the plugin

Open the Tokens Studio plugin and navigate to the settings page.

  1. Navigate to the sync provider of your choice in the list.

  2. Select the apply button on the right side of the sync provider details.

Remote storage providers

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.


Resources

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for

  • None yet

Requests, roadmap and changelog

  • None yet

JSON View

JSON View - Tokens Page

Token Sets are where our Design Tokens live in the Tokens Studio Plugin.

In code, , so you can think of a Token Set as the no-code version of a JSON file.

However if you are comfortable working in a code editor, the Plugin has a JSON view!

If you are familiar with , you'll feel right at home in the JSON view, as the keyboard shortcuts and actions are the same.

Access the 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.

Any changes you make to Tokens in JSON view need to be saved using the action at the bottom of the plugin before toggling back to List view.

Pro Tips for JSON View

Coming Soon!


Resources

Mentioned in this doc:

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

  • Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None Yet

Import from Figma Guide

Import from Figma guide

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.

Variable Types as Token Types

When importing variables:

  • Color Variables - creates .

  • Boolean Variables - creates .

  • String/Text Variables - creates .

  • Number Variables - created or .

When you import variables from Figma, you may wish to manually adjust the Token Type.

→

Style Types as Token Types

When importing styles:

  • Color Styles - creates .

  • Text Styles - creates and optional Text Property Tokens.

  • Shadows - creates from Effects 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:

Multi-file Sync to Remote Storage (pro)

Multi-file sync (pro) to remote Token Storage

The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.

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.

When you use the Themes (pro) feature in Tokens Studio and your engineers consume your Tokens from GitHub, the transformation process requires Tokens stored in multiple files.

→ Learn about the Themes (pro) feature in Tokens Studio here. #add-doc-link/themes-pro

Sync provider settings

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.

Sharing multi-file sync with teammates

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.

Read only for free licence holders

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.


Resources

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for

  • None yet

Requests, roadmap and changelog

  • None

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

💡 Something to share?

💌 Visit to contribute or subscribe to updates.

💌 Visit to contribute or subscribe to updates.

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Token Values with References
Submit it here!
https://feedback.tokens.studio/

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Submit it here!
https://feedback.tokens.studio/

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Remote Token Storage Integrations
Change Active Sync Provider
Submit it here!
https://feedback.tokens.studio/

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Be sure to select a compatible layer type when applying Tokens in Figma.

If you have a layer type selected that isn't compatible with the Token Type you apply, the Token will still be applied, but no changes will be visible in Figma.

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Font Family and Font Weight Tokens work as a pair in Figma.

Figma's unique approach to combining Font Weight and Style as a single property written as a string value requires an exact match to the Font Family it is paired with.

This means you must apply both Font Family and Font Weight Tokens at the same time to interact with Figma's text properties and see a visual change.

Font Family Tokens can be attached to String Variables in Figma.

Submit it here!
https://feedback.tokens.studio/
Cover

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

Token Values with References

Font Family and Font Weight Tokens work as a pair in Figma.

Figma's unique approach to combining Font Weight and Style as a single property written as a string value requires an exact match to the Font Family it is paired with.

This means you must apply both Font Family and Font Weight Tokens at the same time to interact with Figma's text properties and see a visual change.

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Token Values with References
Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

linear-gradient(45deg, #87CEEB 0%, #008000 100%)
linear-gradient(45deg, #0000FF 0%, #87CEEB 50%, #008000 100%)
linear-gradient(180deg, {colors.gray.50} 0%, {colors.gray.900} 100%)
linear-gradient(270deg, rgba({colors.gray.50}, 0.4) 0%, rgba({colors.gray.900}, 1) 100%)
css-like syntax
upload to Tokens Studio in a new Figma file
2KB
gradient-tokens.zip
archive
CSS Gradients
"a special type of image"
the steps above↑
9.6 Gradient
SD-Transforms Read-Me Doc, ts/color/css/hexrgba
SD-Transforms Read-Me Doc, Using the preprocessor
SD-Transforms Read-Me Doc, Using Expand
Read Me
W3C Draft
9.6 Gradient
Paints in Figma, Use Variables in Gradients
Gradient angles CSS Figma and Sketch
Easing gradients tool
CSS Gradient Generator
Using CSS Gradients
Open issues for Token Type Gradients
#2718
Feature Request
Select the Export Styles and Variables from the Tokens page to configure the Options.

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

1px
Typography Token
CSS
↓ See the Transforming Tokens section below for more details.
suggests the use of this formula
Typography Token
CSS
SD-Transforms Read-Me Doc, ts/size/css/letterspacing
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
W3C Draft
9.7 Typography
Explore Text Properties, Letter Spacing
letter-spacing
letter spacing
Open issues for Token Type Letter Spacing
Creating a new Letter Spacing Token in the Tokens Studio Plugin for Figma.
Cover

Letter Spacing Tokens can be attached to Number Variables in Figma.

The Typography Composite Token form is open, with each property referencing another Token. The Letter Spacing property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

32px
{
 "paragraphIndent-none": {
  "value": "0px",
  "type": "dimension"
 }
}
{
 "paragraph-3": {
  "value": {
   "fontFamily": "{font-family-sans}",
   "fontWeight": "{font-weight-default}",
   "lineHeight": "{line-height-classic}",
   "fontSize": "{font-size-small}",
   "letterSpacing": "{letter-spacing-tight}",
   "paragraphSpacing": "{paragraphSpacing-none}"
   "paragraphIndent": "{paragraphIndent.none}"
   "textCase": "{textCase.none}",
   "textDecoration": "{textDecoration.none}"
  },
  "type": "typography"
 }
}
Typography Token
Dimension Token
CSS
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
https://styledictionary.com/
W3C Draft
9.7 Typography
Paragraph Indentation
The paragraph element
text indent
Open issues for Paragraph Indent
Creating a new Dimension Token for Paragraph Indent in the Tokens Studio Plugin for Figma.
The Typography Composite Token form is open, with each property referencing another Token. The Paragraph Indent property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

answers to frequently asked questions ↓
Export Using Themes (pro)
Export to Figma Guide
Variables Skipped on Export
Import Variables from Figma
Cover

Export to Figma Create Variables from Tokens using the Plugin.

Cover

Skipped Variables Troubleshooting tips when creating new variables.

Cover

Non-Local Variables (pro) Split variable collections across many Figma files.

Cover

Import from Figma Create Tokens from Variables

Cover

Styles with Variable References

Jump to the guide on Deleting a Token for more details.
Jump to the Inspect Page guide for details on how the Set to None feature works.
Learn more about the Token Application symbols on the Inspect page of the Plugin
Jump to the guide on Deep Inspect for more details.
Select layers and objects
Apply changes to component instances
Open issue for Remove Tokens
In this example, a frame called card-container is selected on the Figma canvas.The Tokens page (on the left) and the Inspect page (on the right) in the Plugin are annotated to show where to remove a Color Token called cards.background-color that is currently applied to the frame deign element in Figma.
In this example, a frame design element called card-container is selected on the Figma canvas. On the left screenshot of the Tokens Studio Plugin, the arrow points to a Color Token with a ring around it. Selecting that same Token by click/press/tab+enter removes the Token, shown in the example on the right which does not have a ring around the Token and the color of the selected frame has been removed.
In this example, the Remove selected button on the Inspect page of the Plugin is used to remove a Token called cards.background-color.

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Dev Mode
→ Read Figma's guide on Dev Mode for more details on this feature and their licence requirements.
Tokens Studio Tree Inspector
Guide to Dev Mode
Tokens Studio Tree Inspector
Open issues for Figma Dev Mode
Feature Request
A Figma file shows the Dev Mode button annotated at the bottom center of the screenshot.
A Figma file in Dev Mode is shown with the Plugin Tab annotated at the top right of the screenshot.
A Figma file in Dev Mode is shown with the Plugin Tab annotated at the top right of the screenshot. The words "tokens studio for figma" are entered in the search input, and the ribbon symbol icon button with the label "save" is annotated.
A Figma file in Dev Mode is shown with on the Inspect Tab, located at the top right of the screenshot. The programming language select input is open, with Tokens Studio for Figma as the new option is highlighted.
A Figma file in Dev Mode is shown with on the Inspect Tab, located at the top right of the screenshot. The programming language is set to Tokens Studio for Figma. A card component has been selected on the Figma canvas, and several design token names appear next to the properties in the code display pannel on the right of the interface.
A Figma file in Dev Mode is shown with on the Inspect Tab, located at the top right of the screenshot. The programming language is set to Tokens Studio for Figma. A card component has been selected on the Figma canvas, and several design token names appear next to the properties in the code display pannel on the right of the interface. The copy code action is annotated.

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Sync Providers Manage

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Tokens live in JSON files
VS Code
Learn more about the Apply Tokens Actions and Settings.
4.0 File Format
Open issues for JSON View
In Tokens Studio, a Token Set is the no-code version of a JSON file.
Select the Toggle on the top right side of the Tokens Page in the Plugin to access the JSON view.
The find and replace feature in the JSON view can be used to make bulk changes.

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Color Tokens
Boolean Tokens
Text Tokens
Number
Dimension Tokens
Jump to the guide on Variable Types and Token Types
Color Tokens
Typography Composite Tokens
Box Shadow Tokens
A new Tokens Studio project screen is next to the Plugin's empty state, with the Styles and Variables menu open. Annotations highlight the user flow to start the Import process.
The Tokens page of the Plugin is shown on the left, and the Styles & Variables menu is opened. The annotations show that the Import Variables were selected to open the Import Variable Options shown on the right.
The user flow from the Tokens page of the Plugin is annotated to show the Styles & Variables menu open and Import Styles as being selected on the left. The Import Styles options are shown on the right, annotated with the numbers 1, 2, and 3 to match their description above.
Cover

Import Styles from Figma

Cover

Import Variables from Figma

Pro Licence
View Only Read Only

💡 Something to share? Submit it here!

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

Submit it here!
https://feedback.tokens.studio/

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 community Slack, submit it on our feedback tool, or send us an email [email protected]

Font Size

Font Size - Token Type

Font Size Tokens define the height of the glyphs/characters as an individual property to be composed within a Typography Token. It is not intended to be applied to text elements directly.

In Typography, the Letter Spacing and Line Height properties are related to the Font Size.

Creating a new Font Size Token in the Tokens Studio Plugin for Figma.

Base 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.


Design decisions

Font Size, also known as point size or type size, defines the vertical size of each character/glyph in a typography design element.

In CSS this property is also called font-size.

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


Possible values

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.

Tokens without a unit specified are applied as the pixel equivalent in Figma.

For Font Size Tokens, math might be used to create dynamic scales of font sizes that follow a particular multiplier, like the golden ratio.

Hard-coded values

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 32pxtall in Figma.

Tokens Studio supports Font Size Tokens in em units and will treat them the same as rem units when applying them to text layers 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:

20px

Units not supported by Figma

There are additional units commonly used in CSS for Font Size properties that are not supported in 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.

Values that reference another Token

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

The Typography Composite Token form is open, with each property referencing another Token. The Font Size property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.


W3C DTCG Token Format

Font Size is not yet an official Token type in the W3C Design Token Community Group specifications.

However, it is mentioned as a required part of a typography Token

"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.

Token Type syntax

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).

{
   "font-size-small": {
      "value": "20px",
      "type": "fontSizes"
   }
}

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).

{
   "paragraph-3": {
      "value": {
         "fontFamily": "{font-family-sans}",
         "fontWeight": "{font-weight-default}",
         "lineHeight": "{line-height-classic}",
         "fontSize": "{font-size-small}",
         "letterSpacing": "{letter-spacing-tight}",
         "paragraphSpacing": "{paragraphSpacing.none}"
         "paragraphIndent": "{paragraphIndent.none}"
         "textCase": "{textCase.none}",
         "textDecoration": "{textDecoration.none}"
      },
      "type": "typography"
   }
}

Transforming Tokens

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.

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.

→ SD-Transforms Read-Me Doc, ts/size/px

Token Values entered with math equations need to be checked and resolved.

→ SD-Transforms Read-Me Doc, ts/resolveMath

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.

→ SD-Transforms Read-Me Doc, Using the preprocessor

Font Size Tokens, as 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.

→

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 9.7 Typography

Figma resources:

  • Design in Figma - Explore Text Properties, Font Size

CSS resources:

  • MDN Web Docs - Font Size

  • W3 Schools - Font Size

Community resources:

  • WHAT - LINK

  • Font size scalar tool

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Font Size

  • None yet

🐞 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 [email protected]

Requests, roadmap and changelog

  • None

💌 Visit to contribute or subscribe to updates.

Border - Composite

Border - Composite 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.

It's important to note that radius properties are not a part of the Border Token and need to be applied independently.

Creating a new Border Token in the Tokens Studio Plugin for Figma.

Design decisions

The Border Token defines the stroke styling properties for containers, text elements, and polygonal shapes.

The properties within the Border Token closely align with the border property in CSS.

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


Possible values

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 best practice is to define all parts of a Composite Token, even with a null/none value, rather than to leave it empty.

Hard coded values

The dedicated Token Type of each property within the Border Composite Token has unique specifications, described in detail in their own technical docs.

1

Border color

Border Color defines a solid, reduced opacity, or modified color value written in any color space supported by a Color Token.

You can also use the color picker to create the value by selecting the swatch to the left of the input.

→ Jump to the Color Token guide

2

Border Width

Border width defines the thickness of a stroke around a design element and accepts numeric values, ideally with a unit of measure.

For example 1px

→ Jump to the Dimension Token guide

3

Stroke Style

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.

The syntax used to write string values for Design Tokens is important!

Be sure to write the value of the stroke style property all lowercase letters and ensure there are no spaces.

Values that reference another Token

Like all Composite Tokens, you may reference an existing Token as the value for each individual property, as described above ↑.

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).

With the Border Token form open in the Plugin, select the reference mode icon button to change its Value input. This allows you to reference another Border Composite Token as the value.

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

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.


Apply Border Tokens

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.

If you click the name of Token to apply it to an element without accessing the right-click Token menu, the Border styling will be applied to all sides.

The right-click menu of a Border Token is open to reveal the design properties it can be applied to in Figma.

1

All

Apply the Token value to the stroke on all sides of the selected design element.

2

Top

Apply the Token value to the stroke on the element on the X-axis only.

3

Right

Apply the Token value to the stroke on the right side of the element on the Y-axis only.

4

Bottom

Apply the Token value to the stroke on the lowest side of the element on the X-axis only.

5

Left

Apply the Token value to the stroke on left side of the element on the Y-axis only.

For independent border styling, you can repeat the steps above and apply different Border Tokens to each side of the same design element.

If you apply more than one Border Token to the same layer with independent colors defined, the last Token applied will change the color value on all sides.

Figma does not yet support independent stroke colors on the same design element.

→ See Figma's docs on Apply and Adjust Stroke Properties

Once a Token has been applied, it will remain attached until you manually remove it.


W3C DTCG Token Format

border is an official token type in the in the W3C Design Token Community Group specifications. 9.3 Border

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.


Transforming Tokens

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.

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.

→ SD-Transforms Read-Me Doc, Using the preprocessor → SD-Transforms Read-Me Doc, Using Expand

"object, object"

When you transform your Border Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

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.

→ SD-Transforms Read-Me Doc, ts/size/px


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 9.3 Border

Figma resources:

  • Design in Figma - Apply and adjust stroke properties

CSS resources:

  • MDN Web Docs - border

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open Issues for Token Type Border

  • Caps For Dashed Value in Border Composite Token Does Not Work #2975

    • The string value Dashed or DASHED does not work as expected, only dashed is accepted.

  • Separated borders override colors #2236

    • Applying independent borders with different colors does not work as expected.

🐞 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 [email protected]

Requests, roadmap and changelog

  • V2 release - Variables in Stroke Weight and Opacity

💌 Visit to contribute or subscribe to updates.

Themes (pro)

Themes (pro)

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.

Themes Guides

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.


Transforming Themes for use in Code

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.

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 generic package includes a specific transforms to convert Tokens Studio themes into individual theme files for all possible permutations

→ SD-Transforms Read-Me Doc, Theming

Plugin Sync Settings

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:


Resources

Mentioned in this Guide

  • SD-Transforms Read-Me - Theming

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Themes

🐞 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 [email protected]

Requests, roadmap and changelog

  • None

💌 Visit to contribute or subscribe to updates.

Edit Sync Provider

Edit a sync provider

Once a Sync provider is added to Tokens Studio, you may need to change the credentials.

Steps in the plugin for Figma

Open the Tokens Studio plugin and navigate to the settings page.

  1. Navigate to the sync provider of your choice in the list.

  2. Select the three-dot menu icon on the right side of the sync provider details.

  3. Select edit from the menu options.

Sync provider modal

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.

Remote storage providers

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.

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.

Sync provider has been updated

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.


Resources

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Sync Providers Manage

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet

💌 Visit to contribute or subscribe to updates.

Token Groups

Token Groups

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.

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.

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:

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.

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!


Working with Token Groups

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:

  1. Quickly add a new Token to a Group with it's name pre-filled.

  2. Modify your Token Views by collapsing and expanding Token Groups.

  3. Rename all Tokens within the Group.

  4. Duplicate all Tokens in Group.

    1. In the same Token Set (with a name change)

    2. In a different Token Set

  5. Delete all Tokens in a Group at the same time.

  6. Tokens exported to Figma as Styles can be shortened

Create Token Groups

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.

→

Tokens Studio will automatically convert your Group Names to /when

1. Create a Token with a Group

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.

2. Collapse and expands Tokens by Group

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.

3. Rename all Tokens in a Group

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.

  • Follow the prompts from

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.

If you want to add or remove a group within a Token Name, select any group following where you want the name change to take place. This shows the full Token path before the group you selected so you can choose where you want to change the group name. This also works for renaming more than one group at a time!

Renaming only affects Tokens of the same type

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 semanticand 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.

4. Duplicate all Tokens in a Group

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.

Known Issue

You must deselect the current Token Set from the menu as a manual step, the menu will close and any error messages should clear, then you can select a new Token Set as your destination for the duplication.

5. Delete all Tokens in a 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.

6. Export to Figma as Styles

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.

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.

→


W3C DTCG Token Format

group is an official property of a Design Token in the W3C Design Token Community Group specifications.

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.

Figma uses the forward slash /to create their groups in variables and styles. The Plugin will automatically convert between period and forward slash when importing and exporting Tokens in Figma.

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

As this work is defined it will be added to the resources section of this guide, and visible on our public roadmap,


Resources

Mentioned in this guide

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • DTCG W3C Token Group Metadata -

Line Height

Line Height - Token Type

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.


Design decisions

Line Height, also known as leading, defines the vertical distance of each line of text.

In this property is called line-height.

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

  • Relative to - value in %

    • 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.


Possible values

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.

Tokens without a unit specified are applied as the pixel equivalent in Figma.

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.

Hard-coded numeric values

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.

Figma allows values less than 0

Line Height Values less than 0 are not widely supported in CSS and other programming languages. So, while you can enter negative values in the plugin that will communicate with Figma, we don't suggest this without consulting with your engineering team.

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

There are additional units properties that are not supported in 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.

Values that reference another Token

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


W3C DTCG Token Format

Line Height is not yet an official dedicated Token type in the W3C Design Token Community Group specifications.

However, is mentioned as a required part of a

"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

However, Figma doesn't support a unitless number that behaves as a multiplier; it interprets a unitless number as an exact value in pixels.

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, .

Token Type syntax

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).


Transforming Tokens

When transforming Line Height Tokens, there are specific configurations to be aware of.

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

→

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.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

  • W3 Schools -

Community resources:

  • WHAT - LINK

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None

Using Math in Token Values

Using Math in Token Values

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.

Token Types compatible with math

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.

Number variables in Figma doesn't support Math equations

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.


Possible Values

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

Syntax

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.

Looking for more complex formulas supported in the Plugin?

Here's the docs for under the hood.


Known limitations

Working with math in the plugin can be a powerful workflow enhancement, but there are some limitations to be aware of.

Multi-value Tokens won't resolve

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.

For example, a with 2,4 as its value represents spacing on top/bottom and right/left.

Units in equations

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

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 .

  • lineHeights = {lineHeights-calc-body-default}%

  • fontSize = {scale-rem-md}rem


Equations to try

Here are some math equations used by our team.

Round to the nearest whole number

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

Create a percentage from a unitless number

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.

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%

Convert unitless numbers to rem

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


W3C DTCG Token Format

At the time of writing this doc, Math as a Token value is not mentioned in for Design Tokens.

Tokens Studio has included this feature in the plugin to help design system maintainers work more efficiently.


Transforming Tokens

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.

→

Having trouble with Math equations not resolving properly? Check your syntax!


Resources

Tokens Studio uses the JavaScript Expression Evaluator for the implementation of math in token values.

  • nmp -

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

Community resources:

  • Sam I am Designs has a written guide and Figma community file featuring many of the math equations mentioned above.

Known issues and bugs

Tokens Studio Plugin GitHub -

  • None yet

Requests, roadmap and changelog

  • Math in token value enhancements -

Remote Token Storage Integrations

Remote Token Storage

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.

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.

Sync providers

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 providers

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

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

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


Sync Provider Guides

When you are ready to sync your Tokens to a remote storage provider, check out these guides:


URL - Server Sync Provider

URL sync setup guide

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.

How it works

  • 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.


URL sync setup instructions

If you haven't already, store your Design Token JSON files on your server.

→

1. Server URL

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.

2. Check server headers

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.


Configure the Tokens Studio Plugin

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

Add credentials for URL sync

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

Enter the complete URL you saved from

3. Headers

The authentication headers you saved from .

Example: `("Some-Header-Key":SomeHeaderValue)

Save and do the initial sync

Save to confirm your credentials, and follow the prompts in the plugin to finish setting up the sync to your server.


Shared source of truth

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!


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • 🧑‍💻

    • How might we improve the experience of working with sync providers in general?

  • ↕️

  • 🔐

Branch Switching (pro) - Version Control

Branch switching (pro)

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:

In this guide we will show a GitHub sync provider, but the steps are similar for all other Git sync providers.

Default branch settings

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.

Branch indicator

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.

View available branches

Selecting the branch name from the Sync Actions at the bottom of the plugin will open the Branch menu which displays:

  1. An option to Create a new branch.

  2. Available branches from your sync provider.

The branches visible in the plugin come from your sync provider.

The plugin can't remove any branches from the list; you have to log into your sync provider to delete branches.

1. Create a new branch

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.

→

2. Switch branches

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.

→

Limitations of branch switching

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.

it's important to double-check which branch you are working on each time you open the plugin.

  • The name of the branch you are working on appears at the bottom of the plugin for easy reference.

  • You can switch branches by following the steps above at any time.


Resources

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Add error when TS plugin is not able to push changes

    • 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.

Requests, roadmap and changelog

  • None yet

Base Font Size Setting

Base font size setting

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.

In the plugin

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.

View the current base font size setting

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

Change the base font size setting

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.

Importing Variables

ADD A BLURB HERE OF HOW IT WORKS


Limitations and known issues

When working with the plugin's Base Font Size setting, there are a couple of things to be aware of.

The setting follows you across Figma files

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.

Values to watch for

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 }


Resources

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None yet!

Themes that switch - a simple example.

Export to Figma Styles and Variables using Themes.

Sync to a remote storage provider, like GitHub, GitLab, Bitbucket or Azure DevOps.

Configure your sync settings to save to a folder in your repository with multiple files.

Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Cover
Cover
Cover

Each Token will have different data to view on Hover depending on its type and value, however the position the data remains the same.

Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Token Values with References
Design Tokens locally
Git providers
Cloud-based code storage providers
Locally hosted server Token storage.
Cover

GitHub is the most popular Git provider for hosting your code and design decisions in the same location, and it's free to get started!

Cover

Gitlab is a popular Git provider for projects that benefit from its enhanced security features.

Cover

Azure DevOps is a Microsoft-owned suite of development tools and services you can use to create a Git-based source code repository.

Cover

Bitbucket is a Git-based source code repository hosting service popular among teams using Atlassian tools.

Cover

JSONBin provides a simple REST interface to store & retrieve your JSON data from the cloud.

Cover

Supernova is a design data platform popular for documenting design systems.

Cover

Tokens Studio has a standalone web-based platform for dynamic creation and management of design decisions.

Cover

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.

Cover

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.

Branch Switching (pro) - Version Control
Manage Sync Providers
Multi-file Sync to Remote Storage (pro)
Sync Changes to Remote Storage - Push and Pull
Branch Switching (pro) - Version Control
Edit Sync Provider
Change Active Sync Provider
Local Document - Figma File Token Storage
Remove Sync Provider
Token Values with References

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.

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 .

Token Values with References

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 .

Base Font Size Setting

Font Size Tokens can be attached to Number Variables in Figma.

Style Dictionary
@Tokens-studio/sd-transforms
SD-Transforms Read-Me Doc, Using Expand
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover

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.

Token Values with References

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 .

Change Active Sync Provider
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/

Read the Sync Changes guide for more details

colors-green-100
colors-green-200
colors-green-300
colors.green.100
colors.green.200
colors.green.300
{
  "colors": {
    "green": {
      "100": {
        "value": "#0e1512",
        "type": "color"
      },
      "200": {
        "value": "#121b17",
        "type": "color"
      },
      "300": {
        "value": "#132d21",
        "type": "color"
      }
    }
  }
}
```
Token Set guide
Technical Specs for Naming Tokens guide
Jump to the Token Name Technical Specs guide for more details
Exporting to Figma as Styles or Variables.
the Plugin to remap any Tokens as needed.
option to Ignore the first part of the Token Name.
Jump to the Export to Figma guide for more details.
W3C Draft, 3.7 Group
which you can subscribe to here.
W3C Draft, 3.7 Group
W3C Draft, 6 Groups
Open issues for Token Groups
Open issues for Group Names
Description and Type
The Tokens Page of the Plugin shows a series of Color Tokens created with Groups in their Names. The left image shows the list view, the right image shows the JSON view of the same Tokens.
Two examples of Token Sets being viewed as their JSON file from within the Plugin. The left example shows flat Token Names, the right shows Token Names with groups.
A Color Token form in the Plugin appears in the left image with 3 parts of its name annotated to represent groups. 1 - colors. 2 - gray. 3 - light. In the right image, those same groups are displayed on the Tokens page.
In the left screenshot of the Tokens Page of the plugin, the Token name group colors.gray.lightis 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.
Two examples of Token Sets being viewed from the Tokens page of the Plugin. The left example shows flat Token Names, the right shows Token Names with groups. When the Token Name is hovered on, it appears differently if the Name is flat or grouped.
Selecting a Token Group Name on the Tokens Page of the Plugin to expand or collapse all Tokens within the Group. In these images, the colors.gray.lightgroup is expanded on the left and collapsed on the right.
On the Tokens page in the Plugin, right-click on a Group Name to see additional actions. In this example, Rename was selected, which opens a confirmation modal where you define the new Group Name.
On the Tokens page in the Plugin, right-click on a Group Name to see additional actions. In this example, Duplicate was selected, which opens a confirmation modal where you choose the destination Token Set where the duplicated Token Group will live.
On the Tokens page in the Plugin, right-click on a Group Name to see additional actions. In this example, Delete was selected, which opens a confirmation modal.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Token Name Technical Specs
normal
20px
{
  "line-height-classic": {
    "value": "100%",
    "type": "lineHeights"
  }
}
{
  "paragraph-3": {
    "value": {
      "fontFamily": "{font-family-sans}",
      "fontWeight": "{font-weight-default}",
      "lineHeight": "{line-height-classic}",
      "fontSize": "{font-size-small}",
      "letterSpacing": "{letter-spacing-tight}",
      "paragraphSpacing": "{paragraphSpacing.none}"
      "paragraphIndent": "{paragraphIndent.none}"
      "textCase": "{textCase.none}",
      "textDecoration": "{textDecoration.none}"
    },
    "type": "typography"
  }
}
Typography Token
CSS
Font Size
↓ See the Transforming Tokens section below for more details.
commonly used in CSS for Line Height
typography Token
described below ↓
CSS preferred value for line height.
SD-Transforms Read-Me Doc, ts/size/lineheight
SD-Transforms Read-Me Doc, ts/resolveMath
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
W3C Draft
9.7 Typography
Explore Text Properties, Line Height
line-height
line-height
Open issues for Token Type Line Height
Creating a new Line Height Token in the Tokens Studio Plugin for Figma.
Cover

Line Height Tokens can be attached to Number Variables in Figma.

However, Figma does not support responsive values for Line Height as Number Variables, they only fixed values as Number Variables.

The Typography Composite Token form is open, with each property referencing another Token. The Line Height property is highlighted.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

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 Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

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.

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 .

{spacing.md} * 2
{spacing.md} * {spacing.multipler}
{size-2} + {density-default}
roundTo({sizing.sm} * 1.33, 0)
{lineHeights-unitless.heading.relaxed} * 100%
{unitless-Token} / {rem-base} * 1rem
the math package used
Spacing Token
Other
Number Token
Typography Token
responsive line-height value is in percentage
Typography Composite Token
→ Jump to the guide on Base Font Size Settings
the most recent Design Tokens Community Group W3C specifications
SD-Transforms Read-Me Doc, ts/resolveMath
SD-Transforms Read-Me Doc, ts/size/px
↑ Spaces are required between operators as described above.
JavaScript Expression Evaluator
Read Me
Read Me
W3C Draft
Sam's Fancy Math Equations in Tokens Studio
Open issues for Token Values Math
Feature Request
Cover

Dimension

Cover

Number

Cover

Spacing

Cover

Sizing

Cover

Border Width

Cover

Border Radius

Cover

Font Size

Cover

Line Height

Cover

Letter Spacing

💡 Something to share? Submit it here!

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Here's an example Token JSON file stored on a server URL.
step 1 above.
step 2 above
Read Me
https://styledictionary.com/
Open issues for URL sync
Sync to external token storage enhancements - Feature Request
Git sync enhancements - push, pull, merge, branching - Feature Request
Data security info request - Feature Request

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Read the Sync Changes guide for more details

Read the guide on editing sync providers here
Read the Keep Your Tokens in Sync guide for more details on the Push modal.
Read the Keep Your Tokens in Sync guide for more details on the Pull modal.
Open issues for Sync Brancing
#2487

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

CSS Values and Units
Open issues for Settings Base Rem Value

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Import from Figma Guide

Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.

→ Jump to the Guide on Importing Styles for more details.

Read the Sync Changes guide for more details

Token Values with References

Token Values with references

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.

When the value of a Token is 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.

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.

Common terms

There are lots of different words the community uses to describe this kind of Token Value:

  • Reference Tokens

  • Alias Tokens

  • Semantic Tokens

  • Decision Tokens

Alias Tokens

An Alias Token is how the DTCG W3C specification defines a Design Token with a 
Value which references another Token.

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.


Syntax specifications

To write a Token Value which references another Token, you wrap the Token Name in curly brackets without any spaces.

For example: {green-500}

In this infographic, the Token examples on the right side highlight the Value. The top code block shows a hard-coded value. The bottom code block has a value that references another Token.

Composite Tokens, which have more than one value, can have one or more of its properties set to reference another Tokens.

A Typography Token form with all but one property value referencing another Token.

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.

{
  "text-style": {
    "body": {
      "sm": {
        "strong": {
          "value": {
            "letterSpacing": "2%",
            "lineHeight": "{text-style.line-height.body.sm} * 100%",
            "fontFamily": "{text-style.font-family.body}",
            "fontWeight": "{text-style.font-weight.body.strong}",
            "fontSize": "{text-style.font-size.body.sm}",
            "paragraphSpacing": "{text-style.paragraph-spacing.default}",
            "textDecoration": "{text-style.text-decoration.default}",
            "textCase": "{text-style.text-case.body}",
            "paragraphIndent": "{text-style.paragraph-indent.default}"
          },
          "type": "typography"
        }
      }
    }
  }
}

Create a Token with references

In the Tokens Studio Plugin for Figma there are three ways to define the Value of a Token that references another Token .

  1. Select a Token Name using a dropdown pre-populated with compatible Token Types.

  2. Search for a specific Token Name from the same pre-populated dropdown.

  3. Write the Token Name you are referencing inside curly brackets.

Each Token Type has a slightly different interface to create a new Token, but the Token Value input to add a reference works the same.

A Color Token form on the left shows a raw value with references to another Token. A Dimension Token form on the right shows a raw value with a math equation. Both forms show the resolved values below the Value input.

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}

Select the + next to any Token Type in the Plugin to open a New Token form. The second input allows you to define its Value. This example shows a Color Token with its Value dropdown open.

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.

If you know the name of the Token you'd like to reference, you can start typing {and the first few letters of the name into the Tokens Value input to see any compatible Tokens that match.

The new Token appears on the Token Page. You can hover on the Token to view the data entered to create the Token.

The name of the Token you selected to reference as the Value appears as the raw value on the left, the resolved value on the right.

From the Tokens Page of the Plugin, hovering on a Color Token displays its data. In this example, the raw 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.

Tokens available to reference

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.

Each Token Type guide defines the compatible Token Types that are available to reference in its Value.

→ Jump to see all Token Types

Tokens in Active Token Sets are available to reference

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.

Component-specific Tokens with values that reference Tokens from the Theme Token Sets are shown. The resolved values change based on the position of the Theme Token Sets.


Reference a Token not visible in the dropdown

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:

{unitless.number}px

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.

Token Names are case-sensitive.

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:


Inherited and Resolved Values

A Token with a Value that reference another Token will inherit its Value from the referenced Token.

There are no limits on how many layers of referencing are possible in Design Tokens.

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.

An infographic example of documenting a Color Token applied to the text layer of a button label. The difference between the two buttons is the color of the label text which is controlled by the value of the middle Token. On the left side, it is referencing a Token from a greenscale. On the right right, it is referencing a Token from a greyscale.

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.

→ Jump to the Token Value Guide which goes over more terms and examples.


Nested references will be deprecated

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:

{colors.{primary}.500}

It's time to make some changes.


Transforming Tokens

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.

Each Token Type has specific Transforms to be aware of that ensure accurate resolved values that are usable in code.


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - Read Me

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 3.8 Reference Alias

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Value Reference Alias

  • Tokens referencing the same name are showing a different value #2852

    • 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.

🐞 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 [email protected]

Requests, roadmap and changelog

  • Expand accepted reference token types and units - Feature Request

💌 Visit to contribute or subscribe to updates.

Box Shadow - Composite

Box Shadow - Token Type

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.

Creating a new Box Shadow Token in the Tokens Studio Plugin for Figma.

Design decisions

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

Similar to how shadows are defined in CSS, you can combine multiple shadows in a single Box Shadow Token. Box shadow Tokens applied to text layers would translate to text-shadow in CSS.

Looking for the Blur Effect in Figma? That's currently a property within our Dimension Token.


Possible values

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.

The best practice is to define all parts of a Composite Token, even with a null/none value, rather than to leave it empty.

Hard coded values

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.

1

X-offset

X defines the horizontal position of the shadow and are written as a numeric value and unit of measurement.

  • Positive values move the position to the right. For example 15px

  • Negative values move the position to the left. For example -0.255px

→ Jump to the Dimension Token guide

2

Y-offset

Y defines the vertical position of the shadow and are written as a numeric value and unit of measurement.

  • Positive values move the position higher up. For example 1.5px

  • Negative values move the position lower down. For example -10px

→ Jump to the Dimension Token guide

3

Blur radius

Blur defines the the softness of the shadow edges and is written as a numeric value and unit of measurement.

  • Higher values create a more diffused shadow, making the edges softer and less defined. For example 15px

  • A value of 0 creates a sharp shadow edge.

→ Jump to the Dimension Token guide

4

Spread radius

Spread defines the size of the shadow and is written as a numeric value and unit of measurement.

  • Positive values expand the shadow, making it larger. For example 5px

  • Negative values shrink it, making it smaller. For example -2.25px

→ Jump to the Dimension Token guide

5

Color

Color defines the color of the shadow as a solid, reduced opacity, or modified color value written in any color space supported by a Color Token.

You can also use the color picker to create the value by selecting the swatch to the left of the input.

→ Jump to the Color Token guide

Multiple layers

You can add another shadow layer to the current token by selecting the plus icon button in the Box Shadow Token form.

Once the Box Shadow Token form is open in the Plugin, select the + icon to add an additional shadow to your composition.

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.

More details on Exporting Box Shadow Tokens to Effect styles below ↓.

Values that reference another Token

Like all Composite Tokens, you may reference an existing Token as the value for each individual property, as described above ↑.

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).

With the Box Shadow Token form open in the Plugin, select the reference mode icon button to change its Value input. This allows you to reference another Box Shadow Composite Token as the value.

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

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.


Apply Box Shadow Tokens

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.

Once a Token has been applied, it will remain attached until you manually remove it.


Effect Styles in Figma

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.

Before you export your Box Shadow Tokens to Figma as styles, ensure each property within the Box Shadow Tokens has a value referencing another Token.

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.

Select the Export Styles and Variables from the Tokens page to configure the Options.

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)

Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.


W3C DTCG Token Format

Shadow is an official token type in the in the W3C Design Token Community Group specifications (9.5 Shadow).

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.


Transforming Tokens

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.

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.

→ SD-Transforms Read-Me Doc, Using Expand

"object, object"

When you transform your Box Shadow Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

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.

→ SD-Transforms Read-Me Doc, Using the preprocessor

The innerShadow properties need to be transformed to inset to be CSS compatible.

→ SD-Transforms ts/shadow/innerShadow


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 9.5 Shadow

Figma resources:

  • Design in Figma - Shadow or Blur Effects

CSS resources:

  • MDN Web Docs - Box Shadow

  • MDN Web Docs - Text Shadow

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Box Shadow

  • Importing shadow styles causes the order of shadows to be reversed #2979

  • TokenDropdown collides in Color input of box shadows #2796

    • UI issue where the dropdown menu needs repositioning.

  • Multiple shadows in Box Shadow tokens - array bug #2280

    • Removing one shadow from a Token with many shadows combined does not remove the deleted shadow from the array in the JSON file.

🐞 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 [email protected]

Requests, roadmap and changelog

  • Change boxShadow values from x and y to offsetX and offsetY #2052

    • Alignment with the W3C DTCG format for shadow token type

💌 Visit to contribute or subscribe to updates.

Edit Token Names

Edit Token Names

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.

In the Plugin, once you edit a Token name and save your changes, you have the option to Remap all layers, styles or variables to the new name.

How it works

When you attach a Design Token to a node in Figma using the Tokens Studio Plugin, there is an invisible connection created.

A node in Figma 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.

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.


In the Plugin

There are three steps to renaming a Token in the Plugin:

  1. Enter the new Name of a Design Token

  2. Configure your Remap options to tell the Plugin where to apply the new name in your Figma file.

    1. The Plugin applies the new name to design elements, components, styles or variables based on your Remap options.

  3. Sync the changes to your Remote Storage provider and publish any Figma library updates.

If you are syncing your Tokens to a remote storage provider, here's a friendly reminder to create a new branch to capture your new Token names as these can introduce breaking changes requiring attention from your engineers.

→ Jump to the Branch Switching (pro) guide for more details.

1. Enter the new Token Name

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!

→ Jump to the guide on Token Name Technical Specs if you need a refresh.

Token Form

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.

On the Tokens page in the Plugin, the Token named colors.eggshell.300has been right-clicked to reveal its action menu. When the editaction 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.

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.

  • Open the Remap options modal so you can configure how the Plugin implements the new name in Figma, described below ↓.

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 (described below ↓).

Making the name change in the JSON view can be a helpful way to bypass the automatic renaming of Token values with references if its not desired.

Token Group

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.

If you only want to change the name of an individual Token with the group, consider renaming the Token from its Token Form (described above ↑).

→ Jump to the guide on Token Groups for more details

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.

If you want to add or remove a group within a Token Name, select any group following where you want the name change to take place. This shows the full Token path before the group you selected so you can choose where you want to change the group name. This also works for renaming more than one group at a time!

On the Tokens page in the Plugin, the group named eggshell has been right-clicked to reveal its action menu. When the editaction 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.

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.

  • Open the Remap options modal so you can configure how the Plugin implements the new name in Figma, described below ↓.

Making the name change in the JSON view can be a helpful way to bypass the automatic renaming of Token values with references if its not desired.

JSON View

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 nameor group directly in the JSON view, just be sure to save your changes using the action at the bottom of the plugin.

→ Jump to the JSON view docs to learn more about editing code files in the Plugin.

On the Tokens page in the Plugin pictured on the left, the JSON view toggle is annotated. On the right, the JSON view of the same Tokens is shown with an annotation showing where a name change was typed.

Editing the JSON files does not have the same workflow as changing names in the Token View 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.

    • Find those Tokens and update their Values from their Token Form.

  • Any Styles or Variables attached to that Token (the previous name will continue to be the ID that Figma is looking for).

    • Use the Export to Figma feature and select the Option to Update existing style and variable names

  • Any design elements or components that have the Token applied to them in your Figma file.

    • Use the Remap feature from the Inspect page of the plugin.

2. Configure your remap options

After you've saved the new Token name from its Token Form or Group Name, the remap modal will open so you can configure where the Plugin should implement the name changes in the current Figma file.

Selecting one of these options changes the name of Tokens attached to layers of design elements:

  1. Selection - Only elements actively selected on the Figma canvas.

  2. Page - All elements on the current page within the Figma file.

  3. Document - All elements on every page within the Figma file.

  4. 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

Two versions of the Rename Token options are shown. The version on the right shows an option called rename in other sets, which is only visible when certain conditions are met.

If you are working with Themes (pro), selecting these options will automatically change the name of Styles of Variables attached to the Token with the name change.

  • Rename variable

    • If you are using mode switching, be sure to enable the Rename in other sets option at the same time.

  • Rename style

Known Limitation - These option appear as soon as Themes are present in the Token Project. Even when the Token you are renaming is not included in a theme, or not attached to a style or variable.

Two versions of the Rename Token options are shown, which are visible if your project uses the Themes (pro) feature. The version on the right shows an example of the options that should be selected if the Token you renamed is attached to a Variable in Figma with more than one mode.

Confirm and wait

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!

The rename options are shown on the left with an annotation highlighting the option which takes the longest time to execute. On the right side, the Tokens Page shows the progress of the renaming process at the top of the plugin.

We've observed Figma files to appear frozen or offline while scanning very large files. Normally if you leave the file alone Figma will come back online and finish the process.

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.

→ Jump to the guide on the Remap feature for more details.

3. Sync your changes

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.

It's important to note that changing the Name of Tokens applied to components and design elements being using in code may introduce a breaking change requiring attention from your engineering team!

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.

If you are working in a multiple Figma file setup, be sure to publish your library changes so the rest of your team has access to any updated components, styles and variables related to the new names.


Update attached Styles and Variables

After you've changed a Token Name, you may need to update the name of any Style or Variable that is currently attached to the Token.

Jump to a guide on Exporting to Figma for more detials:


Resources

Mentioned in this doc:

  • Figma Plugin API Docs - Nodes

  • Figma Learn - Publish updates to a Library

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Rename and Remap Tokens

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet.

💌 Visit to contribute or subscribe to updates.

Token Names

Token Names in Tokens Studio

The name of a Design Token tells us who, or which parts of our system, this design decision is intended for.

You might recall from our Intro to Design Tokens Guide 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.

In this infographic, the Token examples on the right side highlight the Name. The top code block shows a Token Name with groups. The bottom code block shows a flat Token Name.

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 Token Sets which are the no-code representation of a JSON file.

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!

→ Jump to the guide on Theming.

Two Token Sets in the same project are shown side by side. Both examples contain Tokens with identical names which is allowed because they are located in different Token Sets. The example on the left shows a Token set named theme/light-modewhich has the Token called theme-color.background.defaultwith 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.

Before you get started Naming your Tokens, you'll want to get familiar with the Common Terms related to Naming and how to work with them in the Plugin for Figma.


Common Terms

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!

Token Name

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 covered in its own guide. The Name is also how the Plugin attaches a Token to a design element, style or variable in Figma.

The infographic shows the name of a Token called 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.

Token Groups

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. In the guide for Token Groups, 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!

Two examples of Token names are shown. On the left, the Token names are considered "flat" because they do not contain any groups. On the right, the Token names have groups which create a tree structure which can be collapsed and expanded as needed.

Here are some additional terms related to Token Names with Groups that might be helpful:

Flat Name

A Token name which is flat does not contain any groups.

For example: colors-green-500

Folder Name or Tree Name

A Token name which contains groups are sometimes referred to as a folder or tree name because the groups organize the Tokens in a tree structure that behaves like a series of sub-folders.

Token Path

The Token Path is the full nameof the Token including any Groups. For example: colors-green-500 or colors.green.500

Alias Tokens

When a new Token is created, its Value can reference another Token. 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.

This new name, or alias, is also referred to as its semantic name in the community.

For example, a new Token named success-defaultwith 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.

An example of a button is shown with a label annotated to show a series of Tokens with values referencing each other to arrive at the final color of the label text.

Here are some additional terms related to Alias Tokens that might be helpful:

Component Tokens or Component Specific Tokens

Although Component Token may sound like a type of Token, its industry jargon to describe the name of a Token that is specific to a component.

They are also referred to as Component Specific Tokens for this reason.

For example, a Color Token named action.button.success.hover.background-colorhas a Grouped Name specific to a Button component. The different groups within the name help communicate that the Token is intended to be used for success actions when they are interacted with on hover and applied to the background container.

You can see by this example that a component specific name can also be considered an alias or semantic name which can be confusing!

Semantic Tokens

A Semantic Token is another way to say "Alias Token". While this term might sound like a type of Token, its really just industry jargon to describe the name of a Token with a new name (or alias) for an existing Token in our system that has meaninful context about how it is intended to be used.

For example, a new Token named success-defaultwith a value referencing {colors.green.500} could 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.

Primitive Tokens

Although a Primitive Token sounds like a type of Token, its industry jargon to describe the name of a Token that does not contain any context about how it is intended to be used.

For example colors.green.500 could be referred to as a Primitive Token.

Token Taxonomy

Token Taxonomy is a technical way to describe how a Token is named based on some agreed upon logic. Or in other words, a really fancy way to say "Token Name Template".

For example, for the Tokens in your system that have hard-coded values representing the options you have to choose from, you may decide on a Token Taxonomy that is attribute.category.identifier which looks like colors.green.500when naming a Color Token belonging to a green scale located at the 5th position on the scale.

Your team may decide to have different Token Naming templates for different parts of your Token Structure. A good example of this is the component specific Token Name above action.button.success.hover.background-color which follows a template that more closely resembles CSS.


Working with Token Names

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.

  1. Token data on hover

  2. Token form

  3. JSON file

When Inspecting Design Elements or using Dev Mode in Figma, the Token Name will also appear to identify which Tokens are mapped to the specific layer you have selected.

1. Token Data on Hover

Hover on an existing Token to view its data. The name appears as the first piece of data in the list.

Each Token will have different data to view on Hover depending on its type and value, however the position the data remains the same.

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.

Two examples of Token Sets being viewed from the Tokens page of the Plugin. The left example shows flat Token Names, the right shows Token Names with groups. When the Token Name is hovered on, it appears differently if the Name is flat or grouped.

2. Token Form

Right click on a Token Name and select Edit to view its properties as a form. The first input displays the Name.

The Token Form for each Token Type is unique, but the Name always appears as the first input.

Two Token forms are pictured with its nameinput annotated. On the left side, the form is for a colorToken Type. On the right, the form is for a typography Token Type.

The Token Name also appears when it is being Referenced in the Value of another Token in the Value input.

The image on the right shows a colorToken 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 valuein the Token Form.

3. JSON File

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.

Two examples of Token Sets being viewed as their JSON file from within the Plugin. The left example shows flat Token Names, the right shows Token Names with 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.

→ Jump to the guide on Editing Token Names for more details.

The JSON view functions similar to Visual Studio Code thanks to an amazing open-source contribution from a Tokens Studio community member. 🫶


In Figma

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:


Transforming Tokens

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.

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.

→ Jump to the Token Name Technical Specs for more details on naming transformations and collisions.


Naming Token Guides

Now that you've got the basics covered, check out these guides related to Naming Tokens in the Plugin:


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - W3C Draft, 5.1 Name and Value

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Names

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet.

💌 Visit to contribute or subscribe to updates.

Token Name Technical Specs

Design Token Name Technical Specifications

The name of a Design Token acts as the unique identification for our design decisions in code.

In this infographic, the Token examples on the right side highlight the Name. The top code block shows a Token Name with groups. The bottom code block shows a flat Token Name.

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:

  • Technical specifications 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 Style Dictionary engineering team.

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.

While there aren't official specifications for naming Token Sets, the same best practices for naming your Tokens will also apply to naming your Token Sets.


Tokens are case sensitive

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.

Tokens can be grouped by Name

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:

colors-green-100
colors-green-200
colors-green-300

Compared to grouped names, which replaces the dash (-) with a period (.):

colors.green.100
colors.green.200
colors.green.300

These 3 Tokens would end up being grouped in JSON file:

{
  "colors": {
    "green": {
      "100": {
        "value": "#0e1512",
        "type": "color"
      },
      "200": {
        "value": "#121b17",
        "type": "color"
      },
      "300": {
        "value": "#132d21",
        "type": "color"
      }
    }
  }
}
```

In Tokens Studio, there are workflow features for Token Groups which allow you take bulk actions on an entire Group (any any subgroups).

Reserve periods for creating groups

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.


Token names are modified by engineers

Engineers use a tool like Style Dictionary to transform Design Tokens into whatever specific formats they need.

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.

Original Name
Flattened Name

spacing.1.5

spacing15

spacing.1-5

spacing15

spacing.15

spacing15

Names act as the unique ID for each design decision

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:

spacing.1
spacing.1-5
spacing.2
...
spacing.15

When flattened by engineers to remove dashes (-) and periods (.) in the transformation process, it would result in these Token Names:

spacing1
spacing15
spacing2
...
spacing15

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:

spacing1
spacing1half
spacing2
...
spacing15

Things to avoid

When creating your Token Names, you'll want to avoid strings that are considered "forbidden" because they can cause destructive issues in code.

Forward slash - /

Figma uses the forward slash to create groups and folders to organize components, styles and variables

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.

When naming a Token Set, this rule does not apply. In the Tokens Studio plugin for Figma if you name your Token Sets with a / , the / creates the group, or folder structure for your JSON files.

Dollar sign - $

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

The DTCG Spec states: "...token and group names MUST NOT begin with the $ character."

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.

Names that match Token anatomy

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 - { }

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.

Square and round brackets - [ ] ( )

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.

Special characters, emojis and spaces - 😳

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.


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - W3C Draft, 5.1 Name and Value

  • Design Tokens Community Group - W3C Draft, 3.7 Group

Figma resources:

  • Figma - Name and Organize Components

  • Figma - Manage and Share Styles

  • Figma - Create and Manage Variables

Community resources:

  • None yet

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Names

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet

💌 Visit to contribute or subscribe to updates.

Manage Sync Providers

Manage sync providers

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.

Steps in the plugin for Figma

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

Sync provider credentials

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.

Save and do the initial sync

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.

Read the Sync Changes guide for more details

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.

Sync provider is active

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.

Read the Sync Changes guide for more details

Pro tips for working with Sync providers

Once your sync provider is active, here are some workflow tips from the Tokens Studio team and community.

Save a copy of your sync provider credentials

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.

Share Tokens between Figma files

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:

  1. Navigate to the settings page of the plugin

  2. Navigate to the sync provider of your choice in the list and select apply

  3. 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.


Resources

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Sync Providers Manage

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet

💌 Visit to contribute or subscribe to updates.

Sync Changes to Remote Storage - Push and Pull

Sync changes to remote Token storage

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.

Push to sync provider

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.

Push modal

The Push modal has three sections, accessible by selecting the tab in the plugin:

  1. Commit

  2. Diff

  3. 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.

Push Changes

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.

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.

Pull from a sync provider

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.

Pull modal

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.


Resources

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Sync Indicators

🐞 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 [email protected]

Requests, roadmap and changelog

  • None

💌 Visit to contribute or subscribe to updates.

Figma Data Limits

Figma Data Limits

You may have noticed the size of your Token project is showing in the footer of the plugin.

This can happen when you:

  • Import a large volume of Styles or Variables from Figma.

  • Upload a Token project into Tokens Studio from a JSON file or folder.

  • Expand an existing Token project to have more Token Sets or Themes.

As soon as the Plugin detects the project size is at 100kb and set to Local Document storage:

  • The footer of the Plugin will display your current file size.

  • You can select the file size to open a modal with easy access to more information.

    • Selecting the View Storage Settings actions brings you to the settings page where you can add a new sync provider.

Having a Token project that is over 100kb isn't a problem, it means you are doing great work! However, Figma's efforts to tackle their performance issues means Plugins like Tokens Studio are being limited by Figma.

The user flow for Token projects that exceed Figma's 100kb file size limit is pictured. On the right, the Tokens Page of the plugin has the file size highlighted in the bottom left. Selecting the file size opens the informational picture in the middle. The far right image shows the Settings page of the plugin currently set to store the Token data as Local Document, with the Add new sync provider action highlighted.

Why is this happening?

The Tokens Studio Plugin uses Figma's plugin API to to interact with your design elements, styles and variables.

As of May 2025, Figma is enforcing a limit on how much data a plugin can store in a Figma file via its setSharedPluginData API call.

The total size of your entry (namespace, key, value) cannot exceed 100 kB. - Figma Developer, Plugin API

This means, if you are using Local Document storage for your larger projects (small component libraries, lots of variables etc), you are likely to hit the 100kb data limit.

The data limit does not apply if you are syncing your Tokens to a remote storage provider as the Token project data is being stored outside of the Figma file.

How it works

There is no action required by you! The plugin will work some magic under the hood to keep file sizes as small as possible.

Whats happening under the hood?

When the Plugin detects the project size is at 100kb and set to Local Document storage, it will:

  • Compress the data and break it into chunks smaller than 95kb when writing to Figma

  • Combine the chunks and decompress when reading from Figma.

When the Plugin is storing Token data remotely and you close the Plugin before you have pushed changes to your sync provider, the Plugin will:

  • Store the changes you haven't pushed using a different API figma.clientStorage which stores it locally to your machine.

  • Client storage still has a data limit, but it is much larger (5mb).

However, this process takes time! You will notice the Plugin starts to perform tasks slower as your file size increases.

The best way to avoid slowdowns in your workflow is to store your Tokens remotely using one of our integrated sync providers.

Sync Tokens to remote storage to avoid issues

Figma's 100kb data limit only applies when a plugin has to store (or save) information locally to the Figma File.

This means, if you switch to a remote storage provider, the data limit does not apply and the plugin does not perform the extra steps listed above, giving you optimal performance in your Figma file.

Remote storage guides

If you haven't set up a remote sync provider yet, don't worry! These guides will walk you through it.

If you don't know which sync provider to use, try Github as a free option.


Resources

Figma API Documentation Mentioned:

  • Figma Developer - Plugin API setPluginData

  • Figma Developer - Plugin API figma.clientStorage

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Sync Local Storage

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet

💌 Visit to contribute or subscribe to updates.

1

All

Apply the Token value to the roundness of all corners of the selected design element.

2

Top left

Apply the Token value to the roundness of the corner on the left highest side of the element on the X-axis only.

3

Top right

Apply the Token value to the roundness of the corner on the right highest side of the element on the X-axis only.

4

Bottom right

Apply the Token value to the roundness of the corner on the left lowest side of the element on the X-axis only.

5

Bottom left

Apply the Token value to the roundness of the corner on the right lowest side of the element on the X-axis only.

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.

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 .

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.

1

All

Apply the Token value to the stroke thickness on all sides of the selected design element.

2

Top

Apply the Token value to the stroke thickness to the highest side of the element on the X-axis only.

3

Right

Apply the Token value to the stroke thickness to the right side of the element on the Y-axis only.

4

Bottom

Apply the Token value to the stroke thickness to the stroke on the lowest side of the element on the X-axis only.

5

Left

Apply the Token value to the stroke thickness to the left side of the element on the Y-axis only.

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 .

Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.

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 .

Import Styles from Figma

Import Styles from Figma

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.

Known limitation - Styles with Variable References

You can still import them, but any connection to Variables will need to be manually created.

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 Plugin

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.

Import Styles 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:

  1. Color Styles - creates .

  2. Text Styles - creates and optional Text Property Tokens.

  3. Shadows - creates from Effects Styles.

1. Color Styles

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.

2. Text Styles

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.

3. Shadow (Effect) Styles

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.

Confirm the Styles to Import

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.

  1. 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.

  2. 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.

  3. 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.

  4. Select the plus icon button on the right side of any Style name to create a single Token.

  5. 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.

Maintaining Tokens attached to 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.

Updating Styles in Figma

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.

Names are the ID's connecting Styles and Tokens!

The name is the ID of the decision, and it's part of how the Plugin knows which Token is attached to which Style. When the name changes in Figma, the plugin struggles to identify where it is attached because the ID it is looking for no longer exists.

Updating Tokens in the Plugin

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.


Known Limitations

We know there is lots of room for improvement with the Import Styles feature, and we are working on it!

Importing Styles backed by Variables is not yet supported

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.


Resources

Figma resources:

  • Design in Figma -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Border

  • None yet

Requests, roadmap and changelog

  • None

Variables Skipped on Export

Variables Skipped on Export

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:

  1. The Token Type isn't compatible with any Variable type.

  2. The Token Value isn't supported in Variables.

  3. You have exceeded the number of allowed variables.


Token type isn't compatible

Figma only supports , and Tokens Studio supports 24 unique Token Types in the plugin.

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:

Multiple value Tokens

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:

  • Color Tokens as gradients ()

Value is "AUTO"

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.

→

Value contains a percentage (%)

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.

More than 5000 variables in one collection

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.


Modes skipped

Each Figma plan allows for a different number of modes per Variable collection. →

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.


Resources

Figma resources:

  • Design in Figma -

Community resources:

  • The Tokens Studio collection of Variable videos -

  • Our friends at have free learning resources on Variables -

Known issues and bugs

  • Tokens Studio Plugin GitHub -

  • Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • 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 -

JSONBin - Cloud Sync Provider

JSONBin sync setup guide

provides a simple REST interface to store & retrieve your JSON data from the cloud.

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.

How it works

  • 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.


JSONBin setup instructions

If you haven't already, sign up for a JSONBin account at .

1. Create a new bin

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!

Record the ID of the bin somewhere safe, as it's needed for the plugin configuration.

2. Generate an API key

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!


Configuring Tokens Studio Plugin

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

3. Add credentials for 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

The API Key you saved from .

3. ID (optional)

Enter the ID of the bin you created and saved from .

  • If this is empty, Tokens Studio will create a new bin for you.

Save and do the initial sync

Save to confirm your credentials, and then follow the plugin's prompts to finish setting up the JSONBin sync.


Shared source of truth

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!


Resources

Mentioned in this doc:

  • JSONbin -

  • SD-Transforms -

  • Style Dictionary -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • JSONBin not updating if JSON is manually added

    • If you paste a JSON file in the plugin and save, you then need to click 'apply to' for the JSONBin to update.

Requests, roadmap and changelog

  • 🧑‍💻

    • How might we improve the experience of working with sync providers in general?

  • ↕️

  • 🔐

Using Math in Token Values
plugin settings for Base Font Size
Using Math in Token Values
plugin settings for Base Font Size
Export to Figma Guide
plugin settings for Base Font Size
Using Math in Token Values
plugin settings for Base Font Size
plugin settings for Base Font Size
Using Math in Token Values
plugin settings for Base Font Size
Token Values with References
Using Math in Token Values
plugin settings for Base Font Size
Sync Changes to Remote Storage - Push and Pull
Branch Switching (pro) - Version Control

The overview on how to Export your changes to Figma .

Ensure the Update existing Style and Variable names option is enabled when exporting.

Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Cover
JSON View

Export to Figma as Styles or Variables

Apply Token Actions + Settings

Dev Mode + Tokens Studio

Technical Specs for Token Names

The do's and don'ts of writing great Token Names.

Token Groups

A deep dive into how to take advantage of powerful workflows using Token Groups in the plugin.

Edit Token Names

Changing Token Names can be tricky! Here's what you need to know to be successful.

Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Cover
Cover
Cover
Cover
Cover
Remote Token Storage Integrations
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/

Add a new sync provider to start storing your tokens remotely.

Switch from local to remote storage if you already have a sync provider set up.

See all the remote Token storage providers that Tokens Studio is integrated with.

community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Cover
Cover

Box Shadow Tokens can be attached to Effect Styles in Figma.

Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Token Values with References
Export to Figma Guide
Export to Figma Guide
Import from Figma Guide
Sync Changes to Remote Storage - Push and Pull
Using Math in Token Values
Gradient Colors
Token Types
Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Token Format - W3C DTCG vs Legacy
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Sync Changes to Remote Storage - Push and Pull
Sync Changes to Remote Storage - Push and Pull
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Color Tokens
Typography Composite Tokens
Box Shadow Tokens
Overview of Variable Collections and Modes
This image shows a Typography Token named 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.
A new Tokens Studio project screen is next to the Plugin's empty state, with the Styles and Variables menu open. Annotations highlight the user flow to start the Import Styles process.
The Tokens page of the Plugin is annotated to show the currently selected Token Set, as indicated by the container's styling. The checkbox next to the selected Token Set is not selected, as it has a different purpose.
The user flow from the Tokens page of the Plugin is annotated to show the Styles & Variables menu open and Import Styles as being selected on the left. The Import Styles options are shown on the left, annotated with the numbers 1, 2, and 3 to match their description below.
The Import Styles options in the Plugin are shown on the left, annotated with the numbers 1, 2, and 3 to match their Figma properties shown on the right.
The Tokens page of the plugin is shown with annotations connecting the grouped names of Color Tokens on the left with their matching color style names in the Figma UI on the right.
The Tokens page of the plugin is shown with annotations connecting the individual Typography property Tokens on the left, which are referenced in a composite Typography Token in the middle. The line pointing to the Typography Token name is connected with its matching text style name in the Figma UI on the right.
The Tokens page of the plugin is shown with annotations connecting the grouped names of Color Tokens on the left with their matching color style names in the Figma UI on the right.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Export to Figma Guide
Styles with Variable References
→ Jump to the Export to Figma Options guide for more details
4 types of Variables
→ Read the Export to Figma Overview guide for a full list of Token Types and their compatible Variable Types
Box Shadow Token
Color Tokens as Gradients
Border Token
Typography Composite Tokens
which can be exported as color Styles with Variable References
Border Radius Tokens
Spacing Tokens
Read the Typography Line Heights guide for more details.
Figma has a limit of 5000 variables per collection.
Read their pricing plan for more details
Overview of Variable Collections and Modes
YouTube Playlist
UI Collective
YouTube Playlist
Open issues for Figma export
Open issues for Figma Variables
Feature Request
Feature Request
Feature Request
Feature Request
Feature Request (blocked by Figma)
Feature Request
A Text Style created with Variable References from the Plugin will leave properties with percentage values attached to the Token value and not a Variable. The remaining text properties will be attached to Variables.
The plugin error appears after exporting to Variables with more Themes in a Group than Figma will allow.
The Figma UI shows the file location is in draft, which causes the Plugin to show an error message after exporting to Figma Variables.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Styles with Variable References
JSONBin
JSONBin
step 2 above
step 1 above
https://jsonbin.io/
Read Me
https://styledictionary.com/
Open issues for Sync JSONbin
#2283
Sync to external Token storage enhancements - Feature Request
Git sync enhancements - push, pull, merge, branching - Feature Request
Data security info request - Feature Request

Read the Sync Changes guide for more details

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

→ Read the Add New Sync Provider guide for more details.

The various Token Types supported by Tokens Studio have unique transforms to be aware of.

Sync Changes to Remote Storage - Push and Pull

→ Read the Add New Sync Provider guide for more details.

The various Token Types supported by Tokens Studio have unique transforms to be aware of.

Connect Themes to Imported Variables

Connect Themes to Imported Variables

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 most important thing to pay attention to is the names, so the ID of our Themes can correctly attach to a Variable collection.

Theme Group = Collection Theme = Mode

The image below shows how Theme Groups and Themes map to Figma's Variable collections and modes.

The Tokens Page in the Plugin with the Themes Menu Open next to a Variable Collection in Figma. The annotations show the relationship between Variable Collection and Theme Group Names as well as Variable Modes and Theme Names.

How it Works

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.

Figma Variable Collection beside the Tokens Page in the Plugin. The numbered annotations show the relationship between Variable Collection and Mode names to Token Set names.

To attach the Design Tokens in the Plugin to the Variables in Figma, you'll:

  1. Create Theme Groups and Themes with names that match the Variable Collections and Modes.

  2. Attach the Themes with Variables using the Export to Figma feature.

  3. Check the connection between your Themes and Variables.

Figma Variable Collection beside the Themes Manager in the Plugin. The numbered annotations show the Theme Group to Collection names. The lettered annotations show the Theme to Mode names.

1. Create Theme Groups and Themes

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.

Copy the Token Set Name

  1. Right-click on the Token Set Name (left side navigation panel on the Tokens page).

  2. Select Rename.

    1. The Rename Token Set modal appears with the current name inside the text input.

  3. Select the current name from the input and copy it using a keyboard shortcut.

    • command + C on a Mac

    • control + C on a PC

  4. Paste the name in a text editor of your choice.

    • For example brands/apple is the full set name in the image below.

Right-click on any Token Set name to open its action menu. Selecting Rename will open a form. You can select the name in the input and copy it for use in the following steps.

Open the Themes Manager

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

Select the Theme dropdown to open the menu. Select Manage themesto view the Themes Manager. The example on the right shows the Themes Manager before any Themes are created.

Create a new Theme

From the Themes manager, select the New Theme button.

Once the Create Themes form is open:

  1. Select + add group from the top left.

    • Paste in the part of the Token Set name that appears before the /

    • For example brands

  2. Select the Theme name input and paste the part of the Token Set name that appears after the /.

    • For example apple

  3. 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).

  4. Select Save Theme to finish.

    • You'll return to the Themes Manager where your new Theme is now listed.

After creating the first Theme, it appears in the Themes Manager. The Theme Group, Theme, and number of Sets are shown in the Theme Manger.

Create additional themes

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.

Figma Variable Collection beside the Tokens Page in the Plugin. The numbered annotations show the relationship between Variable Collection names and Token Set names.

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.

From the Theme form, the Add Group dropdown shows all Theme Groups previously created. Selecting a Theme Group from the dropdown makes it quick and easy to create additional Themes in the same Group.

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.

Figma Variable Collection beside the Themes Manager in the Plugin. The numbered annotations show the Theme Group to Collection names.

2. Attach Themes with Variables

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.

→ If you'd like a more detailed walkthrough of this process, read the Export to Figma from Themes guide.

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.

Select the Export Styles and Variables from the Tokens page to configure the Options.

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.

In this example, there were no Themes previously in our Token Project so all Themes are selected for export. Your project may be different!

After the Export Options are confirmed, all previously created Themes are displayed. In this example, all Themes are selected for Export.

3. Check connected Themes to Variables

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.

Select the Themes dropdown from the Plugin page to see all Themes created. They are organized by Theme Group. Select Manage Themes to see the count of Sets and Variables attached to 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:

Token Format - W3C DTCG vs Legacy

Token formats W3C DTCG vs Legacy

In support of moving towards the W3C Specifications for Design Tokens, 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.

  • Current Tokens Studio "legacy" format

  • W3C DTCG spec format

From the Tokens Page of the plugin, the JSON view is selected and annotated to show the difference between Token Formatting. The image on the left shows "legacy" Token Format. The image on the right shows "W3C DTCG" Token Formatting.

What's the difference?

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.

→ Learn more about Token Names based on their Technical Specifications.

The DTCG specifies additional token types and their accepted values, which we will support in future releases.


In the plugin

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:

  1. Plugin settings > sync/storage providers.

  2. Sync actions at the bottom of the plugin when a remote storage provider is active.

In the Plugin, you can initiate the Token Format conversion process from the Settings Page by selecting the Format for the current Token Project or the Sync Provider Actions at the bottom of the Plugin.

You can change between the W3C DTCG and Legacy token formats at any time by following the steps below.

1. Settings page

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.

The Settings page of the Plugin is shown with the Token project data stored locally. The image on the left shows the Token Format as "legacy". The image on the right shows the Token Format as "W3C DTCG".

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.

The Settings page of the Plugin is shown with the Token project data synced to Github. The image on the left shows the Token Format as "legacy". The image on the right shows the Token Format as "W3C

2. Sync actions

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.

→ Learn more about the Branch Switching (pro) feature

The Tokens page of the Plugin displays several Color Tokens in the JSON view. The image on the left shows the Token Format as "legacy" indicated by the icon next to the branch called "main. The image on the right shows the Token Format as "W3C DTCG" indicated by the icon next to the branch called "w3c-dtcg-conversion".

Convert between Token Formats

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.

From the Settings page of the Plugin, select the current Token Format next to the active sync provider to start the conversion process. The images above show the flow of local document storage of Token data.

The plugin will convert your token JSON files to the format of your choice without any further action from you.

Push changes to remote storage

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.

From the Settings page of the Plugin, select the current Token Format next to the active sync provider to start the conversion process. The images above show the flow of remote storage of Token data using Github as the 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.

After completing the sync to remote Token storage provider process, the sync provider actions at the bottom of the plugin show a newly created branch called "w3c-dtcg-conversion" next to the icon for W3C DTCG Token Format. Select the JSON View from the Tokens page to see the newly formatted JSON files.

Transforming Tokens

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.

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.

→ Style Dictionary V4 Utils - convertToDTCG

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.

→ SD-Transforms Read-Me Doc, Using the preprocessor


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - convertToDTCG

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

Community resources:

  • None yet!

💡 Something to share?

Known Issues and Bugs

Tokens Studio Plugin GitHub - Open issues for Token Format

  • Add empty line when writing to files (sync providers + local export) #2970

Tokens Studio Plugin Github - Open issues for W3C DTCG

  • Remove composition tokens [#2800](# Remove composition tokens #2800)

  • Change boxShadow values from x and y to offsetX and offsetY #2052

  • Allow description in token groups #1811

🐞 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 [email protected]

Requests, roadmap and changelog

  • None

💌 Visit to contribute or subscribe to updates.

Tokens Studio Platform - Cloud Sync Provider

Tokens Studio Platform sync setup guide

Tokens Studio has a standalone web-based platform for dynamic creation and management of Design Tokens, currently in Beta!

→ More information on the Studio Platform and sign up for Beta access here.

How it works

  • Set up a project and API key in the Tokens Studio platform

  • 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.


Tokens Studio sync setup instructions

If you haven't already, sign up for an account at Tokens Studio

1. Create a new project

Once you've logged into your Tokens Studio account:

  • Create a New Organization.

  • Create a New Project

    • Give your project a title.

    • Choose a template to start the project. You can always remove this later.

  • Now you are looking at the dashboard of your new project.

2. Create an API key

The API key is generated from the Tokens Studio Platform, and acts as a passcode that allows the Figma Plugin to connect to your account and access all Organizations and Projects that you are a part of.

Log into your Tokens Studio Platform account:

  • Navigate to the home page of your account

  • Click on Find your API key.

    • You can also jump to the API keys page by using the keyboard shortcut cmd+k.

  • Select Create a new Keys

  • 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

  • Select create key

  • Save the generated API key somewhere safe as it's needed for the plugin configuration and you will not see it again.

You're ready to configure the Tokens Studio plugin in Figma!


Configuring Tokens Studio Plugin

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 be asked to confirm that you already have access to the Studio Platform and then brought to the Studio Platform sync configuration form.

Add credentials for Tokens Studio sync

You'll need the information saved from the steps above to complete the Tokens Studio sync configuration form.

As you fill in the details, additional inputs in the form will appear.

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: Client A

2. API Key

The API Key you saved from step 2 above.

  • Once you enter the API Key into the form, the system will validate your Studio Platform account.

  • Once the validation is successfull, the Organization input will appear.

3. Organization

Select the Studio Platform Organization from the dropdown that contains the Token Project you'd like to work with.

  • Once you select an Organization, the system will check your Studio Platform account.

  • Once the check is complete, the Project input will appear.

4. Project

Select the Token Project you'd like to work with in the Figma Plugin from the dropdown.

  • You'll only see Projects within the current Organization you've selected above.

Save and do the initial sync

Save to confirm your credentials, and follow the prompts in the plugin to finish setting up the Tokens Studio Platform sync.


Shared source of truth

As you work in the Plugin, it will continuously update the Studio Platform to stay in sync without manual push actions needed.

You will need to pull changes made in the Studio Platform into the Figma Plugin using the refresh action that appears in the bottom left of the Plugin.


Resources

Mentioned in this doc:

  • Tokens Studio Platform - https://tokens.studio/studio

  • Studio Platform Documentation - https://documentation.tokens.studio/

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Sync Studio platform

🐞 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 [email protected]

Requests, roadmap and changelog

  • 🧑‍💻 Sync to external token storage enhancements - Feature Request

    • How might we improve the experience of working with sync providers in general?

  • ↕️ Git sync enhancements - push, pull, merge, branching - Feature Request

💌 Visit to contribute or subscribe to updates.

Token Anatomy - Name

Token Anatomy - Name

The name of a Design Token tells us who, or which parts of our system, this design decision is intended for.

In this infographic, the Token examples on the right side highlight the Name. The top code block shows a Token Name with groups. The bottom code block shows a flat Token Name.

Name = the ID of the design decision

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.

An infographic example of documenting a ColorToken with a Name specific to the component.

Great Token Names

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.


That's a wrap!

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!

Sync Changes to Remote Storage - Push and Pull

Dimension

Dimension - Token Type

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

Design decisions

The Dimension Token is used for design decisions requiring a distance and unit of measurement for a specific property of a design element.

This doesn't match the , which focuses on distance, durations, frequencies, and resolutions.

  • 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


Possible values

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).

Referencing Dimension Tokens in math equations may lead to unexpected results if there is a combination of pixel and rem units in the same equation.

Hard-coded values

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.

Rem units (rem)

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.

Pixel units (px)

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.

Units not supported

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

Values that reference another Token

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.

The value will show a broken reference until the originating Token Set is marked as enabled.

Select the card below to jump to the technical docs for more information.

Compatible Token Types

After you've created Number Tokens, they can be referenced in another Number Token and several compatible Token Types.

See all Token Types compatible with Dimension Tokens

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, .


Apply Dimension Tokens

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.

If you click to apply this Token to an element without accessing the right-click Token menu, the value will be applied as a spacing-gap property.

1. Spacing

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.

If you apply the Token to a frame before auto-layout is applied in Figma, you may have to remove and re-apply the Token after auto-layout has been enabled for the Token Value to apply as expected.

→

2. Sizing

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.

If you apply the Token as Min/Max Width or Height to a frame before auto-layout is applied in Figma, you may have to remove and re-apply the Token after auto-layout has been enabled for the Token Value to apply as expected.

→

3. Border radius

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.

4. Border width

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.

If you apply the Border Width property to an element before a stroke is applied in Figma, you may have to remove and re-apply the Dimension Token after the stroke has been enabled for the value to apply as expected.

The plugin supports a that allows you to reference a Border Width Token to avoid this issue.

5. Background blur

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.

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.

6. X and Y Position

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.

If you apply the x/y property to an element before enabling Absolute Position and Auto-layout in Figma, you may have to remove and re-apply the Dimension Token after they are enabled before the value will be applied as expected.


W3C DTCG Token Format

Dimension is an official token type in the W3C Design Token Community Group specifications ().

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:


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

  • Design in Figma -

  • Design in Figma -

  • Design in Figma -

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Background blur > Figma values changed -

    • 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

Requests, roadmap and changelog

  • None yet!

Color

Color - Token Type

Color Tokens define solid, reduced transparency, or gradient colors in a color space of your choice.


Design decisions

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.

This doesn't quite match the , which focuses on the foreground color of text elements specifically.

  • 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


Possible values

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.

Color spaces

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 you create a Color Token using a color space that is not Hex, the plugin will resolve the color to the equivalent Hex value.

This is based on restrictions of the for Color Tokens.

Values that reference another Token

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

Compatible Token types

After you've created Color Tokens, they can be referenced in another Color Token and composite Tokens with a color property defined:


Color picker

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.

You can also use the Color Modifier (pro feature) with the Color Picker.


Reduced opacity (transparency)

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:

Opacity with referenced Tokens

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.

Known issue

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.

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!

Known issue

When the value of a Color Token with reduced opacity includes a reference to an opacity Token instead of a number Token.

The plugin may resolve the value correctly but when exporting to Figma or Code, there could be issues.

The Opacity Token Type in the plugin is intended for layer visibility in Figma only, not for use in Color Tokens as a modifier.

Opacity in the color picker

If you prefer a visual way to create reduced opacity Color Tokens you can open the color picker tool in the plugin .

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.


Advanced color values

Select a card below to jump to its guide.


Apply Color Tokens

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.

If you click the name of Token to apply it to an element without accessing the right-click Token menu, the Color styling will be applied to fill the container.

1

Fill

The value of the Color Token is applied to the entire layer selected.

2

Border

The value of the Color Token is applied to the stroke of the layer selected.

View Color Tokens as list

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 Styles in Figma

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.

Before you export your Color Tokens to Figma as styles, ensure the value is referencing another Token which has been Exported to Figma as a Variable.

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.


W3C DTCG Token Format

Color is an official token type in the W3C DTCG specifications () which is currently being updated to define expanded support for additional color spaces.


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • Nate Baldwin's + Adobe -

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Referencing a (base+opacity) and adding another opacity to that, doesn't give the correct result

    • 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.

Requests, roadmap and changelog

  • Expanded support for color spaces -

  • JSON Enhancements for color tokens and theming -

Typography - Composite

Typography - Token Type

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.


Design decisions

Typography Tokens define a group of properties used to style text elements.

, this is known as the Text and Font Styling properties, which are defined individually.

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:

  1. Font family

  2. Font weight

  3. Font size

  4. Line height

  5. Letter spacing

  6. Paragraph indent

  7. Paragraph spacing

  8. Text decoration

  9. Text case


Possible values

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 best practice is to define all parts of a Composite Token, even with a null/none value, rather than to leave it empty.

Hard coded values

The dedicated Token Type of each property within the Typography Composite Token has unique specifications, described in detail in their own guides.

1

Font Family

Font Family defines the typeface.

  • It must be written as a string value that exactly matches how Figma has it written in their UI.

  • It acts as a 'pair' with Font Weight due to Figma's unique approach to text styling.

2

Font Weight

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.

3

Font Size

Font Size defines the height of the glyphs/characters of a typeface.

  • It should be written as a numeric value with a unit of measurement in either pixels or rem.

  • Font Size impacts the Line Height and Letter Spacing values.

4

Line Height

Line Height defines the vertical distance of each line of text related to its font size.

  • It should be written as a numeric value with a percentage to support responsive design in Figma.

  • Values without a percentage unit will be assumed as a fixed value in pixels.

5

Letter Spacing

Letter Spacing defines the horizontal distance between each glyph/character related to its font size.

  • It should be written as a numeric value with a percentage to support responsive design in Figma.

  • Values without a percentage unit will be assumed as a fixed value in pixels.

6

Paragraph Spacing

Paragraph Spacing defines the vertical distance between 2 paragraphs of text

  • It should be written as a numeric value with a unit of measurement in either pixels or rem.

  • Values without a unit will be assumed as a fixed value in pixels.

7

Paragraph Indent

Paragraph Indent defines an offset of the first word of every paragraph.

  • It should be written as a numeric value with a unit of measurement in either pixels or rem.

  • Values without a unit will be assumed as a fixed value in pixels.

8

Text Decoration

Text Decoration defines the position of an optional line in a string of text.

  • It should be written as the string value that matches the intended property.

9

Text Case

Text Case defines a transformation to the capitalization of letters in a string of text.

  • It should be written as the string value that matches the intended property.

Any property defined within the Typography Token that accepts numeric values can use math to calculate their value in Tokens Studio.

There's an example in the image below for Line Height and Letter Spacing to convert a unitless number into a percentage to accommodate Figma's limitations on those properties.

Values that reference another Token

Like all Composite Tokens, you may reference an existing Token as the value for each individual property .

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


Apply Typography Tokens

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.

💌 Create a free account to upvote on the and we will notify you when we start working on it.


Text Styles in Figma

Typography Tokens can be . Tokens Studio also supports .

Here are some tips for creating Text Styles with Variable References using the Plugin.

Before you export your Typography Tokens to Figma as styles, ensure each property within the Typography Tokens has a value referencing another Token.

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.

For Tokens using percentage units %, the plugin will not map this property to the variable created to preserve the responsive design decision in the token.

Known issue with Font Weight as Figma doesn't allow changing a Variable Type after its been created.

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.

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.


W3C DTCG Token Format

typography is an official token type in the W3C Design Token Community Group specifications.()

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.


Transforming Tokens

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).

Each property defined within the Typography Token has individual SD-Transform configurations to be aware of, which can all be found on the


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • Nate Baldwin's Typography + Dimension scale tool -

  • Import Typography Styles from Figma into Tokens Studio -

  • Marco Krenn's

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • Enhanced Typography Support -

  • Expand Token Types -

  • Support Multiple Token Types per Layer -

Token Values

Token Values in Tokens Studio

The value of a Design Token defines what the design decision is and, in some cases, where the decision came from.

You might recall from our that the Token Type determines what values are acceptable.

For example, a hard-coded Value of #22c55e is possible when the Token Type is color, but not when it is fontFamily.

Each of the 24 unique Token Types supported Tokens Studio has its own specifications on what values are allowed.

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.


Common terms

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!

Hard-coded value

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.

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 .

Here are some additional terms related to hard-coded values that might be helpful:

Numeric Value

A numeric value includes numbers.

For example, the accepts0.33 as a numeric value.

Alphanumeric Value

An alphanumeric value includes numbers and letters that are not defined.

For example, the accepts Welcome back {name}as an alphanumeric value.

String Value

A string value includes letters and/or numbers that are defined in a particular way.

For example, the accepts underline as a string value.

Syntax

Syntax is the way you write the value of the Token. The requirements for syntax change depending on the type of value and Token Type.

For example, spaces are to be avoided when writing the value of a Dimension Token which requires a unit 16px, but required between operators of a math equation 8 * 4

Unit

Unit is short for unit of measurement. Some numeric values require a unit, but not all.

For example 4px

Most popular units when working with Tokens are:

  • pixels px

  • rem rem

  • percentage %

References or Alias Tokens

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!

Math

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.

Raw Value

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.

Resolved 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

Test your Token Value knowledge

Take a look at the image below showing the color Tokens applied to a button label and see if you can identify:

  1. Which Tokens have a hard-coded value?

  2. Which Tokens are referencing another in its value?

  3. What is the raw value of each token?

  4. What is the resolved value of each token?

Hints if you need them

In the image below, the text color of the button changes when the value of the middle Token is changed to reference a greycolor instead of green .

  • The name of the Token is on the top line.

  • The raw value is below the name.

  • The resolved value is inside the color swatch.


Working with Token Values

From the Tokens Page of the Tokens Studio Plugin for Figma, there are three places to see the value of a Token.

  1. Token data on hover

  2. Token form

  3. JSON file

1. Token Data on Hover

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 value of the Token is , it will appear as entered.

If the , the appears on the left, the on the right.

2. Token Form

Right click on a Token Name and select Edit to view its properties as a form. The second input displays the .

The Token Form for each Token Type is unique, but value always appears as the second input.

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.

3. JSON File

Use the Token View Toggle see your Tokens written in JSON code files.

The will appear in the code file. The are not shown in the JSON view.

If you are comfortable working in code (and have edit permissions), you can edit Token Values in the JSON view.

The JSON view functions similar to Visual Studio Code thanks to an amazing open-source contribution from a Tokens Studio community member. 🫶

Jump to the guide on JSON view for more details by selecting the card below.


Resolved value inheritance

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?

  1. The status of Token Sets

  2. 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 sourcethen disabledis last.

  • If there is more than one Token Set with the same status, the Token Set in the lowest position will `win`.

In the example below, the Color Tokens are inheriting their value from the theme-colorTokens being referenced as their . The change based on the position of the themeToken Sets. Whichever Token Set is lowest in the list on the left passes it's value.

Jump to the guide on Token Values with References for more details by selecting the card below.


In Figma

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.


Transforming Tokens

Each Token Type has specific Transforms to be aware of that ensure accurate resolved values that are usable in code.


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None yet.

Themes that switch

Themes that switch

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.

Keep in mind, there is no limit to how many themes in a group that can switch.

For example, a multi-brand design system may have four or fourty brands to switch between.

This guide covers how to create Themes that switch using the Tokens Studio Plugin for Figma using a very simple example.

You'll need a Pro licence for the Tokens Studio Plugin to use the Themes feature to follow along with the guide.

Once you've got the basics down, you can start to think strategically about your Token Structure to take advantage of multi-dimensional theming.


How it works

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.

In the Plugin

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.

  1. Ensure Token Sets to be included in either theme have identical Tokens (names and types)

  2. Using the Themes Manager, create a Theme Group with a unique name.

  3. Create a Theme within that group with a unique name.

    1. Select the Tokens Sets included in the Theme.

  4. Create at least 1 additional Theme within that group with a unique name.

    1. Select the Token Sets indluded in the Theme.

  5. 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.

1. Token Sets with identical Tokens

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

2. Create a Theme Group

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

3. Create First Theme

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.

4. Create Additional Themes

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.

5. Theme Switching

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.


Theme Switching and Variables

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.

Theme switching in the Plugin does not work once Variables are attached to the Themes that Switch.

You must use Figma's native mode switching.

→


Transforming Themes for use in Code

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

→

Plugin Sync Settings

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:


Resources

Mentioned in this Guide

  • SD-Transforms Read-Me -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • None

Remap Tokens

Remap Tokens

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.

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.

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:

  • Updating

  • 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.


In the Plugin

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:

  1. Inspect Page

1. Tokens 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.

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 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.


2. Inspect Page

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.

Use the Deep Inspect control to see Tokens applied to all children layers if desired.

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.

Remap a single Token for a selected element

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.

Bulk Remap Tokens

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.

Bulk Remap Modal

The Bulk Remap modal allows you to match and replace strings of Token Names using the inputs:

  1. Match - the string you'd like the Plugin to find.

  2. Replace - the new string that will replace all instances the Plugin finds that match.

  3. 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.

If you have a large file and have selected to Remap across document, it's important to let the Plugin complete this task before doing any other work in the Plugin or your Figma file.

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.

→

Power User Feature - Regular Expressions (RegEx)

The Bulk Remap feature in the Plugin supports , also known as RegEx, which is the technical name for pattern matching when searching.

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:

  • Microsoft -

  • Medium Article by -

  • Test your RegEx -


Resources

Mentioned in this doc:

  • Figma Learn -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Tokens Studio Plugin Github -

Requests, roadmap and changelog

  • None yet.

Asset

Asset - Token Type

Asset Tokens define the location of assets to style the fill or stroke of a design element as a URL.


Design decisions

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.


Possible values

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.

→ More information on CORS can be found .

Values that reference another Token

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


Apply Asset Tokens

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.


W3C DTCG Token Format

Asset is not yet an official Token Type in the W3C DTCG specifications, but there is mention of a 'File' Token Type under consideration ().


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • CORS information -

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

Community resources:

  • Katie Cooper demo's Asset Tokens during the How to Leverage Tokens Studio to level up your Design System presentation -

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • Asset token enhancements (to include icons) - [Feature Request](# Asset token enhancements)

Cover

GitHub

Cover

Gitlab

Cover

Azure DevOps

Cover

Bitbucket

Themes (pro)
Import Variables from Figma

Export to Figma from Themes

Export Options

Import Variables from Figma

Non-local Variables

Working with Variables in Tokens Studio.

Cover
Cover
Cover
Cover
Cover
Token Types
Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
1. License key
Cover

GitHub

Cover

Gitlab

Cover

Azure DevOps

Cover

Bitbucket

The Multi-file sync to remote storage feature requires a Pro Licence for Tokens Studio. Read the guide for more details.

Manage Sync Providers
Token Types
Sync Changes to Remote Storage - Push and Pull
Manage Sync Providers
Token Types
Token Name Technical Specs
4px
{unitless.number}px
CSS definition for Dimension
Typography - Composite
Font Size
Paragraph Spacing
Border - Composite
more details below ↓
Spacing
Sizing
Border Radius
Border Width
Read Figma's doc on Autolayout here
Read Figma's doc on Autolayout here
Border Composite Token
Read Figma's doc on Layer blur here
→ Jump to the guide on Color Tokens
Box Shadow Tokens
→ Read Figma's docs on Absolute Position
8.2 Dimensions
SD-Transforms Read-Me Doc, ts/size/px
SD-Transforms Read-Me Doc, ts/resolveMath
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
https://styledictionary.com/
W3C Draft
8.2 Dimension
Explore autolayout properties
Apply and adjust stroke properties
Adjust corner radius and smoothing
Adjust alignment, rotation, and position
Apply blur effect
Dimension
Open issues for Token Type Dimension
Community Post on Featurebase
Creating a new Dimension Token in the Tokens Studio Plugin for Figma.
Cover

Dimension Tokens can be attached to Number Variables in Figma. The Plugin will automatically convert these to the pixel equivalent on export.

The right-click menu and sub-menus of a Dimension Token are opened to reveal the design properties it can be applied to in Figma.
Use the spacing property to define the distance between elements.
Use the sizing property to define a fixed height or width.
Use the border radius property to define the roundness of an element.
Use the border width property to define the stroke thickness.

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.

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 plugin settings for Base Font Size.

1

All

Apply the Token value to the roundness of all corners of the selected design element.

2

Top left

Apply the Token value to the roundness of the corner on the left highest side of the element on the X-axis only.

3

Top right

Apply the Token value to the roundness of the corner on the right highest side of the element on the X-axis only.

4

Bottom right

Apply the Token value to the roundness of the corner on the left lowest side of the element on the X-axis only.

5

Bottom left

Apply the Token value to the roundness of the corner on the right lowest side of the element on the X-axis only.

1

All

Apply the Token value to the stroke thickness on all sides of the selected design element.

2

Top

Apply the Token value to the stroke thickness to the highest side of the element on the X-axis only.

3

Right

Apply the Token value to the stroke thickness to the right side of the element on the Y-axis only.

4

Bottom

Apply the Token value to the stroke thickness to the stroke on the lowest side of the element on the X-axis only.

5

Left

Apply the Token value to the stroke thickness to the left side of the element on the Y-axis only.

Once a Token has been applied, it will remain attached until you manually remove it.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Token Values with References
Spacing
Sizing
Border Radius
Border Width
rgba(0,0,0,0.25)
hsla(0, 0%, 0%, 0.25)
#40000000
rgba({colors.grey.900}, 0.06)
rgba({colors.grey.900}, {brand.opacity.border.default})
CSS definition for color
↓ More details on Gradients below.
↓More details on Modified Colors below.
current W3C DTCG specification
(follow the steps above ↑)
8.1 Color
→ We'd love to hear your thoughts on this! Join the conversation.
SD-Transforms Read-Me Doc, ts/color/css/hexrgba
Read Me
https://styledictionary.com/
W3C Draft
8.1 Color
Paints in Figma
The difference between variables and styles
color
Leonardo color tool with design token export
Open issues for Token Type Color
#1822
Feature Request
Feature Request
Creating a new Color Token in the Tokens Studio Plugin for Figma.
Cover

Color Tokens can be attached to Color Styles or Variables in Figma.

With a Color Token form open, selecting the swatch to the left of the Value input opens the color picker in the Plugin.
Cover

Modified Colors (pro)

The plugin supports creating dynamic colors by modifying a base color through the use of lighten, darken, alpha, or mix parameters.

Cover

Gradient Colors

The plugin currently supports Linear Gradient Colors within a Color Token by writing the value to .

The right-click menu of a Color Token is open to reveal the design properties it can be applied to in Figma.
On the Tokens Page of the Plugin the Color Token has an icon-button to toggle between list and grid view.
Select the Export Styles and Variables from the Tokens page to configure the Options.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Box Shadow - Composite
Border - Composite
Opacity
Number
{button.border-radis} + {focus.offset}
Intro to Design Tokens Guide
Color Token
W3C specifications for Design Tokens
Color Token
Font Family Token
Opacity Token
Text Token
Text Decoration Token
→ Jump to the Token Values with References Guide for more details.
→ Jump to the Using Math in Token Values guide for more details.
hard-coded
Value references another Token
raw value
resolved value
raw value
raw value
resolved values
raw value
resolved values
Read Me
Read Me
W3C Draft
3.8 Reference Alias
Open issues for Token Values
Open issues for String Values
In this infographic, the Token examples on the right side highlight the Value. The top code block shows a hard-coded value. The bottom code block has a value that references another Token.
An infographic example of documenting a Token applied to the text layer of a button label requiring different values depending on the defined Token Type.
An infographic example of documenting a Color Token applied to the text layer of a button label. The Value of the Token directly applied is referencing another Token. Following the pathway of referenced Tokens as Values shows where the Color comes from in the system.
An infographic example of documenting a Color Token applied to the text layer of a button label. The difference between the two buttons is the color of the label text which is controlled by the value of the middle Token. On the left side, it is referencing a Token from a greenscale. On the right right, it is referencing a Token from a greyscale.
From the Tokens Page of the Plugin, hovering on a Color Token displays its data. In this example, the hard-coded value of a hex code is shown under the Token Name.
From the Tokens Page of the Plugin, hovering on a Color Token displays its data. In this example, the raw 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.
Right-click on a Color Token to open its Form. The example on the right shows the raw value of the Color Token as a hard-coded hex code.
A Color Token form on the left shows a raw value with references to another Token. A Dimension Token form on the right shows a raw value with a math equation. Both forms show the resolved values below the Value input.
Select the JSON view toggle from the Tokens Page to see the current Token Set as an editable code file. The raw value of the Token is shown in the JSON files.
Component-specific Tokens with values that reference Tokens from the Theme Token Sets are shown. The resolved values change based on the position of the Theme Token Sets.

Each Token will have different data to view on Hover depending on its type and value, however the position the data remains the same.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

JSON View
Token Values with References
Token Types
Token Types
In CSS
→ Jump to the Font Family Guide
→ Jump to the Font Weight Guide
→ Jump to the Font Size Guide
→ Jump to the Line Height Guide
→ Jump to the Letter Spacing Guide
→ Jump to the Paragraph Spacing Guide
→ Jump to the Paragraph Indent Guide
→ Jump to the Text Decoration Guide
→ Jump to the Text Case Guide
→ Jump to the guide on Tokens with Math Values for more details.
as described above ↑
feature request for this here
Exported to Figma as Text Styles
Styles with Variable References
Font Weight Tokens
9.7 Typography
→ SD-Transforms Read Me Doc, ts/typography/compose/shorthand
Read Me page on Github.
Read Me
https://styledictionary.com/
W3C Draft
9.7 Typography
Explore Text Properties
Text Styling Fundamentals
Proportio.app
Video Tutorial by Sam I am Designs
Fluid Typescale Generator + Design Token Integration
Office hours demo of the tool and process (2023)
Open issues for Token Type Typography Composite
Feature Request
Feature Request
Feature Request
Creating a new Typography Token in the Tokens Studio Plugin for Figma.
Cover

Typography Tokens can be attached to Text Styles in Figma.

Once the Typography Token form is open, you can select the icon button to reference a Typography composite Token as the value.
Select the Export Styles and Variables from the Tokens page to configure the Options.
A Text Style created with Variable References from the Plugin will leave properties with percentage values attached to the Token value and not a variable. The remaining text properties will be attached to Variables.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, 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 Read-Me Doc, Using Expand

"object, object" When you transform your Typography Tokens and they show "object, object", it means your SD-Transforms configuration needs to be adjusted to include "expand".

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Jump to the guide on Token Sets - Status for more details on reference only aka set-as-source.
Jump to the Guide on Exporting to Figma from Themes for more details.
SD-Transforms Read-Me Doc, Theming
Theming
Open issues for Themes
The Tokens page of the Plugin is shown with the Themes dropdown open. The first theme group, named primitives, has a single theme below it called all. There is an annotation pointing to it labelled with "theme does not switch". The second theme group, called brands, has four theme groups below it: apple, berry, cherry, and tangerine. There is an annotation with a bracket pointing to all four themes labelled with "themes that switch".
On the Tokens Page of the Plugin the mode-colors/light token set is pictured on the left, the mode-colors/dark token set on the right. Both are annotated to highlight the current Token Set, and the two tokens mentioned above. In the color preview next to each Token Name, the values are different between the two images.
On the left, the Tokens page of the Plugin has the Themes dropdown open. It shows no themes exist in the Token Project. The Manage Themes action is annotated with a line connecting to the right side image, a screenshot of the themes manager showing that no themes have been created. The new theme button is highlighted.
On the left, the Themes Manager is shown without any Themes created. The new theme button is annotated with a line pointing to the Create New Theme modal on the right.
On the left, the create new theme modal is open with the add group button highlighted with a line pointing to the screenshot on the right. The image on the right shows the add group button has been converted to a text input that has mode-colors entered into it.
On the left, the Create New Theme modal is open with labelled annotations pointing to the theme group input on the top left, the theme name input beside it to the right, and the token set status below. The save theme button is highlighted with a line pointing to the screenshot on the right. The image on the right shows the themes manager is shown with a mode-colors theme group containing a theme called light.
On the left, the Themes Manager is shown with a mode-colors theme group containing a theme called light. The new theme button is annotated with a line pointing to the Create New Theme modal on the right. The add group dropdown is open and the previously created theme group named mode-colors is highlighted.
On the left, the Create New Theme modal is open with labelled annotations pointing to the theme group input on the top left, the theme name input beside it to the right, and the token set status below. The save theme button is highlighted with a line pointing to the screenshot on the right. The image on the right shows the themes manager is shown with a mode-colors theme group containing a theme named light and a second theme named dark.
The Tokens page of the Plugin is shown with the Themes dropdown open. The example on the left has a theme named light with a checkmark next to it, and a Token Set on the far left named light with a checkmark next to it. The example on the right has a theme named dark with a checkmark next to it, and a Token Set on the far left named dark with a checkmark next to it.
Figma Variable Collection beside the Themes Manager in the Plugin. The numbered annotations show the Theme Group to Collection names. The lettered annotations show the Theme to Mode names for the current Variable collection named brands.
Cover

Sync to a remote storage provider, like GitHub, GitLab, Bitbucket or Azure DevOps.

Cover

Configure your sync settings to save to a folder in your repository with multiple files.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

node in Figma
Changing Token Names
Token Groups
Tokens Page
Single Token Remap
Bulk Remap
↓ described below
→ Jump to the Inspect Page guide if you'd like a detailed explanation on the Token List.
Jump to the Apply Token Actions and Settings guide for more details.
Regular Expressions
Regular Expression Language Quick Reference
Markus Kottländer
Regular Expressions for Non-Programmers
https://regex101.com/
Select layers and objects
Open issues for Token Remap
Open issued for Token Name Change Remap
The rename options are shown on the left with an annotation highlighting the option which takes the longest time to execute. On the right side, the Tokens Page shows the progress of the renaming process at the top of the plugin.
In the Plugin, once you edit a Token name and save your changes, you have the option to Remap all layers, styles or variables to the new name.
Two versions of the Rename Token options are shown, which are visible if your project uses the Themes (pro) feature. The version on the right shows an example of the options that should be selected if the Token you renamed is attached to a Variable in Figma with more than one mode.
The left side example shows how the Inspect page looks before selecting a Figma design element compared with the right side example, showing many Tokens applied to a selected layer in Figma. The brand.accent-color and card.typography.heading Tokens can not be remapped as they have been applied using the Figma UI as Variables and Styles, indicated by the icons before their name.
An example of the Inspect page of the Plugin shows how to open the remap feature by selecting the chevron next to the Name of a Token in the list.
An example of the Remap a single Token workflow. When the chevron next to the Token name is selected a select menu with search opens.
The workflow to Apply Token data to selected Tokens in Figma shows the navigation from the Remap modal on the Inspect page to the Tokens page.
The navigation to open the Bulk Remap modal from the Inspect page of the Plugin is shown on the left. On the right, the Bulk Remap modal is annotated with numbers to match their detailed descriptions below.
An example of the Bulk Remap feature shows two broken Tokens listed on the Inspect page of the Plugin on the left. Selecting the Bulk Remap action opens the modal in the middle. Matching "card" to remap to "cards" shows the newly mapped Tokens on the right which are no longer broken.
The workflow to Apply Token data to all Tokens in Figma document shows the navigation from the Bulk Remap modal on the Inspect page to the Tokens page.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Edit Token Names
here
8.8 Additional Types
SD-Transforms Read-Me Doc, Using the preprocessor
Medium Article, Sandeep - NodejsMadeEasy
Read Me
https://styledictionary.com/
W3C Draft
8.8 Additional Token Types
Working with images in Figma
Adjust the properties of an asset
Images
YouTube
Open issues for Token Type Asset
Creating a new Asset Token in the Tokens Studio Plugin for Figma.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Number

Number - Token Type

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

Creating a new Number Token in the Tokens Studio Plugin for Figma.

Design decisions

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)


Possible values

According to the W3C DTCG specification, the value of a Number Token must be a unitless number.

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.

Hard-coded values

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

Values that reference another Token

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

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Compatible Token Types

After you've created Number Tokens, they can be referenced in another Number Token and several compatible Token Types.

See all Token Types compatible with Number Tokens

Typography - Composite

Font Size

Paragraph Spacing

Border - Composite

Color Tokens with Reduced opacity (transparency)

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, more details below ↓.

Spacing

Sizing

Border Radius

Border Width


Apply Number Tokens

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.

If you click to apply this Token to an element without accessing the right-click Token menu, the value will be applied as a spacing-gap property.

The right-click menu and sub-menus of a Number Token are opened to reveal the design properties it can be applied to in Figma.

1. Spacing

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.

If you apply the Token to a frame before auto-layout is applied in Figma, you may have to remove and re-apply the Token after auto-layout has been enabled for the Token Value to apply as expected.

→ Read Figma's doc on Autolayout here

2. Sizing

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.

If you apply the Token as Min/Max Width or Height to a frame before auto-layout is applied in Figma, you may have to remove and re-apply the Token after auto-layout has been enabled for the Token Value to apply as expected.

→ Read Figma's doc on Autolayout here

3. Border Radius

The Border Radius property defines the corner roundness of polygonal shape, frames, groups or graphic elements in Figma when the Token is applied.

1

All

Apply the Token value to the roundness of all corners of the selected design element.

2

Top left

Apply the Token value to the roundness of the corner on the left highest side of the element on the X-axis only.

3

Top right

Apply the Token value to the roundness of the corner on the right highest side of the element on the X-axis only.

4

Bottom right

Apply the Token value to the roundness of the corner on the left lowest side of the element on the X-axis only.

5

Bottom left

Apply the Token value to the roundness of the corner on the right lowest side of the element on the X-axis only.

For independent corner styling, you can repeat the steps above and apply different Number Tokens to each corner position of the same design element.

4. Border Width

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.

1

All

Apply the Token value to the roundness of all corners of the selected design element.

2

Top left

Apply the Token value to the roundness of the corner on the left highest side of the element on the X-axis only.

3

Top right

Apply the Token value to the roundness of the corner on the right highest side of the element on the X-axis only.

4

Bottom right

Apply the Token value to the roundness of the corner on the left lowest side of the element on the X-axis only.

5

Bottom left

Apply the Token value to the roundness of the corner on the right lowest side of the element on the X-axis only.

For independent border styling, you can repeat the steps above and apply different Number Tokens to each side of the same design element.

If you apply the Border Width property to an element before a stroke is applied in Figma, you may have to remove and re-apply the Dimension Token after the stroke has been enabled for the value to apply as expected.

The plugin supports a Border Composite Token that allows you to reference a Border Width Token to avoid this issue.

5. Background Blur

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.

→ Read Figma's doc on Layer blur here

The Background Blur property must be applied to container design elements, like frames, groups, and polygonal shapes with a reduced opacity color fill applied.

→ Jump to the guide on Color Tokens 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 Box Shadow Tokens can.

6. X and Y Position

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.

If you apply the x/y property to an element before enabling Absolute Position and Auto-layout in Figma, you may have to remove and re-apply the Dimension Token after they are enabled before the value will be applied as expected.

→ Read Figma's docs on Absolute Position

7. Rotation

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.

→ Read Figma's docs on Rotation here

Once a Token has been applied, it will remain attached until you manually remove it.


W3C DTCG Token Format

Number is an official Token type in the W3C Design Token Community Group specifications.

"Represents a number. Numbers can be positive, negative and have fractions. Example uses for number Tokens are gradient stop positions or unitless line heights. The $type property MUST be set to the string number. The value MUST be a JSON number value." - 8.7 Number, DTCG Specifications on W3C

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:


Transforming Tokens

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.

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.

→ SD-Transforms Read-Me Doc, ts/size/px

Token Values entered with math equations need to be checked and resolved.

→ SD-Transforms Read-Me Doc, ts/resolveMath

Running the SD-Transforms pre-processor as part of the generic package will prep your Number Tokens for Style Dictionary.

→ SD-Transforms Read-Me Doc, Using the preprocessor


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 8.7 Number

Figma resources:

  • Design in Figma - Explore autolayout properties

  • Design in Figma - Apply and adjust stroke properties

  • Design in Figma - Adjust corner radius and smoothing

  • Design in Figma - Adjust alignment, rotation, and position

  • Design in Figma - Apply blur effect

CSS resources:

  • MDN Web Docs - Number

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Number

  • None yet

🐞 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 [email protected]

Requests, roadmap and changelog

  • None

💌 Visit to contribute or subscribe to updates.

Export Using Token Sets

Export Using Token Sets

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.

→ Read the Export to Figma from Themes guide for more details on these features.

How it works

Once you have created Tokens in the plugin, select the Styles & Variables Button from the Tokens page.

Choose the Export Styles & Variables option.

Select the Export Styles and Variables from the Tokens page to configure the Options.

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.

→ Jump to the Export to Figma Options guide for more details.

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.

After the Export Options are confirmed, the number of Token Sets are displayed for Export. In this example, 23 of 36 Token Sets are selected for export. The Options button is highlighted to show how to open the menu as needed.

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.

Each Token Set will be mapped to a Variable Collection

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 creation of Variable Modes within a Collection is only possible by Exporting using Themes.

→ Jump to the Variables and Tokens Studio guide for more details on mapping.


Select Token Sets to Export

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 setsbutton to adjust which Sets are selected for Export

Change Sets

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.

When Exporting to Figma the Tokens Sets page on the left shows 4 of 30 Sets are selected to export. After pressing the Change Sets button, the screen on the right will open to allow changes to the Set Status to be made.

By changing the status of your Token Sets, you are telling the plugin which Tokens Sets should be included in the Export.

Pressing the Change Sets modal opens the list of all Sets. Adjusting the Set Status tells the plugin how to export the Tokens living within each set.

1

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.

2

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.

3

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.


Export as Variables feedback messages

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).

Different status messages from the Plugin are shown when exporting as Variables.

Error messages

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

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.

A common error message from the Plugin is shown in Figma, caused by where the Figma file is located.

Check your exported Styles and Variables

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.

Recall that each export is limited to the Tokens included in the Sets selected for this Export.

This means you may have to repeat the Export to Figma process with different configurations to update your Styles and Variables completely.

If you have unexpected results, you can select a guide below for more details that are helpful in troubleshooting.


Resources

Figma resources:

  • Design in Figma - Overview of Variable Collections and Modes

Community resources:

  • The Tokens Studio collection of Variable videos - YouTube Playlist

  • Our friends at UI Collective have free learning resources on Variables - YouTube Playlist

💡 Something to share?

Known issues and bugs

  • Tokens Studio Plugin GitHub - Open issues for Export as Token Sets

  • Tokens Studio Plugin GitHub - Open issues for Figma Variables

  • Tokens Studio Plugin GitHub - Open issues for Figma Styles

🐞 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 [email protected]

Requests, roadmap and changelog

  • Add support for scoping and publishing variables and styles - Feature Request

  • Ignore parts of the token name for variables and styles - Feature Request

  • Theme Switcher for non-DS designers so I don't need variables anymore - Feature Request

  • Tokens applied with Figma UI as Styles or Variables are Fragile - Feature Request

  • Show updated number of Variables (or styles) when exporting to Figma with updated values - Feature Request

💌 Visit to contribute or subscribe to updates.

Export Using Themes (pro)

Don't have a Pro Licence? You can still Export to Figma using Token Sets

Export Using Themes (pro)

The Themes (pro) feature 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:

  • 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

How it works

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.

Select the Export Styles and Variables from the Tokens page to configure the Options.

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.

→ Jump to the Export to Figma Options guide for more details.

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.

After the Export Options are confirmed, all previously created Themes are displayed. In this example, only the primitives-allTheme is selected (checkmark visible) for export. The Options button is highlighted to show how to open the menu.

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.

Each Theme Group will be mapped to a Variable Collection

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.

Figma Variable Collection beside the Themes Manager in the Plugin. The numbered annotations show the Theme Group to Collection names. The lettered annotations show the Theme to Mode names.

→ Jump to the Variables and Tokens Studio guide for more details on mapping.


Select Themes to Export

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.

The Export to Figma from Themes page in the plugin is shown with no Themes on the left, many themes on the right.

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.

Exporting as Styles?

Try exporting one Theme at a time.

This reduces the complexity of the export and reduces unexpected results.

The Export to Figma from Themes page in the plugin is shown with all Themes selected for Export on the left and only the primitives/allTheme selected on the right.

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.


Export as Variables feedback messages

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).

Different status messages from the Plugin are shown when exporting as Variables.

Error messages

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

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.

A common error message from the Plugin is shown in Figma, caused by where the Figma file is located.

Your Figma plan only allows the creation of 4 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.

A common error message from the plugin is shown in Figma and is caused by mode limits on the Figma plan.

Check your exported Styles and Variables

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.

Recall that each Export is limited to the Tokens in the Themes selected.

This means you may have to repeat the Export to Figma process with different configurations to update all of your Styles and Variables.

If you have unexpected results, you can select a guide below for more details that are helpful in troubleshooting.


Resources

Figma resources:

  • Design in Figma - Overview of Variable Collections and Modes

Community resources:

  • The Tokens Studio collection of Variable videos - YouTube Playlist

  • Our friends at UI Collective have free learning resources on Variables - YouTube Playlist

💡 Something to share?

Known issues and bugs

  • Tokens Studio Plugin GitHub - Open issues for Figma export - themes

  • Tokens Studio Plugin GitHub - Open issues for Figma Variables

  • Tokens Studio Plugin GitHub - Open issues for Figma Styles

🐞 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 [email protected]

Requests, roadmap and changelog

  • Add support for scoping and publishing variables and styles - Feature Request

  • Ignore parts of the token name for variables and styles - Feature Request

  • Theme Switcher for non-DS designers so I don't need variables anymore - Feature Request

  • Tokens applied with Figma UI as Styles or Variables are Fragile - Feature Request

  • Create Variable Collections With The Plugin's Order of Themes - Feature Request (blocked by Figma)

  • Show updated number of Variables (or styles) when exporting to Figma with updated values - Feature Request

💌 Visit to contribute or subscribe to updates.

Plugin Settings

Plugin settings

The Settings page is where you can make personalized configurations to the plugin.

The Plugin Setting Page with annotations to match the features below. The configuration shown here is "default" before any changes are made.

1. License key

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.

You can always grab it again by logging into your Tokens Studio account

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.

2. Sync providers

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.

Token format

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.

3. Language settings

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

Want to contribute to add a new language? Reach out to us on our community slack!

4. Base font size setting

The plugin sets the Base Font Size to 16px by default. To change this value, use the Change button and follow the prompts.

5. Permission for session recording

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.

6. Reset onboarding

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.


These settings have moved

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


Resources

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Settings - Plugin Page

Tokens Studio Plugin GitHub - Open issues for Licence Key

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet

💌 Visit to contribute or subscribe to updates.

Bitbucket - Git Sync Provider

Bitbucket sync setup guide

is a Git-based source code repository hosting service popular among teams using Atlassian tools.

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

How it works

  • 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.


Bitbucket setup instructions

If you haven't already, sign up for a Bitbucket account at

1. Record your Bitbucket user name

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.

2. Create a new repository

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.

  • Review the options,

    • 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!

3. Record the Repository URL

From your browser, Copy the URL of the repository and it somewhere safe as it's needed for the plugin configuration.

4. Generate an app password

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!


Plugin settings for Bitbucket

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

Add new credentials for 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

The username of the Bitbucket account you saved in is used as a part of the authentication process between the plugin and Bitbucket.

3. App password

The App password you saved from .

4. Repository (owner/repo)

The URL from the repository from the has the owner/repository in it (all characters after the bitbucket.org/)

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.

  • If you created a new repo following , you will enter main.

  • 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.

Save and do the initial sync

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.


Shared source of truth

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!


Resources

Mentioned in this doc:

  • Bitbucket -

  • SD-Transforms -

  • Style Dictionary -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • 🧑‍💻

    • How might we improve the experience of working with sync providers in general?

  • ↕️

  • 🔐

GitLab - Git Sync Provider

Gitlab sync setup guide

is a popular option to store Design Tokens in a code repository.

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

How it works

  • 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.


Gitlab setup steps

If you haven't already, head over to https://Gitlab.com/ and create a free account.

1. Create new project repository

Sign into your account and navigate to the page.

  • 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.

2. Personal access token

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:

  • Navigate to your

    • 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!


Plugin settings for Gitlab

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.

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: UdayGitlab

2. Personal access token

The Personal access token you saved from .

3. Repository (owner/repo)

The URL from the repository from the has the owner/repository in it after the gitlab.com/

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.

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.

5. Token storage location (file/folder path)

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.

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.

6. Base URL (Optional)

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.

Save and do the initial sync

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.


Shared source of truth

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!


Resources

Mentioned in this doc:

  • Gitlab -

  • SD-Transforms -

  • Style Dictionary -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • 🧑‍💻

    • How might we improve the experience of working with sync providers in general?

  • ↕️

  • 🔐

Azure DevOps - Git Sync Provider

Azure DevOps sync setup guide

is a Microsoft-owned suite of development tools and services you can use to create a Git-based source code repository.

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

How it works

  • 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.


Azure DevOps setup instructions

If you haven't already, sign up for an Azure DevOps account at .

1. Record your ADO Organization URL

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.

Be sure to include the https:// in your URL copy

2. Create your project and record its name

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!

3. Configure your repo

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

4. Record your repository name

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.

5. Generate a personal access token

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!


Plugin settings for Azure DevOps

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.

Add credentials for Azure DevOps

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.

1. Organization URL

The URL of your Azure DevOps organization you saved in .

Example https://dev.azure.com/my_organization_name

2. Project Name

The Project name you saved from the

  • 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

3. Personal Access Token

The Personal access token you saved from the .

4. Repository name

The name of the repository you recorded in that matches the personal access token you entered

Example: test-tokens

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 as needed.

Example: main

6. Token storage location (file/folder path)

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.

Save and do the initial sync

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.


Shared source of truth

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!


Resources

Mentioned in this doc:

  • Azure Dev Ops -

  • SD-Transforms -

  • Style Dictionary -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • 🧑‍💻

    • How might we improve the experience of working with sync providers in general?

  • ↕️

  • 🔐

Export Options

Export to Figma Options

The Export to Figma Options menu has important settings for creating or updating Styles and Variables connected to your Tokens.

In the plugin

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 can open the menu at anytime using the Options button at the bottom of the Export to Figma modal.


Variable and Style type options

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.

For the export to be successful, the Variable and Style types you select must be compatible with your Token Types.

1. Variable type options

Color - Creates as Color Variables

String - Creates , and Tokens as String Variables

Number - Creates , , , , , , and Tokens as number Variables

Boolean - Creates as Boolean Variables

2. Style type options

Color - Creates as Color Styles

Typography - Creates as Text Styles

Effect - Creates as Effect Styles

You can export different types of Tokens to Variables and Styles at the same time.

colorcan not be exported to Variables and Styles at the same time as the Plugin won't know which property in Figma to attach the Tokens To.


Tokens exported to Figma should

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.

1. Ignore first part of Token Name for Styles

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.

2. Prefix Styles with active Theme name (pro)

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

3. Create Styles with Variable references

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.

3. Update existing Style and Variable names

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

5. Remove Styles and Variables without connection to a Token

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.


Up Next - Export as Themes or Token Sets

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.


Resources

Figma resources:

  • Design in Figma -

Community resources:

  • The Tokens Studio collection of Variable videos -

  • Our friends at have free learning resources on Variables -

Known issues and bugs

  • 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 -

Requests, roadmap and changelog

  • 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 -

Sizing

Sizing - Token Type

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.

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.

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.

There is no immediate plan to discontinue support of the Sizing Token Type.

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 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.

→


Design decisions

Sizing defines the height or width of a design element.


Possible values

The Sizing Token supports numeric values, with or without a unit.

Hard-coded values

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.

Pixel units (px)

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.

Values that reference another Token

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


Apply Sizing Tokens

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.

If you click to apply this Token to an element without accessing the right-click Token menu, the value will be applied as all.


Transforming Tokens

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.

→


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Deselecting The "All" Property In Spacing Tokens Removes Other Spacing Tokens

Requests, roadmap and changelog

  • W3C DTCG Spec - Unofficial Token Types -

→ Read the Token Values with References guide for more details

GitHub

Gitlab

Azure DevOps

Bitbucket

JSONBin

Supernova

Token Studio Platform

URL

Generic Versioned

Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover

GitHub

Gitlab

Azure DevOps

Bitbucket

JSONBin

Supernova

Token Studio Platform

URL

Generic Versioned

Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Token Values with References
Export to Figma Guide
Token Values with References
→ Read the Export to Figma overview for a list of Token Types and their compatible Variable types.
Color Tokens
Text
Font Family
Font Weight
Dimension
Number
Spacing
Sizing
Border Radius
Border Width
Opacity
Boolean Tokens
Color Tokens
Typography Tokens
Box Shadow Tokens
→ Read the guide on Token Names with Groups for more detials.
→ Read the guide on Themes for more details
Overview of Variable Collections and Modes
YouTube Playlist
UI Collective
YouTube Playlist
Open issues for Figma export options menu
Open issues for setting ignore first part of name
Open issues for setting prefix theme name
Open issues for update existing name styles variables
Open issues for remove styles and variables without connection
Open issues for Figma Variables
Open issues for Figma Styles
Feature Request
Feature Request
Feature Request
Feature Request
Feature Request (blocked by Figma)
Feature Request
Select the Export Styles and Variables from the Tokens page to configure the Options.
The Options button at the bottom of the Export to Figma screen is highlighted. Press it anytime to view or edit your Options.
The Export to Figma Options menu is annotated to match the descriptions below.
The Export to Figma Options menu is annotated to match the descriptions below.
Once you've confirmed your Export Options, the Plugin brings you the place where you select which Tokens to export.
Cover

Export as Themes

If you have a Pro licence for Tokens Studio

Cover

Export as Token Sets

If you have a Free licence for Tokens Studio

Cover

Skipped Variables

Sometimes, the plugin skips exporting your Tokens to Figma even when you have the desired options configured correctly.

Cover

Styles with Variable References

Details the steps to use this option with Color, Typography or Box Shadow Tokens.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💡 Something to share? Submit it here!

Styles with Variable References
Token Values with References
Using Math in Token Values
Token Values with References
Export to Figma Guide
match CSS gradients
Spacing
Sizing
Border Radius
Border Width

Number Tokens can be attached to Number Variables in Figma.

Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Using Math in Token Values
Token Values with References
Export Using Token Sets

Export to Figma Overview

Lists the compatible Token Types with Styles and Variables.

Export to Figma Options

A detailed guide on each Export Option.

Skipped Variables when Exporting to Figma

Reasons why some Tokens can't be exported.

Themes (pro)

Provides tips on setting up Themes to help ensure references and resolved values are accurate on export.

Export to Figma Styles with Variable references

Detailed guide on this multi-step process and the Token Types supported.

Non-local Variables and Styles

Themes enables you to export Styles and Variables across multiple Figma files and retain their connected references.

Variables FAQs

Deep dive into how Variables and Tokens Studio work together in Figma.

Styles FAQs

Deep dive into how Styles and Tokens Studio work together in Figma.

Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Cover
Remote Token Storage Integrations
Token Format - W3C DTCG vs Legacy
Base Font Size Setting
Export Options
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/

Export to Figma Overview

Lists the compatible Token Types with Styles and Variables.

Export to Figma Options

A detailed guide on each Export Option.

Skipped Variables when Exporting to Figma

Reasons why some Tokens can't be exported.

Export to Figma Styles with Variable references

Detailed guide on this multi-step process and the Token Types supported.

Variables FAQs

Deep dive into how Variables and Tokens Studio work together in Figma.

Styles FAQs

Deep dive into how Styles and Tokens Studio work together in Figma.

Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Cover
Cover
Cover
Cover
Cover
tokens
tokens.json
Bitbucket
https://bitbucket.org/
learn more about those in the Bitbucket docs.
step 1 above
step 4 above
step 3 above
the steps above
https://bitbucket.org/product/
Read Me
https://styledictionary.com/
Open issues for Sync Bitbucket
Sync to external token storage enhancements - Feature Request
Git sync enhancements - push, pull, merge, branching - Feature Request
Data security info request - Feature Request

→ Read the Add New Sync Provider guide for more details.

Read the Sync Changes guide for more details

The various Token Types supported by Tokens Studio have unique transforms to be aware of.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

tokens
tokens.json
gitlab.hyma.com
Gitlab
Create a new project
Gitlab account settings
step 2 above
step 1 above
https://gitlab.com/
Read Me
https://styledictionary.com/
Open issues for Sync Gitlab
Sync to external token storage enhancements - Feature Request
Git sync enhancements - push, pull, merge, branching - Feature Request
Data security info request - Feature Request

→ Read the Add New Sync Provider guide for more details.

Read the Sync Changes guide for more details

The various Token Types supported by Tokens Studio have unique transforms to be aware of.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

tokens
tokens.json
Azure DevOps
Azure DevOps
step 1 above
step 2 above.
step 5 above
step 4 above
https://azure.microsoft.com/en-us/products/devops/
Read Me
https://styledictionary.com/
Open issues for Sync ADO
Sync to external token storage enhancements - Feature Request
Git sync enhancements - push, pull, merge, branching - Feature Request
Data security info request - Feature Request

→ Read the Add New Sync Provider guide for more details.

Read the Sync Changes guide for more details

The various Token Types supported by Tokens Studio have unique transforms to be aware of.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

1rem
'official token type'
detailed below↓
Conversation forum on Unofficial Token Types is here.
SD-Transforms Read-Me Doc, Using the preprocessor
SD-Transforms Read-Me Doc, ts/size/px
Read Me
Read Me
W3C Draft
8.0 Types
Open issues for Token Type Sizing
#2377
Conversation Forum
Creating a new Sizing Token in the Tokens Studio Plugin for Figma.
Cover

Sizing Tokens can be attached to Number Variables in Figma.

The right-click menu of a Sizing Token is open to reveal the design properties it can be applied to in Figma.

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.

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 plugin settings for Base Font Size.

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Once a Token has been applied, it will remain attached until you manually remove it.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Dimension

Generic Versioned Storage - Server Sync Provider

Generic Versioned sync setup guide

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.

How it works

  • 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.


Generic Versioned sync setup instructions

If you haven't already, store your Design Token JSON files on your server and create a storage endpoint.

→ Here's an example implementation of token JSON files stored on a SQLite database on a local file if you need a reference.

  • The swagger is available with the necessary schemas to roll your own endpoint.

→ Here's a guide on using a JSON server as a simple way to use Generic Versioned storage created by Ian Lawton, a Tokens Studio Community member.

1. Storage URL

Copy the URL where your Token JSON files are stored.

  • Store it somewhere safe, as it's needed for the plugin configuration.

2. Capture header pairs

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.


Configuring Tokens Studio Plugin

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

Add credentials for Generic Versioned sync

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

Enter the complete URL you saved from step 1 above.

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

The optional authentication headers you saved from step 2 above.

Save and do the initial sync

Save to confirm your credentials, and follow the prompts in the plugin to finish setting up the sync to your Generic Versioned provider.

→ Read the Add New Sync Provider guide for more details.


Shared source of truth

As you work in the plugin, push and pull indicators remind you to stay in sync.

Read the Sync Changes guide for more details

Once your Token JSON files are synced to your external storage, you have a shared source of truth between Designers and Engineers!

The various Token Types supported by Tokens Studio have unique transforms to be aware of.


Resources

Mentioned in this doc:

  • GitHub - Generic Versioned Example Repo from Tokens Studio

    • Swagger example to roll your own endpoint.

  • SD-Transforms - Read Me

  • Style Dictionary - https://styledictionary.com/

Community resources:

  • Ian Lawson's Guide (Medium Article) - A simple Design Token storage server for Figma Tokens Studio

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for URL sync

🐞 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 [email protected]

Requests, roadmap and changelog

  • 🧑‍💻 Sync to external token storage enhancements - Feature Request

    • How might we improve the experience of working with sync providers in general?

  • ↕️ Git sync enhancements - push, pull, merge, branching - Feature Request

  • 🔐 Data security info request - Feature Request

💌 Visit to contribute or subscribe to updates.

GitHub - Git Sync Provider

GitHub sync setup guide

is a popular Git-based source code repository hosting service.

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.

How it works

  • 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.


GitHub setup steps

If you haven't already, head over to and create a free account.

1. Create a new repository

Sign into your account and navigate to the page.

  • 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.

2. Personal access token

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:

  • Navigate to your

    • 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!

Generate new fine-grained access token

  • 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!


Plugin settings for GitHub

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

Add credentials for 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.

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 - Community token files

2. Personal access token

The Personal access token you saved in .

3. Repository (owner/repo)

The URL from the repository has the owner/repository in it after the GitHub.com/

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.

Save and do the initial sync

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.


Shared source of truth

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!


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Push/pull indicator persists with GitHub Sync

    • Occasionally you have to push/pull to GitHub several times for the indicator to clear.

Requests, roadmap and changelog

  • 🧑‍💻

    • How might we improve the experience of working with sync providers in general?

  • ↕️

  • 🔐

Modified Colors (pro)

Modified Colors

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.


How to use color modifiers

In the Color Token form, define your Token Name and assign the Token Value by referencing another Color Token.

The Token you've referenced is known as the base color in the rest of this guide.

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

Modify via Color Picker

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.


Available modifiers

The plugin currently supports four popular types of modifications to Color Tokens.

Modifier
Description

Lighten

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.

Darken

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.

Alpha

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'

Mix

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)


Limitations of modified colors

There are some known limitations with Modified Color Tokens.

Exporting to Figma as Variables looses references

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.


W3C DTCG Token Format

Color is an official token type in the W3C DTCG specifications () which is currently being updated to define expanded support for additional color spaces.

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.


Transforming Tokens

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.


Resources

Tokens Studio uses the ColorJS.io library for the implementation of modified colors.

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Figma resources:

  • Design in Figma -

CSS resources:

  • MDN Web Docs -

  • MDN Web Docs -

Community resources:

  • A written guide by Katie Cooper, Lead Product Designer -

Known issues and bugs

Tokens Studio Plugin GitHub -

  • Color Transforms

    • HSLA calculated color values are incorrect

  • HSLA

    • Choosing HSLA in the color picker converts the Token to RGBA

  • Color modifiers break when borderRadius Token is renamed

    • Unexpected results when renaming borderRadius Tokens

Requests, roadmap and changelog

  • Modified colors aren't showing up in the second screen feature as expected -

Supernova - Cloud Sync Provider

Supernova sync setup guide

is a design data platform popular for documenting design systems.

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.

The Supernova integration has some limitations and does not provide the same bi-directional sync or version control our Git provider integrations offer.

You may want to consider including in your process in addition to Supernova.

How it works

  • 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.


Supernova setup steps

If you haven't already, sign up for a Supernova account at

1. Gather design system project information

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.

Be sure to include the https:// in your URL copy

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:

→

→

2. Generate an access token

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!


Configuring Tokens Studio Plugin

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

Add credentials for 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

The Access token you saved from

3. Design System URL

The URL of your design system project

  • 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.

The mapping structure is important!

Its essential to have the correct mapping structure, so copy/paste the configuration as outlined in the, including the square brackets [ ].

Example mapping configuration:

If you want to map multiple themes at once, then you can check out the Supernova docs on connecting to the plugin .

Save and do the initial sync

Save to confirm your credentials, and then follow the plugin's prompts to finish setting up the Supernova sync.


Shared source of truth

As you work in the plugin, push and pull indicators remind you to stay in sync with Supernova.


Limitations from 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.

Customer support

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.

  • In the , we have a channel moderated by the Supernova team.

  • 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!


Resources

Mentioned in this doc:

  • Supernova -

  • Supernova -

  • SD-Transforms -

  • Style Dictionary -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • 🧑‍💻

    • How might we improve the experience of working with sync providers in general?

  • ↕️

  • 🔐

Supported Token Types
Supported Token Types

Select the Token Type card below to jump to its guide.

1

All

Apply the Token value to the horizontal and vertical size of the design element.

2

Width

Apply the Token value to the horizontal size of the design element only.

3

Height

Apply the Token value to the vertical size of the design element only.

4

Min Width

Apply the Token value to set the smallest allowed horizontal size of an auto-layout frame.

5

Max Width

Apply the Token value to set the largest allowed horizontal size of an auto-layout frame.

6

Min Height

Apply the Token value to set the smallest allowed vertical size of an auto-layout frame.

7

Max Height

Apply the Token value to set the largest allowed vertical size of an auto-layout frame.

1

Gap

Apply the Token value to the space between child elements within an auto-layout frame.

2

All

Apply the Token value to padding on all sides of the parent container, and the space between child elements within an auto-layout frame.

3

Horizontal padding

Apply the Token value to the space between the border and child elements on the left and right sides an auto-layout frame.

4

Vertical padding

Apply the Token value to the space between the border and child elements on the top and bottom sides an auto-layout frame.

5

Row Gap

Apply the Token value to the space between rows of child elements in auto-layout frames set to wrap.

6

Top

Apply the Token value to padding on the highest side of an auto-layout frame on the X-axis only.

7

Right

Apply the Token value to padding on the right side of an auto-layout frame on the y-axis only.

8

Bottom

Apply the Token value to padding on the lowest side of an auto-layout frame on the X-axis only.

9

Left

Apply the Token value to padding on the left side of an auto-layout frame on the y-axis only.

There is no immediate plan to discontinue support of unofficial Token Types.

We want to build a thoughtful solution to help Tokens Studio users migrate from these 'unofficial Token Types' to Dimension Tokens if that time comes.

→ Conversation forum on Unofficial Token Types is here.

Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Manage Sync Providers
Sync Changes to Remote Storage - Push and Pull
Token Types

The plugin remembers most of your settings across all Figma files!

For settings that change by project, like your active Sync Provider, you'll want to check the Settings Page each time you open the plugin in a new Figma file.

📸 ADD IMAGE 📸

Manage Sync Providers
Sync Changes to Remote Storage - Push and Pull
Token Types

The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.

Manage Sync Providers
Sync Changes to Remote Storage - Push and Pull
Token Types

The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.

Manage Sync Providers
Sync Changes to Remote Storage - Push and Pull
Token Types

The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.

Using Math in Token Values
Token Values with References
1

All

Apply the Token value to the horizontal and vertical size of the design element.

2

Width

Apply the Token value to the horizontal size of the design element only.

3

Height

Apply the Token value to the vertical size of the design element only.

4

Min Width

Apply the Token value to set the smallest allowed horizontal size of an auto-layout frame.

5

Max Width

Apply the Token value to set the largest allowed horizontal size of an auto-layout frame.

6

Min Height

Apply the Token value to set the smallest allowed vertical size of an auto-layout frame.

7

Max Height

Apply the Token value to set the largest allowed vertical size of an auto-layout frame.

tokens
tokens.json
github.hyma.com
GitHub
https://GitHub.com/
Create a new repository
GitHub account settings
step 2 above
you recorded in step 1 above
Github
Read Me
https://styledictionary.com/
Open issues for Github Sync
#2320
Sync to external token storage enhancements - Feature Request
Git sync enhancements - push, pull, merge, branching - Feature Request
Data security info request - Feature Request

Read the Sync Changes guide for more details

→ Read the Add New Sync Provider guide for more details.

Read the Sync Changes guide for more details

The various Token Types supported by Tokens Studio have unique transforms to be aware of.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

The Multi-file sync to remote storage feature requires a for Tokens Studio. Read the guide for more details.

Lighten

Increases the lightness (luminosity) of the base color by your chosen value.

Darken

Reduces the lightness (luminosity) of the base color by your chosen value.

Alpha

Adjusts the opacity of the base color by your chosen value, often reducing it to make the color more transparent.

Mix

Combines your base color with another color, allowing you to control the proportion of each color in the mix.

↓ More details below
8.1 Color
→ We'd love to hear your thoughts on this! Join the conversation on Featurebase.
SD-Transforms Read-Me doc, ts/color/modifiers
→ SD-Transforms Read-Me doc, options
https://colorjs.io/docs/
Read Me
https://styledictionary.com/
W3C Draft
8.1 Color
Manage color profiles in Figma
Color Space Glossary
Color Gamut
Creating a color ramp using color modifiers in Tokens Studio
Open issues for Token Type Color Modifiers
#2946
#2945
#2668
Community Post
Creating a new Modified Color Token in the Tokens Studio Plugin for Figma.
With a Color Token form open, selecting the swatch to the left of the Value input opens the color picker in the Plugin. Select the + icon next to the Modify label to use the Color Modifier feature.

Jump to the guide on Exporting Tokens to Figma by selecting the card below to learn more.

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

[
    {
        "tokenSets": ["global", "light"],
        "supernovaBrand": "Default"
    }
]
Supernova
a Git provider
https://supernova.io/
Basic mapping documentation on the Supernova site
Advanced mapping for working with themes and multiple brands on the Supernova site
step 2 above.
from step 1 above
Supernova docs precisely
here
Read the Supernova docs here.
Tokens Studio community slack
#supernove-sync
https://www.supernova.io/
Tokens Studio sync documentation
Read Me
https://styledictionary.com/
Open issues for Sync Supernova
Sync to external token storage enhancements - Feature Request
Git sync enhancements - push, pull, merge, branching - Feature Request
Data security info request - Feature Request

→ Read the Add New Sync Provider guide for more details.

Read the Sync Changes guide for more details

The various Token Types supported by Tokens Studio have unique transforms to be aware of.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Export to Figma Guide

Export to Figma guide

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.

Supported Token Types

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.

Token Type
Variable Type
Style Type
Notes

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).

How it works

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.

Select the Export Styles and Variables from the Tokens page to configure the Options.

Export to Figma options

The Export to Figma Options menu is annotated to match the descriptions below.

The Export to Figma options allow you to make some key configurations:

  1. Export your Tokens as Variables, Styles or both.

    • Define which types of variables you want to export.

  2. Choose any Style specific settings.

    • Style name modifications.

    • Style values with variable references.

  3. Choose any update-specific settings.

    • Token name changes.

    • Remove styles and variables no longer connected to a token.

→ Read the Export to Figma Options guide for details and troubleshooting tips

Choose to export from Themes or Token Sets

Depending on your Tokens Studio licence and your Token Structure, you can choose to export to Figma connected to Themes or Token Sets.

Once you've confirmed your Export Options, the Plugin brings you the place where you select which Tokens to export.

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

→ Read the Export to Figma from Themes guide for detailed instructions.

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.

→ Read the Export to Figma from Token Sets guide for detailed instructions.

Once you've confirmed your selection, the Styles or Variables you selected will be Exported to Figma.


Skipped Tokens

There are some exceptions where the plugin has to 'skip' exporting some of your Tokens to variables.

→ Read the Skipped Variables guide for more details.

Styles with Variable references

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.

→ Read the Styles with Variable References guide for detailed instructions.


Resources

Figma resources:

  • Design in Figma - Overview of Variable Collections and Modes

Community resources:

  • The Tokens Studio collection of Variable videos - YouTube Playlist

  • Our friends at UI Collective have free learning resources on Variables - YouTube Playlist

💡 Something to share?

Known issues and bugs

  • Tokens Studio Plugin GitHub - [Open issues for Figma export](Tokens Studio Plugin GitHub - Open issues for Figma export)

🐞 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 [email protected]

Requests, roadmap and changelog

  • Add support for scoping and publishing variables and styles - Feature Request

  • Ignore parts of the token name for variables and styles - Feature Request

  • Theme Switcher for non-DS designers so I don't need variables anymore - Feature Request

  • Tokens applied with Figma UI as Styles or Variables are Fragile - Feature Request

  • Create Variable Collections With The Plugin's Order of Themes - Feature Request (blocked by Figma)

  • Show updated number of Variables (or styles) when exporting to Figma with updated values - Feature Request

💌 Visit to contribute or subscribe to updates.

Import Variables from Figma

Import Variables

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.

The Tokens Studio Plugin beside Figma Variables with annotations visualizing how the two are connected. More details below.

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 Plugin

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.

A new Tokens Studio project screen is next to the Plugin's empty state, with the Styles and Variables menu open. Annotations highlight the user flow to start the Import Variables process.

From the Styles and Variables menu

  • Choose the Import Variables action.

  • The Import Variables Modal appears with two options.

Import Variables options

The Import Variables Modal appears with two options which tell the plugin how to import Number Variables.

  1. Convert numbers to dimensions.

  2. Use rem for dimension values.

The Tokens page of the Plugin is shown on the left, and the Styles & Variables menu is opened. The annotations show that the Import Variables were selected to open the Import Variable Options shown on the right. The Import Variables options are annotated with numbers that match the descriptions below.

1. Convert numbers to dimensions

When the Convert numbers to dimensions option is disabled (empty checkbox) the plugin will create all Number Variables with a Token Type of Number.

With no Import Variable Options selected, the Tokens created in the Plugin are displayed on the right side. Hovering on the spacing.largeToken shows a value of 24and 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.

With the first Option selected, the Tokens created in the Plugin are displayed on the right side. Hovering on the spacing.largeToken shows a value of 24pxand 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.

→ Read the Number Token guide for more details

2. Use rem for dimension values.

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.

With both Import Variable Options selected, the Tokens created in the Plugin are displayed on the right side. Hovering on the spacing.largeToken shows a value of 1.5rem a Token Type of Dimension.

Base font size setting

The value of 1rem must be configured on the plugin's Settings page for this setting to work as expected.

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.

From the Settings page of the Plugin, select the Change button next to the Base Font Size setting to define a value.

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.

→ Read the Base Font Size guide for more details

Confirm the Variables to Import

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.

Once the Import Variables Options are confirmed, the Plugin shows the Tokens that will be created or edited based on the settings. The example on the left side shows new Tokens to be created, the example on the right side shows existing Tokens with different values.

There are a few ways to select what to Import from this list.

  1. 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.

  2. 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.

  3. 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.

  4. Select the plus icon button on the right side of any Variable name to create or update a single Token.

  5. 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.


Token structure of imported Variables

  1. Collection = Token Set folder name.

  2. Mode = Token Set

  3. 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.

Figma Variable Collection beside the Tokens Page in the Plugin. The numbered annotations show the relationship between Variable Collection names and Token Set names.

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.

Figma Variable Collection beside the Tokens Page in the Plugin. The numbered annotations show the relationship between Variable Mode names and Token Set names.

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.

Figma Variable Collection beside the Tokens Page in the Plugin. The annotations show the relationship between Variable names and Token names.

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 .

The plugin with Token Sets created after importing a Variable collection with a single mode.

Troubleshooting

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.

To solve, you need to configure the Base font size setting in the Plugin (step 2 above ↑)

Once the Import Variables Options are confirmed, the Plugin shows the Tokens that will be created or edited based on the settings. The example on the left side shows new Tokens to be created with the expected values. The example on the right side shows unexpected values that are not being calculated.

Maintaining Tokens attached to Variables

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.

Updating Variables in Figma

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.

Names are the ID's connecting Variables and Tokens! The name is the ID of the decision, and it's part of how the Plugin knows which Token is attached to which Variable.

When the name changes in Figma, the plugin struggles to identify where it is attached.

Updating Tokens in the Plugin

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.

→ Learn more about Themes (pro)

The process has a few steps to be aware of, outlined in its own guide.


Known Limitations

There are some known limitations of importing Variables to be aware of.

All Variables imported share the same configuration

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:

  1. 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.

  2. 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.

Importing Styles backed by Variables is not yet supported

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.


Up next

If this is your first time working with Tokens Studio to manage your Variables, you might want to check out these guides:


Resources

Figma resources:

  • Design in Figma - Overview of Variable Collections and Modes

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Border

  • None yet

🐞 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 [email protected]

Requests, roadmap and changelog

  • None

💌 Visit to contribute or subscribe to updates.

Spacing

Spacing - Token Type

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.

The W3C DTCG specification does not recognize Spacing as an 'official token type' and instead has defined Dimension Tokens as the preferred token for space-related design decisions.

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.

There is no immediate plan to discontinue support of the Spacing Token Type.

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 detailed below↓.

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.

→ Conversation forum on Unofficial Token Types is here.

Creating a new Spacing Token in the Tokens Studio Plugin for Figma.

Design decisions

Spacing defines the distance between design elements.


Possible values

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.

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.

Hard-coded values

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:

1rem

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.

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 .

Pixel units (px)

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.

AUTO as a value

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.

It's important that you write this value in all caps AUTO

Values in lowercase or titlecase will not work as expected.

Values that reference another Token

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

However, like all Token Types, you can "force" a reference by manually entering the Token Name between curly brackets.

For example {token.name.here}

The value will show a broken reference until the originating Token Set is marked as enabled.

Jump to the guide on Token Values with References by selecting the card below to learn more.

Multiple values

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.

→ Read the guide on Skipped Variables for more details.


Apply Spacing Tokens

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.

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. More details above. ↑

The right-click menu of a Sizing Token is open to reveal the design properties it can be applied to in Figma.

1

Gap

Apply the Token value to the space between child elements within an auto-layout frame.

2

All

Apply the Token value to padding on all sides of the parent container, and the space between child elements within an auto-layout frame.

3

Horizontal padding

Apply the Token value to the space between the border and child elements on the left and right sides an auto-layout frame.

4

Vertical padding

Apply the Token value to the space between the border and child elements on the top and bottom sides an auto-layout frame.

5

Row Gap

Apply the Token value to the space between rows of child elements in auto-layout frames set to wrap.

6

Top

Apply the Token value to padding on the highest side of an auto-layout frame on the X-axis only.

7

Right

Apply the Token value to padding on the right side of an auto-layout frame on the y-axis only.

8

Bottom

Apply the Token value to padding on the lowest side of an auto-layout frame on the X-axis only.

9

Left

Apply the Token value to padding on the left side of an auto-layout frame on the y-axis only.

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 Spacing Tokens to have multiple values.

Once a Token has been applied, it will remain attached until you manually remove it.


Transforming Tokens

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.

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.

→ SD-Transforms Read-Me Doc, Using the preprocessor

Token Values entered as a number without a unit will be converted to a number with pixels as a unit.

→ SD-Transforms Read-Me Doc, ts/size/px


Resources

Mentioned in this doc:

  • SD-Transforms - Read Me

  • Style Dictionary - Read Me

  • Design Tokens Community Group - W3C Draft

  • Design Tokens Community Group - 8.0 Types

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Token Type Spacing

  • AUTO Value is Created as '0' in Variables #2916

    • Exporting to variables when the Spacing Token value is AUTO creates a 0 value.

🐞 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 [email protected]

Requests, roadmap and changelog

  • W3C DTCG Spec - Unofficial Token Types - Conversation Forum

💌 Visit to contribute or subscribe to updates.

1

All

Apply the Token value to the horizontal and vertical size of the design element.

2

Width

Apply the Token value to the horizontal size of the design element only.

3

Height

Apply the Token value to the vertical size of the design element only.

4

Min Width

Apply the Token value to set the smallest allowed horizontal size of an auto-layout frame.

5

Max Width

Apply the Token value to set the largest allowed horizontal size of an auto-layout frame.

6

Min Height

Apply the Token value to set the smallest allowed vertical size of an auto-layout frame.

7

Max Height

Apply the Token value to set the largest allowed vertical size of an auto-layout frame.

1

Gap

Apply the Token value to the space between child elements within an auto-layout frame.

2

All

Apply the Token value to padding on all sides of the parent container, and the space between child elements within an auto-layout frame.

3

Horizontal padding

Apply the Token value to the space between the border and child elements on the left and right sides an auto-layout frame.

4

Vertical padding

Apply the Token value to the space between the border and child elements on the top and bottom sides an auto-layout frame.

5

Row Gap

Apply the Token value to the space between rows of child elements in auto-layout frames set to wrap.

6

Top

Apply the Token value to padding on the highest side of an auto-layout frame on the X-axis only.

7

Right

Apply the Token value to padding on the right side of an auto-layout frame on the y-axis only.

8

Bottom

Apply the Token value to padding on the lowest side of an auto-layout frame on the X-axis only.

9

Left

Apply the Token value to padding on the left side of an auto-layout frame on the y-axis only.

There is no immediate plan to discontinue support of unofficial Token Types.

We want to build a thoughtful solution to help Tokens Studio users migrate from these 'unofficial Token Types' to Dimension Tokens if that time comes.

→ Conversation forum on Unofficial Token Types is here.

Token Types

Token Types in Tokens Studio

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.

You might recall from our that the type determines what Values are acceptable.

Tokens Studio (TS) supports 24 unique Token Types.

Before you jump into the technical docs for each Token Type, you may want to review the that will help strengthen your knowledge.


Common Terms

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

Official Token Types are listed in the

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.

Tokens Studio will continue to support unofficial Token Types for now. We've already built a conversion into our SD-transforms script; .

Any Token Types we are planning to deprecate will be listed as legacy.

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 fontWeightare 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.


Working with Token Types

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.

Transforming Tokens

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.

→


Available Token Types

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.

Common Name
W3C DTCG Official
Composite
TS JSON Type
SD Type
DTCG Type


Resources

Mentioned in this doc:

  • SD-Transforms -

  • Style Dictionary -

  • Design Tokens Community Group -

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

Tokens Studio Plugin GitHub -

Tokens Studio Plugin GitHub -

  • Remove composition tokens

Requests, roadmap and changelog

  • Expand Token Types -

Token Sets

Token Sets in Tokens Studio

Token Sets are where our Design Tokens live in the Tokens Studio Plugin.

In code, , so you can think of a Token Set as the no-code version of a JSON file.

There is no limit to the number of Tokens that live in a Token Set.

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.

You can change size of the Token Set list by dragging on the separator between the Token Set list and the Tokens list.


Anatomy of a Token Set

On the Tokens page of the Plugin, Token Sets are listed in the left-side navigation panel.

A Token Set in the plugin has:

  1. A unique name.

  2. A status.

    • Indicated by a checkbox next to its name.

  3. 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.

To resize the left side panel, hover on the right right of the panel until the arrow icon appears.

Select and drag the side of the panel to the size you desire.


1. Name

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.

Flat or folder names

There are 2 different ways you can write your Token Set Names:

  1. Flat names appear in a list.

  2. 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.

You can also create nested folders within your folder names, which might be helpful as the number of Token Sets increases.

In the Token Set name examples below, the left has a flat name brands-berry and the right has a folder name brands/berry.

Rename Token Set

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.


2. Status

The Status of the Token Set is indicated by the checkbox next to its name:

  1. Enabled - Checkmark is visible.

  2. Disabled - Checkbox is empty.

  3. 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.

1. Enabled status - Checkmark visible

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.

2. Disabled - checkbox is empty

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.

3. Set as Source - circle is visible

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.


3. Postion

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.

The lowest Token Set always 'wins'.

This allows for a cascading system of defaults and overrides, similar to CSS specificity.

Reorder Token Sets

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.

Known Issue with reordering sets

Occasionally while using the drag-and-drop feature to change the order of Token Sets (or Themes) the UI will not behave as expected.


Token Set visibility

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.


Create a new Token Set

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.

  • The new Token Set will appear at the bottom of your list or folder, depending on if you used flat or folder names ().

Duplicate an existing Token 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.

Delete a Token Set

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.

You can delete, duplicate, or rename any Token Set regardless of its status or which Token Set you are currently viewing in the plugin.


Syncing Token Sets to a remote storage provider

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.


Frequently asked questions

Select a question below to view the answer.

Should I have more Token Sets or keep everything in the as few Token Sets as possible?

How you organize your Token Sets is a personal preference that design systems maintainers and engineers often make together. Some things to consider:

  • The number of Tokens can add up for large component libraries, so breaking them up into multiple Token Sets can make it easier to find what you are looking for.

  • Using folder names helps keep a large number of Token Sets organized.

  • Engineers will combine all Token Sets into one large list of Tokens during the Transformation part of the Token Process, so if it helps you as the person working in the Plugin to have more Token Sets, go for it.

  • You need multiple Token Sets to take advantage of Theming, like the examples above for multiple brands

Do my Token Set names have to match my Theme names?

Technically no. Naming is a personal choice. However, you may find it easier to navigate through your Token project as it scales if you are thoughtful with the naming structure of your Themes, Sets, and Tokens.


Resources

Mentioned in this doc:

  • Design Tokens Community Group -

Community resources:

  • None yet!

Known issues and bugs

  • Tokens Studio Plugin GitHub -

  • Tokens Studio Plugin GitHub -

  • Tokens Studio Plugin GitHub -

  • Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • Enhance Token and Token Set Organization -

  • Import Read Only Token Sets -

Styles with Variable References

Styles with Variable References

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.


How it works

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.

1. Token setup

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.

For Color Styles, you may need to split the Tokens being exported as Styles in a separate Token Set from the Tokens referenced in the value which are to be exported as Variables as the Plugin only supports exporting entire Sets or Themes to Figma.

2. Create the Variables being referenced.

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.

Pay close attention to your and ensure the Tokens you want to export as Styles are NOT exported as Variables.

The plugin can only attach a Token by name to a Style or Variable, not both.

If needed, delete and detach any Variables you want to be created as styles.

3. Create the 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.

Export from Themes (pro)

If you are , navigate to the Themes feature in the plugin.

  • 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!

Export from Token Sets

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.


4. Troubleshooting

Here are the common issues you might run into the first couple of times you try this process.

Styles created with the correct values but not attached to Variables

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.

Check your Token Values -

  • 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

Check your Export Options -

Ensure the Create Styles with Variable references option is enabled

Styles created with empty values

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.

Check your Theme and Token Set configuration outlined in

  • 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

Styles created with partial values attached to Variables

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.


Resources

Figma resources:

  • Design in Figma -

Community resources:

  • The Tokens Studio collection of Variable videos -

  • Our friends at have free learning resources on Variables -

Known issues and bugs

  • Tokens Studio Plugin GitHub -

  • Tokens Studio Plugin GitHub -

  • Tokens Studio Plugin GitHub -

Requests, roadmap and changelog

  • 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 -

Export to Figma Guide
Manage Sync Providers
Sync Changes to Remote Storage - Push and Pull
Token Types
Boolean
Text
Color
Color - Gradient
Color - Modified (pro)
Opacity
Dimension
Number
Spacing
Sizing
Border Width
Border Radius
Border (composite)
Box Shadow (composite)
Typography (composite)
Font Family
Font Weight
Font Size
Line Height
Letter Spacing
Paragraph Spacing
Text Case
Text Decoration
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/

This feature requires a Pro Licence for Tokens Studio. If you are using this feature with a Free licence, you may be locked into read-only access to the feature.

Pro Licence

We suggest setting your Token storage as the folder option when possible. If you use the Themes feature in Tokens Studio and your engineers are consuming your Tokens from your Git provider, they require Tokens stored in a folder for the transformation process to work properly.

Multi-file Sync to Remote Storage (pro)
Pro Licence

We suggest setting your Token storage as the folder option when possible. If you use the Themes feature in Tokens Studio and your engineers are consuming your Tokens from your Git provider, they require Tokens stored in a folder for the transformation process to work properly.

Multi-file Sync to Remote Storage (pro)
Pro Licence

We suggest setting your Token storage as the folder option when possible. If you use the Themes feature in Tokens Studio and your engineers are consuming your Tokens from your Git provider, they require Tokens stored in a folder for the transformation process to work properly.

Multi-file Sync to Remote Storage (pro)
Sync Changes to Remote Storage - Push and Pull
Manage Sync Providers
Sync Changes to Remote Storage - Push and Pull
Token Types
Pro Licence

We suggest setting your Token storage as the folder option when possible. If you use the Themes feature in Tokens Studio and your engineers are consuming your Tokens from your Git provider, they require Tokens stored in a folder for the transformation process to work properly.

Multi-file Sync to Remote Storage (pro)
Connect Themes to Imported Variables
Styles with Variable References
Imported Variable Types and Token Types

Variables in Tokens Studio

Nuances of managing Tokens connected to Variables in the Plugin.

Non-local Variables and Styles

Keep Variables connected across multiple Figma files.

Export to Figma

Push updates to Tokens connected to Variables in Figma.

Connect Themes to Variables

Steps to use Tokens Studio to manage Variables.

Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Cover
Cover
Cover
Dimension

Spacing Tokens can be attached to Number Variables in Figma.

plugin settings for Base Font Size
Style Dictionary
@Tokens-studio/sd-transforms
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/
Cover
Using Math in Token Values
Token Values with References

If you apply the Token to a frame before auto-layout is applied in Figma, you may have to remove and re-apply the Token after auto-layout has been enabled for the Token Value to apply as expected.

→

Color Token

✓

Can be a Property of border, shadow

color

color

color

Typography Token

✓

Composite

typography

typography

typography

Font Family Token

✓

Property of typography

fontFamilies and fontFamily

fontFamily

fontFamily

Font Weight Token

✓

Property of typography

fontWeights and fontWeight

fontWeight

fontWeight

Font Size Token

✓

Property of typography

fontSizes and fontSize

fontSize

fontSize

Line Height Token

✓

Property of typography

lineHeights and lineHeight

lineHeight

NA

Letter Spacing Token

✓

Property of typography

letterSpacing

dimension

dimension

Paragraph Spacing Token

X

Property of typography (in TS, not DTCG)

paragraphSpacing

dimension

dimension

Text Case Token

X

Property of typography (in TS, not DTCG)

textCase

textCase

NA

Text Decoration Token

X

Property of typography (in TS, not DTCG)

textDecoration

textDecoration

NA

Dimension Token

✓

Can be a Property of border, shadow, typography

dimension

dimension

dimension

Number Token

✓

number

number

number

Border Token

✓

Composite

border

border

border

Box Shadow Token

✓

Composite

boxShadow

shadow

shadow

Border Radius Token

X

borderRadius

dimension

dimension

Border Width Token

X

borderWidth

dimension

dimension

Spacing Token

X

spacing

dimension

dimension

Sizing Token

X

sizing

dimension

dimension

Asset Token

X

asset

asset

NA

Boolean Token

X

boolean

boolean

NA

Text Token

X

text

content

NA

Other Token

X

other

other

NA

Opacity Token

X

opacity

opacity

NA

Composition Token

X

composition

each type in the composition is added individually

NA

Intro to Design Tokens Guide
common terms and concepts below
W3C Design Tokens Community Group (DTCG) Specifications for Design Tokens
more details are below ↓
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
https://styledictionary.com/
W3C Draft
8.0 Token Types
Open issues for Transforming Token Types
Open issues for Token Type Support
#2800
Feature request
In this infographic, the Token examples on the right side highlight the Type. Both code blocks have coloras the Token Type.
Cover

Color

Layer fill and stroke.

Cover

Opacity

Defines layer transparency.

Cover

Box Shadow - Composite

X, Y, Blur, Spread, and Color.

Cover

Border - Composite

Stroke color, width and style.

Cover

Asset

URL hosted images and assets.

Cover

Boolean

Controls layer visibility.

Cover

Number

Unitless numeric value.

Cover

Dimension

Numeric value with pixel or rem units.

Cover

Border Radius

Unofficial Token converted to a Dimension Token.

Cover

Border Width

Unofficial Token converted to a Dimension Token.

Cover

Sizing

Unofficial Token converted to a Dimension Token.

Cover

Spacing

Unofficial Token converted to a Dimension Token.

Cover

Text (string)

Strings of text for copy and content.

Cover

Typography (composite)

All text and font styling properties combined.

Cover

Font Size

Define in pixel or rem values for responsive design.

Cover

Font Family

Works with Font Weight as a pair in Figma.

Cover

Font Weight

Works with Font Family as a pair in Figma.

Cover

Line Height

Define in percentage for responsive design in Figma.

Cover

Letter Spacing

Define in percentage for responsive design in Figma.

Cover

Paragraph Spacing

Matches Figma's text property.

Cover

Paragraph Indent

Defined as a Dimension Token.

Cover

Text Decoration

Define underline or strike for additional emphasis.

Cover

Text Case

Define caps or title case to change text.

The Tokens page of the Tokens Studio Plugin shows all Token Types supported. The list is quite long, so the page is scrolled and shown side-by-side to capture them all.
The Geko in this infographic represents Style Dictionary.

Select the Token Type card below to jump to its guide.

→ Read the Token Values with References guide for more details

Engineers typically transform Tokens used in code with Style Dictionary, which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: @Tokens-studio/sd-transforms, an npm package that prepares Tokens for Style Dictionary.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Tokens live in JSON files
→ Read the Token Naming technical specification guide for more details.
→ Jump to the guide on Token Values with References for more details.
see above for more details ↑
4.0 File Format
Open issues for Token Sets
Open issues for Duplicating Token Sets
Open issues for Reorder Token Sets
Open issues for Naming Token Sets
Feature Request
Feature Request
In Tokens Studio, a Token Set is the no-code version of a JSON file.
Select the Toggle on the top right side of the Tokens Page in the Plugin to access the JSON view.
The anatomy of a Token Set is annotated with numbers that match the properties below.
Two projects side by side. On the left, the Token Set names are flat
Right-click on any Token Set name to open it's action menu. Selecting Rename will open a form to make changes.
The Token Set status' are annotated with numbers that match its description below.
Component-specific Tokens with values that reference Tokens from the Theme Token Sets are shown. The resolved values change based on the position of the Theme Token Sets.
A side-by-side view of the Tokens Page with the left sidebar of Token Sets collapsed on the right side and expanded on the left side. The control to toggle this view is highlighted.
The New (Token) Set button in the plugin is highlighted on the left with the form that opens once the button is pressed on the right.
Right-click on any Token Set name to open it's action menu. Selecting Duplicate will open a form to make changes, similar to the example on the right side.
Right-click on any Token Set name to open it's action menu. Selecting Duplicate will open a form to make changes, similar to the example on the right side.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Sync Changes to Remote Storage - Push and Pull
Token setup in the Plugin.
Create the Variables connected to the Tokens being referenced in the Styles.
Create the Styles.
Troubleshooting
→ Read the Token Values with References guide for more details
Export Options
→ Jump to the Detach Styles and Variables guide for more details
→ If your Variables live in a different Figma file, you may want to check out the Non-Local Variables guide for those specific steps.
Exporting your Tokens from Themes
↓ If you have unexpected results, read the Troubleshooting section below.
Step 1 Above ↑
Step 3 Above ↑
Step 3 Above ↑
Read the Export to Figma Overview for a list of compatible Token Types
Read the Export to Figma Skipped Variables guide for reasons why certain Values may not be referenced properly.
Overview of Variable Collections and Modes
YouTube Playlist
UI Collective
YouTube Playlist
Open issues Styles with Variable reference
Open issues for Figma Variables
Open issues for Figma Styles
Feature Request
Feature Request
Feature Request
Feature Request
Feature Request (blocked by Figma)
Feature Request
Cover

Color Tokens

Can be exported as Color Styles.

Cover

Typography Tokens

Can be exported as Text Styles

Cover

Box Shadow Tokens

Can be exported as Effect Styles

Select the Export Styles and Variables from the Tokens page to configure the Options. Be sure the Variable types are selected and no Styles are selected.
Once you've confirmed your Export Options, the Plugin brings you the place where you select which Tokens to export.
Select the Export Styles and Variables from the Tokens page to configure the Options. Be sure the Toggle for Create styles with variable referencesis enabled.
After the Export Options are confirmed, all previously created Themes are displayed. In this example, only the mode/darkTheme is selected (checkmark visible) for export. The Options button is highlighted to show how to open the menu.
Select the Export Styles and Variables from the Tokens page to configure the Options. Be sure the Toggle for Create styles with variable referencesis enabled.
Pressing the Change Sets modal opens the list of all Sets. Adjusting the Set Status tells the plugin how to export the Tokens living within each set.
A Text Style created with Variable References from the Plugin will leave properties with percentage values attached to the Token value and not a Variable. The remaining text properties will be attached to Variables.
Cover

Color Tokens

Specifics on exporting as Color Styles with Variable References.

Cover

Typography Tokens

Specifics on exporting as Text Styles with Variable References.

Cover

Box Shadow Tokens

Specifics on exporting as Effects Styles with Variable References.

Cover

Export to Figma Guide

A comprehensive list of Token Types and their compatible Variable Types.

Cover

Skipped Variables

Detailed reasons why not all Tokens can be Exported as Variables.

Cover

Export from Themes (pro)

Review the steps of Exporting to Figma from Themes.

Cover

Export from Token Sets

Review the steps of Exporting to Figma from Token Sets.

Cover

Export Options

Review what each Export Option does in detail.

Cover

Non-local Variables and Styles.

Steps for when your Variables live in a different Figma file.

💡 Something to share? Submit it here!

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our community Slack, submit it on our feedback tool, or send us an email [email protected]

💌 Visit https://feedback.tokens.studio/ to contribute or subscribe to updates.

Export to Figma Guide
Export to Figma Guide

→ Jump to the Dimension Token technical docs by selecting the card below.

If you apply the Token to a frame before auto-layout is applied in Figma, you may have to remove and re-apply the Token after auto-layout has been enabled for the Token Value to apply as expected.

→

Read Figma's doc on Autolayout here
Read Figma's doc on Autolayout here
Token Values with References

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.

Dimension

Non-local Variables and Styles (pro)

Non-local Variables and Styles

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.


Requirements

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)

→ Jump to the Sync Provider guide for more details.

Figma Community Files

To follow along this guide, you can duplicate a copy of the Figma playground file used in the images and videos below.

🔗 Non-local Variables Playground File by Tokens Studio - Figma Community


Common terms

Here are some terms you'll see in our docs about this feature.

Local styles/variables

Local styles and variables are attached to Tokens in the current Figma file in which you are working.

Non-local styles/variables

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.

→ Read the Export to Figma guide for more details

Primitive Tokens

We refer to Tokens with hard-coded values as Primitive Tokens

Decision Tokens

We refer to Tokens with values that reference another Token as a Decision Token as the new name, or alias, describes how the design decision is intended to be used in the system.

The image below shows an example of both Primitive (left) and Decision Tokens (right) in the Plugin.

Theme

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.

Theme group

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.

The Tokens Page in the Plugin with the Themes Menu Open next to a Variable Collection in Figma. The annotations show the relationship between Variable Collection and Theme Group Names as well as Variable Modes and Theme Names.

1. Theme setup

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.

Pro Tip - Diagram your Token structure and Figma file structure

You may want to map out the flow of information between the themes in your Token Structure and which Figma file you want each to live in so you have a high level visual to reference as you set things up.

In this guide, we will assume Primitive Tokens are referenced inside Decision Tokens for a single brand, with a light and dark color mode.

Theme Group 1 - Primitives

  • 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).

Theme Group 2 - Brand

  • 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)

Theme Group 3 - Themes

  • 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.

→ Read the Sync Changes to Remote Storage guide for more details

2. Figma File Setup

Now that Themes are ready, we will start Exporting them to our Figma Files. Each file you setup requires the same basic steps:

  1. Pull Tokens into the Figma file from your remote Token storage provider.

  2. Export the desired Theme Group to Figma as Variables.

  3. Sync your updates to your remote Token storage provider.

  4. Publish the Figma library.

  5. Navigate to the next Figma file and enable all related published Figma libraries in the new file and repeat the process.

→ If you get stuck at any point in this step, check out the Export to Figma from Themes guide for more details and troubleshooting.

File 1 - Primitives

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.

Export to Figma from Themes

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.

The screenshot on the left shows the Tokens page of the Plugin with the Styles and Variables menu open. The Export to Styles and Variables option is annotated. The Export Options that open next in the flow are pictured on the right with all variable options selected (checkmark visible).

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.

The screenshot on the left shows the Export to Figma from Themes in the Plugin with only a theme called primitives selected. The Export to Figma button is annotated. A screenshot of the newly created Variables collection in Figma is pictured on the right.

Sync Tokens to Remote Storage

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.

→ Read the guide for Syncing Changes to Remote Storage for more details on this process.

On the left, the plugin's Tokens page has the Push Changes to Remote Storage icon button annotated. On the right, the Push to Sync Provider modal is shown with a commit message that says "export primitive themes," and the push changes button is highlighted.

Publish your Figma File as a Shared Library

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.

The Figma UI is pictured with the book icon button on the left side of the interface annotated to open the Manage Libraries feature, shown in the middle. The current Figma file, Primitives, has the Publish button next to it highlighted.

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.

The Figma library publishing confirmation screen is pictured with a Variables collection called Primitives is selected (checkmark visible) and the publish button is annotated.

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.

File 2 - Brands

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.

In your Brands file and in the same way you published the primitive library, you can search the file and add the Primitive library to your Brands file

Export to Figma from Themes

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.

The screenshot on the left shows the Tokens page of the Plugin with the Styles and Variables menu open. The Export to Styles and Variables option is annotated. The Export Options that open next in the flow are pictured on the right with all variable options selected (checkmark visible).

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.

The screenshot on the left shows the Export to Figma from Themes in the Plugin with all brand themes selected. The Export to Figma button is annotated. On the right, a screenshot of the newly created Variables collection in Figma is pictured with mode names that match the theme names.

Sync Tokens to Remote Storage

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.

→ Read the guide for Syncing Changes to Remote Storage for more details on this process.

On the left, the plugin's Tokens page has the Push Changes to Remote Storage icon button annotated. On the right, the Push to Sync Provider modal is shown with a commit message that says "export brand variables," and the push changes button is highlighted.

Publish your Figma File as a Shared Library

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.

The Figma UI is pictured with the book icon button on the left side of the interface annotated to open the Manage Libraries feature, shown in the middle. The current Figma file, Brands, has the Publish button next to it highlighted.

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.

The Figma library publishing confirmation screen is pictured with a Variables collection called Brands is selected (checkmark visible) and the publish button is annotated.

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.

File 3 - Themes (color modes)

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.

In your Themes file and in the same way you published the primitive library, you can search the files and add the Primitive & Brands libraries to your Themes file

Export to Figma from Themes

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.

The screenshot on the left shows the Tokens page of the Plugin with the Styles and Variables menu open. The Export to Styles and Variables option is annotated. The Export Options that open next in the flow are pictured on the right with all variable options selected (checkmark visible).

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.

The screenshot on the left shows the Export to Figma from Themes in the Plugin with both color-mode themes selected. The Export to Figma button is annotated. On the right, a screenshot of the newly created Variables collection in Figma is pictured with mode names that match the theme names.

Sync Tokens to Remote Storage

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.

→ Read the guide for Syncing Changes to Remote Storage for more details on this process.

On the left, the plugin's Tokens page has the Push Changes to Remote Storage icon button annotated. On the right, the Push to Sync Provider modal is shown with a commit message that says "export primitive themes," and the push changes button is highlighted.

Publish your Figma File as a Shared Library

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.

The Figma UI is pictured with the book icon button on the left side of the interface annotated to open the Manage Libraries feature, shown in the middle. The current Figma file, Themes, has the Publish button next to it highlighted.

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.

The Figma library publishing confirmation screen is pictured with a Variables collection called Themes is selected (checkmark visible) and the publish button is annotated.

You are now finished the work in all 3 files in this example.

You can continue on this chain as often as necessary depending on your desired Figma file and Token Structure.


Limitations of non-local variables and styles

There are some known limitations when working with non-local variables in Figma using Tokens Studio.

Figma files need to be reloaded to receive new information

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.

Updates to be performed in their local 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.

  1. Once changes are made in the Plugin, repeat the Export to Figma steps with the same configurations to update the attached Variables.

  2. Sync your changes (updating a connect variable is a change) to your remote Token Storage provider.

  3. Use Figma's native library publishing feature to publish your library changes.

  4. 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.

Theme configuration with variables

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.


Resources

Figma resources:

  • Design in Figma - Overview of Variable Collections and Modes

Community resources:

  • Playground file for non-local variables by Tokens Studio - Figma Community

  • The Tokens Studio collection of Variable videos - YouTube Playlist

  • Our friends at UI Collective have free learning resources on Variables - YouTube Playlist

💡 Something to share?

Known issues and bugs

  • Tokens Studio Plugin GitHub - Open issues for Figma non-local styles variables

  • Tokens Studio Plugin GitHub - Open issues for Figma export - themes

  • Tokens Studio Plugin GitHub - Open issues for Figma Variables

  • Tokens Studio Plugin GitHub - Open issues for Figma Styles

🐞 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 [email protected]

Requests, roadmap and changelog

  • Add support for scoping and publishing variables and styles - Feature Request

  • Ignore parts of the token name for variables and styles - Feature Request

  • Theme Switcher for non-DS designers so I don't need variables anymore - Feature Request

  • Tokens applied with Figma UI as Styles or Variables are Fragile - Feature Request

  • Create Variable Collections With The Plugin's Order of Themes - Feature Request (blocked by Figma)

  • Show updated number of Variables (or styles) when exporting to Figma with updated values - Feature Request

💌 Visit to contribute or subscribe to updates.

Themes management
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/

Inspect Tokens

Inspect Tokens in the Plugin

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.

The way this page appears changes based on the elements you have currently selected on the Figma canvas.

→ Read Figma's guide on selecting layers and objects for more details.

The left side example shows how the Inspect page looks before selecting a Figma design element compared with the right side example, showing many Tokens applied to a selected layer in Figma.

There are three main sections on the Inspect Page visible when a design element is selected in Figma:

  1. Inspect Controls

  2. Token Actions

  3. Token List

The Inspect page of the Plugin is shown with its controls annotated with numbers that match the sections mentioned above.

1. Inspect Controls

The actions at the top of the Inspect Page control how the Plugin displays the Tokens being inspected below it:

A. Token Name Search

B. Deep Inspect

C. Inspect Options

D. Token View Toggle

The Inspect page of the Plugin is shown with its controls annotated with letters that match their detailed descriptions below.

A. Token Name Search

When you type in the search input, only the Design Tokens with names that match will appear in the Token list below.

Like the search feature on the Tokens Page, the results are limited to Token Name. The Token Type and names references in values are not included in the search.

The left example of the Inspect page of the Plugin shows a list of Tokens. The example on the right shows how entering in the search term "col" filters the Tokens listed below it to only those with that exact string in the Token Name.

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.

B. Deep Inspect

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 example on the left shows the Inspect page of the plugin with the Deep Inspect feature disabled (no checkmark) and a single Token listed below. The example on the right shows the Deep Inspect feature enabled (checkmark visible) and 4 Tokens listed 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.

Icons tend to be tricky with layers!

Color Tokens applied to style the vector path are always applied to the children layers, and when selecting the parent container without deep inspect enabled you might miss them! This is a common complaint in Dev Mode in Figma as well to be aware of!

C. Inspect Options

The Inspect Options menu contains some handy filters if you are working with design elements in Figma with lots of Tokens applied to them:

  1. 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.

  2. Show resolved references

    • Controls visibility of Tokens applied with no issues detected by the Plugin.

The example on the left shows the Inspect page of the plugin with a list of Tokens below, which includes a broken Token. The example on the right shows the Inspect Options menu open with the "show broken references" disabled (no checkmark), and the list of Tokens below does not include any broken Tokens.

For example you are only checking for Broken Tokens, you could deselect the show resolved referencesoption 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.

The example on the left shows the Inspect page of the plugin with a list of Tokens below, which includes a broken Token. The example on the right shows the Inspect Options menu open with the "show resolved references" disabled (no checkmark), and the list of Tokens below only shows the broken Token.

D. Token View Toggle

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 iicon button to toggle to the debug view.

With a card element selected in the Figma canvas in the middle, the Plugin screenshot on the left shows the Inspect page as the List view. The screenshot on the right shows the Inspect page in debug view. The controls to toggle between views are annotated.

Debug and Annotate

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.

With a card element selected in the Figma canvas on the lift, the Plugin screenshot on the right shows the Inspect page in the debug view. The controls to Add as an annotation on the bottom are highlighted to show the output from the plugin for the selected card element.

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. → Jump to the guide on Documentation Tokens for more details.


2. Token Actions

These actions allow you to interact with the Tokens listed below them:

A. Select All

B. Bulk Remap

C. Set to None

D. Remove Selected

You can perform bulk actions on more than on design element in Figma! Simply select everything in your design that you want the Plugin to inspect at the same time.

The Inspect page of the Plugin is shown with the Token Actions annotated with letters that match their detailed descriptions below.

A. Select All

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 left screenshot of the Inspect page of the plugin shows the Select all control as disabled (no checkmark), and one of the Tokens listed below has a checkmark visible. The example on the right shows how enabling the Select All control will change all Tokens listed below to have a checkmark visible next to their name.

B. Bulk Remap

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 remapped to after editing a Token's name.

The Bulk Remap modal allows you to match and replace strings of Token Names using the inputs:

  1. Match - the string you'd like the Plugin to find.

  2. Replace - the new string that will replace all instances the Plugin finds that match.

  3. 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.

→ Jump to the Remap Tokens guide for more details.

Selecting the Bulk Remap button on the Inspect page of the Plugin will open the Bulk Remap modal, pictured on the right, with numeric annotations to match the inputs described above.

C. Set to None

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.

Selecting the Set to none button on the Inspect page of the Plugin will change the value of the selected Token to "none" as pictured on the right.

D. Remove Selected

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.

Selecting the Remove selected button on the Inspect page of the Plugin will remove the Tokens with a checkmark next to them.

Limitations of removing Tokens

The Plugin can not remove Tokens from instances of components. You'll need to use the Set to None feature instead (↑ described above).

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.


3. Token List

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:

A. Design Property

B. Select Token Control

C. Value Preview

D. Token Application Symbol

E. Token Name

F. Figma Layer Actions

It's important to remember that the controls and actions above the Token List influence which Tokens you will see for the currently selected design element on the Figma canvas.

The Inspect page of the Plugin is shown with the Token List features annotated with letters that match their detailed descriptions below.

A. Design Property

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.

An example of the Inspect page of the Plugin shows a long list of Tokens with the design properties they were applied to highlighted.

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.

Design Property
Common Name
Token Types

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

,

B. Select Token

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.

An example of the Inspect page of the Plugin highlights the Bulk Actions after a Token in the list below has been enabled (checkmark visible).

C. Value Preview

Each Token Type will preview the Resolved Value 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 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).

  • 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 (↑ more details above).

Known Issue When values are long, sometimes the UI preview will appear visually broken or cut off.

An example of the Inspect page of the Plugin highlights the Token Values for several different Token Types described above.

D. Token Application Symbol

The Plugin will display a symbol next to the Token Name to indicate how it was applied to the design element.

  1. Applied with Tokens Studio - no symbol

  2. Applied as a Figma Style - 2 x 2 dots

  3. Applied as a Figma Variable - Hexagon

  4. Broken Token - Chain link with line through it.

  5. Value Set to None - Circle with a line through it.

An example of the Inspect page of the Plugin highlights the symbols for how Tokens were applied to the selected design element as described above.

E. Token Name

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.

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 (described below ↓).

→ Jump to the Remap Tokens guide for more details.

An example of the Inspect page of the Plugin shows how to open the remap feature by selecting the chevron next to the Name of a Token in the list.

F. Figma Layer Actions

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:

  1. Layer count - the number of layers the Token is applied to

    1. Selecting the layer count will open a list of the layer names.

  2. Layer navigation - will change the Plugin's current selected layers to the layers listed in the count to the left.

An example of the Inspect page of the Plugin shows the Figma Layer features. On the left, the layer selected feature is highlighted. On the right, the layer count is highlighted with an example showing a specific Figma layer name when the count is selected.


Resources

Mentioned in this doc:

  • Figma Learn - Select layers and objects

Community resources:

  • None yet!

💡 Something to share?

Known issues and bugs

Tokens Studio Plugin GitHub - Open issues for Inspect

Tokens Studio Plugin GitHub - Open issues for Deep Inspect

🐞 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 [email protected]

Requests, roadmap and changelog

  • None yet.

💌 Visit to contribute or subscribe to updates.

Remove Tokens from Figma elements
Asset
Dimension
Border
Border
Color
Border
Dimension
Border Radius
Dimension
Border Radius
Dimension
Border Radius
Dimension
Border Radius
Dimension
Border Radius
Border
Border
Dimension
Border Width
Dimension
Border Width
Dimension
Border Width
Dimension
Border Width
Dimension
Border Width
BoxShadow
Composition
Dimension
Spacing
Number
Documentation Tokens
Dimension
Color
Dimension
Sizing
Number
Dimension
Sizing
Number
Dimension
Sizing
Number
Dimension
Sizing
Number
Dimension
Sizing
Number
Dimension
Sizing
Number
Dimension
Sizing
Number
Number
Opacity
Dimension
Spacing
Number
Dimension
Spacing
Number
Dimension
Spacing
Number
Dimension
Spacing
Number
Number
Dimension
Sizing
Number
Dimension
Spacing
Number
Text
Text Decoration
Documentation Token
Documentation Token
Typography
Dimension
Spacing
Number
Documentation Token
Boolean
Dimension
Sizing
Number
Dimension
Number
Dimension
Number
Submit it here!
community Slack
submit it on our feedback tool
https://feedback.tokens.studio/