Дизайн: новый тип popup — «Promo Sheet» (webview-шторка)
Цель
Дать продукту переиспользуемый, управляемый с бэкенда контейнер для промо/лендингов внутри приложения — без релиза нового экрана под каждую акцию.
Метрика успеха
Время до запуска новой промо-кампании: сейчас = релиз с новым экраном, цель = конфиг на бэкенде.
Как это меняет процесс
Контент и дизайн акции живут на веб-странице и обновляются без релиза приложения.
Триггер и логика показа
- Показывается при открытии приложения (splash → home), поверх основного экрана
- Частота/таргетинг — backend-driven: сервер отдаёт
{show: bool, url, campaign_id}; приложение просто рендерит то, что пришло, без своей логики капов
решаем позже
В эту версию не включаю webview↔native bridge (передача телефона/токена,
closePopup() из JS) — отмечено как «решить позже» в спеке, чтобы не блокировать дизайн.
Структура popup
- Полноэкранная шторка снизу, с отступом сверху (видна часть home-экрана / статус-бар просвечивает) — не modal-затемнение с маленькой карточкой, а почти full-screen sheet
- Нативная тонкая шапка (~44–48pt) поверх webview: полупрозрачный/приглушённый крестик слева, не перетягивает внимание с контента. Шапка не скроллится вместе со страницей — фиксирована
- Ниже шапки — webview с лендингом (как promo.goodline.info/wifi_test), вертикальный скролл, никаких горизонтальных слайдов
Поведение и анимация
01
Вход
Slide-up снизу вверх — стандартный sheet-transition, не fade.
02
Тап на крестик
Закрытие шторки, возврат к home.
03
Свайп вниз от шапки
Native gesture закрытия, как стандартный Android back.
04
Скролл контента
Скролл внутри webview не закрывает popup — в отличие от свайпа именно за шапку/пустую область.
Отличие от текущих шторок и онбординга
| Шторки / онбординг сейчас | Promo Sheet | |
|---|---|---|
| Контент | Нативный, короткий, фиксирован на релизе | Webview-контейнер + нативная шапка, контент живёт на веб-странице |
| Обновление | Требует релиза приложения | Обновляется без релиза, конфигом с бэкенда |
| Визуал/маркетинг | Зашит в приложение | Полностью на стороне веб-страницы |
Интерактивный прототип
Экран 1:1 из Figma «LocalWork» — тап по баннеру открывает Promo Sheet с реальным лендингом внутри
Весенняя, 11
Goodline город
ВсеЗагрузка страницы…
tap баннер открывает Promo Sheet, крестик или тёмная область — закрывают
Крестик — за пределами шторки. Плавает в верхнем зазоре над sheet, поверх затемнённого фона, не в её шапке.
У шторки нет собственной шапки. Webview-контент сразу начинается с закруглённого верхнего края.
Внутри — настоящий лендинг promo.goodline.info/wifi_test, а не мокап.