--- id: TASK-70 title: Default selector tool with marquee multi-select status: Done assignee: [] created_date: '2026-02-28 00:36' updated_date: '2026-02-28 00:36' labels: - canvas - UX - selection dependencies: [] references: - lib/folk-shape.ts - website/canvas.html priority: high --- ## Description Replace single-click-to-pan with selector as the default canvas tool. Left-click-drag on background draws a blue marquee rectangle to select multiple shapes. Shift/Ctrl+click toggles additive selection. Panning moves to Space+drag, middle-click, or wheel/trackpad. Delete/Backspace removes all selected shapes. folk-shape highlighted state shows blue selection outline. ## Acceptance Criteria - [x] #1 Click canvas background → nothing selected, no pan - [x] #2 Click-drag on background → blue marquee rectangle appears - [x] #3 Release marquee → all overlapping shapes highlighted with blue outline - [x] #4 Shift+click a shape → adds/removes from selection - [x] #5 Click a single shape → only that shape selected - [x] #6 Hold Space + drag → pans the canvas (cursor shows grab) - [x] #7 Middle-click + drag → pans the canvas - [x] #8 Two-finger scroll → still pans (unchanged) - [x] #9 Ctrl+scroll → still zooms (unchanged) - [x] #10 Delete/Backspace → removes all selected shapes - [x] #11 Click toolbar tool → crosshair cursor → click to place (unchanged) - [x] #12 bunx tsc --noEmit passes ## Final Summary Implemented default selector tool with marquee multi-select. Changed folk-shape.ts highlighted CSS to show blue outline. Rewrote canvas.html pointer handlers: left-click-drag draws marquee selection rectangle, Space+drag and middle-click for panning, Shift/Ctrl+click for additive selection, Delete/Backspace to remove selected shapes. Commit 1d8fc2b on dev, merged to main.