Решили: экран-развилка (крупные карточки-двери в ряд) живёт одним видом ModeChoiceView, а
«Профиль» и «Создать игру» — два его заказчика; разметка NewGameScreen.uxml и её файл темы
screens/newgame.uss удалены целиком.
Почему: карточки уже были написаны внутри ProfileHubView, и второй экран мог получить их
только копией — то есть вторым владельцем одного вида. Копия разошлась бы с оригиналом на первой
же правке отступов, и «одинаково по структуре» превратилось бы в «похоже». Альтернатива — оставить
экран в UXML и описать карточки разметкой — отвергнута по той же причине: карточка это
повторяющийся блок из четырёх частей, в UXML её пришлось бы выписать трижды, и правка знака или
подписи стала бы правкой в трёх местах плюс в коде.
Заодно ушла подсказка режима «за курсором»: описание теперь стоит на самой карточке и видно всегда. Строка под рядом кнопок отвечала на вопрос, который карточка отвечает сама.
Сказано: «Делаем выбор режима таким же карточками (кампания, ристалище и пвп)» и — про галочку лобби — «В футер рядом с “Назад”» (21.08.2026, сессия 26182ec4).
Грабли:
- Доля карточки — свойство РЯДА, а не карточки. Ширина зависит от того, сколько дверей делят кадр (пара 23%, тройка 22% — обе подобраны по пропорции рефа 1 : 1.9 при высоте 76%). Держать число на самой карточке значит требовать от неё знания про соседей, которых она не видит.
- Футер сжимается, потому что ряд карточек забрал всё.
.gm-mode-cardsрастёт (flex-grow: 1), футеру достаётся остаток, и безflex-shrink: 0он ужимается ниже собственного содержимого — а содержимое продолжает рисоваться поверх соседей. ПоймалScreenLayoutOverlapTests, глазами на кадре это читалось бы как «галочка налезла на кнопку». record structне компилируется: язык проекта C# 9, а позиционная запись требует 10.compile-checkговорит это прямо, редактор — тоже, но только после domain reload.- Осиротевший класс темы всплывает не там, где его бросили.
gm-entry__dangerостался без потребителя ещё в перекройке профиля 21.08, а покраснел на этом заходе: гейт мёртвого USS видит ВСЮ тему, поэтому чужой (и свой прошлый) хвост прилетает первому, кто следом тронул стили.
Владелец правды: Assets/_Project/Scripts/UI/ModeChoiceView.cs,
Assets/_Project/UI/Theme/components/mode-card.uss, тесты ScreenLayoutOverlapTests,
UssDeadCodeTests.