Editor has no 'handle size' preference — small handles for fine work, large handles for fast interaction; the editor's node handles are a fixed size #323
Labels
No labels
blocked:commit-ready-failed
blocked:gate-fetch
blocked:gate-lint
blocked:gate-plan
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-changes
blocked:verify-failed
bug
deferred
feature-request
in-progress
needs-decompose
needs-triage
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/Kimi_Agent_Brother_10_Digitizing_App#323
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
grep -rn 'handleSize\|nodeRadius' src/components/editor/returns 0 hits for a user-preference. The node handles (the circles drawn at each node) are a fixed size.A user with:
Currently: fixed at some value (likely 6-8px).
The fix is a user preference for handle size.
Where
src/components/editor/canvasRenderer.ts(where handles are drawn)grep -rn 'handleSize' src/components/editor/returns 0Suggested fix shape
Type: add
handleSize: numberto a user preferences type (or in SnapSettings).UI: a "Handle size" select in the editor's settings (or in the snap settings):
Persistence: the preference is stored in localStorage (per the pattern of other user prefs).
Use cases: tablet/trackpad users (large), precision digitizers (small), screen-reader users (large for visibility).
Severity
Low. The user can zoom. Power users notice.
Discovered by
Gap analysis (2026-10-02) of editor preferences.
Related
Closed by commit
cda10c0on origin/main.A user with 200 nodes in a dense design wanted smaller handles (4px) so
the path underneath stayed readable. A user on a tablet / trackpad with 5
nodes wanted bigger handles (10-14px) so they could hit them accurately.
The size was hard-coded as Math.max(3, (hovered ? 8 : 6) * scale * 0.5);
the right-panel had no UI for it.
Ship a "Handle Size" slider in the right-panel Snap Settings (4-14px,
default 6 — matches the pre-#323 look). drawPath reads the new
handleSizeoption and uses it instead of the hard-coded 6/8. Hoverbumps by +2 so the highlight stays readable at all settings. The
Math.max(3, ...) floor still applies so zoomed-out nodes stay visible.
Wiring:
nodeHandleSize?: number(back-compat forolder persisted state without the field reads as 6).
nodeHandleSize: 6.snapSettings.nodeHandleSize ?? 6to drawPath.Coordinates"; the label updates live ("Handle Size: 10px").
Tests: 7 new canvasRenderer cases (default, 4/10/14, hover +2, symmetric
nodes, zoomed-out floor) + 7 new issue-323 cases (label renders, default
6, controlled-input reflection, slider role, keyboard arrow forwards
value, back-compat). All 778 editor tests pass; tsc + eslint clean.