# Day 2 UI v2 - Canvas Navigation Polish Date: 2026-06-08 Scope: Navigation and movement polish for the live canvas UI. The engine was not changed. What changed: - Dragging empty canvas pans the whole world. - Trackpad/mouse wheel pans the canvas, including when the pointer is over a frame body. - Ctrl/Cmd-wheel and Alt-wheel zoom around the pointer. - The frame header is a draggable handle for moving one frame independently. - Toolbar controls now include pan arrows, zoom in/out, reset, and focus active frame. - Keyboard shortcuts support `+`, `-`, `0`, and `F` outside text input. Validation run: - App: `http://127.0.0.1:7860` - Created one frame by clicking the canvas. - Dragged the frame header; only that frame moved. - Dragged empty canvas; the world panned and no extra frame was created. - Ctrl-wheel over the frame changed zoom. - Toolbar pan moved the canvas. - Focus active frame recentered the view. - Screenshot: `docs/validation/day2-v2-canvas-navigation.png` Checks: - `python3 -m unittest discover -s tests` passed. - `python3 -m compileall iris tests app.py` passed. - `git diff --check` passed. Notes: - UI state remains in memory only. - No model or engine behavior changed for this navigation checkpoint.