@cbnventures/docusaurus-preset-nova 0.21.0 → 0.22.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.
Files changed (108) hide show
  1. package/build/package.json +8 -5
  2. package/build/src/lib/regex.d.ts +2 -0
  3. package/build/src/lib/regex.d.ts.map +1 -1
  4. package/build/src/lib/regex.js +47 -42
  5. package/build/src/lib/regex.js.map +1 -1
  6. package/build/src/lib/search/indexer.d.ts.map +1 -1
  7. package/build/src/lib/search/indexer.js +3 -1
  8. package/build/src/lib/search/indexer.js.map +1 -1
  9. package/build/src/lib/search/worker.js +4 -3
  10. package/build/src/lib/search/worker.js.map +1 -1
  11. package/build/src/lib/translations.d.ts.map +1 -1
  12. package/build/src/lib/translations.js +20 -14
  13. package/build/src/lib/translations.js.map +1 -1
  14. package/build/src/lib/use-navbar-active-item.d.ts.map +1 -1
  15. package/build/src/lib/use-navbar-active-item.js +12 -1
  16. package/build/src/lib/use-navbar-active-item.js.map +1 -1
  17. package/build/src/styles/presets/envoy/theme/Navbar/Bridge/style.css +39 -10
  18. package/build/src/styles/presets/envoy/theme/Navbar/Canopy/style.css +50 -11
  19. package/build/src/styles/presets/envoy/theme/Navbar/Compass/style.css +41 -11
  20. package/build/src/styles/presets/envoy/theme/Navbar/Monolith/style.css +20 -5
  21. package/build/src/styles/presets/envoy/theme/Navbar/More/style.css +4 -3
  22. package/build/src/styles/presets/envoy/theme/Navbar/style.css +13 -5
  23. package/build/src/styles/presets/foundry/theme/Navbar/Bridge/style.css +41 -11
  24. package/build/src/styles/presets/foundry/theme/Navbar/Canopy/style.css +40 -11
  25. package/build/src/styles/presets/foundry/theme/Navbar/Compass/style.css +41 -11
  26. package/build/src/styles/presets/foundry/theme/Navbar/Monolith/style.css +20 -5
  27. package/build/src/styles/presets/foundry/theme/Navbar/More/style.css +4 -3
  28. package/build/src/styles/presets/foundry/theme/Navbar/style.css +13 -5
  29. package/build/src/styles/presets/lantern/theme/Navbar/Bridge/style.css +37 -10
  30. package/build/src/styles/presets/lantern/theme/Navbar/Canopy/style.css +45 -12
  31. package/build/src/styles/presets/lantern/theme/Navbar/Compass/style.css +37 -11
  32. package/build/src/styles/presets/lantern/theme/Navbar/Monolith/style.css +23 -5
  33. package/build/src/styles/presets/lantern/theme/Navbar/More/style.css +4 -3
  34. package/build/src/styles/presets/lantern/theme/Navbar/style.css +13 -4
  35. package/build/src/styles/presets/marshal/theme/Navbar/Bridge/style.css +50 -10
  36. package/build/src/styles/presets/marshal/theme/Navbar/Canopy/style.css +41 -12
  37. package/build/src/styles/presets/marshal/theme/Navbar/Compass/style.css +41 -10
  38. package/build/src/styles/presets/marshal/theme/Navbar/Monolith/style.css +34 -3
  39. package/build/src/styles/presets/marshal/theme/Navbar/More/style.css +4 -3
  40. package/build/src/styles/presets/marshal/theme/Navbar/style.css +16 -5
  41. package/build/src/styles/presets/sample/theme/Navbar/Canopy/style.css +16 -0
  42. package/build/src/styles/presets/sentinel/theme/Navbar/Bridge/style.css +41 -11
  43. package/build/src/styles/presets/sentinel/theme/Navbar/Canopy/style.css +40 -11
  44. package/build/src/styles/presets/sentinel/theme/Navbar/Compass/style.css +41 -11
  45. package/build/src/styles/presets/sentinel/theme/Navbar/Monolith/style.css +20 -5
  46. package/build/src/styles/presets/sentinel/theme/Navbar/More/style.css +4 -3
  47. package/build/src/styles/presets/sentinel/theme/Navbar/style.css +14 -4
  48. package/build/src/styles/presets/signal/theme/Navbar/Bridge/style.css +36 -13
  49. package/build/src/styles/presets/signal/theme/Navbar/Canopy/style.css +28 -11
  50. package/build/src/styles/presets/signal/theme/Navbar/Compass/style.css +41 -12
  51. package/build/src/styles/presets/signal/theme/Navbar/Monolith/style.css +22 -5
  52. package/build/src/styles/presets/signal/theme/Navbar/style.css +19 -5
  53. package/build/src/styles/theme/Navbar/Bridge/style.css +33 -0
  54. package/build/src/styles/theme/Navbar/Canopy/style.css +33 -0
  55. package/build/src/styles/theme/Navbar/Compass/style.css +33 -0
  56. package/build/src/styles/theme/Navbar/Monolith/style.css +33 -0
  57. package/build/src/styles/theme/NavbarItem/style.css +68 -0
  58. package/build/src/tests/bin-git-tracked.test.d.ts +2 -0
  59. package/build/src/tests/bin-git-tracked.test.d.ts.map +1 -0
  60. package/build/src/tests/bin-git-tracked.test.js +43 -0
  61. package/build/src/tests/bin-git-tracked.test.js.map +1 -0
  62. package/build/src/tests/lib/search/worker.test.js +15 -0
  63. package/build/src/tests/lib/search/worker.test.js.map +1 -1
  64. package/build/src/tests/lib/translations.test.js +20 -20
  65. package/build/src/tests/lib/translations.test.js.map +1 -1
  66. package/build/src/tests/since-version.test.js +2 -1
  67. package/build/src/tests/since-version.test.js.map +1 -1
  68. package/build/src/theme/BlogArchivePage/index.js +1 -1
  69. package/build/src/theme/BlogArchivePage/index.js.map +1 -1
  70. package/build/src/theme/Navbar/Bridge/mobile-menu.d.ts.map +1 -1
  71. package/build/src/theme/Navbar/Bridge/mobile-menu.js +29 -1
  72. package/build/src/theme/Navbar/Bridge/mobile-menu.js.map +1 -1
  73. package/build/src/theme/Navbar/Canopy/mobile-menu.d.ts.map +1 -1
  74. package/build/src/theme/Navbar/Canopy/mobile-menu.js +29 -1
  75. package/build/src/theme/Navbar/Canopy/mobile-menu.js.map +1 -1
  76. package/build/src/theme/Navbar/Compass/mobile-menu.d.ts.map +1 -1
  77. package/build/src/theme/Navbar/Compass/mobile-menu.js +29 -1
  78. package/build/src/theme/Navbar/Compass/mobile-menu.js.map +1 -1
  79. package/build/src/theme/Navbar/Monolith/mobile-menu.d.ts.map +1 -1
  80. package/build/src/theme/Navbar/Monolith/mobile-menu.js +29 -1
  81. package/build/src/theme/Navbar/Monolith/mobile-menu.js.map +1 -1
  82. package/build/src/theme/NavbarItem/dropdown-navbar-item.d.ts.map +1 -1
  83. package/build/src/theme/NavbarItem/dropdown-navbar-item.js +14 -1
  84. package/build/src/theme/NavbarItem/dropdown-navbar-item.js.map +1 -1
  85. package/build/src/types/lib/search/indexer.d.ts +4 -0
  86. package/build/src/types/lib/search/worker.d.ts +7 -0
  87. package/build/src/types/lib/translations.d.ts +4 -0
  88. package/build/src/types/lib/use-navbar-active-item.d.ts +6 -0
  89. package/build/src/types/tests/bin-git-tracked.test.d.ts +52 -0
  90. package/build/src/types/tests/lib/search/worker.test.d.ts +13 -0
  91. package/build/src/types/theme/Navbar/Bridge/mobile-menu.d.ts +21 -5
  92. package/build/src/types/theme/Navbar/Canopy/mobile-menu.d.ts +21 -5
  93. package/build/src/types/theme/Navbar/Compass/mobile-menu.d.ts +23 -7
  94. package/build/src/types/theme/Navbar/Monolith/mobile-menu.d.ts +21 -5
  95. package/build/src/types/theme/NavbarItem/index.d.ts +12 -0
  96. package/nova-config.d.ts +14 -2
  97. package/nova-sidebars.d.ts +1 -0
  98. package/package.json +8 -5
  99. package/build/src/tests/demo-coverage.test.d.ts +0 -2
  100. package/build/src/tests/demo-coverage.test.d.ts.map +0 -1
  101. package/build/src/tests/demo-coverage.test.js +0 -178
  102. package/build/src/tests/demo-coverage.test.js.map +0 -1
  103. package/build/src/tests/demo-logo-override.test.d.ts +0 -2
  104. package/build/src/tests/demo-logo-override.test.d.ts.map +0 -1
  105. package/build/src/tests/demo-logo-override.test.js +0 -42
  106. package/build/src/tests/demo-logo-override.test.js.map +0 -1
  107. package/build/src/types/tests/demo-coverage.test.d.ts +0 -176
  108. package/build/src/types/tests/demo-logo-override.test.d.ts +0 -45
@@ -77,7 +77,8 @@
77
77
  }
78
78
 
79
79
  .nova-navbar-canopy-items a,
80
- .nova-navbar-canopy-items .nova-navbar-more-summary {
80
+ .nova-navbar-canopy-items .nova-navbar-more-summary,
81
+ .nova-navbar-canopy-items .nova-dropdown-summary {
81
82
  display: inline-flex;
82
83
  align-items: center;
83
84
  min-height: 2.25rem;
@@ -96,7 +97,10 @@
96
97
  .nova-navbar-canopy-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
97
98
  .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
98
99
  .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
99
- .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
100
+ .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
101
+ .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
102
+ .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
103
+ .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
100
104
  color: var(--nova-color-primary-600);
101
105
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 95%);
102
106
  text-decoration: none;
@@ -109,14 +113,16 @@
109
113
  .nova-navbar-canopy-items a[aria-current="page"],
110
114
  .nova-navbar-canopy-items a.navbar__link--active,
111
115
  .nova-navbar-canopy-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
112
- .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
116
+ .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
117
+ .nova-navbar-canopy-items .nova-dropdown--active > .nova-dropdown-summary {
113
118
  font-weight: 600;
114
119
  color: var(--nova-color-primary-600);
115
120
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 92%);
116
121
  }
117
122
 
118
123
  [data-theme="dark"] .nova-navbar-canopy-items a,
119
- [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more-summary {
124
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more-summary,
125
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown-summary {
120
126
  color: var(--nova-color-text-muted);
121
127
  }
122
128
 
@@ -124,7 +130,10 @@
124
130
  [data-theme="dark"] .nova-navbar-canopy-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
125
131
  [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
126
132
  [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
127
- [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
133
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
134
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
135
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
136
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
128
137
  color: var(--nova-color-primary-400);
129
138
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 90%);
130
139
  }
@@ -132,7 +141,8 @@
132
141
  [data-theme="dark"] .nova-navbar-canopy-items a[aria-current="page"],
133
142
  [data-theme="dark"] .nova-navbar-canopy-items a.navbar__link--active,
134
143
  [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
135
- [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
144
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
145
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown--active > .nova-dropdown-summary {
136
146
  color: var(--nova-color-primary-400);
137
147
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 85%);
138
148
  }
@@ -346,7 +356,8 @@
346
356
  gap: 0.5rem;
347
357
  }
348
358
 
349
- .nova-navbar-canopy-menu-item {
359
+ .nova-navbar-canopy-menu-item,
360
+ .nova-navbar-canopy-menu-dropdown-summary {
350
361
  flex-direction: column;
351
362
  justify-content: center;
352
363
  padding: 1.25rem 1rem;
@@ -364,20 +375,25 @@
364
375
  }
365
376
 
366
377
  .nova-navbar-canopy-menu-item:hover,
367
- .nova-navbar-canopy-menu-item:focus-visible {
378
+ .nova-navbar-canopy-menu-item:focus-visible,
379
+ .nova-navbar-canopy-menu-dropdown-summary:hover,
380
+ .nova-navbar-canopy-menu-dropdown-summary:focus-visible {
368
381
  color: var(--nova-color-primary-600);
369
382
  background-color: var(--nova-color-primary-50);
370
383
  border-color: var(--nova-color-primary-300);
371
384
  }
372
385
 
373
- [data-theme="dark"] .nova-navbar-canopy-menu-item {
386
+ [data-theme="dark"] .nova-navbar-canopy-menu-item,
387
+ [data-theme="dark"] .nova-navbar-canopy-menu-dropdown-summary {
374
388
  color: var(--nova-color-text);
375
389
  background-color: rgba(255, 255, 255, 0.04);
376
390
  border-color: rgba(255, 255, 255, 0.08);
377
391
  }
378
392
 
379
393
  [data-theme="dark"] .nova-navbar-canopy-menu-item:hover,
380
- [data-theme="dark"] .nova-navbar-canopy-menu-item:focus-visible {
394
+ [data-theme="dark"] .nova-navbar-canopy-menu-item:focus-visible,
395
+ [data-theme="dark"] .nova-navbar-canopy-menu-dropdown-summary:hover,
396
+ [data-theme="dark"] .nova-navbar-canopy-menu-dropdown-summary:focus-visible {
381
397
  color: var(--nova-color-primary-400);
382
398
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 90%);
383
399
  border-color: var(--nova-color-primary-700);
@@ -406,9 +422,22 @@
406
422
  animation: foundry-fade-in var(--nova-motion-duration) var(--nova-motion-easing);
407
423
  }
408
424
 
409
- .nova-navbar-canopy-menu-item {
425
+ .nova-navbar-canopy-menu-item,
426
+ .nova-navbar-canopy-menu-dropdown {
410
427
  opacity: 0;
411
428
 
412
429
  animation: foundry-blur-in var(--nova-motion-duration) var(--nova-motion-easing) forwards;
413
430
  animation-delay: calc(var(--nova-item-index, 0) * 50ms + 50ms);
414
431
  }
432
+
433
+ /* ============================
434
+ * 14. Mobile Menu - Dropdown Spacing
435
+ * ============================ */
436
+
437
+ .nova-navbar-canopy-menu-dropdown[open] > .nova-navbar-canopy-menu-dropdown-summary {
438
+ margin-bottom: 0.5rem;
439
+ }
440
+
441
+ .nova-navbar-canopy-menu-dropdown-children {
442
+ gap: 0.5rem;
443
+ }
@@ -84,7 +84,8 @@
84
84
  }
85
85
 
86
86
  .nova-navbar-compass-items a,
87
- .nova-navbar-compass-items .nova-navbar-more-summary {
87
+ .nova-navbar-compass-items .nova-navbar-more-summary,
88
+ .nova-navbar-compass-items .nova-dropdown-summary {
88
89
  display: inline-flex;
89
90
  align-items: center;
90
91
  min-height: 2.25rem;
@@ -100,14 +101,18 @@
100
101
  .nova-navbar-compass-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
101
102
  .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
102
103
  .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
103
- .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
104
+ .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
105
+ .nova-navbar-compass-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
106
+ .nova-navbar-compass-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
107
+ .nova-navbar-compass-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
104
108
  color: var(--nova-color-primary-600);
105
109
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 95%);
106
110
  text-decoration: none;
107
111
  }
108
112
 
109
113
  [data-theme="dark"] .nova-navbar-compass-items a,
110
- [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more-summary {
114
+ [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more-summary,
115
+ [data-theme="dark"] .nova-navbar-compass-items .nova-dropdown-summary {
111
116
  color: var(--nova-color-text-muted);
112
117
  }
113
118
 
@@ -115,7 +120,10 @@
115
120
  [data-theme="dark"] .nova-navbar-compass-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
116
121
  [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
117
122
  [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
118
- [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
123
+ [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
124
+ [data-theme="dark"] .nova-navbar-compass-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
125
+ [data-theme="dark"] .nova-navbar-compass-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
126
+ [data-theme="dark"] .nova-navbar-compass-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
119
127
  color: var(--nova-color-primary-400);
120
128
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 90%);
121
129
  }
@@ -127,7 +135,8 @@
127
135
  .nova-navbar-compass-items a[aria-current="page"],
128
136
  .nova-navbar-compass-items a.navbar__link--active,
129
137
  .nova-navbar-compass-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
130
- .nova-navbar-compass-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
138
+ .nova-navbar-compass-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
139
+ .nova-navbar-compass-items .nova-dropdown--active > .nova-dropdown-summary {
131
140
  font-weight: 600;
132
141
  color: var(--nova-color-primary-600);
133
142
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 92%);
@@ -136,7 +145,8 @@
136
145
  [data-theme="dark"] .nova-navbar-compass-items a[aria-current="page"],
137
146
  [data-theme="dark"] .nova-navbar-compass-items a.navbar__link--active,
138
147
  [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
139
- [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
148
+ [data-theme="dark"] .nova-navbar-compass-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
149
+ [data-theme="dark"] .nova-navbar-compass-items .nova-dropdown--active > .nova-dropdown-summary {
140
150
  color: var(--nova-color-primary-400);
141
151
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 85%);
142
152
  }
@@ -310,7 +320,8 @@
310
320
  gap: 0.125rem;
311
321
  }
312
322
 
313
- .nova-navbar-compass-menu-item {
323
+ .nova-navbar-compass-menu-item,
324
+ .nova-navbar-compass-menu-dropdown-summary {
314
325
  gap: 0.75rem;
315
326
  font-family: var(--nova-font-body);
316
327
  font-size: 1rem;
@@ -323,17 +334,22 @@
323
334
  }
324
335
 
325
336
  .nova-navbar-compass-menu-item:hover,
326
- .nova-navbar-compass-menu-item:focus-visible {
337
+ .nova-navbar-compass-menu-item:focus-visible,
338
+ .nova-navbar-compass-menu-dropdown-summary:hover,
339
+ .nova-navbar-compass-menu-dropdown-summary:focus-visible {
327
340
  color: var(--nova-color-primary-600);
328
341
  background-color: var(--nova-color-surface-raised);
329
342
  }
330
343
 
331
- [data-theme="dark"] .nova-navbar-compass-menu-item {
344
+ [data-theme="dark"] .nova-navbar-compass-menu-item,
345
+ [data-theme="dark"] .nova-navbar-compass-menu-dropdown-summary {
332
346
  color: var(--nova-color-text);
333
347
  }
334
348
 
335
349
  [data-theme="dark"] .nova-navbar-compass-menu-item:hover,
336
- [data-theme="dark"] .nova-navbar-compass-menu-item:focus-visible {
350
+ [data-theme="dark"] .nova-navbar-compass-menu-item:focus-visible,
351
+ [data-theme="dark"] .nova-navbar-compass-menu-dropdown-summary:hover,
352
+ [data-theme="dark"] .nova-navbar-compass-menu-dropdown-summary:focus-visible {
337
353
  color: var(--nova-color-primary-400);
338
354
  background-color: rgba(255, 255, 255, 0.06);
339
355
  }
@@ -363,8 +379,22 @@
363
379
  animation-delay: 0ms;
364
380
  }
365
381
 
366
- .nova-navbar-compass-menu-item {
382
+ .nova-navbar-compass-menu-item,
383
+ .nova-navbar-compass-menu-dropdown {
367
384
  opacity: 0;
368
385
  animation: foundry-blur-in var(--nova-motion-duration) var(--nova-motion-easing) forwards;
369
386
  animation-delay: calc(var(--nova-item-index, 0) * 50ms + 50ms);
370
387
  }
388
+
389
+ /* ============================
390
+ * 12. Mobile Menu - Dropdown Spacing
391
+ * ============================ */
392
+
393
+ .nova-navbar-compass-menu-dropdown[open] > .nova-navbar-compass-menu-dropdown-summary {
394
+ margin-bottom: 0.125rem;
395
+ }
396
+
397
+ .nova-navbar-compass-menu-dropdown-children {
398
+ gap: 0.125rem;
399
+ padding-inline-start: 1.75rem;
400
+ }
@@ -206,7 +206,8 @@
206
206
  gap: 0.125rem;
207
207
  }
208
208
 
209
- .nova-navbar-monolith-menu-item {
209
+ .nova-navbar-monolith-menu-item,
210
+ .nova-navbar-monolith-menu-dropdown-summary {
210
211
  gap: 0.75rem;
211
212
  font-family: var(--nova-font-body);
212
213
  font-size: 1rem;
@@ -219,17 +220,22 @@
219
220
  }
220
221
 
221
222
  .nova-navbar-monolith-menu-item:hover,
222
- .nova-navbar-monolith-menu-item:focus-visible {
223
+ .nova-navbar-monolith-menu-item:focus-visible,
224
+ .nova-navbar-monolith-menu-dropdown-summary:hover,
225
+ .nova-navbar-monolith-menu-dropdown-summary:focus-visible {
223
226
  color: var(--nova-color-primary-600);
224
227
  background-color: var(--nova-color-surface-raised);
225
228
  }
226
229
 
227
- [data-theme="dark"] .nova-navbar-monolith-menu-item {
230
+ [data-theme="dark"] .nova-navbar-monolith-menu-item,
231
+ [data-theme="dark"] .nova-navbar-monolith-menu-dropdown-summary {
228
232
  color: var(--nova-color-text);
229
233
  }
230
234
 
231
235
  [data-theme="dark"] .nova-navbar-monolith-menu-item:hover,
232
- [data-theme="dark"] .nova-navbar-monolith-menu-item:focus-visible {
236
+ [data-theme="dark"] .nova-navbar-monolith-menu-item:focus-visible,
237
+ [data-theme="dark"] .nova-navbar-monolith-menu-dropdown-summary:hover,
238
+ [data-theme="dark"] .nova-navbar-monolith-menu-dropdown-summary:focus-visible {
233
239
  color: var(--nova-color-primary-400);
234
240
  background-color: rgba(255, 255, 255, 0.06);
235
241
  }
@@ -252,8 +258,17 @@
252
258
  * Items stagger 50ms - preset declares `motion.staggeredReveals: true`.
253
259
  * ============================ */
254
260
 
255
- .nova-navbar-monolith-menu-item {
261
+ .nova-navbar-monolith-menu-item,
262
+ .nova-navbar-monolith-menu-dropdown {
256
263
  opacity: 0;
257
264
  animation: foundry-blur-in var(--nova-motion-duration) var(--nova-motion-easing) forwards;
258
265
  animation-delay: calc(var(--nova-item-index, 0) * 50ms + 50ms);
259
266
  }
267
+
268
+ /* ============================
269
+ * 10. Mobile Menu - Dropdown Children
270
+ * ============================ */
271
+
272
+ .nova-navbar-monolith-menu-dropdown-children {
273
+ padding-inline-start: 1.75rem;
274
+ }
@@ -2,9 +2,10 @@
2
2
  * Foundry - `Navbar/More` theme overlay.
3
3
  *
4
4
  * The popover menu, item link, and active-item styling are grouped with
5
- * `.nova-locale-dropdown-menu` / `.nova-version-dropdown-menu` in this
6
- * preset's `Navbar/style.css` so all three navbar dropdowns share one
7
- * surface treatment. No per-component overrides needed here.
5
+ * `.nova-locale-dropdown-menu` / `.nova-version-dropdown-menu` /
6
+ * `.nova-dropdown-menu` in this preset's `Navbar/style.css` so all four
7
+ * navbar dropdowns share one surface treatment. No per-component
8
+ * overrides needed here.
8
9
  *
9
10
  * @since 0.18.0
10
11
  */
@@ -64,6 +64,7 @@
64
64
  /* Popover menu - mirrors search-dropdown surface treatment. */
65
65
  .nova-locale-dropdown-menu,
66
66
  .nova-version-dropdown-menu,
67
+ .nova-dropdown-menu,
67
68
  .nova-navbar-more-menu {
68
69
  padding: 0.5rem 0;
69
70
 
@@ -78,6 +79,7 @@
78
79
 
79
80
  [data-theme="dark"] .nova-locale-dropdown-menu,
80
81
  [data-theme="dark"] .nova-version-dropdown-menu,
82
+ [data-theme="dark"] .nova-dropdown-menu,
81
83
  [data-theme="dark"] .nova-navbar-more-menu {
82
84
  background-color: var(--nova-foundry-surface-raised);
83
85
  border-color: rgba(255, 255, 255, 0.08);
@@ -85,13 +87,14 @@
85
87
  }
86
88
 
87
89
  /* Item link - padding + hover styling.
88
- `display: block` + `border-radius: 0` defend the More popover items
89
- from the variant nav-item cluster rule (`.nova-navbar-bridge-items a`)
90
- which would otherwise leak inline-flex + rounded corners onto items
91
- rendered inside the popover. No-op for locale/version where no variant
92
- rule competes. */
90
+ `display: block` + `border-radius: 0` defend the More and generic
91
+ dropdown popover items from the variant nav-item cluster rule
92
+ (`.nova-navbar-bridge-items a`) which would otherwise leak inline-flex
93
+ + rounded corners onto items rendered inside the popover. No-op for
94
+ locale/version where no variant rule competes. */
93
95
  .nova-locale-dropdown-item-link,
94
96
  .nova-version-dropdown-item-link,
97
+ .nova-dropdown-menu .nova-dropdown-item a,
95
98
  .nova-navbar-more-menu .nova-navbar-more-item a {
96
99
  display: block;
97
100
  padding: 0.5rem 0.75rem;
@@ -110,6 +113,8 @@
110
113
  .nova-locale-dropdown-item:not(.nova-locale-dropdown-item--active) > .nova-locale-dropdown-item-link:focus-visible,
111
114
  .nova-version-dropdown-item:not(.nova-version-dropdown-item--active) > .nova-version-dropdown-item-link:hover,
112
115
  .nova-version-dropdown-item:not(.nova-version-dropdown-item--active) > .nova-version-dropdown-item-link:focus-visible,
116
+ .nova-dropdown-menu .nova-dropdown-item a:not(.navbar__link--active):not([aria-current="page"]):hover,
117
+ .nova-dropdown-menu .nova-dropdown-item a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
113
118
  .nova-navbar-more-menu .nova-navbar-more-item a:not(.navbar__link--active):not([aria-current="page"]):hover,
114
119
  .nova-navbar-more-menu .nova-navbar-more-item a:not(.navbar__link--active):not([aria-current="page"]):focus-visible {
115
120
  color: var(--nova-color-primary-600);
@@ -118,6 +123,7 @@
118
123
 
119
124
  [data-theme="dark"] .nova-locale-dropdown-item-link,
120
125
  [data-theme="dark"] .nova-version-dropdown-item-link,
126
+ [data-theme="dark"] .nova-dropdown-menu .nova-dropdown-item a,
121
127
  [data-theme="dark"] .nova-navbar-more-menu .nova-navbar-more-item a {
122
128
  color: var(--nova-color-text);
123
129
  }
@@ -126,6 +132,8 @@
126
132
  [data-theme="dark"] .nova-locale-dropdown-item:not(.nova-locale-dropdown-item--active) > .nova-locale-dropdown-item-link:focus-visible,
127
133
  [data-theme="dark"] .nova-version-dropdown-item:not(.nova-version-dropdown-item--active) > .nova-version-dropdown-item-link:hover,
128
134
  [data-theme="dark"] .nova-version-dropdown-item:not(.nova-version-dropdown-item--active) > .nova-version-dropdown-item-link:focus-visible,
135
+ [data-theme="dark"] .nova-dropdown-menu .nova-dropdown-item a:not(.navbar__link--active):not([aria-current="page"]):hover,
136
+ [data-theme="dark"] .nova-dropdown-menu .nova-dropdown-item a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
129
137
  [data-theme="dark"] .nova-navbar-more-menu .nova-navbar-more-item a:not(.navbar__link--active):not([aria-current="page"]):hover,
130
138
  [data-theme="dark"] .nova-navbar-more-menu .nova-navbar-more-item a:not(.navbar__link--active):not([aria-current="page"]):focus-visible {
131
139
  color: var(--nova-color-primary-400);
@@ -76,7 +76,8 @@
76
76
  * ============================ */
77
77
 
78
78
  .nova-navbar-bridge-items a,
79
- .nova-navbar-bridge-items .nova-navbar-more-summary {
79
+ .nova-navbar-bridge-items .nova-navbar-more-summary,
80
+ .nova-navbar-bridge-items .nova-dropdown-summary {
80
81
  display: inline-flex;
81
82
  align-items: center;
82
83
  min-height: 2.25rem;
@@ -101,7 +102,10 @@
101
102
  .nova-navbar-bridge-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
102
103
  .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
103
104
  .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
104
- .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
105
+ .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
106
+ .nova-navbar-bridge-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
107
+ .nova-navbar-bridge-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
108
+ .nova-navbar-bridge-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
105
109
  color: var(--nova-color-primary-700);
106
110
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 88%);
107
111
  text-decoration: none;
@@ -112,7 +116,10 @@
112
116
  [data-theme="dark"] .nova-navbar-bridge-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
113
117
  [data-theme="dark"] .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
114
118
  [data-theme="dark"] .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
115
- [data-theme="dark"] .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
119
+ [data-theme="dark"] .nova-navbar-bridge-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
120
+ [data-theme="dark"] .nova-navbar-bridge-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
121
+ [data-theme="dark"] .nova-navbar-bridge-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
122
+ [data-theme="dark"] .nova-navbar-bridge-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
116
123
  color: var(--nova-color-primary-300);
117
124
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 80%);
118
125
  }
@@ -139,7 +146,8 @@
139
146
  .nova-navbar-bridge-items a[aria-current="page"],
140
147
  .nova-navbar-bridge-items a.navbar__link--active,
141
148
  .nova-navbar-bridge-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
142
- .nova-navbar-bridge-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
149
+ .nova-navbar-bridge-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
150
+ .nova-navbar-bridge-items .nova-dropdown--active > .nova-dropdown-summary {
143
151
  font-weight: 600;
144
152
  color: var(--nova-color-primary-800);
145
153
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 84%);
@@ -148,7 +156,8 @@
148
156
  [data-theme="dark"] .nova-navbar-bridge-items a[aria-current="page"],
149
157
  [data-theme="dark"] .nova-navbar-bridge-items a.navbar__link--active,
150
158
  [data-theme="dark"] .nova-navbar-bridge-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
151
- [data-theme="dark"] .nova-navbar-bridge-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
159
+ [data-theme="dark"] .nova-navbar-bridge-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
160
+ [data-theme="dark"] .nova-navbar-bridge-items .nova-dropdown--active > .nova-dropdown-summary {
152
161
  color: var(--nova-color-primary-200);
153
162
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 76%);
154
163
  }
@@ -325,7 +334,8 @@
325
334
  * 11. Mobile menu items - mono uppercase carved labels
326
335
  * ============================ */
327
336
 
328
- .nova-navbar-bridge-menu-item {
337
+ .nova-navbar-bridge-menu-item,
338
+ .nova-navbar-bridge-menu-dropdown-summary {
329
339
  gap: 0.75rem;
330
340
 
331
341
  font-family: var(--nova-font-display);
@@ -333,7 +343,7 @@
333
343
  font-weight: 500;
334
344
  font-variation-settings: "opsz" 36;
335
345
  font-size: 1rem;
336
- color: var(--nova-lantern-ink);
346
+ color: var(--nova-color-primary-700);
337
347
  border-radius: 6px;
338
348
 
339
349
  transition:
@@ -341,15 +351,23 @@
341
351
  background-color var(--nova-lantern-transition);
342
352
  }
343
353
 
354
+ [data-theme="dark"] .nova-navbar-bridge-menu-dropdown-summary {
355
+ color: var(--nova-color-primary-400);
356
+ }
357
+
344
358
  .nova-navbar-bridge-menu-item:hover,
345
- .nova-navbar-bridge-menu-item:focus-visible {
359
+ .nova-navbar-bridge-menu-item:focus-visible,
360
+ .nova-navbar-bridge-menu-dropdown-summary:hover,
361
+ .nova-navbar-bridge-menu-dropdown-summary:focus-visible {
346
362
  color: var(--nova-color-primary-700);
347
363
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 90%);
348
364
  text-decoration: none;
349
365
  }
350
366
 
351
367
  [data-theme="dark"] .nova-navbar-bridge-menu-item:hover,
352
- [data-theme="dark"] .nova-navbar-bridge-menu-item:focus-visible {
368
+ [data-theme="dark"] .nova-navbar-bridge-menu-item:focus-visible,
369
+ [data-theme="dark"] .nova-navbar-bridge-menu-dropdown-summary:hover,
370
+ [data-theme="dark"] .nova-navbar-bridge-menu-dropdown-summary:focus-visible {
353
371
  color: var(--nova-color-primary-300);
354
372
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 84%);
355
373
  }
@@ -389,9 +407,18 @@
389
407
  * lantern's hover lifts and color transitions use everywhere else.
390
408
  * ============================ */
391
409
 
392
- .nova-navbar-bridge-menu-item {
410
+ .nova-navbar-bridge-menu-item,
411
+ .nova-navbar-bridge-menu-dropdown {
393
412
  opacity: 0;
394
413
 
395
414
  animation: lantern-fade-in-up var(--nova-lantern-transition) forwards;
396
415
  animation-delay: calc(var(--nova-item-index, 0) * 50ms + 50ms);
397
416
  }
417
+
418
+ /* ============================
419
+ * 13. Mobile menu dropdown children - indented submenu items
420
+ * ============================ */
421
+
422
+ .nova-navbar-bridge-menu-dropdown-children {
423
+ padding-inline-start: 1.75rem;
424
+ }
@@ -84,7 +84,8 @@
84
84
  * ============================ */
85
85
 
86
86
  .nova-navbar-canopy-items a,
87
- .nova-navbar-canopy-items .nova-navbar-more-summary {
87
+ .nova-navbar-canopy-items .nova-navbar-more-summary,
88
+ .nova-navbar-canopy-items .nova-dropdown-summary {
88
89
  display: inline-flex;
89
90
  align-items: center;
90
91
  min-height: 2.25rem;
@@ -109,7 +110,10 @@
109
110
  .nova-navbar-canopy-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
110
111
  .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
111
112
  .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
112
- .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
113
+ .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
114
+ .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
115
+ .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
116
+ .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
113
117
  color: var(--nova-color-primary-700);
114
118
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 88%);
115
119
  text-decoration: none;
@@ -120,7 +124,10 @@
120
124
  [data-theme="dark"] .nova-navbar-canopy-items a:not(.navbar__link--active):not([aria-current="page"]):focus-visible,
121
125
  [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:hover,
122
126
  [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"])) > .nova-navbar-more-summary:focus-visible,
123
- [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary {
127
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:not(:has(a.navbar__link--active)):not(:has(a[aria-current="page"]))[open] > .nova-navbar-more-summary,
128
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:hover,
129
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active) > .nova-dropdown-summary:focus-visible,
130
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown:not(.nova-dropdown--active)[open] > .nova-dropdown-summary {
124
131
  color: var(--nova-color-primary-300);
125
132
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 80%);
126
133
  }
@@ -148,7 +155,8 @@
148
155
  .nova-navbar-canopy-items a[aria-current="page"],
149
156
  .nova-navbar-canopy-items a.navbar__link--active,
150
157
  .nova-navbar-canopy-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
151
- .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
158
+ .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
159
+ .nova-navbar-canopy-items .nova-dropdown--active > .nova-dropdown-summary {
152
160
  font-weight: 600;
153
161
  color: var(--nova-color-primary-800);
154
162
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 84%);
@@ -157,7 +165,8 @@
157
165
  [data-theme="dark"] .nova-navbar-canopy-items a[aria-current="page"],
158
166
  [data-theme="dark"] .nova-navbar-canopy-items a.navbar__link--active,
159
167
  [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:has(a[aria-current="page"]) > .nova-navbar-more-summary,
160
- [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary {
168
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-navbar-more:has(a.navbar__link--active) > .nova-navbar-more-summary,
169
+ [data-theme="dark"] .nova-navbar-canopy-items .nova-dropdown--active > .nova-dropdown-summary {
161
170
  color: var(--nova-color-primary-200);
162
171
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 76%);
163
172
  }
@@ -340,7 +349,8 @@
340
349
  gap: 0.5rem;
341
350
  }
342
351
 
343
- .nova-navbar-canopy-menu-item {
352
+ .nova-navbar-canopy-menu-item,
353
+ .nova-navbar-canopy-menu-dropdown-summary {
344
354
  flex-direction: column;
345
355
  justify-content: center;
346
356
  gap: 0.5rem;
@@ -353,7 +363,7 @@
353
363
  font-variation-settings: "opsz" 36;
354
364
  font-size: 1rem;
355
365
  text-align: center;
356
- color: var(--nova-lantern-ink);
366
+ color: var(--nova-color-primary-700);
357
367
 
358
368
  background-color: color-mix(in srgb, var(--nova-color-primary-500), var(--nova-lantern-bg) 96%);
359
369
  border: 1px solid var(--nova-lantern-border);
@@ -368,14 +378,18 @@
368
378
  }
369
379
 
370
380
  .nova-navbar-canopy-menu-item:hover,
371
- .nova-navbar-canopy-menu-item:focus-visible {
381
+ .nova-navbar-canopy-menu-item:focus-visible,
382
+ .nova-navbar-canopy-menu-dropdown-summary:hover,
383
+ .nova-navbar-canopy-menu-dropdown-summary:focus-visible {
372
384
  color: var(--nova-color-primary-700);
373
385
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 90%);
374
386
  text-decoration: none;
375
387
  }
376
388
 
377
389
  [data-theme="dark"] .nova-navbar-canopy-menu-item:hover,
378
- [data-theme="dark"] .nova-navbar-canopy-menu-item:focus-visible {
390
+ [data-theme="dark"] .nova-navbar-canopy-menu-item:focus-visible,
391
+ [data-theme="dark"] .nova-navbar-canopy-menu-dropdown-summary:hover,
392
+ [data-theme="dark"] .nova-navbar-canopy-menu-dropdown-summary:focus-visible {
379
393
  color: var(--nova-color-primary-300);
380
394
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 84%);
381
395
  }
@@ -390,11 +404,17 @@
390
404
  background-color: color-mix(in srgb, var(--nova-color-primary-500), transparent 76%);
391
405
  }
392
406
 
393
- .nova-navbar-canopy-menu-item svg {
407
+ [data-theme="dark"] .nova-navbar-canopy-menu-dropdown-summary {
408
+ color: var(--nova-color-primary-400);
409
+ }
410
+
411
+ .nova-navbar-canopy-menu-item svg,
412
+ .nova-navbar-canopy-menu-dropdown-summary svg {
394
413
  color: var(--nova-color-primary-600);
395
414
  }
396
415
 
397
- [data-theme="dark"] .nova-navbar-canopy-menu-item svg {
416
+ [data-theme="dark"] .nova-navbar-canopy-menu-item svg,
417
+ [data-theme="dark"] .nova-navbar-canopy-menu-dropdown-summary svg {
398
418
  color: var(--nova-color-primary-400);
399
419
  }
400
420
 
@@ -413,13 +433,26 @@
413
433
  * preset declares `motion.staggeredReveals: true`.
414
434
  * ============================ */
415
435
 
416
- .nova-navbar-canopy-menu-item {
436
+ .nova-navbar-canopy-menu-item,
437
+ .nova-navbar-canopy-menu-dropdown {
417
438
  opacity: 0;
418
439
 
419
440
  animation: lantern-fade-in-up var(--nova-lantern-transition) forwards;
420
441
  animation-delay: calc(var(--nova-item-index, 0) * 50ms + 50ms);
421
442
  }
422
443
 
444
+ /* ============================
445
+ * 13. Mobile Menu - Dropdown Spacing
446
+ * ============================ */
447
+
448
+ .nova-navbar-canopy-menu-dropdown[open] > .nova-navbar-canopy-menu-dropdown-summary {
449
+ margin-bottom: 0.5rem;
450
+ }
451
+
452
+ .nova-navbar-canopy-menu-dropdown-children {
453
+ gap: 0.5rem;
454
+ }
455
+
423
456
  /* Brand sizes scale up on tablet+. */
424
457
  @media (min-width: 768px) {
425
458
  .nova-navbar-canopy-brand img {