Radius

Источник: ds-docs/component-contracts/foundations/radius.md

Источник: коллекция radius файла Astra DS · режим value · тип FLOAT (px). id сверены с tokens/variable-ids.json. Только факты. Находки — в конце.

Скругления углов. Две группы: basic — общая шкала, special — четыре значения под конкретные компоненты.

basic

radius-none010597:8242—490
radius-2xs43004:1649var(--radius-2xs)40
radius-1xs625320:72444var(--radius-1xs)2
radius-xs83006:2129var(--radius-xs)47
radius-x2s1215155:31854var(--radius-x2s)105
radius-s163006:2128var(--radius-s)1307
radius-s-plus2040014524:3519var(--radius-s)—
radius-m243043:4903var(--radius-m)46
radius-l323043:4904var(--radius-l)184
radius-xl403043:4905var(--radius-xl)—
radius-ar9993043:4906var(--radius-ar)827

Scope у всех — CORNER_RADIUS. radius-ar (999) означает «скруглить полностью»: у него единственное в коллекции описание — «Этот токен просвещён дизайнеру Андрю Рожнову».

special

radius-selector-longshort1440017331:1837var(--stories-viewed-radius)—
radius-selector-medium2240017331:1838var(--stories-viewed-radius)—
radius-stories-viewed265030:20294var(--stories-viewed-radius)1
radius-selector-large3040017331:1839var(--stories-viewed-radius)—

Пятнадцать переменных, база из 298 контрактов использует десять. В колонке «В базе» — сколько узлов стоит с этим значением угла; прочерк значит «ни одного». Не встречаются radius-s-plus (20), radius-xl (40) и три из четырёх особых: radius-selector-longshort, radius-selector-medium, radius-selector-large.

Как применять — по разделу Figma

Раздел «Radius Token» (40014705:3251) закрепляет за каждым токеном свои компоненты. Проверено по базе: рядом — что нашлось в контрактах.

radius-1xs (6)Tooltipсходится: tooltip. Второй потребитель раздел не называет — swapper-utility
radius-x2s (12)Chipsсходится: обоймы chips-group-*; но у самих chips и filter-chips углы почти всегда 999 и 32, а 12 — единичный случай
radius-s (16)Form Family, Accordion, Toast Notification, Select, Button, List (Secondary)сходится и шире того: 89 контрактов, больше всего — поля ввода (date-input, phone-input, amount-input)
radius-m (24)Banner, Button Banner, Line Notification, Basic Dialogсходится, кроме line-notification: у него углов с 24 нет
radius-l (32)Navigation Bar, Card Layer, Basic Action, Bottom Sheet, Basic Dialog Infoсходится у navigation-bar, bottom-sheets, basic-action, layer-1. Не сходится у шторок-календарей и у layer-2, layer-3. Самые частые потребители 32 раздел не называет вовсе: filter-chips и chips
radius-ar (999)Switch, Avatar, Icon Container, Icon Button, Badge, Tag, Numpadсходится у switch, avatar, tag, badge, icon-button. Не сходится у Icon Container и Numpad: у обоймы значка круг нарисован фигурой, углов у неё нет вовсе, а клавиша numkey скруглена на 16

Отдельно раздел учит разработчика: «Выделите элемент → DevMode (Shift+D) → скопируйте токен радиуса из Style», — но брать оттуда нечего, см. первую находку ниже.

Что показывает база

углов записано в контрактах3118
из них привязано к переменной0
значений вне шкалы2 — по одному в bottom-sheets-2 и bottom-sheets-feedback

Находки

  • Ни один угол в системе не привязан к переменной. Из 3118 углов базы переменную не несёт ни один: скругления набраны числами. Проверено и по чужой стороне — в разделе Flow Motion, где лежат экраны с сотнями инстансов, привязок отступов и цвета тысячи, а привязок угла нет ни одной. Раздел Figma учит применять токен через «Apply variable», и в макете этого не делают — соответствие числа токену держится на шкале, а не на файле.

  • Число 100 не попадает в шкалу. Встречается дважды: bottom-sheets-2 и bottom-sheets-feedback. Ближайший токен — radius-ar (999) для «скруглить полностью»; скорее всего, задумано было именно оно.

  • У всех четырёх special/* пустой scope. Figma не предложит их ни на одном свойстве — назначить можно только вручную через панель переменных. Для токенов, названных под конкретные компоненты, это тупик.

  • radius-none — единственный без codeSyntax WEB: у него задан только ANDROID. В вебе нулевой радиус имени не имеет.

  • Три «селекторных» радиуса (14, 22, 30) не ложатся в общую шкалу (0, 4, 6, 8, 12, 16, 20, 24, 32, 40) и повторяют друг друга шагом 8.

  • Разные радиусы названы в коде одинаково — одно имя CSS на несколько значений:

    • var(--radius-s) — radius-s (16), radius-s-plus (20)
    • var(--stories-viewed-radius) — radius-stories-viewed (26), radius-selector-longshort (14), radius-selector-medium (22), radius-selector-large (30)

    Код по этим именам разные скругления не различит.

См. также: space, border, README.