Решили: кромка кадра стала одним токеном (--gm-screen-edge, пиксели), боковой столбец меты —
вторым (--gm-side-column-width), а всё, что рисуется ВНУТРИ кнопки — концы пластины и значок —
переехало в ступень размера (--gm-plate-cap-sm/md/lg, --gm-control-icon-sm/md).
Почему: те же числа-в-местах, что и у размеров кнопок днём раньше. Левая колонка отмеряла себя в 7%, правый блок — в 2%, и «единый отступ» существовал только на словах. Шеврон стоял константой 9 на всех кнопках сразу: на пункте меню высотой 64 это 14% высоты, на мелкой кнопке 43 — 21%, и глаз читал их разными фигурами.
Пиксели, а не проценты, — решение, а не лень: вертикальный процент в UI Toolkit резолвится против ШИРИНЫ родителя (правило Yoga), поэтому одна запись «7%» слева и снизу дала бы разные отступы. 134px — это те же 7% при опорных 1920.
Сказано: «Вот слева у кнопок и тд есть отступ у края. Сделай единый источник этого отсупа и примени его же справа. Чтобы все в одном стиле и менялось просто. Ок?»; «Отступ от края низа - аналогично должен быть ОДИНАКОВЫМ»; «Стрелки у тебя не скейлятся вместе с размерами кнопок. Еще раз, все элементы внутри кнопок скейлятся ВМЕСТЕ с кнопками»; «Представь что правый край имеет ширину Х… И эту ширину должно иметь все» (2026-08-22, разбор кадра главного меню).
Грабли — полчаса на пустом месте: новая переменная лежала в ассете (проверено
EditorJsonUtility.ToJson), theme.uss её импортировал, файл-потребитель был переимпортирован — а
var() резолвился в НОЛЬ. Причём старые переменные из того же :root работали. Панель кеширует
переменные темы, и ни ImportAsset(ForceUpdate) по всем 67 стайлшитам, ни перезаход в play кеш не
сбрасывают. Сбрасывает переустановка темы у панели прямо в play:
var t = doc.panelSettings.themeStyleSheet;
doc.panelSettings.themeStyleSheet = null;
doc.panelSettings.themeStyleSheet = t;Вторые грабли того же захода: замер раскладки в ТОМ ЖЕ вызове, что и переимпорт, отдаёт прошлую
версию, а сразу после закрытия бут-экрана — NaN. Три ложных диагноза («переменная не работает»,
«файл не применяется», «тема потеряла импорт») выросли ровно из этого.
Владелец правды: Assets/_Project/UI/Theme/tokens.primitives.uss (§кромка кадра, §размер
контрола), Assets/_Project/UI/Theme/components/button.uss, тест ControlSizeGateTests.