Перейти к содержанию

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 этого решения сохраняются.