# Issue #86 — подсказки к настройкам, партия 1 - **Issue:** https://github.com/Matysh/houseplan-card/issues/86 - **Статус документа:** актуализировано 2026-08-30 по `origin/dev`; кандидат на ревью ТЗ - **Приоритет:** P2 - **Тип:** polish/docs/tech-debt, полный трек: нарушен критерий light-track «одна поверхность» — затронуты общие настройки, пространство, маркер и каталог устройств - **Пользовательское изменение:** да - **Зависимость:** механизм `hp-help` из #68 уже выпущен ## 1. Сценарий Администратор настраивает план в общих настройках, диалоге пространства, устройстве или Plan/Device editor и встречает параметр, ошибка в котором заметно исказит геометрию, свет либо видимость объектов. Он открывает короткую подсказку рядом с названием, не покидая текущий dialog/tool. ## 2. Что человек увидит до и после До изменения критичные параметры объясняются неодинаковыми `title`/`.rhint` либо не объясняются; после изменения первая партия получает единый `hp-help` с коротким ответом «что изменится», а старое дублирующее объяснение исчезает. ## 3. Проблема и граница партии #68 поставил presentation/lifecycle/a11y-механизм и пилотные подсказки. #86 поставляет контент. Решение владельца: в этом issue реализуется **только партия 1** — настройки, ошибка в которых может повредить или заметно исказить план. Партии 2 и 3 из тела issue не входят сюда и до реализации оформляются отдельными issue после проверки механики и текстов первой партии. ## 4. Scope партии 1 Обязательные settings/affordances: 1. масштаб пространства (`cell_cm`); 2. общий радиус Glow; существующий персональный радиус устройства только проверяется на отсутствие дублирования; 3. режим заливки пространства в его актуальной post-#56 модели; 4. роль источника света Auto/Always/Never — существующий пилот уточняется; 5. «Управляет другими источниками света»; 6. общий и локальный север; 7. общий и локальный режим фона; 8. стиль стен нулевой толщины — актуальная замена удалённых виртуальных границ; 9. «Показывать скрытые на плане» в каталоге редактора устройств. Каждая новая подсказка использует существующую `_help('literal.help')`, пару `.help` + `.help.aria`, floating/overlay lifecycle и accessibility contract #68. ## 5. Не входит в задачу - партия 2: проёмы, толщины, колонны/перегородки, decor, размеры room labels; - партия 3: binding/display/size/tap action/hide/climate/vacuum source; - rich text, Markdown, картинки и ссылки в tooltip; - новый help component, второй floating controller либо иной icon; - массовая миграция всех оставшихся `title=`; - изменение поведения самих настроек; - редакторский onboarding tour или постоянно открытая справка. ## 6. Канонический смысл RU/EN Тексты ниже являются acceptance contract. Допустима только редакторская правка, не меняющая смысл, длину более двух предложений или терминологию User Guide. | Ключ | RU `.help` | EN `.help` | | --- | --- | --- | | `space.cell_cm.help` | Связывает сетку с реальными размерами: от значения зависят длины и площади, толщина стен, размеры проёмов и радиус свечения. Изменение после разметки меняет расчётные размеры всего пространства, но не двигает его точки на плане. | Links the grid to real dimensions: lengths, areas, wall thickness, opening sizes and glow radius depend on it. Changing it after drawing changes the calculated dimensions of the whole space without moving its points on the plan. | | `gs.glow_radius.help` | Задаёт общий радиус светового пятна в метрах или футах; персональный радиус устройства заменяет это значение. | Sets the default glow radius in metres or feet; a device-specific radius overrides it. | | `space.fill_mode.help` | «Свой цвет» задаёт оформление, а «Свет», «Температура» и «LQI» используют текущие данные Home Assistant; Glow включается отдельно. | “Custom colour” is styling, while “Light”, “Temperature” and “LQI” use current Home Assistant data; Glow is enabled separately. | | `marker.light_role.help` | «Авто» использует фактическую роль привязанного устройства, «Всегда» принудительно создаёт собственный источник, а «Никогда» исключает его; связанные лампы выше остаются независимыми. | “Auto” uses the bound device's resolved role, “Always” forces its own source and “Never” excludes it; linked lights above remain independent. | | `marker.controls.help` | При действии «Переключить состояние» перечисленные источники переключаются вместе с этим маркером. Их световые пятна остаются у собственных маркеров, а эта связь сама по себе не делает управляющий маркер источником света. | With the “Toggle state” action, the listed sources toggle together with this marker. Their glow stays at their own markers, and the link alone does not turn the controlling marker into a light source. | | `gs.north.help` | Угол отсчитывается по часовой стрелке от верхней вертикали плана; север нужен для оконных лучей, а не для фона «Следует за Солнцем». | The angle is measured clockwise from the plan's upward vertical; north is required for window rays, not for the “Follows the Sun” background. | | `space.north.help` | Переопределяет общий север для этого пространства; угол отсчитывается по часовой стрелке от верхней вертикали плана и используется оконными лучами. | Overrides general north for this space; the angle is measured clockwise from the plan's upward vertical and is used by window rays. | | `gs.bg_mode.help` | «Следует за Солнцем» использует `sun.sun`, а при недоступности — локальные часы браузера; статичный режим всегда показывает выбранный цвет. | “Follows the Sun” uses `sun.sun`, falling back to the browser's local clock; Static always shows the selected colour. | | `space.bg_mode.help` | Выберите наследование общего фона либо переопределите это пространство статичным цветом или режимом «Следует за Солнцем». | Inherit the general background or override this space with a static colour or “Follows the Sun”. | | `space.zero_wall_style.help` | Пунктирные стены нулевой толщины пропускают Glow и солнечные лучи, сплошные блокируют их как барьер нулевой площади. Выбор меняет все такие стены пространства, даже когда их линии скрыты в просмотре. | Dashed zero-thickness walls pass Glow and sun rays, while solid ones block them as zero-area barriers. The choice affects every such wall in the space even when its line is hidden in View. | | `device_inbox.show_hidden.help` | Временно показывает на плане скрытые и деактивированные маркеры служебными призраками только в редакторе устройств. Сохранённая видимость устройств не меняется. | Temporarily shows hidden and disabled markers as editor-only ghosts on the plan. Saved device visibility does not change. | Для каждого ключа добавляется цельная локализованная `.help.aria`, называющая настройку, а не повторяющая весь tooltip. Таблица фиксирует смысл RU/EN; DE/FR передают тот же смысл естественным языком и проходят тот же parity-контракт. ## 7. Уже поставленные пилоты #68 `marker.glow_radius.help` и `marker.light_role.help` уже существуют. В этой задаче: - device radius не получает второй trigger; проверяется его единица и inheritance; - текст light role заменяется каноническим из §6, потому что он обязан объяснять динамический Auto/Always/Never contract; - их `.aria` keys сохраняют текущие имена и остаются непустыми во всех четырёх локалях; - smoke #68 продолжает проходить без второго tooltip на том же control. ## 8. Размещение triggers - Dialog field: trigger стоит рядом с label/legend, но не внутри `