@kenjura/ursa 0.72.0 → 0.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/meta/default-template.html +32 -6
- package/meta/default.css +365 -175
- package/meta/menu.js +153 -80
- package/meta/search.js +7 -13
- package/meta/sectionify.js +10 -0
- package/meta/toc-generator.js +12 -6
- package/meta/widgets.js +376 -0
- package/package.json +1 -1
- package/src/dev.js +39 -11
- package/src/helper/automenu.js +102 -12
- package/src/helper/breadcrumbs.js +42 -0
- package/src/helper/build/autoIndex.js +80 -23
- package/src/helper/build/menu.js +4 -4
- package/src/helper/customMenu.js +118 -29
- package/src/helper/imageProcessor.js +38 -8
- package/src/jobs/generate.js +52 -9
package/meta/default.css
CHANGED
|
@@ -17,6 +17,8 @@ body {
|
|
|
17
17
|
--bg-color: #121212;
|
|
18
18
|
--text-color: #f2f2f2;
|
|
19
19
|
--nav-top-bg: #242424;
|
|
20
|
+
--widget-bg: #242424;
|
|
21
|
+
--widget-border: #3a3a3a;
|
|
20
22
|
}
|
|
21
23
|
}
|
|
22
24
|
|
|
@@ -25,6 +27,8 @@ body {
|
|
|
25
27
|
--bg-color: white;
|
|
26
28
|
--text-color: black;
|
|
27
29
|
--nav-top-bg: #f2f2f2;
|
|
30
|
+
--widget-bg: #f2f2f2;
|
|
31
|
+
--widget-border: #ddd;
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
|
|
@@ -54,7 +58,7 @@ nav#nav-global {
|
|
|
54
58
|
left: 0;
|
|
55
59
|
width: 100vw;
|
|
56
60
|
display: grid;
|
|
57
|
-
grid-template-columns:
|
|
61
|
+
grid-template-columns: 1fr var(--article-width) 1fr;
|
|
58
62
|
align-items: center;
|
|
59
63
|
padding: 0 8px;
|
|
60
64
|
box-sizing: border-box;
|
|
@@ -76,8 +80,7 @@ nav#nav-global {
|
|
|
76
80
|
|
|
77
81
|
/* Center container for search and top menu */
|
|
78
82
|
.nav-center {
|
|
79
|
-
width: var(--article-width);
|
|
80
|
-
max-width: calc(100% - 16px);
|
|
83
|
+
width: calc(var(--article-width) + 38px);
|
|
81
84
|
justify-self: center;
|
|
82
85
|
position: relative;
|
|
83
86
|
}
|
|
@@ -121,19 +124,256 @@ nav#nav-global {
|
|
|
121
124
|
.search-clear-button.hidden {
|
|
122
125
|
display: none;
|
|
123
126
|
}
|
|
127
|
+
}
|
|
124
128
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
129
|
+
/* ==========================================
|
|
130
|
+
WIDGET SYSTEM STYLES
|
|
131
|
+
Right-side nav widgets (TOC, Search, Profile)
|
|
132
|
+
========================================== */
|
|
133
|
+
|
|
134
|
+
/* Widget bar in the nav right column */
|
|
135
|
+
nav#nav-global .nav-right-controls {
|
|
136
|
+
display: flex;
|
|
137
|
+
align-items: center;
|
|
138
|
+
justify-self: end;
|
|
139
|
+
gap: 0;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.widget-bar {
|
|
143
|
+
display: flex;
|
|
144
|
+
align-items: center;
|
|
145
|
+
gap: 0;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.widget-button {
|
|
149
|
+
display: flex;
|
|
150
|
+
align-items: center;
|
|
151
|
+
justify-content: center;
|
|
152
|
+
background: none;
|
|
153
|
+
border: none;
|
|
154
|
+
color: var(--text-color);
|
|
155
|
+
font-size: 1.1rem;
|
|
156
|
+
width: var(--global-nav-height);
|
|
157
|
+
height: var(--global-nav-height);
|
|
158
|
+
cursor: pointer;
|
|
159
|
+
opacity: 0.7;
|
|
160
|
+
transition: opacity 0.15s ease, background-color 0.15s ease;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.widget-button:hover {
|
|
164
|
+
opacity: 1;
|
|
165
|
+
background-color: rgba(128, 128, 128, 0.15);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.widget-button.active {
|
|
169
|
+
opacity: 1;
|
|
170
|
+
background-color: var(--widget-bg);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.widget-icon {
|
|
174
|
+
pointer-events: none;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* Widget dropdown panel */
|
|
178
|
+
.widget-dropdown {
|
|
179
|
+
position: fixed;
|
|
180
|
+
top: var(--global-nav-height);
|
|
181
|
+
right: 0;
|
|
182
|
+
width: min(420px, 100vw);
|
|
183
|
+
max-height: calc(100vh - var(--global-nav-height));
|
|
184
|
+
overflow-y: auto;
|
|
185
|
+
background: var(--widget-bg);
|
|
186
|
+
border-left: 1px solid var(--widget-border);
|
|
187
|
+
border-bottom: 1px solid var(--widget-border);
|
|
188
|
+
box-shadow: -2px 4px 12px rgba(0, 0, 0, 0.2);
|
|
189
|
+
z-index: 1100;
|
|
190
|
+
transition: opacity 0.15s ease;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.widget-dropdown.hidden {
|
|
194
|
+
display: none;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
/* Widget content panels — only the active one is visible */
|
|
198
|
+
.widget-content {
|
|
199
|
+
display: none;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.widget-content.active {
|
|
203
|
+
display: block;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* --- TOC Widget --- */
|
|
207
|
+
#widget-content-toc {
|
|
208
|
+
padding: 0.5rem 0;
|
|
209
|
+
|
|
210
|
+
ul {
|
|
211
|
+
list-style: none;
|
|
212
|
+
margin: 0;
|
|
213
|
+
padding: 0;
|
|
214
|
+
|
|
215
|
+
li {
|
|
216
|
+
margin-bottom: 0.15rem;
|
|
217
|
+
padding: 0;
|
|
218
|
+
|
|
219
|
+
> a {
|
|
220
|
+
text-decoration: none;
|
|
221
|
+
color: var(--text-color);
|
|
222
|
+
opacity: 0.75;
|
|
223
|
+
display: block;
|
|
224
|
+
padding: 0.3rem 1rem;
|
|
225
|
+
border-left: 2px solid transparent;
|
|
226
|
+
transition: all 0.2s ease;
|
|
227
|
+
font-size: 0.9rem;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
> a:hover {
|
|
231
|
+
opacity: 1;
|
|
232
|
+
border-left-color: var(--text-color);
|
|
233
|
+
background-color: rgba(128, 128, 128, 0.1);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
> a.active {
|
|
237
|
+
opacity: 1;
|
|
238
|
+
border-left-color: aqua;
|
|
239
|
+
background-color: rgba(0, 255, 255, 0.1);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/* Indent nested headings */
|
|
243
|
+
&.toc-h1 > a {
|
|
244
|
+
padding-left: 1rem;
|
|
245
|
+
font-weight: 600;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
&.toc-h2 > a {
|
|
249
|
+
padding-left: 1.5rem;
|
|
250
|
+
font-size: 0.85rem;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
&.toc-h3 > a {
|
|
254
|
+
padding-left: 2rem;
|
|
255
|
+
font-size: 0.8rem;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
134
258
|
}
|
|
135
259
|
}
|
|
136
260
|
|
|
261
|
+
/* --- Search Widget --- */
|
|
262
|
+
.widget-search-wrapper {
|
|
263
|
+
padding: 0.5rem;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
.widget-search-input {
|
|
267
|
+
width: 100%;
|
|
268
|
+
height: 40px;
|
|
269
|
+
border-radius: 5px;
|
|
270
|
+
background: rgba(0, 0, 0, 0.15);
|
|
271
|
+
color: var(--text-color);
|
|
272
|
+
border: 1px solid var(--widget-border);
|
|
273
|
+
padding: 0 1rem;
|
|
274
|
+
box-sizing: border-box;
|
|
275
|
+
font-size: 1rem;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
.widget-search-input:focus {
|
|
279
|
+
outline: none;
|
|
280
|
+
border-color: aqua;
|
|
281
|
+
box-shadow: 0 0 0 2px rgba(0, 255, 255, 0.2);
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.widget-search-results {
|
|
285
|
+
max-height: calc(100vh - var(--global-nav-height) - 80px);
|
|
286
|
+
overflow-y: auto;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.widget-search-results .search-result-item {
|
|
290
|
+
padding: 10px 12px;
|
|
291
|
+
border-bottom: 1px solid var(--widget-border);
|
|
292
|
+
cursor: pointer;
|
|
293
|
+
transition: background-color 0.15s ease;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
.widget-search-results .search-result-item:last-child {
|
|
297
|
+
border-bottom: none;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.widget-search-results .search-result-item:hover,
|
|
301
|
+
.widget-search-results .search-result-item.selected {
|
|
302
|
+
background-color: rgba(128, 128, 128, 0.15);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.widget-search-results .search-result-title {
|
|
306
|
+
font-weight: 600;
|
|
307
|
+
margin-bottom: 2px;
|
|
308
|
+
color: var(--text-color);
|
|
309
|
+
font-size: 0.9rem;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.widget-search-results .search-result-path {
|
|
313
|
+
font-size: 0.8rem;
|
|
314
|
+
color: var(--text-color);
|
|
315
|
+
opacity: 0.6;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.widget-search-results .search-result-message {
|
|
319
|
+
padding: 12px;
|
|
320
|
+
text-align: center;
|
|
321
|
+
color: var(--text-color);
|
|
322
|
+
opacity: 0.6;
|
|
323
|
+
font-style: italic;
|
|
324
|
+
font-size: 0.85rem;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
.widget-search-results .search-section-header {
|
|
328
|
+
padding: 6px 12px;
|
|
329
|
+
font-size: 0.7em;
|
|
330
|
+
font-weight: 600;
|
|
331
|
+
text-transform: uppercase;
|
|
332
|
+
letter-spacing: 0.5px;
|
|
333
|
+
color: var(--text-color);
|
|
334
|
+
opacity: 0.5;
|
|
335
|
+
background-color: rgba(128, 128, 128, 0.1);
|
|
336
|
+
border-bottom: 1px solid var(--widget-border);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/* --- Profile Widget --- */
|
|
340
|
+
.widget-profile-placeholder {
|
|
341
|
+
display: flex;
|
|
342
|
+
flex-direction: column;
|
|
343
|
+
align-items: center;
|
|
344
|
+
padding: 2rem 1rem;
|
|
345
|
+
text-align: center;
|
|
346
|
+
color: var(--text-color);
|
|
347
|
+
opacity: 0.7;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.widget-profile-avatar {
|
|
351
|
+
font-size: 3rem;
|
|
352
|
+
margin-bottom: 1rem;
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
.widget-profile-placeholder p {
|
|
356
|
+
margin: 0.5rem 0;
|
|
357
|
+
font-size: 0.9rem;
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
.widget-profile-signin {
|
|
361
|
+
margin-top: 0.5rem;
|
|
362
|
+
padding: 8px 24px;
|
|
363
|
+
background: var(--nav-top-bg);
|
|
364
|
+
border: 1px solid var(--widget-border);
|
|
365
|
+
color: var(--text-color);
|
|
366
|
+
border-radius: 4px;
|
|
367
|
+
cursor: not-allowed;
|
|
368
|
+
opacity: 0.5;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
.widget-profile-note {
|
|
372
|
+
font-size: 0.75rem;
|
|
373
|
+
opacity: 0.5;
|
|
374
|
+
font-style: italic;
|
|
375
|
+
}
|
|
376
|
+
|
|
137
377
|
/* Search functionality styles */
|
|
138
378
|
.search-results {
|
|
139
379
|
position: fixed;
|
|
@@ -246,16 +486,11 @@ body[data-menu-position="top"] nav#nav-main-top {
|
|
|
246
486
|
align-items: center;
|
|
247
487
|
}
|
|
248
488
|
|
|
249
|
-
/* Hide search
|
|
250
|
-
body[data-menu-position="top"] nav#nav-global
|
|
489
|
+
/* Hide inline search when top menu is present — widget handles search */
|
|
490
|
+
body[data-menu-position="top"] nav#nav-global .search-wrapper-inline {
|
|
251
491
|
display: none;
|
|
252
492
|
}
|
|
253
493
|
|
|
254
|
-
/* Show search button instead when top menu is active */
|
|
255
|
-
body[data-menu-position="top"] nav#nav-global .search-button {
|
|
256
|
-
display: inline-flex;
|
|
257
|
-
}
|
|
258
|
-
|
|
259
494
|
/* Hide side nav when top menu is active */
|
|
260
495
|
body[data-menu-position="top"] nav#nav-main {
|
|
261
496
|
display: none;
|
|
@@ -269,7 +504,7 @@ body[data-menu-position="top"] article#main-content {
|
|
|
269
504
|
|
|
270
505
|
/* Update nav-global grid to accommodate top menu - keep search+avatar together on right */
|
|
271
506
|
body[data-menu-position="top"] nav#nav-global {
|
|
272
|
-
grid-template-columns:
|
|
507
|
+
grid-template-columns: 1fr var(--article-width) 1fr;
|
|
273
508
|
}
|
|
274
509
|
|
|
275
510
|
/* Top-level menu list */
|
|
@@ -285,11 +520,13 @@ nav#nav-main-top .top-menu-level {
|
|
|
285
520
|
nav#nav-main-top .top-menu-item {
|
|
286
521
|
position: relative;
|
|
287
522
|
padding: 0;
|
|
523
|
+
margin: 0;
|
|
288
524
|
}
|
|
289
525
|
|
|
290
526
|
nav#nav-main-top .top-menu-label {
|
|
291
527
|
display: block;
|
|
292
|
-
padding:
|
|
528
|
+
padding: 0px 16px;
|
|
529
|
+
line-height: var(--global-nav-height);
|
|
293
530
|
color: var(--text-color);
|
|
294
531
|
text-decoration: none;
|
|
295
532
|
white-space: nowrap;
|
|
@@ -311,24 +548,23 @@ nav#nav-main-top .top-menu-item.has-dropdown > .top-menu-label::after {
|
|
|
311
548
|
font-size: 0.4em;
|
|
312
549
|
margin-left: 6px;
|
|
313
550
|
opacity: 0.6;
|
|
314
|
-
|
|
315
|
-
top: -1px;
|
|
551
|
+
vertical-align: bottom;
|
|
316
552
|
}
|
|
317
553
|
|
|
318
|
-
/*
|
|
554
|
+
/* Use widget-bg for dropdown/flyout backgrounds (shared CSS var) */
|
|
319
555
|
nav#nav-main-top .top-menu-dropdown {
|
|
320
556
|
display: none;
|
|
321
557
|
position: absolute;
|
|
322
558
|
top: 100%;
|
|
323
559
|
left: 0;
|
|
324
560
|
min-width: 200px;
|
|
325
|
-
background-color: var(--bg
|
|
326
|
-
border: 1px solid var(--
|
|
561
|
+
background-color: var(--widget-bg);
|
|
562
|
+
border: 1px solid var(--widget-border);
|
|
327
563
|
border-radius: 4px;
|
|
328
564
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
329
565
|
list-style: none;
|
|
330
566
|
margin: 0;
|
|
331
|
-
padding:
|
|
567
|
+
padding: 0;
|
|
332
568
|
z-index: 1005;
|
|
333
569
|
}
|
|
334
570
|
|
|
@@ -374,15 +610,15 @@ nav#nav-main-top .top-menu-flyout {
|
|
|
374
610
|
display: none;
|
|
375
611
|
position: absolute;
|
|
376
612
|
left: 100%;
|
|
377
|
-
top:
|
|
613
|
+
top: -1px;
|
|
378
614
|
min-width: 200px;
|
|
379
|
-
background-color: var(--bg
|
|
380
|
-
border: 1px solid var(--
|
|
615
|
+
background-color: var(--widget-bg);
|
|
616
|
+
border: 1px solid var(--widget-border);
|
|
381
617
|
border-radius: 4px;
|
|
382
618
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
|
|
383
619
|
list-style: none;
|
|
384
620
|
margin: 0;
|
|
385
|
-
padding:
|
|
621
|
+
padding: 0;
|
|
386
622
|
z-index: 1006;
|
|
387
623
|
}
|
|
388
624
|
|
|
@@ -391,91 +627,6 @@ nav#nav-main-top .dropdown-item.has-flyout:hover > .top-menu-flyout {
|
|
|
391
627
|
display: block;
|
|
392
628
|
}
|
|
393
629
|
|
|
394
|
-
/* Search button and avatar container (shown when top menu is active) */
|
|
395
|
-
nav#nav-global .nav-right-controls {
|
|
396
|
-
display: flex;
|
|
397
|
-
align-items: center;
|
|
398
|
-
gap: 4px;
|
|
399
|
-
justify-self: end;
|
|
400
|
-
}
|
|
401
|
-
|
|
402
|
-
nav#nav-global .search-button {
|
|
403
|
-
display: none;
|
|
404
|
-
align-items: center;
|
|
405
|
-
justify-content: center;
|
|
406
|
-
background: none;
|
|
407
|
-
border: none;
|
|
408
|
-
color: var(--text-color);
|
|
409
|
-
font-size: 1.25rem;
|
|
410
|
-
padding: 8px 12px;
|
|
411
|
-
cursor: pointer;
|
|
412
|
-
opacity: 0.8;
|
|
413
|
-
transition: opacity 0.2s ease;
|
|
414
|
-
}
|
|
415
|
-
|
|
416
|
-
nav#nav-global .search-button:hover {
|
|
417
|
-
opacity: 1;
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
/* Search backdrop - just the dark overlay */
|
|
421
|
-
body[data-menu-position="top"] .search-backdrop {
|
|
422
|
-
display: none;
|
|
423
|
-
position: fixed;
|
|
424
|
-
top: 0;
|
|
425
|
-
left: 0;
|
|
426
|
-
right: 0;
|
|
427
|
-
bottom: 0;
|
|
428
|
-
background: rgba(0, 0, 0, 0.7);
|
|
429
|
-
z-index: 1010;
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
body[data-menu-position="top"] .search-backdrop.active {
|
|
433
|
-
display: block;
|
|
434
|
-
}
|
|
435
|
-
|
|
436
|
-
/* Floating search container - positioned above nav */
|
|
437
|
-
body[data-menu-position="top"] .search-floating {
|
|
438
|
-
display: none;
|
|
439
|
-
position: fixed;
|
|
440
|
-
top: 80px;
|
|
441
|
-
left: 50%;
|
|
442
|
-
transform: translateX(-50%);
|
|
443
|
-
width: min(600px, calc(100vw - 32px));
|
|
444
|
-
z-index: 1020;
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
body[data-menu-position="top"] .search-floating.active {
|
|
448
|
-
display: block;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/* Style the search wrapper when inside floating container */
|
|
452
|
-
body[data-menu-position="top"] .search-floating .search-wrapper {
|
|
453
|
-
width: 100%;
|
|
454
|
-
}
|
|
455
|
-
|
|
456
|
-
body[data-menu-position="top"] .search-floating #global-search {
|
|
457
|
-
width: 100%;
|
|
458
|
-
height: 48px;
|
|
459
|
-
font-size: 1.25rem;
|
|
460
|
-
padding: 0 16px;
|
|
461
|
-
border: 2px solid var(--nav-top-bg);
|
|
462
|
-
border-radius: 8px;
|
|
463
|
-
background: var(--bg-color);
|
|
464
|
-
color: var(--text-color);
|
|
465
|
-
}
|
|
466
|
-
|
|
467
|
-
/* Search results inside floating container */
|
|
468
|
-
body[data-menu-position="top"] .search-floating .search-results {
|
|
469
|
-
position: relative;
|
|
470
|
-
top: 4px;
|
|
471
|
-
max-height: 60vh;
|
|
472
|
-
overflow-y: auto;
|
|
473
|
-
background: var(--bg-color);
|
|
474
|
-
border: 1px solid var(--border-color);
|
|
475
|
-
border-radius: 8px;
|
|
476
|
-
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
477
|
-
}
|
|
478
|
-
|
|
479
630
|
nav#nav-main {
|
|
480
631
|
position: fixed;
|
|
481
632
|
top: calc(var(--global-nav-height));
|
|
@@ -707,62 +858,6 @@ nav#nav-main {
|
|
|
707
858
|
}
|
|
708
859
|
}
|
|
709
860
|
|
|
710
|
-
/* Table of Contents - Right side navigation */
|
|
711
|
-
nav#nav-toc {
|
|
712
|
-
position: fixed;
|
|
713
|
-
top: calc(var(--global-nav-height));
|
|
714
|
-
right: 0;
|
|
715
|
-
max-width: calc(50vw - var(--article-width) / 2 - 2rem);
|
|
716
|
-
max-height: calc(100vh - var(--global-nav-height));
|
|
717
|
-
overflow-y: auto;
|
|
718
|
-
z-index: 100;
|
|
719
|
-
padding: 0.5rem 0;
|
|
720
|
-
|
|
721
|
-
ul {
|
|
722
|
-
list-style: none;
|
|
723
|
-
margin: 0;
|
|
724
|
-
padding: 0;
|
|
725
|
-
|
|
726
|
-
li {
|
|
727
|
-
margin-bottom: 0.25rem;
|
|
728
|
-
padding: 0;
|
|
729
|
-
|
|
730
|
-
> a {
|
|
731
|
-
text-decoration: none;
|
|
732
|
-
color: var(--text-color);
|
|
733
|
-
opacity: 0.7;
|
|
734
|
-
display: block;
|
|
735
|
-
padding: 0.25rem 0.5rem;
|
|
736
|
-
border-left: 2px solid transparent;
|
|
737
|
-
transition: all 0.3s ease;
|
|
738
|
-
font-size: 0.9rem;
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
> a:hover {
|
|
742
|
-
opacity: 1;
|
|
743
|
-
border-left-color: var(--text-color);
|
|
744
|
-
}
|
|
745
|
-
|
|
746
|
-
> a.active {
|
|
747
|
-
opacity: 1;
|
|
748
|
-
border-left-color: aqua;
|
|
749
|
-
background-color: rgba(0, 255, 255, 0.1);
|
|
750
|
-
}
|
|
751
|
-
|
|
752
|
-
/* Indent nested headings */
|
|
753
|
-
&.toc-h2 > a {
|
|
754
|
-
padding-left: 1rem;
|
|
755
|
-
font-size: 0.85rem;
|
|
756
|
-
}
|
|
757
|
-
|
|
758
|
-
&.toc-h3 > a {
|
|
759
|
-
padding-left: 1.5rem;
|
|
760
|
-
font-size: 0.8rem;
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
|
|
766
861
|
article#main-content {
|
|
767
862
|
width: var(--article-width);
|
|
768
863
|
margin: calc(var(--global-nav-height) + 16px) auto 0 auto;
|
|
@@ -772,6 +867,39 @@ article#main-content {
|
|
|
772
867
|
}
|
|
773
868
|
}
|
|
774
869
|
|
|
870
|
+
/* Breadcrumb navigation */
|
|
871
|
+
.breadcrumbs {
|
|
872
|
+
display: flex;
|
|
873
|
+
align-items: center;
|
|
874
|
+
flex-wrap: wrap;
|
|
875
|
+
gap: 0;
|
|
876
|
+
font-size: 0.8rem;
|
|
877
|
+
margin-bottom: 0.25rem;
|
|
878
|
+
color: var(--text-color);
|
|
879
|
+
opacity: 0.55;
|
|
880
|
+
}
|
|
881
|
+
|
|
882
|
+
.breadcrumb-link {
|
|
883
|
+
color: var(--text-color);
|
|
884
|
+
text-decoration: none;
|
|
885
|
+
transition: opacity 0.15s ease;
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
.breadcrumb-link:hover {
|
|
889
|
+
opacity: 1;
|
|
890
|
+
text-decoration: underline;
|
|
891
|
+
}
|
|
892
|
+
|
|
893
|
+
.breadcrumb-sep {
|
|
894
|
+
margin: 0 0.4em;
|
|
895
|
+
opacity: 0.4;
|
|
896
|
+
font-size: 0.85em;
|
|
897
|
+
}
|
|
898
|
+
|
|
899
|
+
.breadcrumb-current {
|
|
900
|
+
font-weight: 500;
|
|
901
|
+
}
|
|
902
|
+
|
|
775
903
|
/* Footer styles */
|
|
776
904
|
footer#site-footer {
|
|
777
905
|
width: var(--article-width);
|
|
@@ -831,22 +959,38 @@ footer#site-footer {
|
|
|
831
959
|
h1 {
|
|
832
960
|
font-size: 1.5rem;
|
|
833
961
|
}
|
|
834
|
-
|
|
962
|
+
|
|
963
|
+
/* On mobile, hide the top menu and show search inline instead */
|
|
964
|
+
body[data-menu-position="top"] nav#nav-main-top {
|
|
965
|
+
display: none !important;
|
|
966
|
+
}
|
|
967
|
+
body[data-menu-position="top"] nav#nav-global .search-wrapper-inline {
|
|
968
|
+
display: block !important;
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
/* Hide widget buttons on mobile — they're accessible via the inline search and mobile menu */
|
|
972
|
+
.widget-bar {
|
|
835
973
|
display: none !important;
|
|
836
974
|
}
|
|
975
|
+
|
|
976
|
+
/* Hide widget dropdown on mobile */
|
|
977
|
+
.widget-dropdown {
|
|
978
|
+
display: none !important;
|
|
979
|
+
}
|
|
980
|
+
|
|
837
981
|
nav#nav-main {
|
|
838
982
|
display: none !important;
|
|
839
983
|
position: fixed;
|
|
840
984
|
top: var(--global-nav-height);
|
|
841
985
|
left: 0;
|
|
842
986
|
width: 100vw;
|
|
843
|
-
height: 100vh;
|
|
987
|
+
height: calc(100vh - var(--global-nav-height));
|
|
844
988
|
max-width: none;
|
|
845
989
|
background: var(--bg-color);
|
|
846
990
|
z-index: 1000;
|
|
847
991
|
overflow-y: auto;
|
|
848
992
|
margin: 0;
|
|
849
|
-
padding:
|
|
993
|
+
padding: 0;
|
|
850
994
|
transform: none; /* Reset desktop transform */
|
|
851
995
|
}
|
|
852
996
|
nav#nav-main.active {
|
|
@@ -856,6 +1000,52 @@ footer#site-footer {
|
|
|
856
1000
|
display: none !important;
|
|
857
1001
|
transform: none;
|
|
858
1002
|
}
|
|
1003
|
+
|
|
1004
|
+
/* Mobile menu list styles */
|
|
1005
|
+
nav#nav-main .mobile-menu-list {
|
|
1006
|
+
list-style: none;
|
|
1007
|
+
margin: 0;
|
|
1008
|
+
padding: 0;
|
|
1009
|
+
}
|
|
1010
|
+
|
|
1011
|
+
nav#nav-main .mobile-menu-item {
|
|
1012
|
+
border-bottom: 1px solid rgba(128, 128, 128, 0.15);
|
|
1013
|
+
}
|
|
1014
|
+
|
|
1015
|
+
nav#nav-main .mobile-menu-label {
|
|
1016
|
+
display: block;
|
|
1017
|
+
padding: 14px 20px;
|
|
1018
|
+
color: var(--text-color);
|
|
1019
|
+
text-decoration: none;
|
|
1020
|
+
font-size: 1rem;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
nav#nav-main a.mobile-menu-label:hover {
|
|
1024
|
+
background-color: rgba(128, 128, 128, 0.1);
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
nav#nav-main span.mobile-menu-label {
|
|
1028
|
+
opacity: 0.5;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
/* Indent deeper levels */
|
|
1032
|
+
nav#nav-main .mobile-menu-depth-1 .mobile-menu-label { padding-left: 40px; font-size: 0.95rem; }
|
|
1033
|
+
nav#nav-main .mobile-menu-depth-2 .mobile-menu-label { padding-left: 56px; font-size: 0.9rem; }
|
|
1034
|
+
nav#nav-main .mobile-menu-depth-3 .mobile-menu-label { padding-left: 72px; font-size: 0.85rem; }
|
|
1035
|
+
nav#nav-main .mobile-menu-depth-4 .mobile-menu-label { padding-left: 88px; font-size: 0.85rem; }
|
|
1036
|
+
|
|
1037
|
+
/* Current page highlight in mobile menu */
|
|
1038
|
+
nav#nav-main .mobile-menu-current .mobile-menu-label {
|
|
1039
|
+
font-weight: 600;
|
|
1040
|
+
background-color: rgba(0, 255, 255, 0.1);
|
|
1041
|
+
}
|
|
1042
|
+
|
|
1043
|
+
/* Home item styling */
|
|
1044
|
+
nav#nav-main .mobile-menu-home .mobile-menu-label {
|
|
1045
|
+
font-weight: 600;
|
|
1046
|
+
border-bottom: 2px solid rgba(128, 128, 128, 0.25);
|
|
1047
|
+
}
|
|
1048
|
+
|
|
859
1049
|
/* Override desktop indentation for mobile */
|
|
860
1050
|
nav#nav-main > ul > li > ul > li > .menu-item-row,
|
|
861
1051
|
nav#nav-main > ul > li > ul > li > ul > li > .menu-item-row,
|