c146e9b932
Make the workout exemplar recover cleanly from invalid edits, accidental double-advance, replay parse failures, and denied or timed-out host export results while keeping local events as truth. req: examples/001 req: local/001 req: local/003 req: local/004 req: host/002 req: host/005
21 lines
1.3 KiB
Markdown
21 lines
1.3 KiB
Markdown
# Workout exemplar design
|
|
|
|
Direction: gym-floor command slate — one heavy next action, thumb-safe command rail, finished-session export, and an inspectable private ledger. req: examples/001
|
|
|
|
Preserve:
|
|
- First viewport shows one obvious action path before logs or host details.
|
|
- Controls stay large enough for sweaty one-handed use; forms remain secondary to tap actions.
|
|
- Rest/next, progress, undo recovery, invalid input, replay failure, host denial, and finish/export feel like session states, not framework demos.
|
|
- Local truth is visible as a ledger/export, not hidden behind dashboard metrics. req: local/001 req: local/003
|
|
- Host capabilities read as finish/export product states first, with proof controls tucked behind an explicit panel instead of competing with the user flow. req: host/002
|
|
|
|
Avoid:
|
|
- Dashboard/KPI cards, fake charts, bottom-nav app chrome, glass/gradient hero filler, and hidden client state.
|
|
- Equal-weight action grids that make “what now?” ambiguous.
|
|
- Styling that requires handwritten selector UI JavaScript.
|
|
|
|
Accessibility and responsive boundaries:
|
|
- Keep semantic buttons/forms/labels and visible focus rings.
|
|
- Minimum tap target is defined by `--tap`; do not reduce it for density.
|
|
- Narrow screens are the primary material; wide screens may split the command slate and ledger but must not hide the current action.
|