--- name: reference-dashboard-design-artifact description: Визуальный дизайн проекта — палитра/токены Nocturne (2026-08-14, поверх старого макета room-card/dock-навбар) — сверяться при любой работе над UI metadata: type: reference --- **Актуальная версия (2026-08-14).** Пользователь принёс новый hi-fi дизайн-хендофф — сгенерирован внешним дизайн-инструментом («clode design»), лежит в `App/design_handoff_personal_finance/` (`Личные финансы.dc.html`, `nocturne.css`, `README.md`). Система называется **Nocturne** (тёмная, mono-accent, `--color-accent:#9184d9`, шрифт Inter в оригинале). Хендофф покрывает 4 экрана: Дашборд, План на год, Транзакции, Аналитика — из них в проекте на момент разговора реально существовали только первые два (Транзакции — есть только `TransactionRepository`, без контроллера/view; Аналитика — не существует вообще). **Решено с пользователем, что делаем сейчас (см. также [[budget-current-plan]] по фиче):** 1. **Только визуальная система** — токены/палитра/радиусы/тени/шрифт поверх уже существующих экранов (Дашборд, Категории, План на год). Экраны Транзакции/Аналитика — не делаем сейчас, это отдельный заход (нужен новый бэкенд: контроллеры, агрегирующие запросы для графиков). 2. **Категории остаются отдельной страницей `/categories`** — в хендоффе CRUD статей открывается модалкой прямо со страницы «План на год» (кнопка «Статьи»), но пользователь явно попросил не переносить, оставить как есть. 3. **Шрифт — не Inter из хендоффа, а SF Pro**, который уже лежит в проекте (`App/media/fonts/`, `App/media/css/fonts.css`) — этот файл раньше нигде не подключался, подключён в `layout.html` этим же заходом. **Как перенесено технически** — не копировали HTML хендоффа (там своя `sc-`-шаблонизация чужого инструмента, не Bicycle), а перетащили только **значения** токенов Nocturne на уже существующие CSS-переменные проекта в `App/media/css/dashboard.css`, чтобы не трогать разметку/JS: - `--bg:#161826`, `--surface:#232532`, `--surface-2:#292b31`, `--surface-3:#3f424d`, `--ink:#e9e9ed`, `--ink-soft:#cfd3e5`, `--muted:#9397ab`, `--divider` (16% ink) — вместо старой чёрно-серой палитры (`--bg:#0b0b0f` и т.д.). - Новый `--accent:#9184d9` (+ `--accent-tint:#d2cefd` для kicker-подписей типа «Доступно сейчас») — единый акцент интерфейса (активный пункт dock, фокус форм, `.btn-primary`). Раньше активный dock подсвечивался `--teal` — заменено на `--accent`. - `--radius-sm/md/lg` (4/8/14px) и `--shadow-card`/`--shadow-pop` (hairline-обводка + мягкая тень — фирменная деталь Nocturne) — применены ко всем карточкам/панелям/дропдаунам. - `--sans`/`--font-heading` — теперь `"SF Pro Text"`/`"SF Pro Display"` вместо системного sans; `--font-heading` навешан на заголовки/крупные суммы (`.balance`, `.room-title`, `.budget-group-name`, `.section-label` и т.п.). - Bootstrap-компоненты форм/модалок (`.btn-primary`, `.form-control`, `.form-select`, `.form-check-input`, `.modal-content`) — довешаны CSS-переопределения под эту же палитру (раньше были дефолтные цвета Bootstrap, не тронутые прошлым заходом). - **Акцентные цвета per-тип счёта/категории** (`--teal/--green/--purple/--blue/--orange/--pink/ --red/--amber/--gray`) — **не трогали**, оставлены как были: это уже прямые тёмные цвета вне системы токенов (та же логика, что и в самом хендоффе — см. README.md проекта, «разноцветные акценты... заданы прямыми oklch(), не входят в токены Nocturne»). - `App/view/Login/login.html` — **не тронут**, у него свой независимый `