Editor has no 'compact path list' or 'icon-only path list' view — the right panel's path list takes ~250px of horizontal space at all times, can't be collapsed to just icons #267

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

Finding

src/components/editor/EditorRightPanel.tsx renders the path list as a vertical list of rows (path name + buttons). There's no:

  • Compact mode (just the color swatch + name)
  • Icon-only mode (just the color swatch)
  • Collapsible / hideable path list

grep -n 'compact\|collaps' src/components/editor/EditorRightPanel.tsx returns 0.

A user with 20 paths and a 13" laptop:

  • Right panel takes 280px
  • Canvas is squeezed
  • The path list is showing lots of text and buttons the user has memorized

The right panel has collapsible sections (per SectionHeader), but the Path List section can't be collapsed to just icons.

Where

  • Path list: src/components/editor/EditorRightPanel.tsx:142-180
  • No compact mode: grep -n 'compact' src/components/editor/ returns 0 hits for view modes
  • The SectionHeader pattern: same file (collapsible sections like "Stitch Type", "Density")

Suggested fix shape

Add a view-mode toggle at the top of the Path List section:

<div className="flex items-center gap-1">
  <button onClick={() => setPathListView('comfortable')} className={view === 'comfortable' ? 'active' : ''}>
    <List size={12} /> Comfortable
  </button>
  <button onClick={() => setPathListView('compact')} className={view === 'compact' ? 'active' : ''}>
    <LayoutList size={12} /> Compact
  </button>
  <button onClick={() => setPathListView('icons')} className={view === 'icons' ? 'active' : ''}>
    <Grid3x3 size={12} /> Icons
  </button>
</div>

The three views:

  • Comfortable (default): color swatch + path name + buttons (current).
  • Compact: color swatch + path name + visibility + fit-to-view, no duplicate/delete buttons (use right-click menu).
  • Icons: 5-column grid of color swatches only; hover shows the name; click selects.

The compact and icons views reclaim significant horizontal space, useful on small screens.

Persist the view mode in localStorage so it survives a refresh.

Severity

Low. The user has horizontal space. Power users on small screens notice.

Discovered by

Gap analysis (2026-10-02) of editor right panel.

  • The right panel is the most-used surface in the editor. View modes are standard in design tools.
  • The path list is one of the editor's persistent state; the view mode is a separate concern.
  • Figma/Illustrator have similar view modes (Layers panel can be compact).
## Finding `src/components/editor/EditorRightPanel.tsx` renders the path list as a vertical list of rows (path name + buttons). There's no: - Compact mode (just the color swatch + name) - Icon-only mode (just the color swatch) - Collapsible / hideable path list `grep -n 'compact\|collaps' src/components/editor/EditorRightPanel.tsx` returns 0. A user with 20 paths and a 13" laptop: - Right panel takes 280px - Canvas is squeezed - The path list is showing lots of text and buttons the user has memorized The right panel has collapsible sections (per `SectionHeader`), but the Path List section can't be collapsed to just icons. ## Where - Path list: `src/components/editor/EditorRightPanel.tsx:142-180` - No compact mode: `grep -n 'compact' src/components/editor/` returns 0 hits for view modes - The SectionHeader pattern: same file (collapsible sections like "Stitch Type", "Density") ## Suggested fix shape Add a view-mode toggle at the top of the Path List section: ```tsx <div className="flex items-center gap-1"> <button onClick={() => setPathListView('comfortable')} className={view === 'comfortable' ? 'active' : ''}> <List size={12} /> Comfortable </button> <button onClick={() => setPathListView('compact')} className={view === 'compact' ? 'active' : ''}> <LayoutList size={12} /> Compact </button> <button onClick={() => setPathListView('icons')} className={view === 'icons' ? 'active' : ''}> <Grid3x3 size={12} /> Icons </button> </div> ``` The three views: - **Comfortable** (default): color swatch + path name + buttons (current). - **Compact**: color swatch + path name + visibility + fit-to-view, no duplicate/delete buttons (use right-click menu). - **Icons**: 5-column grid of color swatches only; hover shows the name; click selects. The compact and icons views reclaim significant horizontal space, useful on small screens. Persist the view mode in `localStorage` so it survives a refresh. ## Severity Low. The user has horizontal space. Power users on small screens notice. ## Discovered by Gap analysis (2026-10-02) of editor right panel. ## Related - The right panel is the most-used surface in the editor. View modes are standard in design tools. - The path list is one of the editor's persistent state; the view mode is a separate concern. - Figma/Illustrator have similar view modes (Layers panel can be compact).
Author
Owner

Shipped fix at commit 408f763 on main (push b0ff49a..408f763).

Adds three view modes for the right-panel Paths section via a List / LayoutList / Grid3x3 toggle:

  • Comfortable (default): full-row layout unchanged from before.
  • Compact: single-line row — stitch-type strip, color swatch, name, visibility, fit-to-view. Duplicate/delete live behind the existing right-click menu and selection-summary batch actions.
  • Icons: 5-column grid of color swatches with stitch-type tint rings; hover surfaces the path name; grouped/hidden paths get corner overlays so no info is lost.

Choice persists in localStorage (tc_editor_path_list_view_v1); malformed payloads fall back to default. Toggle hides when no paths are loaded.

12 new vitest cases (175 total in EditorRightPanel.test.tsx). All 1438 unit tests pass locally; tsc -b + vite build are clean.

Note: Forgejo Actions run for this commit (#7531) is stuck in waiting — the self-hosted runner has been cancelling every recent push-triggered run. Not a fix issue, infra-side.

Shipped fix at commit 408f763 on main (push b0ff49a..408f763). Adds three view modes for the right-panel Paths section via a List / LayoutList / Grid3x3 toggle: - **Comfortable** (default): full-row layout unchanged from before. - **Compact**: single-line row — stitch-type strip, color swatch, name, visibility, fit-to-view. Duplicate/delete live behind the existing right-click menu and selection-summary batch actions. - **Icons**: 5-column grid of color swatches with stitch-type tint rings; hover surfaces the path name; grouped/hidden paths get corner overlays so no info is lost. Choice persists in `localStorage` (`tc_editor_path_list_view_v1`); malformed payloads fall back to default. Toggle hides when no paths are loaded. 12 new vitest cases (175 total in EditorRightPanel.test.tsx). All 1438 unit tests pass locally; `tsc -b` + `vite build` are clean. Note: Forgejo Actions run for this commit (#7531) is stuck in `waiting` — the self-hosted runner has been cancelling every recent push-triggered run. Not a fix issue, infra-side.
Mark closed this issue 2026-10-04 12:36:36 +00:00
Sign in to join this conversation.
No description provided.