From 6fe02697a02536222e1438ea65679c7904cf3b38 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Fri, 27 Feb 2026 16:36:33 -0800 Subject: [PATCH] =?UTF-8?q?chore:=20add=20backlog=20TASK-70=20=E2=80=94=20?= =?UTF-8?q?selector=20tool=20with=20marquee=20multi-select=20(done)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- ...selector-tool-with-marquee-multi-select.md | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 backlog/tasks/task-70 - Default-selector-tool-with-marquee-multi-select.md diff --git a/backlog/tasks/task-70 - Default-selector-tool-with-marquee-multi-select.md b/backlog/tasks/task-70 - Default-selector-tool-with-marquee-multi-select.md new file mode 100644 index 0000000..b344ac3 --- /dev/null +++ b/backlog/tasks/task-70 - Default-selector-tool-with-marquee-multi-select.md @@ -0,0 +1,45 @@ +--- +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. +