Typography
Типы токенов группы Typography: композит typography плюс font-, spacing- и text-format-токены — выверенные ключи, значения и примеры.
Overview
typography — это композит, который экспортируется как text-стиль Figma. Остальные — его отдельные части: часть экспортируется как переменные, часть применяется напрямую.
$type | Экспортируется как | Дефолтный scope |
|---|---|---|
typography | Text-стиль | — |
fontFamily | Переменная (STRING) | FONT_FAMILY |
fontWeight | Переменная (STRING) | FONT_STYLE |
fontSize | Переменная (FLOAT) | FONT_SIZE |
lineHeight | Переменная (FLOAT) | LINE_HEIGHT |
letterSpacing | Переменная (FLOAT) | LETTER_SPACING |
paragraphSpacing | Переменная (FLOAT) | PARAGRAPH_SPACING |
paragraphIndent | Переменная (FLOAT) | PARAGRAPH_INDENT |
fontStyle | Внутренний (apply) | — |
textCase | Внутренний (apply) | — |
textDecoration | Внутренний (apply) | — |
Typography
Композитный объект; каждый ключ опционален и может быть литералом или алиасом на соответствующий токен.
| Ключ | Тип / значения |
|---|---|
fontFamily | строка / алиас |
fontWeight | строка или число / алиас |
fontStyle | regular, italic, bold, bold italic, … |
fontSize | число / строка с единицей / алиас |
lineHeight | число / строка с единицей / % / алиас |
letterSpacing | число / строка с единицей / % / алиас |
paragraphSpacing | число / строка с единицей / алиас |
paragraphIndent | число / строка с единицей / алиас |
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
Экспортируется как переменная STRING. Дефолтный scope FONT_FAMILY.
{ "fontFamily": { "$type": "fontFamily", "sans": { "$value": "Inter" }, "mono": { "$value": "JetBrains Mono" } } }
Font Weight
Экспортируется как переменная STRING. Дефолтный scope FONT_STYLE. Принимает числовую насыщенность или имя.
{ "fontWeight": { "$type": "fontWeight", "regular": { "$value": 400 }, "medium": { "$value": 500 }, "bold": { "$value": 700 } } }
Font Size
Экспортируется как переменная FLOAT. Дефолтный scope FONT_SIZE.
{ "fontSize": { "$type": "fontSize", "body": { "$value": "16px" }, "h1": { "$value": "32px" } } }
Line Height
Экспортируется как переменная FLOAT. Дефолтный scope LINE_HEIGHT. Принимает длину или процент.
{ "lineHeight": { "$type": "lineHeight", "tight": { "$value": "20px" }, "normal": { "$value": "150%" } } }
Letter Spacing
Экспортируется как переменная FLOAT. Дефолтный scope LETTER_SPACING.
{ "letterSpacing": { "$type": "letterSpacing", "tight": { "$value": "-0.2px" }, "wide": { "$value": "0.5px" } } }
Paragraph Spacing
Экспортируется как переменная FLOAT. Дефолтный scope PARAGRAPH_SPACING.
{ "paragraphSpacing": { "$type": "paragraphSpacing", "md": { "$value": "12px" } } }
Paragraph Indent
Экспортируется как переменная FLOAT. Дефолтный scope PARAGRAPH_INDENT.
{ "paragraphIndent": { "$type": "paragraphIndent", "md": { "$value": "8px" } } }
Font Style
Применяется напрямую (не экспортируется как переменная/стиль). Комбинирует начертание и декорацию.
Значения: regular, italic, bold, bold italic, underline, line-through, none.
{ "fontStyle": { "$type": "fontStyle", "emphasis": { "$value": "bold italic" }, "link": { "$value": "underline" } } }
Text Case
Применяется напрямую. Значения: none, uppercase, lowercase, capitalize, small-caps.
{ "textCase": { "$type": "textCase", "upper": { "$value": "uppercase" }, "title": { "$value": "capitalize" } } }
Text Decoration
Применяется напрямую. Значения: none, underline, line-through.
{ "textDecoration": { "$type": "textDecoration", "underline": { "$value": "underline" }, "strike": { "$value": "line-through" } } }
Полный пример
{
"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" }
}
}
}