Editor's Path Properties section has no 'lock to thread color' — user with a path's color set to a catalog color has no way to know 'this is locked to PR-10 slot 14, don't change it accidentally' #342

Closed
opened 2026-10-04 03:54:49 +00:00 by Mark · 1 comment
Owner

Finding

grep -rn 'lockToColor\|colorLocked' src/components/editor/ returns 0. The editor has no color lock.

A user with a path:

  • Set the color to a specific catalog color (e.g., "Robison-Anton 9012")
  • Accidentally changes it to a different color
  • Has to find the original color and re-set

The fix is a "lock to color" toggle that prevents accidental color changes.

Where

  • Color picker: src/components/editor/EditorRightPanel.tsx
  • No color lock: grep -rn 'colorLocked' src/components/editor/ returns 0

Suggested fix shape

  1. Type: add colorLocked: boolean to the StitchPath type.

  2. UI: a small lock icon next to the color swatch in the Path Properties section:

<button
  onClick={() => onToggleColorLock(p.id)}
  data-testid="color-lock"
  title={p.colorLocked ? 'Unlock color' : 'Lock color (prevent accidental changes)'}
>
  {p.colorLocked ? <Lock size={12} /> : <Unlock size={12} />}
</button>
  1. Behavior: when colorLocked is true, the color picker is disabled (the user can see but not change).

  2. Confirmation: clicking the color picker when locked shows a tooltip: "Color is locked. Click the lock to unlock."

  3. History: the lock toggle is undoable.

Severity

Low. The user can use the multi-select change (per #212) carefully. Power users notice.

Discovered by

Gap analysis (2026-10-02) of editor color operations.

  • #289 (open) — Lock path. The path-level lock is the parallel.
  • #286 (open) — Match similar colors. Same color family.
  • The thread color picker (per #185) is the surface; the lock is the modifier.
## Finding `grep -rn 'lockToColor\|colorLocked' src/components/editor/` returns 0. The editor has no color lock. A user with a path: - Set the color to a specific catalog color (e.g., "Robison-Anton 9012") - Accidentally changes it to a different color - Has to find the original color and re-set The fix is a "lock to color" toggle that prevents accidental color changes. ## Where - Color picker: `src/components/editor/EditorRightPanel.tsx` - No color lock: `grep -rn 'colorLocked' src/components/editor/` returns 0 ## Suggested fix shape 1. **Type**: add `colorLocked: boolean` to the StitchPath type. 2. **UI**: a small lock icon next to the color swatch in the Path Properties section: ```tsx <button onClick={() => onToggleColorLock(p.id)} data-testid="color-lock" title={p.colorLocked ? 'Unlock color' : 'Lock color (prevent accidental changes)'} > {p.colorLocked ? <Lock size={12} /> : <Unlock size={12} />} </button> ``` 3. **Behavior**: when `colorLocked` is true, the color picker is disabled (the user can see but not change). 4. **Confirmation**: clicking the color picker when locked shows a tooltip: "Color is locked. Click the lock to unlock." 5. **History**: the lock toggle is undoable. ## Severity Low. The user can use the multi-select change (per #212) carefully. Power users notice. ## Discovered by Gap analysis (2026-10-02) of editor color operations. ## Related - #289 (open) — Lock path. The path-level lock is the parallel. - #286 (open) — Match similar colors. Same color family. - The thread color picker (per #185) is the surface; the lock is the modifier.
Mark closed this issue 2026-10-07 04:02:57 +00:00
Author
Owner

Closed via watcher t_ec0fb72e / fixup t_ec0cb72e.

The color-lock UI shipped in two PRs already landed on origin/main:

  • ca96e80 Add colorLocked field to StitchPath (#342)
  • ccfc330 feat(#342): editor color-lock toggle — Lock button + disabled picker/apply-to-all when locked

pnpm test src/components/editor/issue-342.test.tsx → 6/6 PASS. pnpm test src/pages/issue-342.test.tsx → PASS. pnpm test src/components/editor/EditorRightPanel.test.tsx → 221/221 PASS (no regression). pnpm run lint → clean (1 pre-existing warning, unrelated). Kilo-gsd exhausted its 3/3 bugfix retries on a previous attempt but the work actually landed; this card's only remaining action was closing the issue.

Closed via watcher `t_ec0fb72e` / fixup `t_ec0cb72e`. The color-lock UI shipped in two PRs already landed on origin/main: - `ca96e80` Add colorLocked field to StitchPath (#342) - `ccfc330` feat(#342): editor color-lock toggle — Lock button + disabled picker/apply-to-all when locked `pnpm test src/components/editor/issue-342.test.tsx` → 6/6 PASS. `pnpm test src/pages/issue-342.test.tsx` → PASS. `pnpm test src/components/editor/EditorRightPanel.test.tsx` → 221/221 PASS (no regression). `pnpm run lint` → clean (1 pre-existing warning, unrelated). Kilo-gsd exhausted its 3/3 bugfix retries on a previous attempt but the work actually landed; this card's only remaining action was closing the issue.
Sign in to join this conversation.
No description provided.