Files
houseplan-card/docs/design/600-settings-dialogs/reference/ROOM-FILL.md
T
Claude 94c9d8addf docs: положить дизайн-референс диалогов настроек в репозиторий (#600)
AC0 задачи: пока референс лежит вложением в issue, ревью сравнивает продукт с
макетом «на глаз», и ровно это дало выпущенный в 1.77.0-beta.2 ложный паритет —
карточки снаружи, старая разметка внутри.

Содержимое архива `houseplan-settings-design-2026-09-18.zip`
(SHA-256 06f07fc212947ee9da1a39aaab2d14cbd41154cc9effe39bc48e1c2e1517255b,
сверен побайтово с вложением #591) разложено по образцу #505:

- `SPEC.md`, `IMPLEMENTATION-GUIDE.md`, `OPEN-POINTS.md`, карта полей Space —
  с этого коммита часть ТЗ: расхождение называется ссылкой на пункт документа;
- `reference/` — свёрстанный прототип четырёх форм;
- `screenshots/` — четыре формы целиком, 560 px, 2x;
- `README.md` — происхождение, отпечаток, границы использования;
- `ACCEPTANCE.md` — место для парных кадров «референс / продукт» по AC1.

Автор — сотрудник владельца (подтверждено 20.09 в #600), внешний грант не нужен.

Windows-лаунчеры `START.cmd` и `START.ps1` не переносились: `node serve.mjs`
делает то же самое. `room-fill.test.mjs` перенесён как документ намерения, CI
его не запускает — под `docs/**` не попадает ни один тестовый glob.

В бандл отсюда не попадает ничего; `repo-hygiene` и полный набор зелёные
(2793 pass).

Issue: #600
User-Visible: no
2026-09-20 09:07:53 +03:00

5.5 KiB

Проверка Room fill — 15.09.2026

Сверено с пользовательскими Custom color.png, Temperature.png и Lights.png, а затем с исходным кодом House Plan, commit c22c04d6476d0d387c237b427d0b83e7c1e11f70:

  • src/logic.ts: DEFAULT_FILL_COLORS, roomFillStyle, DEFAULT_CUSTOM_FILL.
  • src/space-render.ts: resolvedRoomFills и glowBaseShapes.
  • docs/USER-GUIDE.ru.md, раздел 13: заливки, наследование и Glow.

Исправления

Раньше в прототипе были фиксированные пастельные цвета и opacity 85% у всех режимов данных. Теперь room-fill.js повторяет выбор цвета и непрозрачности оригинала; функция принимает палитру отдельно от настроек пространства.

Режим Поведение
Custom Фиксированный цвет и opacity. Смена данных датчиков его не меняет. Reset снимает локальный цвет и показывает DEFAULT_CUSTOM_FILL: #607D8B / 18%.
Zigbee Средний LQI комнаты: линейное смешивание цвета и opacity от low при ≤40 до high при ≥180. Нет LQI — нет заливки данных.
Lights Хотя бы один источник включён → light_on; все выключены → light_off; источников нет → light_none (по умолчанию opacity 0).
Temperature Ниже min → cold; min ≤ температура ≤ max → comfort; выше max → hot. Нет температуры — нет заливки данных.

При отсутствии видимой заливки (включая Custom с opacity 0) включённый Glow добавляет базовое затемнение glow_base. При видимой заливке дополнительного затемнения нет. Световое пятно появляется только при включённом Glow и наличии включённого источника. Солнечный свет независим.

Температурные границы по умолчанию в исходнике — 20–25 °C. Уже сохранённые границы прототипа не перезаписываются. Исходный согласованный Custom Ground Floor (#EDEDED / 100%) сохранён.

Что можно установить по скриншотам

  • Серый фон в Custom не является обязательным цветом режима: его задаёт пользователь; при прозрачной заливке тот же серый вид может давать Glow.
  • Голубая Kitchen & Living в Temperature соответствует холодному состоянию относительно настроенного диапазона. Цвет также можно переопределить в общей палитре.
  • Off в Lights выбирает отдельный цвет выключенных источников; отсутствие источников является другим состоянием. У комнаты может быть собственный режим заливки.

Точную общую палитру, температурные границы, локальные переопределения комнат и значение Glow нельзя восстановить из растровых скриншотов. Прототип использует стандартную палитру исходника, поэтому оттенки могут отличаться от конкретной конфигурации пользователя. При интеграции необходимо передавать результат fillColorsOf(settings) и вычислять данные комнаты существующими функциями продукта.

Данные демо и проверка

В верхней панели Sample data выбираются Typical room, Lights off, Cold room, Hot room, Weak Zigbee, Strong Zigbee и No room data. Меняются одновременно данные заливки, значения комнатной карточки, LQI устройства и наличие светового пятна. Эти примеры не сохраняются в настройках и не делают форму изменённой. Контрол виден только у Space settings и при видимом правом Preview.

Проверки без зависимостей:

node room-fill.test.mjs

Дополнительная сверка с локальным исходником:

node room-fill.test.mjs ../houseplan-dev-source-review/src/logic.ts

Вторая команда извлекает чистую функцию оригинала и сравнивает 1008 сочетаний: 4 режима, 7 LQI, 3 состояния света, 6 температур, 2 палитры. Проверка custom использует уже валидные цвета, как поля input type=color прототипа. Это проверка выбора заливки, а не сбора HA-данных или полного рендера плана.