Skip to content

Commit b2c61c4

Browse files
author
DavidQ
committed
Complete tool layout, docking, and control normalization
- audited and normalized layout/spacing across primary tools - improved and standardized panel resizing/docking behavior where applicable - aligned common control placement across the in-scope tool set - documented before/after differences and validation evidence - preserved unrelated working-tree changes PR Details - advances `normalize tool layout and spacing` from [ ] to [x] - advances `improve panel resizing and docking behavior` from [ ] to [x] - advances `ensure consistent control placement across tools` from [ ] to [x]
1 parent 65df45a commit b2c61c4

20 files changed

Lines changed: 448 additions & 57 deletions
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_CONTROL_PLACEMENT_MATRIX
2+
3+
## Placement Rule Introduced
4+
- Shared toolbar cluster ordering:
5+
- `tools-platform-control-cluster--primary` (open/load/save/export/project IO)
6+
- `tools-platform-control-cluster--workflow` (map/canvas/document/tool configuration)
7+
- `tools-platform-control-cluster--preview` (simulate/play/preview/view controls; right-biased on desktop)
8+
- Shared row spacing for grouped actions via `tools-platform-control-row`.
9+
10+
## Control Placement Matrix (Primary In-Scope Set)
11+
| Tool | Previous Inconsistency | Normalized Placement Rule | Evidence |
12+
| --- | --- | --- | --- |
13+
| Parallax Scene Studio | Toolbar groups had no shared semantic order contract. | Mapped groups to `primary`, `workflow`, `preview` control clusters. | `tools/Parallax Scene Studio/index.html` |
14+
| Sprite Editor | Toolbar groups were tool-local and partially ad hoc (`tools-group`). | Added shared control-cluster roles while preserving existing tool button grouping. | `tools/Sprite Editor/index.html` |
15+
| Tilemap Studio | Toolbar group order not tied to shared ordering contract. | Mapped groups to shared `primary/workflow/preview` placement rule. | `tools/Tilemap Studio/index.html` |
16+
| Vector Asset Studio | Toolbar groups existed without shared ordering semantics. | Added shared control-cluster roles to normalize group placement. | `tools/Vector Asset Studio/index.html` |
17+
| Vector Map Editor | Mixed toolbar controls lacked shared cluster semantics. | Mapped group rows to shared `primary/workflow/preview` clusters. | `tools/Vector Map Editor/index.html` |
18+
| Asset Browser | Action rows used local spacing/placement only. | Normalized action rows to shared control-row spacing convention. | `tools/Asset Browser/index.html` |
19+
| Palette Browser | Action rows used local spacing/placement only. | Normalized action rows to shared control-row spacing convention. | `tools/Palette Browser/index.html` |
20+
| Tool Host | Mount/navigation control rows used local spacing/placement only. | Normalized host controls with shared control-row placement and spacing. | `tools/Tool Host/index.html` |
21+
22+
## Notes
23+
- This PR keeps existing tool-specific capabilities intact and only normalizes shared placement semantics/spacing.
24+
- No feature behavior changes were introduced.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_DOCKING_RESIZING_MATRIX
2+
3+
## Shared Rule
4+
- Desktop (`min-width: 1201px`): `.tools-platform-resize-panel` enables horizontal panel resizing with bounded widths.
5+
- Mobile/tablet (`max-width: 1200px`): resizing is disabled for stability and readability.
6+
- `.tools-platform-dock-panel` provides vertical resize + bounded dock height for dock-like surfaces.
7+
8+
## Docking / Resizing Matrix
9+
| Tool | Left/Right Panel Resize | Dock Resize | Applicability | Changes Applied |
10+
| --- | --- | --- | --- | --- |
11+
| Asset Browser | Yes (left + right panels) | N/A | Applicable: side panels in 3-column layout | Added `tools-platform-resize-panel` with side markers. |
12+
| Palette Browser | Yes (left + right panels) | N/A | Applicable: side panels in 3-column layout | Added `tools-platform-resize-panel` with side markers. |
13+
| Parallax Scene Studio | Yes (left + right sidebars) | Yes (preview panel) | Applicable: sidebars + central preview panel | Added `tools-platform-resize-panel` and `tools-platform-dock-panel`. |
14+
| Sprite Editor | Yes (left + right panels) | N/A | Applicable: left/right authored panel rails | Added `tools-platform-resize-panel` classes. |
15+
| Tilemap Studio | Yes (left + right sidebars) | N/A | Applicable: sidebars in workspace grid | Added `tools-platform-resize-panel` classes. |
16+
| Vector Asset Studio | Yes (left + right sidebars) | Yes (canvas panel) | Applicable: dual sidebars + central panel | Added `tools-platform-resize-panel` and `tools-platform-dock-panel`. |
17+
| Vector Map Editor | Yes (left + right side rails) | Yes (JSON dock) | Applicable: side rails and existing dock surface | Added `tools-platform-resize-panel`; dock normalized with `tools-platform-dock-panel`. |
18+
| Tool Host | N/A (no dual side rails) | Yes (mount container) | Applicable: hosted runtime mount surface behaves as dock-like panel | Added `tools-platform-dock-panel` and lowered initial min-height for better default fit. |
19+
20+
## Guardrails
21+
- No docking/resizing engine/runtime feature logic was changed.
22+
- Changes are CSS + class opt-ins only, bounded to tools UX polish layer.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_LAYOUT_SPACING_AUDIT
2+
3+
## Baseline Inputs Used
4+
- `docs/dev/reports/BUILD_PR_LEVEL_21_2_TOOL_TESTING_DOCUMENTATION_AND_REPORT_STANDARDIZATION_TOOL_INVENTORY.md`
5+
- `docs/dev/reports/BUILD_PR_LEVEL_21_3_TOOL_AUTOMATION_AND_TOOL_QUALITY_BASELINE_AUTOMATION_MATRIX.md`
6+
- `docs/dev/reports/BUILD_PR_LEVEL_21_4_TOOL_ALIGNMENT_AND_HEADER_REAL_ESTATE_HEADER_REAL_ESTATE_AUDIT.md`
7+
- `docs/dev/reports/BUILD_PR_LEVEL_21_4_TOOL_ALIGNMENT_AND_HEADER_REAL_ESTATE_TOOL_ALIGNMENT_MATRIX.md`
8+
9+
## Shared Normalization Layer
10+
- Added shared layout/control/docking contract in `tools/shared/platformShell.css`:
11+
- `.tools-platform-layout-grid`
12+
- `.tools-platform-control-cluster*`
13+
- `.tools-platform-control-row`
14+
- `.tools-platform-resize-panel`
15+
- `.tools-platform-dock-panel`
16+
17+
## Layout + Spacing Audit (Primary In-Scope Set)
18+
| Tool | Prior Spacing/Layout Condition | Normalization Applied | Evidence |
19+
| --- | --- | --- | --- |
20+
| Asset Browser | Three-column layout had tool-local spacing only; panel spacing behavior diverged from shared shell conventions. | Opted into shared layout grid and shared resize-panel classes for left/right panels; action rows normalized to shared control-row spacing. | `tools/Asset Browser/index.html` |
21+
| Palette Browser | Three-column layout and action-row spacing differed from shared shell conventions. | Opted into shared layout grid and resize-panel classes; action rows normalized with shared control-row convention. | `tools/Palette Browser/index.html` |
22+
| Parallax Scene Studio | Toolbar groups existed but lacked shared placement semantics; workspace spacing was tool-local only. | Toolbar groups normalized with shared control-cluster roles (`primary/workflow/preview`); workspace opted into shared layout grid. | `tools/Parallax Scene Studio/index.html` |
23+
| Sprite Editor | Toolbar grouping existed but lacked shared placement semantics; workspace spacing was tool-local only. | Toolbar groups normalized with shared control-cluster roles; workspace opted into shared layout grid. | `tools/Sprite Editor/index.html` |
24+
| Tilemap Studio | Toolbar groups and workspace spacing were tool-local only. | Toolbar groups normalized with shared control-cluster roles; workspace opted into shared layout grid. | `tools/Tilemap Studio/index.html` |
25+
| Vector Asset Studio | Toolbar grouping and workspace spacing were tool-local only. | Toolbar groups normalized with shared control-cluster roles; workspace opted into shared layout grid. | `tools/Vector Asset Studio/index.html` |
26+
| Vector Map Editor | Toolbar groups lacked shared placement semantics in mixed toolbar set. | Toolbar groups normalized with shared control-cluster roles. | `tools/Vector Map Editor/index.html` |
27+
| Tool Host | Control rows and hosted surface container spacing were ad hoc. | Tool Host control rows normalized to shared control-row spacing; hosted mount surface aligned to shared dock-panel behavior and reduced default min-height. | `tools/Tool Host/index.html` |
28+
29+
## Additional Shared-Shell Consumers
30+
- The shared contract is non-breaking for other `tools-platform-surface` pages and remains opt-in for layout/docking classes.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_VALIDATION
2+
3+
## Commands Run
4+
1. `node --input-type=module -` (targeted tool validation set)
5+
- `tests/tools/RequiredToolsBaseline.test.mjs`
6+
- `tests/tools/ToolEntryLaunchContract.test.mjs`
7+
- `tests/tools/ToolsIndexRegistrySmoke.test.mjs`
8+
- `tests/tools/PlatformShellHeaderAlignment.test.mjs`
9+
- `tests/tools/ToolLayoutDockingControlNormalization.test.mjs`
10+
2. `node ./tests/runtime/LaunchSmokeAllEntries.test.mjs --tools`
11+
3. `git status --short -- docs/dev/start_of_day`
12+
13+
## Results
14+
| Validation | Result | Evidence |
15+
| --- | --- | --- |
16+
| Targeted tool tests | PASS | All five targeted tool tests passed. |
17+
| New layout/docking/control contract test | PASS | `PASS ./tests/tools/ToolLayoutDockingControlNormalization.test.mjs` |
18+
| Tools launch smoke | PASS | `PASS=17 FAIL=0 TOTAL=17` |
19+
| No `start_of_day` modifications | PASS | `git status -- docs/dev/start_of_day` returned clean. |
20+
21+
## Scope Guard Validation
22+
- One PR purpose maintained: shared tool UX polish (layout/spacing + docking/resizing + control placement normalization).
23+
- No unrelated feature expansion.
24+
- No roadmap rewrite.
25+
26+
## Roadmap Status Decision (Execution-Backed)
27+
Updated in `docs/dev/roadmaps/MASTER_ROADMAP_TOOLS.md`:
28+
- `normalize tool layout and spacing` `[ ] -> [x]`
29+
- `improve panel resizing and docking behavior` `[ ] -> [x]`
30+
- `ensure consistent control placement across tools` `[ ] -> [x]`
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
This bundle combines the next safe tools lanes into one execution pass:
2-
header compaction and shared functionality alignment based on the 21.3 quality baseline.
1+
This bundle combines the remaining closely related tools UX polish items into one execution pass:
2+
layout/spacing normalization, docking/resizing consistency, and control placement consistency.

docs/dev/reports/launch_smoke_report.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Launch Smoke Report
22

3-
Generated: 2026-04-18T20:18:40.966Z
3+
Generated: 2026-04-18T20:30:04.945Z
44

55
Filters: games=false, samples=false, tools=true, sampleRange=all
66

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1-
- [ ] header real-estate audit completed
2-
- [ ] in-scope tool headers compacted where feasible
1+
- [ ] layout/spacing audit completed
2+
- [ ] in-scope tool layouts normalized where feasible
3+
- [ ] docking/resizing matrix completed
4+
- [ ] docking/resizing improved where applicable
5+
- [ ] control placement matrix completed
6+
- [ ] common controls aligned across in-scope tools
37
- [ ] before/after differences documented
4-
- [ ] shared cross-tool behaviors aligned where applicable
5-
- [ ] alignment matrix completed
68
- [ ] no start_of_day changes
79
- [ ] unrelated working-tree changes preserved
810
- [ ] roadmap updated only for completed items

docs/dev/roadmaps/MASTER_ROADMAP_TOOLS.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ Track all tool-related improvements, gaps, and future work.
1616

1717
## 2. UI / UX Improvements
1818
- [x] reduce screen real estate used by headers
19-
- [ ] normalize tool layout and spacing
20-
- [ ] improve panel resizing and docking behavior
21-
- [ ] ensure consistent control placement across tools
19+
- [x] normalize tool layout and spacing
20+
- [x] improve panel resizing and docking behavior
21+
- [x] ensure consistent control placement across tools
2222

2323
---
2424

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
# BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION
2+
3+
## Purpose
4+
Execute the next combined safe tools polish lane by completing the remaining closely related UI/UX normalization work in one PR:
5+
6+
- normalize tool layout and spacing
7+
- improve panel resizing and docking behavior
8+
- ensure consistent control placement across tools
9+
10+
This PR should use the prior alignment/header pass as the baseline and finish the remaining shared polish work that belongs to the same interaction layer.
11+
12+
## Combined roadmap intent
13+
This PR may advance the following items only if fully executed and validated:
14+
15+
### UI / UX Improvements
16+
- `normalize tool layout and spacing` `[ ] -> [x]`
17+
- `improve panel resizing and docking behavior` `[ ] -> [x]`
18+
- `ensure consistent control placement across tools` `[ ] -> [x]`
19+
20+
If the repo contains a parent UI/UX track summary and this PR fully completes the remaining UI/UX items, update that parent only if validation proves completion.
21+
22+
## Scope
23+
Included:
24+
- normalize layout spacing across primary tools where shared shells/patterns exist
25+
- improve or standardize panel resizing behavior where applicable
26+
- improve or standardize panel docking behavior where applicable
27+
- normalize placement of common controls across the in-scope tool set
28+
- produce before/after validation evidence
29+
- preserve unrelated working-tree changes
30+
31+
Excluded:
32+
- no new feature work outside the layout/docking/control polish layer
33+
- no broad redesign unrelated to shared tool UX
34+
- no roadmap rewrites
35+
- no `start_of_day` changes
36+
- no speculative new tools
37+
38+
## Baseline inputs
39+
Use:
40+
- 21.2 UAT standardization outputs
41+
- 21.3 automation / bugs / gaps baseline
42+
- 21.4 header real-estate and alignment outputs
43+
44+
## Primary in-scope tool set
45+
At minimum evaluate:
46+
- Asset Browser
47+
- Palette Browser
48+
- Parallax Scene Studio
49+
- Sprite Editor
50+
- Tilemap Studio
51+
- Vector Asset Studio
52+
- Vector Map Editor
53+
- Tool Host
54+
55+
Include additional tools where the same shell/layout model applies cleanly.
56+
57+
## Required outputs
58+
Codex must create/update:
59+
60+
- `docs/dev/reports/BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_LAYOUT_SPACING_AUDIT.md`
61+
- `docs/dev/reports/BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_DOCKING_RESIZING_MATRIX.md`
62+
- `docs/dev/reports/BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_CONTROL_PLACEMENT_MATRIX.md`
63+
- `docs/dev/reports/BUILD_PR_LEVEL_21_5_TOOL_LAYOUT_DOCKING_AND_CONTROL_NORMALIZATION_VALIDATION.md`
64+
65+
If useful:
66+
- before/after screenshots or references
67+
- shared-shell normalization notes
68+
69+
## Layout and spacing requirements
70+
For each in-scope tool:
71+
- record current layout/spacing issues
72+
- normalize major spacing inconsistencies
73+
- preserve usability and clarity
74+
- prefer shared shell conventions where available
75+
76+
## Docking and resizing requirements
77+
For each in-scope tool:
78+
- record current panel behavior
79+
- normalize resize affordances where applicable
80+
- normalize docking behavior where applicable
81+
- explicitly record tools where docking/resizing is not applicable and why
82+
83+
## Control placement requirements
84+
For common controls, document and align:
85+
- open/load
86+
- save/export
87+
- project/sample actions
88+
- preview/run actions
89+
- settings/help/actions grouping
90+
91+
For each aligned control group, record:
92+
- previous inconsistency
93+
- new placement rule
94+
- tools affected
95+
- validation proof
96+
97+
## Acceptance
98+
- spacing/layout is normalized for in-scope tools
99+
- panel resizing/docking behavior is improved/normalized where applicable
100+
- common control placement is consistent across the in-scope set
101+
- before/after evidence is explicit
102+
- no unrelated regressions introduced
103+
- unrelated working-tree changes are preserved
104+
- roadmap updates are status-only and execution-backed
105+
106+
## Validation requirements
107+
Validation must confirm:
108+
- layout/spacing audit completed
109+
- docking/resizing matrix completed
110+
- control placement matrix completed
111+
- in-scope tools updated and validated
112+
- no `start_of_day` changes
113+
- unrelated working-tree changes preserved
114+
- roadmap edits limited to items fully completed here
115+
116+
## Roadmap update rules
117+
Only update status markers in:
118+
- `docs/dev/roadmaps/MASTER_ROADMAP_TOOLS.md`
119+
120+
Allowed transitions only if fully executed and validated:
121+
- `normalize tool layout and spacing` `[ ] -> [x]`
122+
- `improve panel resizing and docking behavior` `[ ] -> [x]`
123+
- `ensure consistent control placement across tools` `[ ] -> [x]`

tests/run-tests.mjs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ import { run as runRuntimeAssetValidation } from './tools/RuntimeAssetValidation
106106
import { run as runToolEntryLaunchContract } from './tools/ToolEntryLaunchContract.test.mjs';
107107
import { run as runToolsIndexRegistrySmoke } from './tools/ToolsIndexRegistrySmoke.test.mjs';
108108
import { run as runPlatformShellHeaderAlignment } from './tools/PlatformShellHeaderAlignment.test.mjs';
109+
import { run as runToolLayoutDockingControlNormalization } from './tools/ToolLayoutDockingControlNormalization.test.mjs';
109110
import { run as runProjectPackagingSystem } from './tools/ProjectPackagingSystem.test.mjs';
110111
import { run as runRuntimeAssetLoader } from './tools/RuntimeAssetLoader.test.mjs';
111112
import { run as runEditorExperienceLayer } from './tools/EditorExperienceLayer.test.mjs';
@@ -238,6 +239,7 @@ const tests = [
238239
['ToolEntryLaunchContract', runToolEntryLaunchContract],
239240
['ToolsIndexRegistrySmoke', runToolsIndexRegistrySmoke],
240241
['PlatformShellHeaderAlignment', runPlatformShellHeaderAlignment],
242+
['ToolLayoutDockingControlNormalization', runToolLayoutDockingControlNormalization],
241243
['ProjectPackagingSystem', runProjectPackagingSystem],
242244
['RuntimeAssetLoader', runRuntimeAssetLoader],
243245
['EditorExperienceLayer', runEditorExperienceLayer],

0 commit comments

Comments
 (0)