27 lines
1.2 KiB
Markdown
27 lines
1.2 KiB
Markdown
# 2026-09-13 — Системный продуктовый дизайн (web)
|
|
|
|
Заложена расширяемая дизайн-система кабинета вместо монолита `App.tsx`.
|
|
|
|
## Структура
|
|
|
|
- `web/src/design/` — токены (`tokens.css`), base, стили shell/UI
|
|
- `web/src/components/ui/` — Button, Field, Flash, ProgressBar, MetricGrid, PageHeader, Section, EmptyState, Banner
|
|
- `web/src/components/layout/` — AppShell, AuthLayout, `PRIMARY_NAV` (точка расширения меню)
|
|
- `web/src/auth/` — AuthProvider, RequireAuth
|
|
- `web/src/cabinet/` — CabinetProvider (бюджет/траты), CabinetLayout
|
|
- `web/src/pages/` — Login, Overview, Operations, Journal, Period (+ ComingSoon заготовка)
|
|
|
|
## Маршруты
|
|
|
|
`/login` · `/` · `/operations` · `/journal` · `/period`
|
|
В nav зарезервированы «Отчёты» и «Настройки» (`soon: true`).
|
|
|
|
## Как добавлять фичу
|
|
|
|
1. Пункт в `PRIMARY_NAV`
|
|
2. Route под `CabinetLayout` в `App.tsx`
|
|
3. Страница в `pages/`, UI из `components/ui`
|
|
4. Доменное состояние — в `cabinet/` или новый context
|
|
|
|
Сборка `npm run build` проходит успешно.
|