Skip to content

Commit 8891cd3

Browse files
committed
Safely reapply Toolbox header popout and update tool NAV usage - PR_26152_257-toolbox-header-popout-safe-reapply
1 parent 9673711 commit 8891cd3

23 files changed

Lines changed: 179 additions & 62 deletions

GameFoundryStudio/assets/css/theme/v2/layout.css

Lines changed: 71 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -141,28 +141,28 @@ div {
141141
border-bottom: var(--border-standard)
142142
}
143143

144-
.nav {
144+
.site-header .nav {
145145
display: flex;
146146
align-items: center;
147147
gap: var(--space-20);
148148
padding: var(--space-14) var(--space-0);
149149
overflow: visible
150150
}
151151

152-
.brand {
152+
.site-header .brand {
153153
display: flex;
154154
align-items: center;
155155
gap: var(--space-10);
156156
font-weight: var(--font-weight-heavy);
157157
letter-spacing: var(--letter-spacing-brand)
158158
}
159159

160-
.brand img {
160+
.site-header .brand img {
161161
width: var(--space-34);
162162
height: var(--space-34)
163163
}
164164

165-
.nav-links {
165+
.site-header .nav-links {
166166
display: flex;
167167
align-items: center;
168168
gap: var(--space-14);
@@ -171,37 +171,37 @@ div {
171171
overflow: visible
172172
}
173173

174-
.nav-links a,
175-
.nav-item>a {
174+
.site-header .nav-links a,
175+
.site-header .nav-item>a {
176176
color: var(--muted);
177177
font-size: var(--font-size-md)
178178
}
179179

180-
.nav-links a.active,
181-
.nav-links a:hover,
182-
.nav-item:hover>a,
183-
.nav-item:focus-within>a,
184-
.nav-item>a.active {
180+
.site-header .nav-links a.active,
181+
.site-header .nav-links a:hover,
182+
.site-header .nav-item:hover>a,
183+
.site-header .nav-item:focus-within>a,
184+
.site-header .nav-item>a.active {
185185
color: var(--gold)
186186
}
187187

188-
.nav-actions {
188+
.site-header .nav-actions {
189189
display: flex;
190190
gap: var(--space-10)
191191
}
192192

193-
.nav-item {
193+
.site-header .nav-item {
194194
position: relative;
195195
display: inline-flex;
196196
align-items: center
197197
}
198198

199-
.nav-item>a {
199+
.site-header .nav-item>a {
200200
display: inline-flex;
201201
align-items: center
202202
}
203203

204-
.sub-menu {
204+
.site-header .sub-menu {
205205
position: absolute;
206206
top: 100%;
207207
left: var(--space-0);
@@ -220,7 +220,7 @@ div {
220220
z-index: var(--z-index-lg)
221221
}
222222

223-
.nav-item:after {
223+
.site-header .nav-item:after {
224224
content: "";
225225
position: absolute;
226226
left: var(--space-0);
@@ -229,26 +229,67 @@ div {
229229
height: var(--space-10)
230230
}
231231

232-
.nav-item:hover .sub-menu,
233-
.nav-item:focus-within .sub-menu {
232+
.site-header .nav-item:hover>.sub-menu,
233+
.site-header .nav-item:focus-within>.sub-menu {
234234
opacity: 1;
235235
visibility: visible;
236236
pointer-events: auto
237237
}
238238

239-
.sub-menu a {
239+
.site-header .sub-menu a {
240240
display: block;
241241
padding: var(--space-10) var(--space-12);
242242
border-radius: var(--space-10);
243243
white-space: nowrap
244244
}
245245

246-
.sub-menu a:hover,
247-
.sub-menu a.active {
246+
.site-header .sub-menu a:hover,
247+
.site-header .sub-menu a.active {
248248
color: var(--gold);
249249
background: var(--orange-soft-strong)
250250
}
251251

252+
.site-header .sub-menu--toolbox {
253+
align-content: start
254+
}
255+
256+
.site-header .sub-menu .nav-popout-item {
257+
display: block;
258+
width: 100%
259+
}
260+
261+
.site-header .sub-menu .nav-popout-item>a {
262+
display: flex;
263+
justify-content: space-between;
264+
gap: var(--space-18);
265+
padding: var(--space-10) var(--space-12);
266+
border-radius: var(--space-10);
267+
white-space: nowrap
268+
}
269+
270+
.site-header .sub-menu .nav-popout-item>.sub-menu {
271+
top: var(--space-0);
272+
left: calc(100% + var(--space-8));
273+
opacity: 0;
274+
visibility: hidden;
275+
pointer-events: none
276+
}
277+
278+
.site-header .sub-menu .nav-popout-item:hover>.sub-menu,
279+
.site-header .sub-menu .nav-popout-item:focus-within>.sub-menu {
280+
opacity: 1;
281+
visibility: visible;
282+
pointer-events: auto
283+
}
284+
285+
.site-header .sub-menu .nav-popout-item:after {
286+
left: 100%;
287+
right: auto;
288+
top: var(--space-0);
289+
width: var(--space-10);
290+
height: 100%
291+
}
292+
252293
.hero {
253294
padding: var(--space-54) var(--space-0) var(--space-34)
254295
}
@@ -472,7 +513,7 @@ div {
472513
grid-template-columns: var(--two-columns)
473514
}
474515

475-
.nav-actions {
516+
.site-header .nav-actions {
476517
display: none
477518
}
478519

@@ -511,25 +552,30 @@ div {
511552
grid-template-columns: var(--one-column)
512553
}
513554

514-
.nav {
555+
.site-header .nav {
515556
align-items: flex-start;
516557
flex-direction: column
517558
}
518559

519-
.nav-links {
560+
.site-header .nav-links {
520561
margin-left: var(--space-0)
521562
}
522563

523564
.footer__groups {
524565
grid-template-columns: var(--one-column)
525566
}
526567

527-
.sub-menu {
568+
.site-header .sub-menu,
569+
.site-header .sub-menu .nav-popout-item>.sub-menu {
528570
position: static;
529571
opacity: 1;
530572
visibility: visible;
531573
pointer-events: auto;
532574
box-shadow: none;
533575
margin-top: var(--space-8)
534576
}
577+
578+
.site-header .sub-menu .nav-popout-item:after {
579+
content: none
580+
}
535581
}

GameFoundryStudio/assets/js/gamefoundry-partials.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,9 @@
7474
"tools",
7575
"configuration-admin",
7676
"ai-assistant",
77-
"animation-studio", "asset-studio", "code-studio", "input-studio", "midi-studio",
78-
"object-vector-studio", "palette-manager", "particle-studio", "sound-studio", "storage-inspector",
77+
"animation-studio", "asset-studio", "code-studio", "game-builder", "game-design-studio", "input-studio",
78+
"midi-studio", "object-vector-studio", "palette-manager", "particle-studio", "sound-studio",
79+
"storage-inspector", "world-vector-studio",
7980
"about", "vision", "mission", "roadmap", "release-notes",
8081
"account", "account-profile", "account-preferences", "account-security",
8182
"admin", "admin-site-settings", "admin-branding", "admin-themes", "admin-design-system", "admin-controls",

GameFoundryStudio/assets/partials/header-nav.html

Lines changed: 24 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,30 @@
77
<nav class="nav-links" aria-label="Main navigation">
88
<div class="nav-item">
99
<a data-nav-link data-route="tools" href="tools/index.html">Toolbox &#9662;</a>
10-
<div class="sub-menu" data-toolbox-menu aria-label="Toolbox menu">
11-
<details data-toolbox-menu-accordion data-toolbox-menu-group>
12-
<summary data-toolbox-menu-group-label>Objects</summary>
13-
<a data-nav-link data-toolbox-menu-item data-route="object-vector-studio" href="tools/object-vector-studio.html">Vector</a>
14-
<a data-nav-link data-toolbox-menu-item data-route="asset-studio" href="tools/asset-studio.html">Sprite</a>
15-
<a data-nav-link data-toolbox-menu-item data-route="animation-studio" href="tools/animation-studio.html">Animated Sprite</a>
16-
<a data-nav-link data-toolbox-menu-item data-route="code-studio" href="tools/code-studio.html">UI</a>
17-
</details>
18-
<details data-toolbox-menu-accordion data-toolbox-menu-group>
19-
<summary data-toolbox-menu-group-label>Worlds</summary>
20-
<a data-nav-link data-toolbox-menu-item data-route="world-vector-studio" href="tools/world-vector-studio.html">Vector</a>
21-
<a data-nav-link data-toolbox-menu-item data-route="game-builder" href="tools/game-builder.html">Tilemap</a>
22-
<a data-nav-link data-toolbox-menu-item data-route="particle-studio" href="tools/particle-studio.html">Isometric</a>
23-
<a data-nav-link data-toolbox-menu-item data-route="game-design-studio" href="tools/game-design-studio.html">Hybrid</a>
24-
</details>
25-
<details data-toolbox-menu-accordion data-toolbox-menu-group>
26-
<summary data-toolbox-menu-group-label>Audio</summary>
27-
<a data-nav-link data-toolbox-menu-item data-route="sound-studio" href="tools/sound-studio.html">Audio</a>
28-
</details>
29-
<details data-toolbox-menu-accordion data-toolbox-menu-group>
30-
<summary data-toolbox-menu-group-label>Input</summary>
31-
<a data-nav-link data-toolbox-menu-item data-route="input-studio" href="tools/input-studio.html">Input</a>
32-
</details>
33-
<details data-toolbox-menu-accordion data-toolbox-menu-group>
34-
<summary data-toolbox-menu-group-label>AI</summary>
35-
<a data-nav-link data-toolbox-menu-item data-route="ai-assistant" href="tools/ai-assistant.html">AI</a>
36-
</details>
37-
<details data-toolbox-menu-accordion data-toolbox-menu-group>
38-
<summary data-toolbox-menu-group-label>Colors</summary>
39-
<a data-nav-link data-toolbox-menu-item data-route="palette-manager" href="tools/palette-manager.html">Colors</a>
40-
</details>
41-
<details data-toolbox-menu-accordion data-toolbox-menu-group>
42-
<summary data-toolbox-menu-group-label>Assets</summary>
43-
<a data-nav-link data-toolbox-menu-item data-route="storage-inspector" href="tools/storage-inspector.html">Assets</a>
44-
</details>
10+
<div class="sub-menu sub-menu--toolbox" data-toolbox-menu aria-label="Toolbox menu">
11+
<a data-nav-link data-toolbox-menu-item data-route="ai-assistant" href="tools/ai-assistant.html">AI</a>
12+
<a data-nav-link data-toolbox-menu-item data-route="storage-inspector" href="tools/storage-inspector.html">Assets</a>
13+
<a data-nav-link data-toolbox-menu-item data-route="sound-studio" href="tools/sound-studio.html">Audio</a>
14+
<a data-nav-link data-toolbox-menu-item data-route="palette-manager" href="tools/palette-manager.html">Colors</a>
15+
<a data-nav-link data-toolbox-menu-item data-route="input-studio" href="tools/input-studio.html">Input</a>
16+
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
17+
<a data-toolbox-menu-group-label data-route="tools" href="tools/index.html" aria-haspopup="true">Objects &#9656;</a>
18+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="Objects tools">
19+
<a data-nav-link data-toolbox-menu-item data-route="animation-studio" href="tools/animation-studio.html">Animated Sprite</a>
20+
<a data-nav-link data-toolbox-menu-item data-route="asset-studio" href="tools/asset-studio.html">Sprite</a>
21+
<a data-nav-link data-toolbox-menu-item data-route="code-studio" href="tools/code-studio.html">UI</a>
22+
<a data-nav-link data-toolbox-menu-item data-route="object-vector-studio" href="tools/object-vector-studio.html">Vector</a>
23+
</div>
24+
</div>
25+
<div class="nav-item nav-popout-item" data-toolbox-menu-group>
26+
<a data-toolbox-menu-group-label data-route="tools" href="tools/index.html" aria-haspopup="true">Worlds &#9656;</a>
27+
<div class="sub-menu sub-menu--nested" data-toolbox-submenu aria-label="World tools">
28+
<a data-nav-link data-toolbox-menu-item data-route="game-design-studio" href="tools/game-design-studio.html">Hybrid</a>
29+
<a data-nav-link data-toolbox-menu-item data-route="particle-studio" href="tools/particle-studio.html">Isometric</a>
30+
<a data-nav-link data-toolbox-menu-item data-route="game-builder" href="tools/game-builder.html">Tilemap</a>
31+
<a data-nav-link data-toolbox-menu-item data-route="world-vector-studio" href="tools/world-vector-studio.html">Vector</a>
32+
</div>
33+
</div>
4534
</div>
4635
</div>
4736
<div class="nav-item">
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# PR_26152_257 Toolbox Header Popout Safe Reapply
2+
3+
## Scope
4+
5+
- Reapplied the shared Toolbox header submenu as hover/focus popout navigation.
6+
- Kept internal `tools/` paths unchanged.
7+
- Updated root shared-header tool pages to load the current Theme V2 shared layer after the existing tool page stylesheet.
8+
- Did not modify `tools/tools-page-accordions.js`.
9+
- Did not touch samples.
10+
- Did not run automated tests per request.
11+
12+
## Changes
13+
14+
- `GameFoundryStudio/assets/partials/header-nav.html`
15+
- Replaced Toolbox accordion submenu markup with hover/focus popout markup.
16+
- Sorted top-level Toolbox entries alphabetically:
17+
- AI
18+
- Assets
19+
- Audio
20+
- Colors
21+
- Input
22+
- Objects
23+
- Worlds
24+
- Sorted Objects submenu:
25+
- Animated Sprite
26+
- Sprite
27+
- UI
28+
- Vector
29+
- Sorted Worlds submenu:
30+
- Hybrid
31+
- Isometric
32+
- Tilemap
33+
- Vector
34+
35+
- `GameFoundryStudio/assets/css/theme/v2/layout.css`
36+
- Scoped navigation/menu selectors under `.site-header`.
37+
- Changed submenu hover/focus behavior to immediate-child popout behavior.
38+
- Added nested Toolbox popout positioning under `.site-header` selectors only.
39+
- Did not add or change `.tool-workspace`, `.tool-column`, panel, accordion, column, or workspace selectors.
40+
41+
- `GameFoundryStudio/assets/js/gamefoundry-partials.js`
42+
- Added missing root-page route handling for new Toolbox submenu routes that already existed in `routeMap`.
43+
44+
- Root shared-header tool pages
45+
- Added `assets/css/theme/v2/theme.css` after the existing tool page stylesheet so the shared header uses the current Theme V2 navigation layer while preserving existing tool page workspace styling.
46+
47+
## Validation
48+
49+
- PASS: `git diff --check`
50+
- Notes: Git emitted line-ending notices for modified files, but the command exited successfully.
51+
52+
## Automated Tests
53+
54+
- SKIP: Automated tests were not run because the BUILD request says the user will perform visual validation.
55+
56+
## Samples
57+
58+
- SKIP: Samples were not touched.
59+
60+
## Blockers
61+
62+
- None.

tools/ai-assistant.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<meta name="description" content="Game Foundry Studio: Build. Play. Share.">
1010
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
1111
<link rel="stylesheet" href="assets/css/styles.css">
12+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1213
</head>
1314

1415
<body class="meaning-molten-orange">

tools/animation-studio.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<meta name="description" content="Game Foundry Studio: Build. Play. Share.">
1010
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
1111
<link rel="stylesheet" href="assets/css/styles.css">
12+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1213
</head>
1314

1415
<body class="meaning-molten-orange">

tools/asset-studio.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<meta name="description" content="Game Foundry Studio: Build. Play. Share.">
1010
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
1111
<link rel="stylesheet" href="assets/css/styles.css">
12+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1213
</head>
1314

1415
<body class="meaning-molten-orange">

tools/builder.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<meta name="description" content="Game Foundry Studio Tool Builder layout.">
1010
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
1111
<link rel="stylesheet" href="assets/css/styles.css">
12+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1213
</head>
1314

1415
<body class="meaning-molten-orange">

tools/code-studio.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<meta name="description" content="Game Foundry Studio: Build. Play. Share.">
1010
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
1111
<link rel="stylesheet" href="assets/css/styles.css">
12+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1213
</head>
1314

1415
<body class="meaning-molten-orange">

tools/creator.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
<meta name="description" content="Game Foundry Studio Tool Creator layout.">
1010
<link rel="icon" href="assets/images/favicon.svg" type="image/svg+xml">
1111
<link rel="stylesheet" href="assets/css/styles.css">
12+
<link rel="stylesheet" href="assets/css/theme/v2/theme.css">
1213
</head>
1314

1415
<body class="meaning-molten-orange">

0 commit comments

Comments
 (0)