docs(design): define Stitch-backed product direction
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# MobilityOps Control Rail design system
|
||||
|
||||
## Product principles
|
||||
|
||||
1. **Decisions before decoration.** Readiness, attention and next action lead each page.
|
||||
2. **Persisted truth only.** Counts and health claims come from current API responses;
|
||||
unavailable and unconfigured services are stated honestly.
|
||||
3. **Evidence before consequence.** Returns and merges preview their impact before the
|
||||
irreversible request; knowledge answers identify evidence sufficiency.
|
||||
4. **Dense, never cramped.** Thin rules and compact type replace nested cards, while
|
||||
interactive targets remain at least 40 px (44 px in mobile navigation and key flows).
|
||||
|
||||
## Tokens
|
||||
|
||||
| Role | Token | Value |
|
||||
|---|---|---|
|
||||
| Primary structure | `--petrol` | `#0f172a` |
|
||||
| Secondary structure | `--petrol-2` | `#15243a` |
|
||||
| Primary action | `--teal-dark` | `#0b6f67` |
|
||||
| Active highlight | `--teal` | `#0f8f83` |
|
||||
| Action tint | `--teal-pale` | `#e7f7f4` |
|
||||
| Canvas | `--canvas` | `#f5f7fa` |
|
||||
| Surface | `--surface` | `#ffffff` |
|
||||
| Divider | `--line` | `#dbe2ea` |
|
||||
| Body ink | `--ink` | `#0f172a` |
|
||||
| Secondary text | `--muted` | `#657386` |
|
||||
| Critical | `--critical` | `#c93636` |
|
||||
| Warning | `--warning` | `#b96812` |
|
||||
| Success | `--success` | `#17724b` |
|
||||
| Keyboard focus | `--focus` | `#14b8a6` |
|
||||
| Standard radius | `--radius` | `4px` |
|
||||
|
||||
Typography uses Inter when available and a system sans-serif fallback. Page titles are
|
||||
28–35 px desktop and 24–26 px mobile; section headings are 16 px; table content is 12 px
|
||||
with 10 px uppercase labels. Hierarchy comes from position, weight and rules rather than
|
||||
display-sized text.
|
||||
|
||||
## Core component grammar
|
||||
|
||||
- **Shell:** 224 px desktop rail, 64 px sticky top bar, persistent synthetic-data band.
|
||||
- **Mobile shell:** 58 px top bar, off-canvas full navigation and six-item 65 px bottom bar.
|
||||
- **Readiness:** horizontal definition-list band; warning and critical values get a
|
||||
semantic underline and text color.
|
||||
- **Work panel:** one border, 4 px radius, section header, optional compact controls and
|
||||
ruled content. No nesting for decorative depth.
|
||||
- **Status:** text plus dot/shape and semantic foreground/background; color is never the
|
||||
only carrier.
|
||||
- **Tables:** explicit headers on desktop; `data-label` term/value rows on mobile.
|
||||
- **Feedback:** normalized loading, empty and error surfaces keep page context.
|
||||
- **Motion:** 160–280 ms for hover/page entry; removed under `prefers-reduced-motion`.
|
||||
|
||||
## Accessibility and responsive rules
|
||||
|
||||
- Skip link, named navigation landmarks and one main landmark per authenticated page.
|
||||
- 3 px high-contrast `:focus-visible` outline with offset.
|
||||
- Form labels remain programmatic; icon-only controls carry accessible names and titles.
|
||||
- Desktop tables become labelled row cards below 700 px; no header meaning is lost.
|
||||
- The document has no horizontal overflow at 390, 768, 1280 or 1440 px.
|
||||
- All status and evidence states include readable text; critical actions are separated
|
||||
from navigation and review precedes commit.
|
||||
Reference in New Issue
Block a user