Tokens

Типы токенов

Карта всех 39 типов токенов SXL Studio: как они сгруппированы в меню создания, во что каждый превращается в Figma, какой тумблер экспорта за него отвечает, форма значения и алиасы.

SXL Studio поддерживает 39 типов токенов. Тип задаётся полем $type; при экспорте токен становится переменной Figma, стилем Figma или остаётся внутренним: такие токены участвуют в Apply, генерации композиций и коде, но сами в Figma не экспортируются.

Цель экспортаТиповВо что превращается
Переменная Figma20Переменная в коллекции: Color, Number, String, Boolean, Timing или Easing
Стиль Figma10Локальный стиль: Paint, Effect, Text или Grid
Внутренний9Используется плагином и кодом, в Figma не попадает

Выбирайте тип по тому, что хотите получить в Figma: переиспользуемую переменную для цветов, размеров, строк и флагов, общий стиль для градиентов, теней, типографики и сеток, или внутренний контракт для рамок, переходов, композиций и произвольных данных.

Как создать токен

В визуальном редакторе файла над списком токенов есть панель типов: Color, Gradient, Images, Fill, Opacity, Dimension и кнопка + со всеми остальными типами. Меню + сгруппировано в семь разделов и имеет поиск по типу.

Меню Add token: группы Styles, Dimension, Borders и начало Effects.

Группы Effects и Typography.

Группы Animation и Other.

Каждый тип открывает свою форму: имя, значение с подсказкой формата, описание, а для переменных ещё scopes, code syntax и флаг Hide from publishing. Подробности по каждой группе на её странице.

Цели экспорта

ЦельТипы
Переменная Colorcolor
Переменная Numberopacity, dimension, number, spacing, sizing, borderWidth, borderRadius, fontSize, lineHeight, letterSpacing, paragraphIndent, paragraphSpacing
Переменная StringfontFamily, fontWeight, text
Переменная Booleanboolean
Переменная Timingduration
Переменная EasingcubicBezier, easing
Стиль Paintgradient, img, fill
Стиль Effectshadow, backdrop-blur, blur, glass, effects
Стиль Texttypography
Стиль Gridgrid
Внутренниеborder, strokeStyle, fontStyle, textCase, textDecoration, transition, template, composition, custom

Какой тумблер экспорта отвечает за тип

В окне Export to Figma типы включаются группами. Если тип не экспортируется, проверьте соответствующий переключатель.

ПереключательТипы
Variables → Colorcolor
Variables → Numberвсе типы переменных Number из таблицы выше
Variables → StringfontFamily, fontWeight, text
Variables → Booleanboolean
Variables → Timingduration
Variables → EasingcubicBezier, easing
Styles → Typographytypography
Styles → Shadowshadow
Styles → Blurblur, backdrop-blur
Styles → Effectseffects
Styles → Glassglass
Styles → Fillfill, img
Styles → Gradientgradient
Styles → Gridgrid

Типы по группам

Семь групп меню Add token. В каждой строке минимальный пример $value.

Styles

$typeЭкспортируется какПример $value
colorПеременная Color"#635BFF"
gradientСтиль Paint"linear-gradient(90deg, #635BFF, #A78BFA)"
imgСтиль Paint"url(https://…/cover.png)"
fillСтиль Paint[{ "type": "solid", "color": "#635BFF" }]
opacityПеременная Number0.6 или "60%"

Dimension

$typeЭкспортируется какПример $value
dimensionПеременная Number"16px"
numberПеременная Number8
spacingПеременная Number"16px"
sizingПеременная Number"240px"

Borders

$typeЭкспортируется какПример $value
borderВнутренний{ "color": "#E7EAF1", "width": "1px", "style": "solid" }
borderWidthПеременная Number"1px"
borderRadiusПеременная Number"8px"
strokeStyleВнутренний{ "style": "dashed", "dash": 4, "gap": 4 }

Effects

$typeЭкспортируется какПример $value
shadowСтиль Effect[{ "offsetX": 0, "offsetY": 2, "blur": 8, "color": "#00000033" }]
backdrop-blurСтиль Effect"8px"
blurСтиль Effect"4px"
glassСтиль Effect{ "lightIntensity": 0.3, "refraction": 0.2, "depth": 12, "radius": 8 }
effectsСтиль Effect[{ "type": "DROP_SHADOW", "offsetX": 0, "offsetY": 2, "blur": 8, "color": "#00000033" }]

Typography

$typeЭкспортируется какПример $value
typographyСтиль Text{ "fontFamily": "Inter", "fontSize": "16px", "fontWeight": 500, "lineHeight": 1.5 }
fontFamilyПеременная String"Inter"
fontWeightПеременная String500 или "Semi Bold"
fontSizeПеременная Number"16px"
lineHeightПеременная Number"24px"
letterSpacingПеременная Number"0.5px"
paragraphIndentПеременная Number"8px"
paragraphSpacingПеременная Number"12px"
textCaseВнутренний"uppercase"
textDecorationВнутренний"underline"
fontStyleВнутренний"italic". В меню создания временно скрыт, в JSON поддерживается

Animation

$typeЭкспортируется какПример $value
transitionВнутренний{ "duration": "200ms", "delay": "0ms", "easing": "ease-out" }
durationПеременная Timing"200ms"
cubicBezierПеременная Easing[0.4, 0, 0.2, 1]
easingПеременная Easing"ease-out", "spring(0.3)"

Other

$typeЭкспортируется какПример $value
gridСтиль Grid{ "pattern": "grid", "sectionSize": 8 }
booleanПеременная Booleantrue
textПеременная String"Checkout"
templateВнутреннийобъект с описанием стилей шаблона
compositionВнутреннийобъект с описанием компонента
customВнутренний или по форме значениялюбой JSON

Токен custom, как и любой незнакомый $type, остаётся редактируемым. При экспорте плагин смотрит на форму значения: цвет в HEX становится переменной Color, число или математика переменной Number, true/false переменной Boolean, строка переменной String, а объект, похожий на типографику, тень, градиент или сетку, соответствующим стилем. Значение, которое ни на что не похоже, остаётся в JSON и в Figma не экспортируется; плагин сообщит об этом в результате экспорта.

Примеры составных значений

Typography:

JSON
{
  "$type": "typography",
  "$value": { "fontFamily": "Inter", "fontSize": "16px", "fontWeight": 500, "lineHeight": 1.5, "letterSpacing": "0px" }
}

Shadow, несколько слоёв:

JSON
{
  "$type": "shadow",
  "$value": [
    { "offsetX": 0, "offsetY": 1, "blur": 2, "spread": 0, "color": "#0000001F" },
    { "offsetX": 0, "offsetY": 8, "blur": 24, "spread": 0, "color": "#00000029" }
  ]
}

Gradient:

JSON
{ "$type": "gradient", "$value": "linear-gradient(135deg, #635BFF 0%, #A78BFA 100%)" }

Grid:

JSON
{ "$type": "grid", "$value": { "pattern": "grid", "sectionSize": 8 } }

Fill, несколько слоёв:

JSON
{
  "$type": "fill",
  "$value": [
    { "type": "image", "url": "https://…/photo.jpg", "scaleMode": "FILL", "opacity": 0.7 },
    { "type": "solid", "color": "#00000029" }
  ]
}

Scopes по умолчанию

Переменные получают scope Figma по умолчанию, его можно изменить в форме токена или через figma.scopes. Типы-переменные, которых нет в таблице, получают все scopes. У boolean, duration, cubicBezier и easing scopes нет вовсе.

$typeScope по умолчанию
colorAll fills, Stroke color, Effect color
sizingWidth and height
spacingGap
borderRadiusCorner radius
borderWidthStroke width
opacityOpacity
fontFamilyFont family
fontWeightFont style. Другие scopes для этого типа недопустимы
fontSizeFont size
lineHeightLine height
letterSpacingLetter spacing
paragraphSpacingParagraph spacing
paragraphIndentParagraph indent
dimension, number, textВсе scopes
boolean, duration, cubicBezier, easingScopes не поддерживаются

Подробнее: Scopes и Code Syntax.

Наследование и алиасы типов

Группа может объявить $type один раз, все токены внутри его наследуют:

JSON
{
  "spacing": {
    "$type": "spacing",
    "sm": { "$value": "8px" },
    "md": { "$value": "16px" }
  }
}

Старые и альтернативные имена типов приводятся к каноническим:

В файлеКанонический тип
stringtext
sizesizing
spacespacing
fontSizes, fontWeights, fontStyles и другие формы множественного числаfontSize, fontWeight, fontStyle
borderRadiiborderRadius
boxShadowshadow
backgroundBlur, backdropBlur, background-blurbackdrop-blur
layerBlurblur
motionEasingeasing

В рабочих файлах используйте канонические имена. Полная таблица на странице JSON-формат токенов.

Страницы групп