Решили: у кнопки три РОЛИ (Обычная, Главная, Для удаления) и отдельная ось размера; классов вида
«кнопка на таком-то экране» не существует — раскладку задаёт КОНТЕЙНЕР через селектор потомка
(.gm-mainmenu__buttons > .gm-button).
Почему: реестр, собранный по факту дерева, показал не набор, а перепись: шесть записей из
десяти в группе кнопок значили «кнопка вот здесь» — gm-mainmenu__btn, gm-loadout__start-btn,
gm-event-choice, gm-profile__slot-pick, gm-guilds__slot-pick, gm-loadout__sort. Разобрав
каждый, обнаружили, что все шесть держали РАСКЛАДКУ (ширина, отступы, выравнивание, растяжение в
ряду) и лишь притворялись видом. Тем же оказался и модификатор --fill: flex-grow: 1,
записанный вариантом кнопки. Отвергли нумерацию вариантов без роли («Кнопка 1/2/3»): номер не
отвечает на вопрос «какую брать сюда», и через месяц за ответом придётся идти в картинку — принят
формат «Кнопка (Роль) — Вариация N», где номер остаётся заделом на вторую вариацию роли.
Сказано: «У нас должны быть вариации кнопок. Кнопка 1, Кнопка 2, Кнопка 3. Мы вставляем их куда надо. А вот “пункт главного меню”, “начать забег” и “пластина” — это зачем?» (06.08.2026, сессия a66a54e9). Про роль удаления — там же: «Запиши “Кнопка (Для удаления / необратимого) — Вариация 1”».
Грабли: снос экранного класса вскрыл, что Главная выглядела двояко — в главном меню
заливкой (собственный gm-mainmenu__btn--primary), а в остальных одиннадцати местах только каймой.
Пока роль записана в двух местах разными приёмами, она перестаёт быть ролью; заливка перенесена в
общее правило. Второе: снося класс gm-event-choice часом раньше, я сняла с контейнера класс
gm-event-choices как «мёртвый» — он был пуст ровно потому, что раскладка сидела на кнопках.
Пришлось вернуть под новым именем gm-choice-list. Пустой контейнерный класс рядом с
«толстой» кнопкой — примета того, что раскладка живёт не там.
Владелец правды: UiComponentRegistry (набор ролей), components/button.uss (вид роли),
screens/*.uss (раскладка), тест UssDeadCodeTests.