Skip to content

Commit 04b701f

Browse files
committed
Create Theme V2 tool and page templates from approved references - PR_26152_273-theme-v2-template-foundation
1 parent 09583f0 commit 04b701f

6 files changed

Lines changed: 286 additions & 2 deletions

File tree

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# PR_26152_273 Theme V2 Template Foundation
2+
3+
## Scope
4+
5+
- Created `src/engine/theme/v2/templates/_tool_template_v2.html`.
6+
- Created `src/engine/theme/v2/templates/_page_template_v2.html`.
7+
- Added `src/engine/theme/v2/assets/image-missing.svg` because no existing `image-missing.svg` was present.
8+
- Used AI Assistant only as the tool layout reference.
9+
- Used Marketplace only as the page layout reference.
10+
- Extracted layout intent only.
11+
12+
## Template Boundaries
13+
14+
- No AI Assistant implementation logic copied.
15+
- No Marketplace implementation logic copied.
16+
- No legacy CSS or asset references added.
17+
- No `GameFoundryStudio/assets` dependency added.
18+
- No external script dependency added.
19+
- No inline script added.
20+
- No inline style attributes added.
21+
- No inline event handlers added.
22+
- No new CSS created.
23+
- No templates beyond the two requested foundations were created.
24+
25+
## Template Locations
26+
27+
| Template | Location | Reference | Intent |
28+
|---|---|---|---|
29+
| Tool Template V2 | `src/engine/theme/v2/templates/_tool_template_v2.html` | `tools/ai-assistant.html` | Three-region tool workspace: left setup, center work area, right inspector. |
30+
| Page Template V2 | `src/engine/theme/v2/templates/_page_template_v2.html` | `GameFoundryStudio/marketplace/index.html` | Page title plus hero media/content section and repeated content blocks. |
31+
| Missing Image | `src/engine/theme/v2/assets/image-missing.svg` | New shared placeholder | Shared template image fallback only. |
32+
33+
## Theme V2 Pattern Usage
34+
35+
- Templates reference `../theme.css` only.
36+
- Layout classes use existing Theme V2 vocabulary such as `site-header`, `container`, `nav`, `page-title`, `section`, `tool-workspace`, `tool-column`, `tool-center-panel`, `accordion-stack`, `vertical-accordion`, `page-hero`, `grid`, `cols-3`, `callout`, `btn`, and `footer`.
37+
- Accordions use native `<details>` / `<summary>` structure.
38+
- Buttons use `<button>` for template tool commands and `<a>` for template page navigation.
39+
40+
## Validation
41+
42+
- PASS: `git diff --check`
43+
- PASS: Template guard scan found no `<script>` tags.
44+
- PASS: Template guard scan found no inline `style` attributes.
45+
- PASS: Template guard scan found no inline event handlers.
46+
- PASS: Template guard scan found no legacy asset dependencies.
47+
48+
## Scope Exclusions
49+
50+
- No tool rebuild.
51+
- No samples.
52+
- No Marketplace implementation logic.
53+
- No AI Assistant implementation logic.
54+
- No template runtime behavior.
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
# PR_26152_273 Theme V2 Template Reference Mapping
2+
3+
## AI Assistant To Tool Template Mapping
4+
5+
| AI Assistant reference area | Template extraction | Copied implementation logic |
6+
|---|---|---|
7+
| `page-title` with kicker, `h1`, and lede | Preserved as generic tool title area | No |
8+
| `tool-workspace` shell | Preserved as left / center / right layout intent | No |
9+
| Left `tool-column` with `Toolbox` header | Preserved as generic setup/options column | No |
10+
| Native `details.vertical-accordion` | Preserved as generic accordion structure | No |
11+
| Center `tool-center-panel` | Preserved as generic work area | No |
12+
| Tool preview image | Replaced with shared `image-missing.svg` | No |
13+
| Right `tool-column` with `Inspector` header | Preserved as generic output/history column | No |
14+
| `data-tool-display-mode` display behavior | Omitted | No |
15+
| `assets/js/gamefoundry-partials.js` and `assets/js/tool-display-mode.js` | Omitted | No |
16+
| AI Assistant copy and ForgeBot image | Replaced with neutral template text/image | No |
17+
18+
## Marketplace To Page Template Mapping
19+
20+
| Marketplace reference area | Template extraction | Copied implementation logic |
21+
|---|---|---|
22+
| `page-title` with kicker, `h1`, and lede | Preserved as generic page title area | No |
23+
| `page-hero` image/text split | Preserved as generic hero structure | No |
24+
| Primary call-to-action button | Preserved as generic primary link | No |
25+
| Marketplace image | Replaced with shared `image-missing.svg` | No |
26+
| Marketplace-specific copy | Replaced with neutral template text | No |
27+
| `assets/js/gamefoundry-partials.js` | Omitted | No |
28+
| Legacy `../assets/css/styles.css` dependency | Omitted | No |
29+
30+
## Rewire Decisions
31+
32+
- Header/footer are static Theme V2 structural placeholders, not partial-loader implementations.
33+
- Templates use only `../theme.css` as the Theme V2 stylesheet reference.
34+
- `image-missing.svg` is the only shared asset added for template fallback.
35+
- Existing tools and Marketplace remain reference-only and were not modified.
36+
37+
## Validation
38+
39+
- PASS: `git diff --check`
40+
- PASS: No source implementation logic copied from AI Assistant.
41+
- PASS: No source implementation logic copied from Marketplace.
42+
- PASS: No legacy asset dependency added.
43+
44+
## Scope Exclusions
45+
46+
- No tool rebuild.
47+
- No samples.
48+
- No new CSS.
49+
- No template JavaScript.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ David Quesenberry
44
03/22/2026
55
Combat.js
66
*/
7-
import { isColliding } from '../collision/aabb.js';
8-
import { clamp } from '../../shared/math/scalars.js';
7+
import { isColliding } from '../aabb.js';
8+
import { clamp } from '../../../shared/math/scalars.js';
99

1010
function sanitizeDuration(value) {
1111
return Math.max(0, Number(value) || 0);
Lines changed: 9 additions & 0 deletions
Loading
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
<!doctype html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="utf-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<title>Page Template V2 - Game Foundry Studio</title>
8+
<meta name="description" content="Theme V2 page template foundation.">
9+
<link rel="stylesheet" href="../theme.css">
10+
</head>
11+
12+
<body>
13+
<header class="site-header" aria-label="Site header">
14+
<div class="container nav">
15+
<a class="brand" href="#">
16+
<span>Game Foundry Studio</span>
17+
</a>
18+
<nav class="nav-links" aria-label="Main navigation">
19+
<a href="#">Toolbox</a>
20+
<a href="#">Games</a>
21+
<a href="#">Marketplace</a>
22+
</nav>
23+
</div>
24+
</header>
25+
26+
<main>
27+
<section class="page-title">
28+
<div class="container">
29+
<div class="kicker">Page Category</div>
30+
<h1>Page Title</h1>
31+
<p class="lede">Page purpose and key visitor outcome.</p>
32+
</div>
33+
</section>
34+
35+
<section class="section">
36+
<div class="container page-hero">
37+
<img src="../assets/image-missing.svg" alt="Page hero placeholder">
38+
<div>
39+
<h2>Primary page message.</h2>
40+
<p class="lede">Supporting context for the page experience.</p>
41+
<a class="btn primary" href="#template-content">Primary Link</a>
42+
</div>
43+
</div>
44+
</section>
45+
46+
<section class="section" id="template-content">
47+
<div class="container">
48+
<div class="grid cols-3">
49+
<article class="callout">
50+
<h2>Section One</h2>
51+
<p>Short content block for the first page focus.</p>
52+
</article>
53+
<article class="callout">
54+
<h2>Section Two</h2>
55+
<p>Short content block for the second page focus.</p>
56+
</article>
57+
<article class="callout">
58+
<h2>Section Three</h2>
59+
<p>Short content block for the third page focus.</p>
60+
</article>
61+
</div>
62+
</div>
63+
</section>
64+
</main>
65+
66+
<footer class="footer">
67+
<div class="container footer__inner">
68+
<div class="footer__tagline">Build &middot; Play &middot; Share</div>
69+
</div>
70+
</footer>
71+
</body>
72+
73+
</html>
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<!doctype html>
2+
<html lang="en">
3+
4+
<head>
5+
<meta charset="utf-8">
6+
<meta name="viewport" content="width=device-width, initial-scale=1">
7+
<title>Tool Template V2 - Game Foundry Studio</title>
8+
<meta name="description" content="Theme V2 tool template foundation.">
9+
<link rel="stylesheet" href="../theme.css">
10+
</head>
11+
12+
<body class="meaning-molten-orange">
13+
<header class="site-header" aria-label="Site header">
14+
<div class="container nav">
15+
<a class="brand" href="#">
16+
<span>Game Foundry Studio</span>
17+
</a>
18+
<nav class="nav-links" aria-label="Main navigation">
19+
<a href="#">Toolbox</a>
20+
<a href="#">Games</a>
21+
<a href="#">Marketplace</a>
22+
</nav>
23+
</div>
24+
</header>
25+
26+
<main>
27+
<section class="page-title">
28+
<div class="container">
29+
<div class="kicker">Template Tool Group</div>
30+
<h1>Tool Name</h1>
31+
<p class="lede">Tool purpose and expected creator outcome.</p>
32+
</div>
33+
</section>
34+
35+
<section class="section">
36+
<div class="container">
37+
<div class="tool-workspace">
38+
<aside class="tool-column">
39+
<div class="tool-column-header molten-orange">
40+
<h2>Toolbox</h2>
41+
</div>
42+
<div class="accordion-stack">
43+
<details class="vertical-accordion" open>
44+
<summary>Setup</summary>
45+
<div class="accordion-body">
46+
<p>Setup controls and required inputs.</p>
47+
</div>
48+
</details>
49+
<details class="vertical-accordion">
50+
<summary>Options</summary>
51+
<div class="accordion-body">
52+
<p>Secondary controls and configuration.</p>
53+
</div>
54+
</details>
55+
</div>
56+
</aside>
57+
58+
<section class="tool-center-panel" aria-labelledby="tool-workspace-title">
59+
<img src="../assets/image-missing.svg" alt="Tool preview placeholder">
60+
<h2 id="tool-workspace-title">Workspace</h2>
61+
<p>Primary work area, preview, canvas, editor, or generated output.</p>
62+
<div class="button-row" aria-label="Tool actions">
63+
<button class="btn primary" type="button">Primary Action</button>
64+
<button class="btn" type="button">Secondary Action</button>
65+
</div>
66+
</section>
67+
68+
<aside class="tool-column">
69+
<div class="tool-column-header forge-gold">
70+
<h2>Inspector</h2>
71+
</div>
72+
<div class="accordion-stack">
73+
<details class="vertical-accordion" open>
74+
<summary>Output</summary>
75+
<div class="accordion-body">
76+
<p>Status, validation messages, or selected item details.</p>
77+
</div>
78+
</details>
79+
<details class="vertical-accordion">
80+
<summary>History</summary>
81+
<div class="accordion-body">
82+
<p>Recent actions, logs, or export records.</p>
83+
</div>
84+
</details>
85+
</div>
86+
</aside>
87+
</div>
88+
</div>
89+
</section>
90+
</main>
91+
92+
<footer class="footer">
93+
<div class="container footer__inner">
94+
<div class="footer__tagline">Build &middot; Play &middot; Share</div>
95+
</div>
96+
</footer>
97+
</body>
98+
99+
</html>

0 commit comments

Comments
 (0)