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
      • Figma Data Limits
    • 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
  • Font Family - 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
PreviousTypography - CompositeNextFont Weight

Last updated 4 months ago

Was this helpful?

Font Family - Token Type

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


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.

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

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.

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


W3C DTCG Token Format

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

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:

Figma resources:

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

CSS resources:

Community resources:

Known issues and bugs

Requests, roadmap and changelog

  • None

In this property is called font-family.

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

It is mentioned as a required part of a

→

SD-Transforms -

Style Dictionary -

Design Tokens Community Group -

Design Tokens Community Group -

Design Tokens Community Group -

Design in Figma -

MDN Web Docs -

Font Weight + Font Family Pairs explained by

Import Typography Styles from Figma into Tokens Studio -

Tokens Studio Plugin GitHub -

CSS
8.3 Font Family
typography token
SD-Transforms Read-Me Doc, Using the preprocessor
Read Me
https://styledictionary.com/
W3C Draft
8.3 Font Family
9.7 Typography
Explore Text Properties, Font Family
font-family
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 Family
Typography Token

💌 Visit to contribute or subscribe to updates.

https://feedback.tokens.studio/

💡 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 , , or send us an email support@tokens.studio

community Slack
submit it on our feedback tool
Page cover image
Cover

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

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.
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.
The Typography Composite Token form is open, with each property referencing another Token. The Font Family property is highlighted.
Creating a new Font Family Token in the Tokens Studio Plugin for Figma.

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.

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 , which is tool-agnostic. Tokens coming from Tokens Studio require an additional step: , an npm package that prepares Tokens for Style Dictionary.

Make sure you look at the generic SD-Transforms package to include this option, which allows you to further customize this transformation further using Style Dictionary.

→

"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
Style Dictionary
@Tokens-studio/sd-transforms
SD-Transforms Read-Me Doc, Using Expand