srcdev-nuxt-components 9.6.15 → 9.6.17

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.
@@ -209,6 +209,10 @@ All tokens are read via `var(--token, default)` — see the full list in the com
209
209
  | Token | Default | Controls |
210
210
  |---|---|---|
211
211
  | `--responsive-header-link-font-size` | `inherit` | Nav-link font-size. **Set this to a fixed value** — see the measurement-pipeline note above for why leaving it `inherit` from a fluid ancestor is a footgun. |
212
+ | `--responsive-header-link-padding-block` / `--responsive-header-link-padding-inline` | `0.8rem` / `0.2rem` | Padding around each top-bar link and summary. The active underline and hover highlight span this box, so larger inline padding makes them reach past the label. Set fixed values, as with the font size: the overflow-collapse measurement only re-runs when the header resizes. |
213
+ | `--responsive-header-nav-item-gap` | `30px` | Gap between items within each top-bar list. Reduce it when you raise the inline padding to keep the label-to-label spacing. |
214
+ | `--responsive-header-link-icon-size` / `--responsive-header-link-icon-gap` | `1.35em` / `6px` | Link icon and summary chevron size, and its gap to the label. Keep the size fixed so a late icon can't widen an item after measurement. |
215
+ | `--responsive-header-nav-group-gap` | `60px` | Gap between the main and secondary nav groups. |
212
216
  | `--responsive-header-link-color` | `inherit` | Link/summary text colour. |
213
217
  | `--responsive-header-link-color-hover` / `-active` | the resting colour | Per-state link colour in the top bar (added 2026-10-07). Hover falls back to the item's current state. `--overflow-nav-link-color-hover` / `-active` do the same in the overflow panel. |
214
218
  | `--responsive-header-bg` / `--responsive-header-padding-*` / `--responsive-header-border*` | transparent / `0` / `none` | Root element theming. |
@@ -217,6 +221,8 @@ All tokens are read via `var(--token, default)` — see the full list in the com
217
221
 
218
222
  Defaults are for a **light** header (changed 2026-10-07): panels use `--page-bg`, borders and hover tints are `color-mix()`es of `--theme-text`, the overflow button is transparent with a `--theme-border-focus` hover outline. They used to assume a dark bar (`Canvas`, translucent white borders and tints). A dark header sets the tokens.
219
223
  | `--responsive-nav-decorator-indicator-color` / `--responsive-nav-decorator-hovered-*` | `currentColor` / inherits | The sliding active/hover indicator bar under the main nav. |
224
+ | `--responsive-nav-decorator-indicator-offset` | `2px` | Distance of the active indicator below the active item's bottom edge; negative raises it. |
225
+ | `--responsive-nav-decorator-indicator-height` / `--responsive-nav-decorator-hovered-border-radius` / `--responsive-nav-decorator-transition-duration` | `2px` / `4px` / `200ms` | Active indicator thickness, hover highlight radius, and how long both take to slide. |
220
226
 
221
227
  ---
222
228
 
@@ -10,6 +10,11 @@ are documented alongside it since that's where they're consumed.
10
10
  | Token | Default | Controls |
11
11
  |---|---|---|
12
12
  | `--responsive-header-link-font-size` | `inherit` | Nav-link font-size. **Always set this to a fixed value.** Leaving it `inherit` means a fluid ancestor font-size (`clamp()`/`vw`) can drift nav-item text width without ever re-triggering the overflow-collapse measurement — see the component skill doc's "measurement pipeline" section for the full mechanism. |
13
+ | `--responsive-header-link-padding-block` / `--responsive-header-link-padding-inline` | `0.8rem` / `0.2rem` | Padding around each top-bar link and summary. The active underline and hover highlight span this box, so larger inline padding makes them reach past the label. Set fixed values, as with the font size: the overflow-collapse measurement only re-runs when the header resizes. |
14
+ | `--responsive-header-nav-item-gap` | `30px` | Gap between items within each top-bar list. Reduce it when you raise the inline padding to keep the label-to-label spacing. |
15
+ | `--responsive-header-link-icon-size` | `1.35em` | Size of a top-bar link's icon and a sub-nav summary's chevron. Keep it a fixed size (not `auto`): the slot is reserved so a late-loading icon can't widen an item after the overflow measurement. |
16
+ | `--responsive-header-link-icon-gap` | `6px` | Gap between a top-bar link's icon and label, and a summary's label and chevron. |
17
+ | `--responsive-header-nav-group-gap` | `60px` | Gap between the main and secondary nav groups. |
13
18
  | `--responsive-header-link-color` | `inherit` | Link/summary text colour. |
14
19
  | `--responsive-header-main-nav-justify-content` | `space-between` | How the main nav's groups are spread along the bar. Use `flex-start`, `safe center` or `safe end`; plain `center`/`end` let items that don't fit spill off the start edge, where they're clipped. (Safari 16 ignores `safe` values and falls back to start alignment.) |
15
20
  | `--responsive-header-color` | `inherit` | Root element text colour. |
@@ -29,8 +34,12 @@ are documented alongside it since that's where they're consumed.
29
34
  | `--responsive-header-overflow-nav-bg` / `-border` / `-border-radius` / `-padding-block` | `var(--page-bg, var(--theme-surface-subtle))` / `1px solid color-mix(in oklch, var(--theme-text) 20%, transparent)` / `8px` / `12px` | Overflow panel container. |
30
35
  | `--responsive-header-overflow-nav-max-block-size` | `70vh` | Tallest the overflow panel gets before it scrolls. |
31
36
  | `--responsive-nav-decorator-indicator-color` | `currentColor` | Active-item indicator bar/underline. |
37
+ | `--responsive-nav-decorator-indicator-offset` | `2px` | How far the active indicator sits below the active item's bottom edge. Negative values raise it inside the item (`-4px` sits it 4px up). |
32
38
  | `--responsive-nav-decorator-hovered-indicator-color` | inherits the above | Indicator colour while hovering. |
33
39
  | `--responsive-nav-decorator-hovered-bg` | `color-mix(in oklch, var(--theme-text) 8%, transparent)` | Hover highlight background behind the hovered item. |
40
+ | `--responsive-nav-decorator-indicator-height` | `2px` | Thickness of the active indicator. |
41
+ | `--responsive-nav-decorator-hovered-border-radius` | `4px` | Corner radius of the hover highlight. |
42
+ | `--responsive-nav-decorator-transition-duration` | `200ms` | How long the active indicator and hover highlight take to slide between items. |
34
43
 
35
44
  ### Overflow panel content (`NavigationItems`)
36
45
 
@@ -775,10 +775,20 @@ watch(
775
775
  --responsive-header-overflow-nav-max-block-size (default: 70vh)
776
776
 
777
777
  --responsive-nav-decorator-indicator-color (default: currentColor)
778
+ --responsive-nav-decorator-indicator-offset (default: 2px, below the item; negative raises it)
778
779
  --responsive-nav-decorator-hovered-indicator-color (default: inherits --responsive-nav-decorator-indicator-color)
779
780
  --responsive-nav-decorator-hovered-bg (default: color-mix(in oklch, var(--theme-text) 8%, transparent))
781
+ --responsive-nav-decorator-indicator-height (default: 2px)
782
+ --responsive-nav-decorator-hovered-border-radius (default: 4px)
783
+ --responsive-nav-decorator-transition-duration (default: 200ms)
780
784
 
781
785
  --responsive-header-link-font-size (default: inherit)
786
+ --responsive-header-link-padding-block (default: 0.8rem)
787
+ --responsive-header-link-padding-inline (default: 0.2rem)
788
+ --responsive-header-nav-item-gap (default: 30px)
789
+ --responsive-header-link-icon-size (default: 1.35em)
790
+ --responsive-header-link-icon-gap (default: 6px)
791
+ --responsive-header-nav-group-gap (default: 60px)
782
792
  --responsive-header-main-nav-justify-content (default: space-between)
783
793
  ──────────────────────────────────────────────────────────────────────── */
784
794
 
@@ -810,8 +820,8 @@ watch(
810
820
 
811
821
  .main-navigation {
812
822
  /* Set up some global vars */
813
- --_link-padding-block: 0.8rem;
814
- --_link-padding-inline: 0.2rem;
823
+ --_link-padding-block: var(--responsive-header-link-padding-block, 0.8rem);
824
+ --_link-padding-inline: var(--responsive-header-link-padding-inline, 0.2rem);
815
825
  --_link-margin-block: 0.1rem;
816
826
  --_link-margin-inline: 0.1rem;
817
827
  --_link-focus-visible-outline-width: 0.2rem;
@@ -822,7 +832,7 @@ watch(
822
832
  flex-wrap: nowrap;
823
833
  flex-grow: 1;
824
834
  justify-content: var(--responsive-header-main-nav-justify-content, space-between);
825
- gap: 60px;
835
+ gap: var(--responsive-header-nav-group-gap, 60px);
826
836
  overflow-x: hidden;
827
837
  margin-inline-end: v-bind(mainNavigationMarginBlockEndStr);
828
838
 
@@ -835,11 +845,11 @@ watch(
835
845
  flex-wrap: nowrap;
836
846
 
837
847
  &:nth-of-type(1) {
838
- gap: 30px;
848
+ gap: var(--responsive-header-nav-item-gap, 30px);
839
849
  }
840
850
 
841
851
  &:nth-of-type(2) {
842
- gap: 30px;
852
+ gap: var(--responsive-header-nav-item-gap, 30px);
843
853
  }
844
854
 
845
855
  .main-navigation-item {
@@ -853,7 +863,7 @@ watch(
853
863
 
854
864
  .main-navigation-link {
855
865
  display: flex;
856
- gap: 6px;
866
+ gap: var(--responsive-header-link-icon-gap, 6px);
857
867
  white-space: nowrap;
858
868
  font-size: var(--responsive-header-link-font-size, inherit);
859
869
  color: var(--_link-color, var(--responsive-header-link-color, inherit));
@@ -877,8 +887,8 @@ watch(
877
887
  (the wrapper's own box doesn't necessarily change size when it happens). */
878
888
  .decorator-icon {
879
889
  flex-shrink: 0;
880
- width: 1.35em;
881
- height: 1.35em;
890
+ width: var(--responsive-header-link-icon-size, 1.35em);
891
+ height: var(--responsive-header-link-icon-size, 1.35em);
882
892
  }
883
893
 
884
894
  .main-navigation-details {
@@ -892,7 +902,7 @@ watch(
892
902
 
893
903
  .has-toggle-icon {
894
904
  display: flex;
895
- gap: 6px;
905
+ gap: var(--responsive-header-link-icon-gap, 6px);
896
906
  white-space: nowrap;
897
907
 
898
908
  /* Reserved for the same reason as .decorator-icon above — an
@@ -900,8 +910,8 @@ watch(
900
910
  .icon {
901
911
  display: block;
902
912
  flex-shrink: 0;
903
- width: 1.35em;
904
- height: 1.35em;
913
+ width: var(--responsive-header-link-icon-size, 1.35em);
914
+ height: var(--responsive-header-link-icon-size, 1.35em);
905
915
  transform: var(--_icon-transform);
906
916
  transition: transform 0.2s ease-in-out;
907
917
  }
@@ -1188,12 +1198,12 @@ watch(
1188
1198
  top: anchor(top);
1189
1199
  bottom: anchor(bottom);
1190
1200
  background: var(--responsive-nav-decorator-hovered-bg, color-mix(in oklch, var(--theme-text) 8%, transparent));
1191
- border-radius: 4px;
1201
+ border-radius: var(--responsive-nav-decorator-hovered-border-radius, 4px);
1192
1202
  z-index: 1;
1193
1203
  opacity: 0;
1194
1204
  transition:
1195
- left 200ms ease,
1196
- right 200ms ease,
1205
+ left var(--responsive-nav-decorator-transition-duration, 200ms) ease,
1206
+ right var(--responsive-nav-decorator-transition-duration, 200ms) ease,
1197
1207
  opacity 150ms ease;
1198
1208
  }
1199
1209
 
@@ -1211,13 +1221,13 @@ watch(
1211
1221
  position-anchor: --responsive-main-nav-indicator;
1212
1222
  left: anchor(left);
1213
1223
  right: anchor(right);
1214
- bottom: calc(anchor(bottom) - 2px);
1215
- height: 2px;
1224
+ bottom: calc(anchor(bottom) - var(--responsive-nav-decorator-indicator-offset, 2px));
1225
+ height: var(--responsive-nav-decorator-indicator-height, 2px);
1216
1226
  background: var(--responsive-nav-decorator-indicator-color, currentColor);
1217
1227
  z-index: 3;
1218
1228
  transition:
1219
- left 200ms ease,
1220
- right 200ms ease;
1229
+ left var(--responsive-nav-decorator-transition-duration, 200ms) ease,
1230
+ right var(--responsive-nav-decorator-transition-duration, 200ms) ease;
1221
1231
  }
1222
1232
 
1223
1233
  &:not(.is-animated) .nav-indicator-active {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "srcdev-nuxt-components",
3
3
  "type": "module",
4
- "version": "9.6.15",
4
+ "version": "9.6.17",
5
5
  "main": "nuxt.config.ts",
6
6
  "types": "types.d.ts",
7
7
  "license": "MIT",