From 7bd4b0ad7e002c63637288abf8830f4a61acd2e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BB=D0=B5=D0=BA=D1=81=D0=B0=D0=BD=D0=B4=D1=80=20?= =?UTF-8?q?=D0=97=D0=B8=D0=BC=D0=B8=D0=BD?= Date: Thu, 14 May 2026 15:21:58 +0000 Subject: [PATCH] =?UTF-8?q?docs(design):=20DESIGN.md=20v1=20=E2=80=94=20re?= =?UTF-8?q?solve=20Section=2012=20open=20items?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DESIGN.md | 201 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 187 insertions(+), 14 deletions(-) diff --git a/DESIGN.md b/DESIGN.md index a4d5b54..187461f 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -327,21 +327,188 @@ because empty space looks empty. --- -## 12. Open Items (gaps to address in /design-consultation sprint) +## 12. Responsive Breakpoints -- Responsive breakpoint policy (mobile 375, tablet 768, desktop 1024, - wide 1440 — confirm + lint) -- Touch target enforcement (P1 in TODO 6 a11y findings) -- Loading state taxonomy (skeleton vs spinner vs LoadingBlock vs Suspense - — when to use which) -- Motion duration policy (currently ad-hoc — set 150ms quick / 300ms medium - / 500ms entrance) -- Long-content overflow rules (truncate vs wrap vs ellipsis vs scroll — - per surface type) -- Dark mode parity audit (some tokens have alpha inconsistency between - themes) -- Notifications channel UI policy (in-app vs email vs both — currently - every event goes to all enabled channels; should be user-configurable) +Tailwind defaults — `sm=640 / md=768 / lg=1024 / xl=1280 / 2xl=1536`. Ordinis +is an admin tool — desktop primary. Policy: + +- **Target primary:** `lg` (1024) and up — full layout fidelity +- **Tolerate:** `sm`–`md` (640-1023) — degraded but functional (sidebar + collapses to hamburger; tables horizontally scroll; tabs may wrap) +- **Minimum viable:** 375px (iPhone SE narrow). No layout breaks; some + density compromises accepted. +- **Avoid breakpoint ping-pong:** don't redefine layout at every step. + Standardize page padding: `px-4 sm:px-6 lg:px-8`. Big shifts only at `lg` + (sidebar collapse) and `xl` (max-width caps). + +Explicit non-goal: native mobile-app feel. Users on phones are doing +inspection / approval triage, not maker-flow data entry. See Section 19 +disclosure. + +--- + +## 13. Touch Targets + +WCAG AAA recommends 44×44 minimum. Ordinis policy: + +- **All interactive elements** (`button`, `a` with `href`, `[role=button]`, + inputs) — `min-h-[44px]` enforced. +- **Icon-only buttons** (Bell, theme switch, language switch, hamburger) — + `size-11` (44×44) wrapper instead of current `size-7`. Visual icon stays + small; hit area is the padded wrapper. +- **Tabs** — `h-11` instead of `h-10`. Lose 4px header height, gain WCAG + compliance. +- **Sidebar nav rows** — full row click area (already correct); + `py-2.5` ensures ≥ 44px tall. +- **Table action links** ("Open →") — wrap in `