|
1 | | -# MASTER_ROADMAP_STYLE.md |
2 | 1 |
|
3 | | -## Purpose |
4 | | -Track the style-system migration for HTML-JavaScript-Gaming using Toolbox Aid as the visual baseline for shared page structure and styling direction. |
5 | 2 |
|
6 | | -## Source-of-Truth Rules |
7 | | -- Base visual direction comes from Toolbox Aid live site assets and CSS behavior, not from existing HTML-JavaScript-Gaming styling. |
8 | | -- Do not inspect old project CSS/HTML/embedded styles to preserve or translate them forward. |
9 | | -- Migration is additive and page-by-page. |
10 | | -- No big-bang rewrite. |
11 | | -- Each PR must be testable. |
12 | | -- No commit-only PRs. |
13 | | -- No embedded `<style>` in HTML. |
14 | | -- No inline `style=""` in HTML. |
15 | | -- No style strings injected from JS. |
16 | | -- Shared theme CSS lives under `src/engine/theme/`. |
17 | | -- Theme does not move into `src/engine/ui/`. |
18 | | -- No deletes from this roadmap during style migration planning; only additive roadmap updates unless explicit closeout status changes are earned. |
| 3 | +### STYLE_05 — Collapsible System |
19 | 4 |
|
20 | | -## Folder Responsibilities |
21 | | -### src/engine/theme/ |
22 | | -Visual system only: |
23 | | -- reset/base |
24 | | -- tokens |
25 | | -- typography |
26 | | -- spacing |
27 | | -- layout primitives |
28 | | -- header/nav styling |
29 | | -- page shells |
30 | | -- accordion styling |
31 | | -- tool shell styling |
32 | | -- games/samples/tools section styling |
33 | | -- special-case CSS only when validated and needed |
34 | | - |
35 | | -### src/engine/ui/ |
36 | | -Behavior only: |
37 | | -- mount shared header if needed |
38 | | -- accordion interaction if CSS-only is insufficient |
39 | | -- host-shell launch behavior |
40 | | -- tool shell interaction |
41 | | -- minimal HTML-page JS only |
42 | | - |
43 | | -## Platform Decisions |
44 | | -- Four main entry pages stay visually very close: |
45 | | - - `/index.html` |
46 | | - - `/samples/index.html` |
47 | | - - `/games/index.html` |
48 | | - - `/tools/index.html` |
49 | | -- Shared header + shared page intro/title area. |
50 | | -- Header image stretches side-to-side while preserving aspect ratio. |
51 | | -- Menu buttons use the existing Toolbox Aid overline/underline hover treatment where available in the Toolbox Aid CSS baseline. |
52 | | -- Existing vague selectors are not preserved by default. |
53 | | -- Do not depend on old classes or old ids. |
54 | | -- Add only the selectors needed by the new system. |
55 | | -- `hideme` is retired and replaced by `.is-collapsible`. |
56 | | -- Consistent spacing and margin rules are mandatory. |
57 | | -- Tools should use full available page width with: |
58 | | - - fixed left column |
59 | | - - flexible center column |
60 | | - - fixed right column |
61 | | - - only center grows/shrinks |
62 | | -- Minimal JS for HTML pages. |
63 | | -- Normal content pages use a centered content-width policy. |
64 | | -- Tool pages use a full-width policy. |
65 | | -- Header area may gain a compact mode for tool pages if needed after validation, but only as an explicit tracked slice. |
66 | | - |
67 | | -## UX Clarification |
68 | | -### Tool launch labels |
69 | | -- Open Tool = launch the tool directly/standalone |
70 | | -- Open In Host = launch the same tool inside a shared host shell/container |
71 | | - |
72 | | -This explanation should be kept visible in related UI/help text so launch choices are understandable. |
73 | | - |
74 | | -## Status Legend |
75 | | -- [ ] not started |
76 | | -- [.] in progress |
77 | | -- [x] complete |
78 | | - |
79 | | ---- |
80 | | - |
81 | | -## Track A — Style System Foundation |
82 | | - |
83 | | -### A1. Establish Toolbox Aid-derived base theme |
84 | | -[ ] Create `src/engine/theme/main.css` as the shared base theme. |
85 | | -[ ] Base tokens: |
86 | | -- colors |
87 | | -- spacing |
88 | | -- typography |
89 | | -- border radius |
90 | | -- shadows |
91 | | -- transition timings |
92 | | -- content widths |
93 | | -- rail widths for tool layouts |
94 | | -[ ] Base layout primitives: |
95 | | -- page shell |
96 | | -- content container |
97 | | -- full-width section |
98 | | -- intro/title block |
99 | | -- nav row |
100 | | -- fixed-rail / fluid-center tool shell |
101 | | -[ ] Document which live Toolbox Aid behaviors are intentionally carried forward. |
102 | | -[ ] Do not pull from existing project styling. |
103 | | - |
104 | | -### A2. Establish shared file layout |
105 | | -[ ] Create/confirm: |
106 | | -- `src/engine/theme/main.css` |
107 | | -- `src/engine/theme/header.css` |
108 | | -- `src/engine/theme/nav.css` |
109 | | -- `src/engine/theme/layout.css` |
110 | | -- `src/engine/theme/accordion.css` |
111 | | -- `src/engine/theme/tools.css` |
112 | | -- `src/engine/theme/games.css` |
113 | | -- `src/engine/theme/samples.css` |
114 | | -- `src/engine/theme/pages.css` |
115 | | -[ ] Keep `main.css` foundational, not a dumping ground. |
116 | | - |
117 | | -### A3. Shared selector hygiene |
118 | | -[ ] Do not preserve existing project classes/ids unless intentionally adopted. |
119 | | -[ ] Introduce new consistent naming where needed. |
120 | | -[ ] Remove embedded styling from migrated pages only. |
121 | | -[ ] Ban new embedded styling in HTML and JS. |
122 | | - |
123 | | -### A4. Theme baseline details |
124 | | -[ ] Define font baseline and font stack policy. |
125 | | -[ ] Define spacing scale and usage policy. |
126 | | -[ ] Define container-width policy for content pages. |
127 | | -[ ] Define full-width policy for tools. |
128 | | -[ ] Define shadow/border/radius policy so ad hoc visual drift does not return. |
129 | | - |
130 | | ---- |
131 | | - |
132 | | -## Track B — Shared Header System |
133 | | - |
134 | | -### B1. Shared header source |
135 | | -[ ] Pull the `<header>` from Toolbox Aid and store it in: |
136 | | -- `src/engine/theme/toolboxaid-header.html` |
137 | | -[ ] Keep structure unchanged except: |
138 | | -- tagline becomes `HTML-JavaScript Gaming` |
139 | | -- menu becomes: |
140 | | - - Home |
141 | | - - Games |
142 | | - - Samples |
143 | | - - Tools |
144 | | - |
145 | | -### B2. Shared header assets and styling |
146 | | -[ ] Pull the required Toolbox Aid CSS needed to reproduce the header look. |
147 | | -[ ] Extract the minimum required CSS for correct rendering; do not rely on unrelated project CSS. |
148 | | -[ ] Keep the header image behavior: |
149 | | -- full-width feel |
150 | | -- maintain aspect ratio |
151 | | -- no distortion |
152 | | -[ ] Preserve the visual structure: |
153 | | -- site title |
154 | | -- tagline |
155 | | -- nav row |
156 | | -- social area if retained |
157 | | -[ ] Preserve the menu hover line effect from Toolbox Aid baseline. |
158 | | -[ ] Validate the header against missing global dependencies such as resets, fonts, spacing, and wrappers. |
159 | | - |
160 | | -### B3. Header loading |
161 | | -[ ] Provide one shared import path. |
162 | | -[ ] Avoid duplicating header markup across pages. |
163 | | -[ ] Minimize JS required to place the shared header into HTML pages. |
164 | | -[ ] Keep HTML-page JS minimal and boring. |
165 | | - |
166 | | -### B4. Header modes |
167 | | -[ ] Evaluate whether tools need a compact header mode after the main entry pages land. |
168 | | -[ ] If needed, implement compact mode as a tracked, explicit slice rather than as ad hoc page-specific overrides. |
169 | | - |
170 | | ---- |
171 | | - |
172 | | -## Track C — Main Entry Pages |
173 | | - |
174 | | -### C1. Reset `/index.html` |
175 | | -[ ] Remove dependencies on existing project page-local styling for `/index.html`. |
176 | | -[ ] Move `/index.html` to Toolbox Aid-derived shared theme only. |
177 | | -[ ] Add shared header. |
178 | | -[ ] Add shared page intro/title area. |
179 | | -[ ] Keep page structure simple and inspectable. |
180 | | -[ ] Validate spacing consistency. |
181 | | -[ ] Validate nav behavior. |
182 | | -[ ] Validate responsive behavior. |
183 | | -[ ] Validate that `/index.html` uses no embedded styling and no JS-driven styling. |
184 | | - |
185 | | -### C2. Reset `/samples/index.html` |
186 | | -[ ] Apply same shell and shared header. |
187 | | -[ ] Keep page visually very close to `/index.html`. |
188 | | -[ ] Use `samples.css` only for content-specific differences. |
189 | | - |
190 | | -### C3. Reset `/games/index.html` |
191 | | -[ ] Apply same shell and shared header. |
192 | | -[ ] Keep page visually very close to `/index.html`. |
193 | | -[ ] Use `games.css` only for content-specific differences. |
194 | | - |
195 | | -### C4. Reset `/tools/index.html` |
196 | | -[ ] Apply same shell and shared header. |
197 | | -[ ] Keep page visually very close to `/index.html`. |
198 | | -[ ] Use `tools.css` only for content-specific differences. |
199 | | - |
200 | | -### C5. Shared page-shell standard |
201 | | -[ ] Standardize all four main pages around: |
202 | | -- shared header |
203 | | -- shared intro/title area |
204 | | -- shared content shell |
205 | | -- shared footer policy if footer is used later |
206 | | -[ ] Avoid page-by-page shell drift. |
207 | | - |
208 | | ---- |
209 | | - |
210 | | -## Track D — Collapsible Pattern |
211 | | - |
212 | | -### D1. Replace `hideme` |
213 | | -[ ] Replace `hideme` usage on the four main index pages. |
214 | | -[ ] Rename to `.is-collapsible`. |
215 | | - |
216 | | -### D2. Shared accordion pattern |
217 | | -[ ] Make `.is-collapsible` use the same accordion feel as `.tools-platform-frame__accordion-summary`. |
218 | | -[ ] Prefer CSS-first. |
219 | | -[ ] Add minimal JS only if needed for accessibility or state persistence. |
220 | | -[ ] Use for shared header/page intro compaction where appropriate. |
221 | | - |
222 | | -### D3. Collapsible structure |
223 | | -[ ] Standardize collapsible naming: |
224 | | -- `.is-collapsible` |
225 | | -- `.is-collapsible__summary` |
226 | | -- `.is-collapsible__content` |
227 | | -- `.is-collapsible--collapsed` |
228 | | -[ ] Avoid vague state naming. |
229 | | - |
230 | | ---- |
231 | | - |
232 | | -## Track E — Tool Shell UX |
233 | | - |
234 | | -### E1. Shared tool layout |
235 | | -[ ] Create full-width tool shell. |
236 | | -[ ] Fixed left column. |
237 | | -[ ] Flexible center column. |
238 | | -[ ] Fixed right column. |
239 | | -[ ] Center alone resizes with viewport. |
240 | | -[ ] Validate at common desktop widths. |
241 | | - |
242 | | -### E2. Tool shell migration |
243 | | -[ ] Apply tool shell to one tool first as proof. |
244 | | -[ ] Then roll out tool-by-tool. |
245 | | -[ ] Keep header behavior compact enough not to crowd tool workspaces. |
246 | | - |
247 | | -### E3. Launch clarity |
248 | | -[ ] Add visible explanation near launch controls: |
249 | | -- Open Tool = launch the tool directly/standalone |
250 | | -- Open In Host = launch the same tool inside a shared host shell/container |
251 | | - |
252 | | -### E4. Host strategy clarity |
253 | | -[ ] Decide whether both launch modes remain permanent, get relabeled later, or eventually converge. |
254 | | -[ ] Keep the current explanation visible until that decision is made. |
255 | | - |
256 | | ---- |
257 | | - |
258 | | -## Track F — Spacing, Typography, and Consistency |
259 | | - |
260 | | -### F1. Spacing scale |
261 | | -[ ] Define one spacing scale. |
262 | | -[ ] Apply consistently to: |
263 | | -- page shells |
264 | | -- section spacing |
265 | | -- cards/panels |
266 | | -- forms/buttons |
267 | | -- tool side rails |
268 | | -- intro/title blocks |
269 | | - |
270 | | -### F2. Margin and padding audit |
271 | | -[ ] Standardize margin and padding rules on migrated pages. |
272 | | -[ ] Remove ad hoc spacing in migrated pages. |
273 | | - |
274 | | -### F3. Typography |
275 | | -[ ] Standardize: |
276 | | -- page titles |
277 | | -- section titles |
278 | | -- body text |
279 | | -- nav text |
280 | | -- helper text |
281 | | -- tool labels |
282 | | - |
283 | | -### F4. Hover, focus, and active states |
284 | | -[ ] Standardize hover behavior. |
285 | | -[ ] Standardize focus-visible behavior. |
286 | | -[ ] Standardize active/current-nav states. |
287 | | -[ ] Preserve Toolbox Aid-style hover line treatment where adopted. |
288 | | - |
289 | | ---- |
290 | | - |
291 | | -## Track G — Migration Rules |
292 | | - |
293 | | -### G1. Per-PR migration rule |
294 | | -[ ] Each PR migrates one narrow slice. |
295 | | -[ ] Remove old CSS only where the new theme fully covers that slice. |
296 | | -[ ] Never orphan a page between systems. |
297 | | - |
298 | | -### G2. Validation rule |
299 | | -[ ] Every style PR must be visually testable. |
300 | | -[ ] Every style PR must have rollback clarity. |
301 | | -[ ] Every style PR must avoid repo-wide churn. |
302 | | - |
303 | | -### G3. Old-style retirement |
304 | | -[ ] Delete old page-local CSS only after migrated coverage is validated. |
305 | | -[ ] Delete embedded `<style>` only after migrated coverage is validated. |
306 | | -[ ] Delete JS styling only after migrated coverage is validated. |
307 | | - |
308 | | -### G4. No-legacy-dependency verification |
309 | | -[ ] For each migrated page, verify that no old project-local style dependency remains. |
310 | | -[ ] Record what was removed and what replaced it. |
311 | | - |
312 | | ---- |
313 | | - |
314 | | -## Track H — Accessibility and Interaction Baseline |
315 | | - |
316 | | -### H1. Shared interaction states |
317 | | -[ ] Ensure nav, buttons, and accordions have keyboard-usable states. |
318 | | -[ ] Keep focus-visible styling consistent. |
319 | | - |
320 | | -### H2. Minimal-JS HTML policy |
321 | | -[ ] Document what JS is allowed on plain HTML pages. |
322 | | -[ ] Keep header loading and collapsible behavior minimal and auditable. |
323 | | - |
324 | | -### H3. Responsive baseline |
325 | | -[ ] Validate common desktop widths first. |
326 | | -[ ] Validate narrower widths for page-shell wrapping and nav behavior. |
327 | | -[ ] Prevent fixed rails from collapsing the center below usable limits. |
328 | | - |
329 | | ---- |
330 | | - |
331 | | -## Suggested Execution Order |
332 | | -[ ] STYLE_01 — Reset `/index.html` using Toolbox Aid-derived base. |
333 | | -[ ] STYLE_02 — Reset `/samples/index.html`. |
334 | | -[ ] STYLE_03 — Reset `/games/index.html`. |
335 | | -[ ] STYLE_04 — Reset `/tools/index.html`. |
336 | | -[ ] STYLE_05 — Add `.is-collapsible` shared accordion behavior. |
337 | | -[ ] STYLE_06 — Establish shared tool shell and migrate one tool. |
338 | | -[ ] STYLE_07 — Clarify tool launch labels/help text. |
339 | | -[ ] STYLE_08 — Evaluate compact tool-header mode if still needed. |
340 | | -[ ] STYLE_09+ — Continue tool UX migration tool-by-tool. |
341 | | - |
342 | | ---- |
343 | | - |
344 | | -## STYLE_02 Additive Expansion Bundle |
345 | | - |
346 | | -The following additive requirements are explicitly tracked for STYLE_02 implementation and validation: |
347 | | - |
348 | | -- [ ] Confirm `/index.html` imports only `src/engine/theme/main.css` for page styling. |
349 | | -- [ ] Confirm shared header styles are resolved through theme-level imports rather than page-local overrides. |
350 | | -- [ ] Confirm header template content changes remain limited to: |
351 | | - - tagline = `HTML-JavaScript Gaming` |
352 | | - - menu = Home / Games / Samples / Tools |
353 | | -- [ ] Confirm `/index.html` contains no embedded `<style>` and no inline `style=""`. |
354 | | -- [ ] Confirm plain-page JS remains minimal and limited to shared-header mounting. |
| 5 | +[ ] `.is-collapsible` class implemented |
| 6 | +[ ] `hideme` fully replaced |
| 7 | +[ ] Collapsible works on all main index pages |
| 8 | +[ ] Header/intro areas can collapse/expand |
| 9 | +[ ] No layout breakage |
| 10 | +[ ] No inline styles |
| 11 | +[ ] Minimal or no JS used |
0 commit comments