Tokens

Borders

Типы токенов группы Borders: Border, Border Width, Border Radius, Stroke Style. Какие ключи принимаются, что становится переменной, а что применяется к слою напрямую.

$typeЭкспортируется какЗначение
borderВнутренний, применяется к слоюОбъект: цвет, толщина, стиль линии
borderWidthПеременная NumberЧисло или строка с единицей
borderRadiusПеременная NumberЧисло или строка с единицей
strokeStyleВнутренний, применяется к слоюОбъект с описанием штрихов и концов линии

borderWidth и borderRadius попадают в Figma переменными и включаются переключателем Variables → Number. border и strokeStyle в Figma не экспортируются: они применяются к слоям кнопкой Apply Tokens и используются в композициях и коде.

Border

Составное описание обводки. Можно указать только часть ключей, остальное плагин оставит как есть.

КлючЗначения
colorСтрока цвета или ссылка на цветовой токен
widthЧисло, строка с единицей или ссылка на borderWidth. Ссылка привязывает к слою переменную толщины обводки
stylesolid, dashed, dotted. Значение none или hidden убирает обводку
strokeAligninside, center, outside. Без ключа обводка ставится внутрь
dash, gapДлина штриха и пропуска для dashed
dashCap, endCap, strokeJoinФорма концов штрихов, концов линии и углов: butt, round, square; для углов miter, bevel, round
strokeStyleСсылка на токен strokeStyle, из которого берутся штрихи и концы линии

Штрихи задаются либо ключами dash, gap и концами прямо в объекте border, либо ссылкой strokeStyle на отдельный токен. Вложенный объект в ключе strokeStyle не читается: форма Create Border принимает в этом поле только ссылку.

JSON
{
  "border": {
    "$type": "border",
    "default": {
      "$value": { "color": "{color.neutral.300}", "width": "{borderWidth.sm}", "style": "solid", "strokeAlign": "inside" }
    },
    "focus": {
      "$value": { "color": "#FF6600", "width": "2px", "style": "dashed", "dash": 6, "gap": 4, "dashCap": "round" }
    }
  }
}

В форме Create Border есть переключатель Use alias для ссылки на другой border, поля Color и Stroke Style и раскрывающийся блок Custom style с полями Width, Style, Dash, Gap, Dash Cap, End Cap и Join.

Border Width

Переменная Number со scope Stroke width.

ПринимаетсяПример
Число1
Строка с единицей"1px", "0.5rem"
Ссылка или математика"{borderWidth.md}"
JSON
{ "borderWidth": { "$type": "borderWidth", "sm": { "$value": "1px" }, "md": { "$value": "2px" } } }

Border Radius

Переменная Number со scope Corner radius.

ПринимаетсяПример
Число8
Строка с единицей"8px", "1rem"
Ссылка или математика"{borderRadius.lg} * 2"
JSON
{ "borderRadius": { "$type": "borderRadius", "sm": { "$value": "4px" }, "pill": { "$value": "999px" } } }

Stroke Style

Описание штрихов и концов линии. Применяется к слою напрямую и может использоваться из border по ссылке.

ПринимаетсяПример
Строка стиля"solid", "dashed"
Объектсм. ключи ниже
Ссылка"{strokeStyle.dashed}"
КлючЗначения
stylesolid, dashed, dotted
dashДлина штриха, число или строка с единицей
gapДлина пропуска
widthТолщина обводки; ссылка на borderWidth привязывает переменную
dashCapФорма концов штрихов: butt, round, square
endCapФорма концов линии
strokeJoinФорма углов: miter, bevel, round

Форма Create Stroke Style предлагает стили Solid и Dashed; значение dotted, записанное в JSON, при открытии в форме показывается как Dashed. Массив вроде [4, 4] проходит проверку, но к слою не применяется, задавайте dash и gap ключами объекта.

JSON
{
  "strokeStyle": {
    "$type": "strokeStyle",
    "dashed": { "$value": { "style": "dashed", "dash": 6, "gap": 4, "dashCap": "round" } }
  }
}

Полный пример

JSON
{
  "borderWidth": { "$type": "borderWidth", "sm": { "$value": "1px" }, "md": { "$value": "2px" } },
  "borderRadius": { "$type": "borderRadius", "md": { "$value": "8px" } },
  "strokeStyle": { "$type": "strokeStyle", "dashed": { "$value": { "style": "dashed", "dash": 6, "gap": 4 } } },
  "border": {
    "$type": "border",
    "default": { "$value": { "color": "{color.neutral.300}", "width": "{borderWidth.sm}", "style": "solid", "strokeAlign": "inside" } },
    "focus": { "$value": { "color": "{color.brand.primary}", "width": "{borderWidth.md}", "style": "dashed", "strokeStyle": "{strokeStyle.dashed}" } }
  }
}

Связанные страницы