Typography
Typography group token types: typography composite plus font, spacing, and text-format tokens — verified keys, values, and examples.
Overview
typography is a composite that exports as a Figma text style. The rest are its individual parts — some export as variables, some are applied directly.
$type | Exports as | Default scope |
|---|---|---|
typography | Text style | — |
fontFamily | Variable (STRING) | FONT_FAMILY |
fontWeight | Variable (STRING) | FONT_STYLE |
fontSize | Variable (FLOAT) | FONT_SIZE |
lineHeight | Variable (FLOAT) | LINE_HEIGHT |
letterSpacing | Variable (FLOAT) | LETTER_SPACING |
paragraphSpacing | Variable (FLOAT) | PARAGRAPH_SPACING |
paragraphIndent | Variable (FLOAT) | PARAGRAPH_INDENT |
fontStyle | Internal (applied) | — |
textCase | Internal (applied) | — |
textDecoration | Internal (applied) | — |
Typography
A composite object; every key is optional and may be a literal or an alias to a matching token.
| Key | Type / values |
|---|---|
fontFamily | string / alias |
fontWeight | string or number / alias |
fontStyle | regular, italic, bold, bold italic, … |
fontSize | number / unit string / alias |
lineHeight | number / unit string / % / alias |
letterSpacing | number / unit string / % / alias |
paragraphSpacing | number / unit string / alias |
paragraphIndent | number / unit string / alias |
textCase | none, uppercase, lowercase, capitalize, small-caps |
textDecoration | none, underline, line-through |
leadingTrim / verticalTrim | CAP_HEIGHT, NONE |
{
"$type": "typography",
"$value": {
"fontFamily": "{fontFamily.sans}",
"fontWeight": "{fontWeight.medium}",
"fontSize": "{fontSize.body}",
"lineHeight": "24px",
"letterSpacing": "0px"
}
}
Font Family
Exported as a STRING variable. Default scope FONT_FAMILY.
{ "fontFamily": { "$type": "fontFamily", "sans": { "$value": "Inter" }, "mono": { "$value": "JetBrains Mono" } } }
Font Weight
Exported as a STRING variable. Default scope FONT_STYLE. Accepts a numeric weight or a name.
{ "fontWeight": { "$type": "fontWeight", "regular": { "$value": 400 }, "medium": { "$value": 500 }, "bold": { "$value": 700 } } }
Font Size
Exported as a FLOAT variable. Default scope FONT_SIZE.
{ "fontSize": { "$type": "fontSize", "body": { "$value": "16px" }, "h1": { "$value": "32px" } } }
Line Height
Exported as a FLOAT variable. Default scope LINE_HEIGHT. Accepts a length or a percentage.
{ "lineHeight": { "$type": "lineHeight", "tight": { "$value": "20px" }, "normal": { "$value": "150%" } } }
Letter Spacing
Exported as a FLOAT variable. Default scope LETTER_SPACING.
{ "letterSpacing": { "$type": "letterSpacing", "tight": { "$value": "-0.2px" }, "wide": { "$value": "0.5px" } } }
Paragraph Spacing
Exported as a FLOAT variable. Default scope PARAGRAPH_SPACING.
{ "paragraphSpacing": { "$type": "paragraphSpacing", "md": { "$value": "12px" } } }
Paragraph Indent
Exported as a FLOAT variable. Default scope PARAGRAPH_INDENT.
{ "paragraphIndent": { "$type": "paragraphIndent", "md": { "$value": "8px" } } }
Font Style
Applied directly (not exported as a variable/style). Combines emphasis and decoration.
Values: regular, italic, bold, bold italic, underline, line-through, none.
{ "fontStyle": { "$type": "fontStyle", "emphasis": { "$value": "bold italic" }, "link": { "$value": "underline" } } }
Text Case
Applied directly. Values: none, uppercase, lowercase, capitalize, small-caps.
{ "textCase": { "$type": "textCase", "upper": { "$value": "uppercase" }, "title": { "$value": "capitalize" } } }
Text Decoration
Applied directly. Values: none, underline, line-through.
{ "textDecoration": { "$type": "textDecoration", "underline": { "$value": "underline" }, "strike": { "$value": "line-through" } } }
Full example
{
"fontFamily": { "$type": "fontFamily", "sans": { "$value": "Inter" } },
"fontWeight": { "$type": "fontWeight", "regular": { "$value": 400 }, "medium": { "$value": 500 } },
"fontSize": { "$type": "fontSize", "body": { "$value": "16px" }, "h1": { "$value": "32px" } },
"typography": {
"$type": "typography",
"body": {
"$value": { "fontFamily": "{fontFamily.sans}", "fontWeight": "{fontWeight.regular}", "fontSize": "{fontSize.body}", "lineHeight": "24px" }
},
"h1": {
"$value": { "fontFamily": "{fontFamily.sans}", "fontWeight": "{fontWeight.medium}", "fontSize": "{fontSize.h1}", "lineHeight": "40px", "letterSpacing": "-0.5px" }
}
}
}