Dimension
Типы токенов группы Dimension: Dimension, Number, Sizing, Spacing — числовые форматы, математика, дефолтные scopes и примеры.
Overview
Группа Dimension содержит числовые шкалы для layout и размеров. Все типы здесь экспортируются как переменная FLOAT; отличаются только дефолтным scope в Figma.
$type | Экспортируется как | Дефолтный scope | Типичное применение |
|---|---|---|---|
dimension | Переменная (FLOAT) | ALL_SCOPES | Универсальные размеры |
number | Переменная (FLOAT) | ALL_SCOPES | Безразмерные числа |
spacing | Переменная (FLOAT) | GAP | Gap / padding |
sizing | Переменная (FLOAT) | WIDTH_HEIGHT | Width / height |
Общий числовой синтаксис
Все четыре типа принимают одинаковые формы значения:
| Форма | Пример |
|---|---|
| Число | 16, 1.5, -2 |
| Строка с единицей | "16px", "1.5rem", "2em", "50%" |
| Алиас | "{spacing.md}" |
| Математика (с алиасом) | "{spacing.sm} * 2", "round({size.base} / 3, 2)" |
Примечание Для токенов FLOAT (кроме opacity и duration) значение % при экспорте переменной конвертируется через remBase. Где нужно точное число — используйте явный px.
Dimension
Универсальный числовой тип — используйте, когда значение является длиной, но не относится конкретно к spacing или sizing.
{ "$type": "dimension", "$value": "16px" }
Number
Безразмерные числовые значения (множители, счётчики, коэффициенты, факторы line-height).
{ "$type": "number", "$value": 8 }
{ "spacing": { "$type": "number", "base": { "$value": 4 }, "scale": { "$value": "{spacing.base} * 1.5" } } }
Spacing
Gap'ы, паддинги и отступы. Дефолтный scope GAP держит их вне полей ширины/высоты в Figma.
{
"spacing": {
"$type": "spacing",
"xs": { "$value": "4px" },
"sm": { "$value": "8px" },
"md": { "$value": "{spacing.sm} * 2" }
}
}
Sizing
Размеры компонентов и элементов. Дефолтный scope WIDTH_HEIGHT.
{
"sizing": {
"$type": "sizing",
"control-sm": { "$value": "32px" },
"control-md": { "$value": "40px" }
}
}
Полный пример
{
"spacing": {
"$type": "spacing",
"base": { "$value": "4px" },
"sm": { "$value": "{spacing.base} * 2" },
"md": { "$value": "{spacing.base} * 4" }
},
"sizing": {
"$type": "sizing",
"icon": { "$value": "20px" },
"control": { "$value": "40px" }
},
"ratio": {
"$type": "number",
"golden": { "$value": 1.618 }
}
}