Skip to content

Commit e4b4f28

Browse files
committed
Add About and FAQ navigation plus tool display mode polish - PR_26152_011-nav-faq-tool-display-mode
1 parent ddc3368 commit e4b4f28

6 files changed

Lines changed: 168 additions & 4 deletions

File tree

GameFoundryStudio/assets/css/gamefoundrystudio.css

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -695,10 +695,11 @@ details.vertical-accordion[open] summary:active:after {
695695
border: 1px solid var(--line);
696696
border-radius: var(--radius-lg);
697697
background: var(--panel);
698-
box-shadow: var(--shadow-md);
698+
box-shadow: var(--shadow-lg);
699699
overflow: hidden;
700700
display: flex;
701701
align-items: center;
702+
justify-content: center;
702703
gap: 12px
703704
}
704705

@@ -784,7 +785,8 @@ details.vertical-accordion[open] summary:active:after {
784785
}
785786

786787
.tool-display-mode__description {
787-
color: var(--muted);
788+
color: var(--gold);
789+
font-weight: 900;
788790
overflow: hidden;
789791
text-overflow: ellipsis;
790792
white-space: nowrap

GameFoundryStudio/assets/js/gamefoundry-partials.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
learn: "learn/index.html",
3131
community: "community/index.html",
3232
docs: "docs/index.html",
33+
about: "about.html",
34+
faq: "faq.html",
3335
account: "account/index.html",
3436
branding: "account/branding.html",
3537
controls: "account/controls.html",

GameFoundryStudio/assets/js/tool-display-mode.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
const basePath = slot.dataset.assetRoot || "../assets/images";
1111
const pageTitle = document.querySelector(".page-title h1");
12-
const centerDescription = document.querySelector(".tool-center-panel p");
1312
const toolName = pageTitle ? pageTitle.textContent.trim() : "Tool";
1413
const routeSlug = window.location.pathname.split("/").pop().replace(/\.html$/, "");
1514
const toolSlug = slot.dataset.toolSlug || (routeSlug === "publisher" ? "publish-studio" : routeSlug);
@@ -41,7 +40,7 @@
4140

4241
const description = document.createElement("span");
4342
description.className = "tool-display-mode__description";
44-
description.textContent = centerDescription ? centerDescription.textContent.trim() : toolName;
43+
description.textContent = toolName;
4544
body.appendChild(description);
4645
displayMode.appendChild(body);
4746
slot.replaceWith(displayMode);

GameFoundryStudio/assets/partials/header-nav.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,8 @@
3737
<a data-nav-link data-route="learn" href="learn/index.html">Learn</a>
3838
<a data-nav-link data-route="community" href="community/index.html">Community</a>
3939
<a data-nav-link data-route="docs" href="docs/index.html">Docs</a>
40+
<a data-nav-link data-route="about" href="about.html">About</a>
41+
<a data-nav-link data-route="faq" href="faq.html">FAQ</a>
4042
<div class="nav-item"><a data-nav-link data-route="account" href="account/index.html">Account ▾</a>
4143
<div class="sub-menu">
4244
<a data-nav-link data-route="account" href="account/index.html">Account Home</a>

GameFoundryStudio/faq.html

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
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>FAQ - Game Foundry Studio</title>
8+
<meta name="description" content="Frequently asked questions for Game Foundry Studio creators.">
9+
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
10+
<link rel="stylesheet" href="assets/css/styles.css">
11+
</head>
12+
13+
<body>
14+
<div data-partial="header-nav"></div>
15+
<main>
16+
<section class="page-title">
17+
<div class="container">
18+
<div class="kicker">FAQ</div>
19+
<h1>Answers for creators getting started.</h1>
20+
<p class="lede">Common questions about building, publishing, assets, accounts, and the Game Foundry
21+
Studio tool ecosystem.</p>
22+
</div>
23+
</section>
24+
<section class="section">
25+
<div class="container account-panel">
26+
<aside class="side-menu">
27+
<a href="about.html">About</a>
28+
<a class="active" href="faq.html">FAQ</a>
29+
<a href="docs/index.html">Docs</a>
30+
<a href="account/index.html">Account</a>
31+
</aside>
32+
<div class="card">
33+
<div class="card-body">
34+
<h2>Frequently Asked Questions</h2>
35+
<div class="accordion-stack">
36+
<details class="vertical-accordion" open>
37+
<summary>What is Game Foundry Studio?</summary>
38+
<div class="accordion-body">
39+
<p>Game Foundry Studio is a browser-based place to plan, build, play, and share
40+
games with creator tools, game pages, docs, marketplace ideas, and account
41+
surfaces.</p>
42+
</div>
43+
</details>
44+
<details class="vertical-accordion">
45+
<summary>Which tool should I open first?</summary>
46+
<div class="accordion-body">
47+
<p>Start with Game Design Studio when you are shaping an idea, then move into Game
48+
Builder, Asset Studio, Animation Studio, Sound Studio, and the publishing tools
49+
as the project becomes more concrete.</p>
50+
</div>
51+
</details>
52+
<details class="vertical-accordion">
53+
<summary>Do I need an account to build?</summary>
54+
<div class="accordion-body">
55+
<p>The account pages show the intended creator profile, branding, controls, rating,
56+
and settings structure. Tool workflows can still be explored from the site nav
57+
while account services are wired in.</p>
58+
</div>
59+
</details>
60+
<details class="vertical-accordion">
61+
<summary>Where do assets and published games live?</summary>
62+
<div class="accordion-body">
63+
<p>Asset, marketplace, and publishing pages outline the destination structure for
64+
game media, reusable resources, and releases. The docs area covers manifest and
65+
publishing rules as they are formalized.</p>
66+
</div>
67+
</details>
68+
</div>
69+
<div class="callout">
70+
<strong>Need the build rules?</strong> Use the Docs page for manifests, tool guides,
71+
validation expectations, and publishing contracts.
72+
</div>
73+
</div>
74+
</div>
75+
</div>
76+
</section>
77+
</main>
78+
<div data-partial="footer"></div>
79+
<script src="assets/js/gamefoundry-partials.js" defer></script>
80+
</body>
81+
82+
</html>
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# PR_26152_011-nav-faq-tool-display-mode Validation
2+
3+
Playwright impacted: Yes
4+
5+
## Scope
6+
7+
- Added the existing About page and new FAQ page to the shared Game Foundry Studio NAV.
8+
- Added `GameFoundryStudio/faq.html` using the shared site/account page structure and CSS classes.
9+
- Updated shared `tool-display-mode` so normal, non-fullscreen mode shows the page `ToolName` instead of center-panel descriptive text.
10+
- Updated normal `tool-display-mode` text/color/alignment treatment to match the fullscreen name treatment.
11+
12+
No sample JSON was modified.
13+
14+
## Lanes Executed
15+
16+
- contract/static - changed HTML/CSS/JS restrictions, route map, nav links, and CSS selector checks.
17+
- runtime/browser - targeted Playwright browser validation for the shared NAV partial, About page, FAQ page, normal tool display mode, and focus/fullscreen toggle behavior.
18+
- workspace-contract - required `npm run test:workspace-v2` was attempted; see WARN below.
19+
20+
## Lanes Skipped
21+
22+
- engine - no `src/`, engine runtime, rendering, input, audio, physics, asset loading, or shared parser code changed.
23+
- samples - SKIP because sample JSON and shared sample loading were not in scope.
24+
- full samples smoke - SKIP per BUILD instruction and because this PR does not broadly affect samples.
25+
26+
## Commands And Results
27+
28+
- PASS: `node --check GameFoundryStudio/assets/js/gamefoundry-partials.js`
29+
- PASS: `node --check GameFoundryStudio/assets/js/tool-display-mode.js`
30+
- PASS: inline Node static validation for changed HTML/CSS/JS.
31+
- Verified no inline `<style>` blocks, inline `<script>` blocks, inline `style` attributes, or inline event handlers in changed HTML/partial files.
32+
- Verified About and FAQ links exist in `header-nav.html`.
33+
- Verified `about` and `faq` routes exist in `gamefoundry-partials.js`.
34+
- Verified `tool-display-mode.js` uses `toolName` for the normal display description.
35+
- Verified changed CSS has balanced braces and the expected display-mode shadow, center alignment, gold color, and strong weight.
36+
- PASS: targeted Playwright browser validation through a temporary local HTTP server.
37+
- Verified About and FAQ render in shared NAV and resolve to `about.html` and `faq.html`.
38+
- Verified About nav link is active on `about.html`.
39+
- Verified FAQ page renders, has the FAQ nav link active, and includes four FAQ accordions.
40+
- Verified normal/non-fullscreen Game Builder display mode shows `Game Builder`, not `Game Builder turns the de...`.
41+
- Verified normal/non-fullscreen display-mode text color and weight match fullscreen name treatment.
42+
- Verified display-mode click enters focus/fullscreen mode, collapses the details body, shows fullscreen name `Game Builder`, exits focus/fullscreen mode, and reopens details.
43+
- WARN: `npm run test:workspace-v2`
44+
- Attempt 1 timed out after 124 seconds with no stdout/stderr completion.
45+
- Attempt 2 timed out after 604 seconds with no stdout/stderr completion.
46+
- The timed-out child Node/Playwright processes were stopped after timeout cleanup.
47+
- Direct target listing confirmed the lane expands to 72 tests in `tests/playwright/tools/WorkspaceManagerV2.spec.mjs`.
48+
- PASS: direct workspace-contract sanity check:
49+
- `node node_modules/@playwright/test/cli.js test tests/playwright/tools/WorkspaceManagerV2.spec.mjs --project=playwright --workers=1 --reporter=list --grep "registers Workspace Manager V2 from the tools index"`
50+
- Result: 1 passed.
51+
52+
## Playwright V8 Coverage
53+
54+
(100%) GameFoundryStudio/assets/js/gamefoundry-partials.js - 5512 of 5512 bytes executed in targeted nav/tool-display browser validation.
55+
(100%) GameFoundryStudio/assets/js/tool-display-mode.js - 5138 of 5138 bytes executed in targeted nav/tool-display browser validation.
56+
57+
## Manual Validation Steps
58+
59+
1. Open `GameFoundryStudio/index.html` through a local HTTP server.
60+
2. Confirm the shared top NAV includes `About` and `FAQ`.
61+
3. Open `GameFoundryStudio/about.html` and confirm the About NAV link is active.
62+
4. Open `GameFoundryStudio/faq.html` and confirm the FAQ NAV link is active and the FAQ accordions render.
63+
5. Open `GameFoundryStudio/tools/game-builder.html`.
64+
6. Confirm normal/non-fullscreen `tool-display-mode` shows `Game Builder` instead of the long descriptive sentence.
65+
7. Click the display-mode summary to enter focus/fullscreen mode and confirm the fullscreen label remains `Game Builder`.
66+
8. Click the display-mode summary again to exit and confirm normal mode reopens.
67+
68+
## Expected PASS Behavior
69+
70+
- About and FAQ appear in the shared site NAV on root, nested, and tool pages.
71+
- FAQ uses the shared header, footer, page title, account panel, side menu, card, accordion, and callout CSS patterns.
72+
- Normal/non-fullscreen tool display mode shows the current page `ToolName`.
73+
- Fullscreen/focus behavior remains unchanged: click enters focus/fullscreen treatment, click exits, and details reopen.
74+
75+
## Expected WARN Behavior
76+
77+
- `npm run test:workspace-v2` is WARN because the exact required command did not complete within 604 seconds in this environment. The issue is isolated to the large workspace-contract lane execution, not this PR's changed NAV/FAQ/tool-display files.

0 commit comments

Comments
 (0)