# Changelog

This changelog summarizes recent working versions of the STL Artwork Customizer prototype. These version numbers are rolling prototype labels, not formal Git tags.

## v0.19 — Mobile compact viewer toolbar

- Rebuilt the customizer `app.html` shell for a cleaner viewer-first layout.
- Replaced the text-heavy home link with a compact icon-only home button.
- Added a collapsible **Controls** menu in the 3D viewer top bar.
- Moved STL color, Show lid, Home view, Front, Left, Right, Drag mode, and Wireframe into that collapsible menu.
- Reduced mobile top-bar height so the 3D preview keeps more usable screen space.
- Preserved all existing JavaScript element IDs so the customizer behavior remains compatible.

## v0.18 — Customizer home navigation

- Added a persistent **← Home** button to the Deck Customizer viewer top bar.
- The button links back to the main site root (`/`) so visitors are not trapped in the full-screen customizer.
- Styled the home link to match the existing SciFiFoundry/teal viewer controls.

## v0.17 — Clean screenshot export

- Updated screenshot export so the active transform gizmo is hidden during capture.
- Hid both the arrow move controls and custom square scale handles before saving the PNG.
- Restored the gizmo immediately after the screenshot is captured so editing can continue without losing selection.
- Added a defensive restore path so the gizmo comes back even if screenshot export fails.

## v0.16 — Unified sticker transform gizmo

- Removed the separate **Move / Scale** selector.
- Combined movement and scaling into one sticker gizmo.
- Kept the gizmo centered on the selected sticker.
- Added/standardized gizmo behavior:
  - Arrow handles move the sticker center.
  - Square handles scale the sticker.
  - X square adjusts sticker width.
  - Y square adjusts sticker height.
  - Z square adjusts projection depth.
  - Corner square scales width and height together.
- Updated helper text and README notes so the gizmo workflow is clearer.

## v0.15 — Scale gizmo handle fix

- Reworked scale mode so the scale handles appear as proper square gizmo handles.
- Added a small invisible gizmo anchor mesh to make Three.js scale interactions more reliable.
- Made scale behavior map more directly to sticker properties:
  - X handle changes width.
  - Y handle changes height.
  - Z handle changes projection depth.
- Preserved aspect-lock behavior during scaling.
- Kept lid sticker visibility behavior intact when the lid is toggled off/on.

## v0.14 — Default move mode, updated models, and viewer UI cleanup

- Replaced bundled STL files with the updated supplied models:
  - `assets/Body.stl`
  - `assets/Lid.stl`
- Changed the app to default into **Move selected** mode.
- Made the selected-sticker gizmo activate automatically.
- Added the first pass of a scale gizmo workflow.
- Moved the STL base color picker into the 3D viewer top bar.
- Moved the **Show lid** checkbox into the 3D viewer top bar.
- Removed selected artwork/coordinate readout clutter from the top viewer bar.
- Moved viewer controls into a **View options** dropdown:
  - Home
  - Front
  - Left
  - Right
  - Drag mode
  - Wireframe

## v0.13 — On-model move gizmo

- Replaced the manual-only X/Y/Z coordinate adjustment workflow with an on-model transform gizmo.
- Added a gizmo at the center point of the selected sticker.
- Allowed direct dragging of the selected sticker in the 3D preview.
- Temporarily disabled orbit controls while dragging the gizmo so camera movement would not fight sticker movement.
- Preserved exported sticker `position_mm` data after gizmo movement.
- Kept lid-related behavior: lid stickers and the gizmo hide when the lid is hidden.

## v0.12 — Fine X/Y/Z sticker position controls

- Added a **Fine position** section under Placement.
- Added editable selected-sticker position fields:
  - `X mm`
  - `Y mm`
  - `Z mm`
- Added a configurable **Nudge step** value.
- Added quick nudge buttons:
  - `X− / X+`
  - `Y− / Y+`
  - `Z− / Z+`
- Kept click-to-surface snapping in **Move selected** mode.
- Ensured exported JSON continued to include updated sticker position data.

## v0.11 — Body/Lid model centering on the grid

- Added automatic recentering for the loaded model set.
- Centered the combined `Body.stl` + optional `Lid.stl` footprint on the grid origin.
- Lifted the model set so the lowest point sits on/above the grid instead of floating or appearing offset.
- Updated decal rebuild logic so stickers stay attached to the same visible surface location after centering shifts.
- Updated README notes to explain the new centering behavior.

## Notes for future versioning

Recommended next cleanup step: continue naming releases with a simple pattern like `v0.18`, `v0.19`, etc., and keep this changelog updated each time the downloadable ZIP is rebuilt.

## v0.20 - Compact mobile toolbar fix

- Rebuilt the minimized viewer toolbar into a true compact single-row control strip.
- Fixed the Home button icon so it is visible and styled instead of rendering like a default text link.
- Replaced the tiny default disclosure triangle behavior with a proper Controls button.
- Kept expanded view settings in an absolute dropdown panel so opening controls does not stretch the toolbar into the 3D viewport.
- Added stylesheet/script cache-busting query strings to help Vercel/browser deployments pick up the corrected UI.
