Editor's Path Properties has 'Path length' but no 'stitches per mm' / 'stitch density' — user with an embroidery background thinks in stitches per mm (e.g., 4 stitches/mm), the editor's 0-1 density doesn't expose this #379

Closed
opened 2026-10-04 04:00:21 +00:00 by Mark · 2 comments
Owner

Finding

The Path Properties has Density (0-1). Embroidery uses stitches per mm (spm).

grep -rn 'stitchesPerMm\|spm\b' src/components/editor/ returns 0. The editor has no spm display.

A user with 0.4 density:

  • Maps to ~2.5 spm (1 / 0.4)
  • Doesn't see this directly

The fix is a "stitches per mm" display alongside the density.

This is similar to #317, #351, #368 — same family.

Where

  • Path Properties: src/components/editor/EditorRightPanel.tsx
  • No spm: grep -rn 'stitchesPerMm' src/components/editor/ returns 0

Suggested fix shape

  1. UI: a small display next to the density slider:
<SliderField
  label="Density"
  value={density}
  onChange={onChangeDensity}
  min={0.1}
  max={1.0}
  step={0.05}
/>
<div className="text-[10px]" style={{ color: '#6B6560' }}>
  ≈ {(1 / Math.max(density, 0.1)).toFixed(1)} stitches/mm
</div>
  1. Bidirectional input: an input where the user types "4 stitches/mm" and the density updates.

  2. Use cases:

  • Embroidery professionals
  • Match the convention of the field

Severity**

Low. The user can convert. Power users notice.

Discovered by

Gap analysis (2026-10-02) of editor path properties.

  • #317 (open) — Density in mm. Same family.
  • #351 (open) — Stitch length field. Same family.
  • #368 (open) — Stitch length per path. Same family.
  • Wilcom/Hatch use stitches-per-mm. The editor's gap is the parallel.
## Finding The Path Properties has Density (0-1). Embroidery uses stitches per mm (spm). `grep -rn 'stitchesPerMm\|spm\b' src/components/editor/` returns 0. The editor has no spm display. A user with 0.4 density: - Maps to ~2.5 spm (1 / 0.4) - Doesn't see this directly The fix is a "stitches per mm" display alongside the density. This is similar to #317, #351, #368 — same family. ## Where - Path Properties: `src/components/editor/EditorRightPanel.tsx` - No spm: `grep -rn 'stitchesPerMm' src/components/editor/` returns 0 ## Suggested fix shape 1. **UI**: a small display next to the density slider: ```tsx <SliderField label="Density" value={density} onChange={onChangeDensity} min={0.1} max={1.0} step={0.05} /> <div className="text-[10px]" style={{ color: '#6B6560' }}> ≈ {(1 / Math.max(density, 0.1)).toFixed(1)} stitches/mm </div> ``` 2. **Bidirectional input**: an input where the user types "4 stitches/mm" and the density updates. 3. **Use cases**: - Embroidery professionals - Match the convention of the field ## Severity** Low. The user can convert. Power users notice. ## Discovered by Gap analysis (2026-10-02) of editor path properties. ## Related** - #317 (open) — Density in mm. Same family. - #351 (open) — Stitch length field. Same family. - #368 (open) — Stitch length per path. Same family. - Wilcom/Hatch use stitches-per-mm. The editor's gap is the parallel.
Author
Owner

Closing as duplicate of #317 — 'stitches per mm' and 'density' are the same value (1/density). The fix (expose the spm/mm display) is one change. Keeping #317 as the umbrella.

Closing as duplicate of #317 — 'stitches per mm' and 'density' are the same value (1/density). The fix (expose the spm/mm display) is one change. Keeping #317 as the umbrella.
Mark closed this issue 2026-10-04 04:13:14 +00:00
Author
Owner

feat(#379) — direct-fix: small grey read-out below the density slider showing both pro-equivalent units: ≈ 0.40 stitches/mm · 1 stitch every 2.5 mm. Pure display (no new state, no Editor.tsx wiring change), suppressed in the mixed-selection case to avoid misleading multi-select viewers. Closes #379.

Commit: 6e57cd6 on origin/main. 26/26 panel-related tests pass (3 new + #317/#377/#378 regressions). Typecheck + lint clean.

feat(#379) — direct-fix: small grey read-out below the density slider showing both pro-equivalent units: `≈ 0.40 stitches/mm · 1 stitch every 2.5 mm`. Pure display (no new state, no Editor.tsx wiring change), suppressed in the mixed-selection case to avoid misleading multi-select viewers. Closes #379. Commit: 6e57cd6 on origin/main. 26/26 panel-related tests pass (3 new + #317/#377/#378 regressions). Typecheck + lint clean.
Sign in to join this conversation.
No description provided.