BRD Widget 8.5 Темная тема
Направление работ: Widget Код раздела: 8.5 Раздел: Общие работы > Темная тема Статус: черновик Ответственный: Панкова Л.А. Версия: 0.1 Обновлено: 11.08.26
1. Назначение
Раздел описывает тему оформления виджета: светлая, тёмная или системная тема по конфигурации, следование системной теме операционной системы и переопределение темы от родительской страницы.
Документ описывает механизм темы. Акцентный цвет и остальная кастомизация — раздел 8.2.1.
Раздел связан с Widget: 8.2.1 Кастомизация виджета.
2. Ключевые понятия
Тема — режим оформления виджета, задаётся настройкой партнерской зоны theme (WidgetTheme) со значениями: Brows = 0 — системная, Light = 1 — светлая, Dark = 2 — тёмная.
Системная тема — тема, соответствующая настройке операционной системы (prefers-color-scheme); значение Brows (0).
Переопределение темы — установка тёмной или светлой темы сообщением от родительской страницы.
3. Scope
Входит
S1: Применение темы из конфигурации
S2: Следование системной теме
S3: Переопределение темы от родительской страницы
Не входит
- Widget: 8.2.1 Общие работы > Интеграция виджета партнером > Кастомизация виджета (акцентный цвет и компоновка)
4. BR
Раздел технический; определяется оформлением виджета. Выбор темы задаётся партнёром в кастомизации (8.2.1).
5. Функциональные требования (UC + FR)
FR — functional requirements, что интерфейс должен уметь делать по определенному UC.
| ID | Сценарий | Функциональное требование | BR | Вес | Статус |
|---|---|---|---|---|---|
| S1: #FR8.5-1 | Виджет загружается | Виджет применяет тему из конфигурации по значению theme: Brows (0) — системная, Light (1) — светлая, Dark (2) — тёмная. | 1 | Не реализовано — механизм есть, но значения темы сопоставлены неверно, см. OQ8.5-2 | |
| S2: #FR8.5-2 | Тема системная | В системном режиме (Brows) виджет следует теме операционной системы и переключается при её изменении. | 2 | Не реализовано — системный режим срабатывает на значении Dark, а не Brows, см. OQ8.5-2 | |
| S3: #FR8.5-3 | Родительская страница задаёт тему | Виджет поддерживает переопределение тёмной или светлой темы сообщением от родительской страницы (mb-theme). | 3 | Реализовано |
6. Открытые вопросы
| ID | Источник | Вопрос | Кому | Статус |
|---|---|---|---|---|
| #OQ8.5-1 | Figma / продукт | В самом виджете нет переключателя темы для клиента — тема задаётся конфигурацией партнёра или родительской страницей. Подтвердить, нужен ли пользовательский переключатель темы в виджете. Решение: переключатель не нужен. Тему задает партнер настройкой партнерской зоны под оформление своего сайта; собственный переключатель у клиента ломал бы согласованность виджета со страницей, на которой он размещен. Требований не добавляем. | Бизнес | Закрыт |
| #OQ8.5-2 | Код | Дефект: значения темы сопоставлены неверно. По контракту WidgetTheme значения такие: Brows = 0 (системная), Light = 1 (светлая), Dark = 2 (тёмная). В коде разбор темы устроен иначе: theme === 1 даёт тёмную, theme === 2 — системную, остальные значения — светлую. Итог по каждому значению: Brows (0) показывает светлую вместо системной; Light (1) показывает тёмную вместо светлой; Dark (2) показывает системную вместо тёмной. Это же объясняет наблюдение QA «виджет всегда принимает системную тему» — на тестовом виджете выставлено Dark. Механизм темы реализован, ошибка только в сопоставлении значений; правка сводится к одной функции. \ widgets/booking/composables/useLayout.ts:41-48, shared/api/widget-config/api/widgetConfig.api.ts:86 | Разработка | Закрыт |