Phase 04: Drag Interaction - Implementation decisions documented - Phase boundary established Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.9 KiB
1.9 KiB
Phase 4: Drag Interaction - Context
Gathered: 2026-01-18 Status: Ready for planning
## Phase BoundaryUser can drag itinerary items with proper visual feedback, animation, and constraint enforcement. Items include travel segments and custom items (games are not draggable). The system uses semantic positions (day, sortOrder) established in Phases 1-3.
## Implementation DecisionsDrag Feel & Weight
- Quick & snappy lift — instant pop-up, light and responsive (iOS Reminders style)
- 1:1 finger tracking — item stays exactly under finger, no lag or smoothing
- Immediate shuffle — items move instantly when drag crosses them (no delay threshold)
- Subtle scale on lift (1.02-1.03x) — barely noticeable, just enough shadow change
Insertion Line Design
- Color follows selected theme in Settings — respects user's theme choice
- Fade in/out animation (~150ms opacity transition)
- Plain line only — no glow, shadow, or endpoint embellishments
Invalid Drop Feedback
- Red tint on dragged item while hovering over invalid zone
- Quick spring snap-back animation (~200ms with slight overshoot)
- Error haptic pattern (3 quick taps) — distinct "nope" feeling
- No sound effects — haptic and visual feedback only
Claude's Discretion
- Insertion line thickness (suggested 2-4pt)
- Shadow depth and exact tilt angle during drag
- Drop settle animation timing
- Auto-scroll speed and dead zone sizing (user didn't discuss this area)
- Line positioning relative to items
- Lift feel should match iOS Reminders — quick, light, responsive
- Snap-back should have slight overshoot for spring physics feel
- Theme-aware colors for insertion line
None — discussion stayed within phase scope
Phase: 04-drag-interaction Context gathered: 2026-01-18