Skip to content

Canvas mode: annotation color palette and stroke width controls #30

@lidge-jun

Description

@lidge-jun

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions