Files
houseplan-card/docs/design/600-settings-dialogs/README.md
T
Claude c3e64dc60a feat(dialogs): финал #600 — мёртвые стили, парные кадры, документация, потолки
Завершение четырёх серий по референсу docs/design/600-settings-dialogs/:

- из eager-листов dialogs.styles.ts и chrome.styles.ts сняты стили прежней
  разметки диалогов (.bindsel/.bindharow/.entcheck, .ctrlchip*, .markerhelp*,
  .helpfieldlabel, .markerradios, .markerlightdisabled, .markerbadgetechnical,
  .markerglowvalue, .fileupload, .descin, .pdfedit/.pdftag, .gsrow,
  .ripple-*row, .radaradditional, .togglehint, футеры marker/room) — 5,8 КБ
  исходника; с разметки сняты уже пустые классы;
- «Additional actions» карточки Details — подзаголовок и строка действий
  набора, без раскрывашки (radar-section.ts, только additional-placement);
- Q3 уточнён по кадру: hp-device-preview стоит без обёртки — у него свой
  заголовок «Display preview · Now», второй над ним удваивался; пустое
  состояние — блок на тинте;
- §6.1: «?» у комнаты стоит у поля Home Assistant area, а не у заголовка
  Basics; подписи сегмента заливки — None · Zigbee · Lights · Temperature ·
  Custom (два коротких ключа room.fill_seg_*), источники — «Average of the
  room’s sensors / Specific device or entity», режим свечения — «Colour and
  brightness» (тексты прежних ключей укорочены под сегменты);
- подпись поля с «?» и без стоят на одной линии в сетке (min-height 32 по
  кнопке hp-help); иконка внутри подсказки — inline;
- парные кадры: demo/capture_design_pairs_600.mjs снимает четыре диалога в
  двух темах на 560 в состояниях макетов → docs/design/…/pairs/ (8 PNG,
  палитра 256, ~0,5 МБ); ACCEPTANCE.md — статус по диалогам, расхождения с
  референсом по каждому со ссылкой на пункт SPEC и принятые адаптации (шапка
  hp-dialog по §3, тумблеры набора по К7, секции радара/пылесоса по §7.2);
- changelog EN/RU («Не выпущено»), USER-GUIDE ru/en: раздел «Как устроены
  диалоги настроек», таблица настроек пространства по новым карточкам,
  диалог комнаты, диалог устройства, ссылка «Как у пространства»;
- бюджет: стартовый граф 289 853 — потолок 291 600 → 290 900 (снятые стили);
  ленивый редакторский 243 149 — итоговый потолок 243 900 с разбором по
  сериям в bundle-budget.mjs.

Golden: 11 сцен диалогов (device-dialog-*, room-temperature-dialog-*,
toggle-entity-dialog-*, device-help-popover-light-ru,
general-color-popover-desktop-en, settings-help-zoom-200-*,
device-ripple-color-popover-mobile-ru, space-room-color-popover-desktop-ru)
прогнаны диагностически (capture, HP_ALLOW_FOREIGN_CAPTURE, только
artifacts/): харнесс проходит все пути без исключений, кадры «different» —
эталоны переснимаются на Linux CI / машине владельца по #455.
Скриншоты документации (06-device-editor, 06-device-display-preview и др.)
устарели по отпечатку — пересъёмка перед кандидатом беты (#479).

Гейты: typecheck, build, bundle:sync (три копии байт в байт), npm test
2793 pass по четырём частям, mutation-gate --check, check-inputs --coverage,
фокусные смоки четырёх форм и смоки диалога устройства.

Issue: #600
User-Visible: yes
2026-09-20 13:01:07 +03:00

70 lines
4.9 KiB
Markdown

# #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](ACCEPTANCE.md) — парные кадры «референс / продукт» по каждому
диалогу (`screenshots/` против `pairs/`), расхождения с основанием и перечень
принятых адаптаций. Документ **не заменяет** код-ревью на S7.