Source
Canvas Mode Phase 8 follow-up from devlog/_plan/0.24-canvas-mode/PHASE-8-color-palette-styles.md, FOLLOW-UP-ISSUES.md, and parent issue #22.
Goal
Let users choose annotation colors and stroke widths in Canvas Mode.
Current state
- Annotation data already stores
color and strokeWidth.
useCanvasAnnotations currently uses hardcoded defaults.
- There is no user-facing palette/stroke width UI.
- There is no validated local style preference persistence.
- Existing annotations cannot be restyled from the UI.
Scope
- Add a style popover/control in the Canvas toolbar.
- Provide preset color swatches.
- Provide stroke width choices.
- New annotations should copy the active style at creation time.
- Existing annotations must not mutate just because the active style changes.
- Persist the active style as a local UI preference only.
- Validate restored style values against allowed colors/bounds.
Out of scope
- Backend persistence for style preferences.
- Canvas-version metadata changes.
- Full layer/object inspector.
- Per-object opacity.
Acceptance criteria
- Toolbar exposes a style control.
- User can select color and stroke width before drawing.
- New pen/arrow/box/memo objects use the selected style.
- Existing annotations keep their original style when active style changes.
- Style preference survives reload.
- Escape behavior still works after style popover use.
- Tests cover style popover, persistence validation, annotation creation style copy, and no canvas-version prompt/header regression.
Source
Canvas Mode Phase 8 follow-up from
devlog/_plan/0.24-canvas-mode/PHASE-8-color-palette-styles.md,FOLLOW-UP-ISSUES.md, and parent issue #22.Goal
Let users choose annotation colors and stroke widths in Canvas Mode.
Current state
colorandstrokeWidth.useCanvasAnnotationscurrently uses hardcoded defaults.Scope
Out of scope
Acceptance criteria