per-page scroll layouts, parallax keyboard, modal overlays
Created by: jedmund
Summary
- Each lesson page fills the viewport and decides its own internal layout (left/right split, top/bottom exercise split, or centered modal card) within a single vertically-paging scroll view
- Keyboard stays fixed via visualEffect parallax when scrolling between same-layout pages, with caption crossfade and proper hit-testing so invisible sticky keyboards don't intercept taps
- Modal pages (quizzes, checks) blur the background page with scroll-tracked intensity instead of replacing it
- Exercise pages split into reading region (60%) and edge-to-edge keyboard (40%) with shared observable state, safe area handling, and device-corner-radius keys
- Scroll gestures on keyboard regions are blocked via a custom UIGestureRecognizer on the parent UIScrollView without interfering with key taps or drags
- Callout blocks redesigned with warm muted colors and inlined into reading content; quiz views restyled; note sequence keyboards highlight active pitches during playback with major/pentatonic scale buttons
Test plan
-
Scroll through all pages in the chromatic scale lesson verifying layout transitions -
Tap piano keys on every keyboard page and confirm audio plays -
Drag vertically on keyboards and confirm page does not scroll -
Play chromatic, major, and pentatonic sequences and watch key highlights -
Verify modal quiz slides over blurred background content -
Check exercise keyboard extends to screen edge with proper corner rounding