Tokens Studio for Figma
  • Getting Started
    • Tokens Studio Plugin for Figma
    • Install the Figma Plugin
    • Pro Licence for the Figma Plugin
    • Join the Slack Community
    • Feature Requests - Featurebase
    • Changelog - Featurebase
  • Design Token Fundamentals
    • Intro to Design Tokens
      • Token Anatomy - Type
      • Token Anatomy - Value
      • Token Anatomy - Description
      • Token Anatomy - Name
  • Token Management
    • Token Types
      • Asset
      • Boolean
      • Border - Composite
      • Box Shadow - Composite
      • Color
        • Modified Colors (pro)
        • Gradient Colors
      • Dimension
        • Border Radius
        • Border Width
        • Sizing
        • Spacing
      • Number
      • Opacity
      • Other
      • Text (string)
      • Typography - Composite
        • Font Family
        • Font Weight
        • Font Fallbacks
        • Font Size
        • Line Height
        • Letter Spacing
        • Paragraph Indent
        • Paragraph Spacing
        • Text Case
        • Text Decoration
      • Composition (legacy)
    • Token Values
      • Token Values with References
      • Using Math in Token Values
    • Token Names
      • Token Name Technical Specs
      • Token Groups
      • Edit Token Names
    • Token Description
    • Token Sets
      • JSON View
  • Themes management
    • Themes (pro)
    • Themes that switch
  • Working in Figma
    • Variables and Tokens Studio
    • Styles and Tokens Studio
    • Export to Figma Guide
      • Export Options
      • Export Using Themes (pro)
      • Export Using Token Sets
      • Variables Skipped on Export
      • Styles with Variable References
    • Import from Figma Guide
      • Import Styles from Figma
      • Import Variables from Figma
        • Connect Themes to Imported Variables
        • Imported Variable Types and Token Types
    • Non-local Variables and Styles (pro)
    • Remove Tokens from Figma elements
    • Dev Mode in Figma
  • Settings Management
    • Plugin Settings
    • Base Font Size Setting
    • Token Format - W3C DTCG vs Legacy
  • Token Storage and Sync Integrations
    • Local Document - Figma File Token Storage
    • Remote Token Storage Integrations
      • GitHub - Git Sync Provider
      • GitLab - Git Sync Provider
      • Bitbucket - Git Sync Provider
      • Azure DevOps - Git Sync Provider
      • JSONBin - Cloud Sync Provider
      • Supernova - Cloud Sync Provider
      • Tokens Studio Platform - Cloud Sync Provider
      • URL - Server Sync Provider
      • Generic Versioned Storage - Server Sync Provider
    • Multi-file Sync to Remote Storage (pro)
    • Manage Sync Providers
      • Edit Sync Provider
      • Change Active Sync Provider
      • Remove Sync Provider
    • Sync Changes to Remote Storage - Push and Pull
    • Branch Switching (pro) - Version Control
  • Inspect and Debug Tokens
    • Inspect Tokens
    • Remap Tokens
  • Transform Tokens for Development
    • Style Dictionary + SD Transforms
    • Official docs for Style Dictionary
  • Style Dictionary Playground
  • Troubleshooting
    • Reset Tokens from Dev Console
    • Tokens Studio Status
  • Open Source
    • Contribute
    • Shared Plugin Data
Powered by GitBook
On this page
  • Letter Spacing - Token Type
  • Design decisions
  • Possible values
  • Values that reference another Token
  • W3C DTCG Token Format
  • Transforming Tokens
  • Resources

Was this helpful?

Edit on GitHub
Export as PDF
PreviousLine HeightNextParagraph Indent

Last updated 4 months ago

Was this helpful?

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.

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:

1px

Be mindful that the fixed value in pixels means the Letter Spacing property is no longer related to the Font Size in the Typography Composite Token. If you change the Font Size, you'll also need to change the Letter Spacing value.

Units not supported by Figma

Tracking is another CSS property related to Letter Spacing, typically defined in px or em units

  • 1000px tracking = 100% letter spacing = 1em letter-spacing (CSS)

    • so a value of 4% would = 0.04em

You can still create Letter Spacing Tokens with these units using the Tokens Studio plugin.

When you apply them to design elements in Figma, the Token will be present and visible to engineers inspecting the design element in Figma, but the Token won't interact with the Letter Spacing property in Figma's UI.

It will be up to the engineers working to transform the design Tokens in Style Dictionary if they want to transform the values as you've entered them or change them in some way.

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.

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

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:

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

Figma resources:

CSS resources:

Community resources:

  • None yet!

Known issues and bugs

  • None yet

Requests, roadmap and changelog

  • None

In this property is called letter-spacing.

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

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

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

→

→

SD-Transforms -

Design Tokens Community Group -

Design Tokens Community Group -

Design in Figma -

MDN Web Docs -

W3 Schools -

Tokens Studio Plugin GitHub -

CSS
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
↓ See the Transforming Tokens section below for more details.
Typography Token
Page cover image
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.

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.

Using Math in Token Values

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.

Style Dictionary
@Tokens-studio/sd-transforms

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.

Token Values with References

💡 Something to share?

Submit it here!

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

SD-Transforms Read-Me Doc, Using Expand

🐞 If you are experiencing an issue not listed here, please reach out to us on the Troubleshooting channel of our , , or send us an email support@tokens.studio

community Slack
submit it on our feedback tool

💌 Visit to contribute or subscribe to updates.

https://feedback.tokens.studio/