M1. Подпись сегмента больше не рвётся посреди слова: колонка `.hpf-seg label` не сжимается ниже самого длинного слова (`min-width: fit-content`, для браузеров без него — прежний `0` строкой выше), слова переносятся только по пробелам (`overflow-wrap: normal`), не поместившийся сегмент переносится на вторую строку целыми кнопками (`flex-wrap`). Новый свидетель demo/smoke_dialog_segments_i18n.mjs — четыре диалога × en/ru/de/fr: у каждой подписи число строк (по Range текстового узла: span — flex-элемент, у блока один прямоугольник даже при переносе) не больше числа слов, текст внутри кнопки. На разметке r1 краснеет на en/ru/fr комнаты («Temperature» в 2 строки, «По температуре» в 3). Мутант form-kit-segment-breaks-words возвращает прежние две строки CSS. ACCEPTANCE.md — строка про подписи сегмента переписана. M2. Glow radius — не условие Save: как на dev, нечисло или неположительное значение при сохранении молча становится общим радиусом. Удалены glowRadiusValid, MarkerProblem marker.error_glow_radius, ключ в четырёх локалях словаря settings, aria-invalid у поля; смок device_settings_form утверждает обратное прежнему (badRadiusDoesNotBlockSave, zeroRadiusKeepsSaveEnabled) и проверяет «Review N fields» на привязке в create-режиме. Changelog EN/RU и USER-GUIDE ru/en больше не называют радиус среди ошибок; таблица устройства говорит про молчаливый общий радиус. M3. Свидетель дефекта №5 (поповер «?» обрезается границей диалога комнаты): demo/smoke_dialog_help_clipping.mjs — короткое окно 900×620, диалог комнаты скроллится, «?» нижней карточки прижат к краю; подсказка выходит за край скроллера и остаётся hit-test'ируемой во всех пяти точках (elementsFromPoint сквозь теневые корни — обрезанная часть не hit-test'ится). Четыре ветки: нативный <dialog> и ha-dialog × Popover API и портальный fallback; ветка ha-dialog — заглушка с ловушками настоящей mwc-поверхности (transform + overflow: hidden + собственный скроллер), portal вне поверхности проверен явно. Настоящий ha-dialog (#505, загрузка колеса HA-frontend) — отдельная диагностическая приёмка владельца; так и записано в ACCEPTANCE.md, где появилась таблица AC8 «девять дефектов — свидетель на каждый». M4. ACCEPTANCE.md: эталонов 13, а не 11 — одиннадцать из ТЗ (список AC10 унаследован от #598 без комнаты) плюс две room-temperature-dialog-*. L1. USER-GUIDE.ru.md: испорченная строка таблицы настроек пространства (хвост удалённой строки про декоративный слой) — убран; пояснение «в редакторе подложки остаются видимыми» вернулось в строку «Видимые слои»; строка про солнце говорит «слой Двери, окна и ворота выключен» вместо «Скрыть проёмы включено». Фикстуры листа диалогов набора пересняты (панель — байт в байт). Бюджет: initial 289 852 / 290 900; lazy editor 242 989 / 243 900. Гейты: typecheck, build, bundle:sync (три копии), npm test 2794 pass по четырём частям, no-new-any, mutation-gate --check, check-inputs --coverage, смоки: segments_i18n, help_clipping, четыре формы, config_parity, help_affordance, room_settings, settings_dialog_cards. Issue: #600 User-Visible: yes
#600 designer reference — settings dialogs
Issue: https://github.com/Matysh/houseplan-card/issues/600 Оригинальное предложение и обсуждение: #591.
Происхождение
Файлы этой папки — содержимое архива houseplan-settings-design-2026-09-18.zip,
приложенного к #591 18.09.2026.
SHA-256 06f07fc212947ee9da1a39aaab2d14cbd41154cc9effe39bc48e1c2e1517255b
Отпечаток сверен побайтово с вложением #591 20.09.2026. Он здесь не как след разрешения, а как метка версии: если материалы обновятся, будет видно, из какой редакции собрана папка.
Автор — @singlmolt-prog, дизайнер JustBusiness, сотрудник владельца репозитория. Материал принадлежит команде владельца и лежит под лицензией репозитория на общих основаниях (подтверждено владельцем 20.09.2026 в #600).
Что здесь лежит
| Путь | Что это |
|---|---|
SPEC.md |
ТЗ автора на четыре диалога в структуре PROCESS.md §7.1: визуальная система §3.1, состав каждой карточки §4–§7, i18n §8, AC §11 |
IMPLEMENTATION-GUIDE.md |
где что в src/, порядок работ, маппинг контрол → ключ состояния, ветки, которых прототип не показывает |
OPEN-POINTS.md |
десять мест, где прототип задевает поведение; решения владельца по каждому — в #600 |
field-maps/FIELD-MAP-space.md |
карта полей Space settings: прототип → SpaceDialogState → ключ i18n → контрол |
ARCHIVE-README.md |
README автора из архива, как есть |
ISSUE-FORM.md |
текст, из которого заведён #591 |
reference/ |
свёрстанный прототип всех четырёх форм |
screenshots/ |
четыре формы целиком, 560 px, 2×, состояние по умолчанию |
pairs/ |
кадры продукта для парного сравнения: четыре диалога × светлая и тёмная тема, 560 px; снимаются node demo/capture_design_pairs_600.mjs (см. ACCEPTANCE.md) |
Как открыть прототип
cd docs/design/600-settings-dialogs/reference
node serve.mjs # http://127.0.0.1:8135/
file:// не работает: прототип собран на ES-модулях. Переключатель «Form» в
верхней панели показывает четыре формы. Данные форм лежат в localStorage
браузера; для чистого состояния открывать в приватном окне.
Windows-лаунчеры START.cmd и START.ps1 из архива в репозиторий не
переносились — они ничего не добавляют к строке выше.
Границы
- Это дизайн-референс, а не продуктовый код. JS прототипа не переносится:
localStorage, демонстрационные пространства, устройства и списки остаются здесь.reference/room-fill.test.mjs— проверка автора на семантику заливок, CI её не запускает. - В бандл отсюда не попадает ничего. Проверяется
bundle-tree. - Приоритет при расхождении (
SPEC.md§2): ТЗ в теле #600 > действующие контракты House Plan (данные, безопасность, доступность,hp-dialog, touch) > визуал и взаимодействия прототипа > детали реализации прототипа. - Два решения владельца расходятся со
SPEC.mdавтора и имеют приоритет над ним: образцы карточки комнаты остаются (Q2), поле цвета получает новую раскладку, но прежний контролhp-color-opacityбез нативного пикера (Q5).
Приёмка
ACCEPTANCE.md — парные кадры «референс / продукт» по каждому
диалогу (screenshots/ против pairs/), расхождения с основанием и перечень
принятых адаптаций. Документ не заменяет код-ревью на S7.