---
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

<!-- SECTION:DESCRIPTION:BEGIN -->
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.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [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
<!-- AC:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
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.
<!-- SECTION:FINAL_SUMMARY:END -->
