src/bmm-skills/2-plan-workflows/bmad-ux/assets/experience-example-mobile.md
Illustrative example. Single-surface mobile (iOS + Android parity). Consumer posture, calm by default. Paired with
design-example-mobile.md(Quill DESIGN.md). Demonstrates: microcopy as gating discipline, Inspiration & Anti-patterns earning its place, Responsive & Platform omitted (single-surface).
Single-surface mobile, iOS + Android with parity. No UI system named — inherits platform conventions for navigation, system gestures, dynamic type. DESIGN.md is the visual identity reference; this spine is the experience. Dark mode is the default surface; light is a setting.
| Surface | Reached from | Purpose |
|---|---|---|
| Today | App open (cold) | Today's prompt + entry composer |
| Library | Tab bar | Past entries, searchable |
| Entry detail | Library row tap | Read / edit one entry |
| Settings | Today header gear | Account, export, theme |
Bottom tab bar (Today / Library / Settings). No drawer. Modal stacks one level deep, never two.
→ Composition reference: mockups/today-cold.html, mockups/composer.html. Spine wins on conflict.
Microcopy. Brand voice and aesthetic posture live in DESIGN.md.
| Do | Don't |
|---|---|
| "Today's prompt." | "Time to write!" |
| "Saved." | "✓ Auto-saved successfully" |
| "We couldn't reach the cloud — your work is on this device." | "Network error" |
| Short, complete sentences. | Streak counters, encouragement, exclamation marks. |
Behavioral. Visual specs live in DESIGN.md.Components.
| Component | Use | Behavioral rules |
|---|---|---|
| Prompt card | Today | One per day. Tap opens composer. |
| Composer | Today + entry detail | No formatting toolbar in v1. Autosave on pause ≥ 600ms. |
| Entry row | Library list | Tap → entry detail. Long-press reserved for system text selection. |
| Save indicator | Composer header | Cycles Editing… → Saved. (≥ 800ms visible). |
| Settings row | Settings list | Tap → detail or toggle. |
| State | Surface | Treatment |
|---|---|---|
| Cold open | Today | Show today's prompt (cached). If no cache, Today's prompt is loading. with skeleton. |
| Empty library | Library | No entries yet — Today's prompt is your first. Link to Today. |
| Search empty | Library search | No matches. No suggestions. |
| Offline write | Composer | Save locally. No banner. Sync on next foreground. |
| Sync error | Settings → Account | Surfaced here only. Never block writing. |
| Focus | Composer | Native cursor + keyboard. No custom focus chrome. |
Behavioral. Visual contrast lives in DESIGN.md.
Saved on transition.DESIGN.md typography tokens. UI must remain legible at largest setting — no truncated controls.Saved. immediately.Saved. and the entry's first line below the prompt — proof the day is captured.Failure: cold prompt fetch fails → composer still opens with cached generic prompt; banner on Today only after Mira returns.
Saved. visible in entry header — the older self and the present self are in continuous conversation.Empty state: no entries → message routes back to Today.