From 4d8f4db28458d0469be6c24687734a4f35e4c669 Mon Sep 17 00:00:00 2001 From: Aleksey Sabilin Date: Wed, 29 Jul 2026 23:46:07 +0300 Subject: [PATCH] docs(spec): Front#45 mood chip mobile icon-only chrome Sync EventHubFrontSpec and UI-PARITY with mark-only logo + icon-only chip on mobile. Refs EventHub/EventHubFront#45 --- EventHubFrontSpec.md | 4 ++++ design/front/UI-PARITY.md | 10 +++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/EventHubFrontSpec.md b/EventHubFrontSpec.md index 68c349d..c6be271 100644 --- a/EventHubFrontSpec.md +++ b/EventHubFrontSpec.md @@ -101,6 +101,7 @@ Deep-link на календарь, владельцем которого явл - На мобиле — bottom tab bar (+ safe-area); на desktop — **одна строка** chrome: logo + mood chip | nav tabs | nickname + logout (не два ряда header+nav). Сырой email в chrome не показывать — primary identity = `nickname` (fallback без `@`). + Mobile: logo mark-only + mood chip icon-only (Front#45); desktop — полный wordmark + label. Nav `aria-current` синхронизирован с `useLocation` (без remount `Outlet` по pathname). - Mood themes — см. §3.2. @@ -120,6 +121,9 @@ Deep-link на календарь, владельцем которого явл - Auth (`/login`, `/register`, `/verify`, forgot/reset) — compact `MoodSwitcher` (+ language). - AppShell — primary control: **mood chip** рядом с BrandWordmark → dialog/sheet (**не** в `/more`, **не** в calendar toolbar Month/Week/Day). Desktop: logo + mood \| nav \| nickname + logout. + **Front#45:** mobile (`< sm`) — BrandWordmark mark-only (без текста CalenTIQ) + mood chip + icon-only (`aria-label` = FLOW/MOMENTUM/CONTROL); с `sm+` — полный wordmark и полный label + chip без truncate. Sheet: icon + label + tagline. **Lens** (отдельно от mood и от view month/week/day): `overview` / `today` / `bookings` (UI: Обзор / На сегодня / Заявки). Переключатель — в шапке lens strip (не в toolbar рядом diff --git a/design/front/UI-PARITY.md b/design/front/UI-PARITY.md index e389e76..dc56660 100644 --- a/design/front/UI-PARITY.md +++ b/design/front/UI-PARITY.md @@ -19,7 +19,7 @@ SoT: [`boards/calentiq-ui-board-final.png`](boards/calentiq-ui-board-final.png). | CONTROL booking §E | отдельные mock-карточки «слот/специалист» | `EventActionCard` / specialists / bookings: steel rail (усилен), avatar, available label, Confirm/Decline; не pixel-perfect board mocks | | Bookings list §D | список заявок с Confirm/Decline на `/bookings` | `/bookings` = **grouped inbox**: (A) К подтверждению — pending owner/specialist + Confirm/Decline; (B) Мои записи — participant upcoming/past + Cancel; empty groups hidden. Event card Confirm/Decline **остаётся** обязательным | | Login §D phone chrome | три phone frames + (на борде) Google CTA | brand-first hero + mood `--auth-*`; email/password only; compact mood на auth; taglines — в mood sheet AppShell (не в `/more`); **без** Google OAuth | -| Mood placement | board §C switcher cards | **Front#40:** mood chip в AppShell рядом с BrandWordmark (+ compact auth); **не** в `/more`, **не** в toolbar Month/Week/Day; 3 moods, без flip / CREATOR | +| Mood placement | board §C switcher cards | **Front#40/#45:** mood chip в AppShell рядом с BrandWordmark (+ compact auth); mobile icon-only chip + mark-only logo; **не** в `/more`, **не** в toolbar Month/Week/Day; 3 moods, без flip / CREATOR | | Lens + strip | board Today/Upcoming rail only | **Front#39 + controls IA:** lens Обзор/На сегодня/Заявки в **шапке strip** (underline tabs / mobile sheet); view Месяц/Неделя/День рядом с периодом; owner schedule actions отдельным рядом; localStorage only; soft-default по mood | | Week view headers | — | **Front#40:** одна строка day-headers (без дубля `WeekDayColumn`); scroll `.eh-cal-week-scroll` (mobile ~390) | | Favicon set | 3 отдельных favicon файла на борде | mood appicon через `applyMood` | @@ -50,6 +50,8 @@ IA без sidebar / без Creator mood — совпадает с non-goals (п **Front#40 (2026-07-28, SHA mood `7c092d1` / week `db11c41`):** Mood chip в AppShell рядом с BrandWordmark (**не** в calendar toolbar Month/Week/Day); 3 moods; `PATCH preferences.mood`; без дубля в Ещё. Week view: одна строка day-headers + `.eh-cal-week-scroll` для mobile ~390. +**Front#45 (2026-07-29):** Mobile mood chrome — chip icon-only (без truncate label) + BrandWordmark mark-only; `sm+` полный label + wordmark; sheet без изменений; `aria-label` на chip. + **Remaining intentional:** no pixel-perfect phone chrome; Discover без photo-hero grid (cover via `image_url` when API returns it; broken URL → wash+initials); §E specialist schedule card vs panel — не pixel-perfect board mocks (follow-up). Product flow D9 B — documented; board pixel mock — Future. ### Bookings inbox + More invites (locked 2026-07-27) @@ -91,7 +93,8 @@ API: `GET /v1/user/booking-requests` (Back) + существующий `PUT /v1/ 1. **Mood** = визуальная атмосфера (`html[data-mood]`, FLOW/MOMENTUM/CONTROL). Primary UX — chip → sheet в **AppShell** рядом с BrandWordmark (Front#40); compact на auth. **Нет** в `/more`; **не** в toolbar Month/Week/Day. Persist: `preferences.mood` - через `PATCH /v1/user/me`. Без flip; без CREATOR. + через `PATCH /v1/user/me`. Без flip; без CREATOR. Front#45: mobile chip icon-only + + mark-only logo; desktop — полный label/wordmark; sheet — icon + label + tagline. 2. **Lens** = отдельный контентный режим (`overview` / `today` / `bookings`), не mood и не view month/week/day. UI: Обзор / На сегодня / Заявки. Переключатель — в шапке strip (underline/text tabs на desktop; chip → sheet на mobile), **не** рядом с ViewMode. @@ -115,7 +118,7 @@ API: `GET /v1/user/booking-requests` (Back) + существующий `PUT /v1/ | §E specialist schedule card vs panel | deviation: EventActionCard + SpecialistsPanel; pixel mock — Future; **product D9 B** — done Front#35 | | Desktop one-row chrome | **done** Front#31; mood chip у logo — Front#40 (`7c092d1`) | | D9 B + confirmed personal overlay | **done** Front#35 (`57cfcf3`) | -| Mood chip + Lens strip | **done** Front#39 (`c2cb754` / `d38a927`); chip → AppShell Front#40 | +| Mood chip + Lens strip | **done** Front#39 (`c2cb754` / `d38a927`); chip → AppShell Front#40; mobile icon-only Front#45 | | Week view single header + scroll | **done** Front#40 (`db11c41`) | ## Mood concept = product surface @@ -246,6 +249,7 @@ CSS-токены и chrome на mood beyond primary hex: surfaces, gradients, ev | — | P2: D9 B + confirmed personal + density/F6 | [Front#35](https://git.sabilin.com/EventHub/EventHubFront/issues/35) | | — | Mood chip + Lens strip (workspace) | [Front#39](https://git.sabilin.com/EventHub/EventHubFront/issues/39) | | — | Mood chip → AppShell + week scroll | [Front#40](https://git.sabilin.com/EventHub/EventHubFront/issues/40) | +| — | Mood chip icon-only mobile + mark-only logo | [Front#45](https://git.sabilin.com/EventHub/EventHubFront/issues/45) | Эпик: [Spec#10](https://git.sabilin.com/EventHub/EventHubSpec/issues/10).