# Requirements: Gravl Workout UX

**Defined:** 2026-02-15
**Core Value:** Att logga ett träningspass ska vara snabbt, tydligt och flexibelt

## v1 Requirements

### Input UX

- [ ] **INP-01**: Viktfält visar "kg" suffix synligt i inputen
- [ ] **INP-02**: Reps-input förhindrar negativa värden (min=0)
- [ ] **INP-03**: Vikt-input förhindrar negativa värden (min=0)
- [ ] **INP-04**: Alla input-fält och knappar har minst 44px höjd (touch targets)
- [ ] **INP-05**: Input font-size minst 16px (förhindrar iOS auto-zoom)
- [ ] **INP-06**: Stepper-input med +/- knappar för vikt (steg 2.5kg)
- [ ] **INP-07**: Stepper-input med +/- knappar för reps (steg 1)

### Set Management

- [ ] **SET-01**: Användare kan lägga till extra set på vilken övning som helst under ett pass
- [ ] **SET-02**: Användare kan ta bort set från vilken övning som helst under ett pass
- [ ] **SET-03**: Tillagda/borttagna set sparas korrekt i databasen

### Workout Modification

- [ ] **MOD-01**: Användare kan modifiera ett programpass genom att byta ut övningar
- [ ] **MOD-02**: Användare kan lägga till övningar till ett programpass
- [ ] **MOD-03**: Modifierat pass sparas som eget pass (forkar, ändrar inte programmet)

## v2 Requirements

### Custom Workouts

- **CUS-01**: Användare kan bygga helt eget pass från övningslista
- **CUS-02**: Användare kan spara eget pass som återanvändbar mall
- **CUS-03**: Egna pass visas i WorkoutSelectPage bredvid programpass

### Enhanced UX

- **ENH-01**: Förfyll förra passens vikt/reps som referens
- **ENH-02**: Vila-timer med browser-notifikationer

## Out of Scope

| Feature | Reason |
|---------|--------|
| Bygg helt nytt pass från scratch | Skjuts till v2 (CUS-01/02/03) |
| Periodisering/programplanering | Scope creep — Gravl är en enkel PPL-tracker |
| Sociala funktioner | Inte relevant för personlig träningsloggning |
| Video-övningsdemos | Lagring/bandbredd, inte core value |
| Gamification (badges, streaks) | Distraherar från snabb loggning |

## Traceability

| Requirement | Phase | Status |
|-------------|-------|--------|
| INP-01 | Phase 1 | Pending |
| INP-02 | Phase 1 | Pending |
| INP-03 | Phase 1 | Pending |
| INP-04 | Phase 1 | Pending |
| INP-05 | Phase 1 | Pending |
| INP-06 | Phase 1 | Pending |
| INP-07 | Phase 1 | Pending |
| SET-01 | Phase 2 | Pending |
| SET-02 | Phase 2 | Pending |
| SET-03 | Phase 2 | Pending |
| MOD-01 | Phase 3 | Pending |
| MOD-02 | Phase 3 | Pending |
| MOD-03 | Phase 3 | Pending |

**Coverage:**
- v1 requirements: 13 total
- Mapped to phases: 13
- Unmapped: 0

---
*Requirements defined: 2026-02-15*
*Last updated: 2026-02-16 after roadmap creation*
