0003 — UI-система и frontend-прототип «Сегодня»¶
- Дата: 2026-08-18.
- Статус: Принято; visual tokens и composition позднее уточнены решением 0029.
- Ответственный: владелец проекта.
Контекст¶
Для начала проектирования MVP владелец определил визуальный язык кабинета SKUARO и запросил создание сохраняемого UI-kit. Требовалось не превращать прототип в полную CRM и одновременно защитить интерфейс от случайного расхождения стилей.
Решение¶
- Эталонным экраном становится ежедневный список «Сегодня».
- Рабочая область светлая, навигация графитовая, зелёный является основным акцентом, оранжевый обозначает внимание.
- Интерфейс проектируется desktop-first; ключевые действия полностью доступны на телефоне.
- Frontend-прототип использует npm workspaces, React, TypeScript и Vite.
- Открытый код компонентов хранится в
packages/uiи следует подходу shadcn/ui; сложное доступное поведение строится на Radix Primitives. - Токены и правила фиксируются в корневом
UI_SYSTEM.md. - Все предусмотренные состояния компонентов хранятся в Storybook.
- Playwright сравнивает эталонные снимки desktop и mobile для экрана «Сегодня», формы обращения и карточки клиента.
- Backend, реальные данные, авторизация и production-инфраструктура этим решением не выбираются.
Причины¶
Один эталонный сценарий позволяет проверить ключевое обещание SKUARO до разработки большого продукта. Общий пакет компонентов и документированные токены ограничивают визуальный дрейф, Storybook сохраняет состояния, а снимки Playwright обнаруживают случайные изменения.
Последствия¶
Положительные:
- есть запускаемый и проверяемый интерфейс первого ежедневного сценария;
- компоненты можно переиспользовать в следующих экранах;
- изменения визуального языка имеют формальный контроль;
- desktop и mobile проверяются одним набором тестов.
Ограничения:
- данные являются демонстрационными и не сохраняются;
- основные действия могут менять локальное состояние прототипа до перезагрузки страницы;
- действия прототипа не подключены к API;
- выбор frontend-инструментов не фиксирует серверный production-стек;
- визуальные baseline зависят от ОС и версии браузера.
Откат или замена¶
Смена frontend-стека или общего визуального языка оформляется новым решением. Отдельный компонент можно заменить после обновления его Storybook-состояний, экрана «Сегодня» и принятых Playwright-эталонов.
Последующее решение¶
2026-08-21 решение 0004 сохранило React, TypeScript, Vite и текущий UI-kit как production-направление frontend. Ограничение этого ADR верно исторически: само создание прототипа не выбирало backend; backend был выбран позднее отдельным решением.
2026-08-26 решение 0029 заменило green-primary visual palette, конкретную геометрию
и responsive composition на SKUARO Control Surface. Статус /today как
эталонного продуктового модуля, UI-kit/Storybook/visual gate и contract boundaries
этого решения сохраняются.