mirror of
https://github.com/Matysh/houseplan-card
synced 2026-09-29 03:09:36 +00:00
Шаг 1 эпика #591. Набор поднят из редактора боковой панели — он сделан по макетам дизайнера и уже живёт в продукте, — а не собран заново по прототипу. Стили набора выдаёт генератор, параметризованный именами: контейнер формы, префикс классов, карточки, футер и токены цвета. Это не украшение архитектуры, а условие переезда панели на общий источник: тест с замороженной фикстурой показывает, что с параметрами панели генератор отдаёт её нынешние правила дословно — карточку, обводку фокуса, выключенное состояние и ряд-переключатель. После этого переезд станет подстановкой, а не редизайном, и пиксели панели не дрогнут. Сама панель в этом коммите не тронута. Диалог комнаты собран в четыре карточки: «Основное», «Заливка», «Источники», «Размеры шрифтов». Порядок полей прежний, записи прежние — те же ключи черновика, те же условия «Сохранить», тот же `hp-color-opacity` с атомарной записью цвета и прозрачности. Пояснения уехали под «?» у заголовков групп (решение владельца 18.09), выбор источника стал сегментированным переключателем — под капотом это по-прежнему радиогруппа, поэтому стрелки и скринридер работают как раньше. Два измерения определили форму решения, и оба стоило сделать до кода. Первое: лист набора в синхронном графе дал +1459 Б gzip и пробил потолок initial View на 415 Б. Диалоги — инструмент администратора, во View их не открывают, поэтому лист уехал в ленивый редакторский граф и вносится в теневой корень при открытии диалога — тем же способом, которым это делает боковая панель. Потолок не поднимался. Второе: `css` с интерполяцией запрещён минификатором сборки (он намеренно падает, чтобы не зависеть от рантайма), поэтому лист собирается `unsafeCSS`. Цена — несжатые пробелы генератора, замерено 59 Б gzip; копия литералом стоила бы расхождения с генератором, то есть единого источника. Оставшийся рост initial View — 291 356 → 291 872 Б (+516) — это четыре текста подсказок в двух встроенных локалях. Тексты сокращены до одного предложения: подсказка под «?» и должна быть короткой. `_renderRoomSource` переехал в модуль комнаты вместе со стабом карточки: у него остался ровно один потребитель. Issue: #594 User-Visible: yes