Skip to content

Commit 98f18ff

Browse files
author
DavidQ
committed
Add shared .is-collapsible system and replace hideme usage.
Enable collapsible header/intro sections for better vertical space usage. PR: BUILD_PR_STYLE_05_COLLAPSIBLE_SYSTEM
1 parent 1e1d7f8 commit 98f18ff

10 files changed

Lines changed: 134 additions & 394 deletions

File tree

docs/dev/codex_commands.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,19 @@ MODEL: GPT-5.4-codex
22
REASONING: high
33

44
COMMAND:
5-
Create BUILD_PR_STYLE_03_SAMPLES_INDEX_RESET
5+
Create BUILD_PR_STYLE_05_COLLAPSIBLE_SYSTEM
66

77
Tasks:
8-
1. Reset `/samples/index.html` to new theme system
9-
2. Use shared header from src/engine/theme/toolboxaid-header.html
10-
3. Remove all embedded CSS and JS styling
11-
4. Match structure and spacing of `/index.html`
12-
5. Keep implementation minimal and testable
8+
1. Implement `.is-collapsible` system in theme CSS
9+
2. Add structure:
10+
- .is-collapsible
11+
- .is-collapsible__summary
12+
- .is-collapsible__content
13+
- .is-collapsible--collapsed
14+
3. Replace `hideme` usage in main index pages
15+
4. Apply collapsible behavior to header intro/title areas
16+
5. Use CSS-first approach (details/summary or similar)
17+
6. Add minimal JS only if necessary
1318

1419
Output:
15-
<project folder>/tmp/BUILD_PR_STYLE_03_SAMPLES_INDEX_RESET.zip
20+
<project folder>/tmp/BUILD_PR_STYLE_05_COLLAPSIBLE_SYSTEM.zip

docs/dev/commit_comment.txt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
Add automated validation for fullscreen rules.
1+
Add shared .is-collapsible system and replace hideme usage.
22

3-
Ensures no regression beyond sample 0713.
4-
Validates proper fullscreen scaling behavior.
3+
Enable collapsible header/intro sections for better vertical space usage.
54

6-
PR: LEVEL 23.9 FULLSCREEN VALIDATION AUTOMATION
5+
PR: BUILD_PR_STYLE_05_COLLAPSIBLE_SYSTEM
Lines changed: 8 additions & 351 deletions
Original file line numberDiff line numberDiff line change
@@ -1,354 +1,11 @@
1-
# MASTER_ROADMAP_STYLE.md
21

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.
52

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
194

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

Comments
 (0)