@motion-proto/live-tokens 0.78.0 → 0.80.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 (172) hide show
  1. package/.claude/skills/live-tokens-check-compliance/SKILL.md +49 -38
  2. package/.claude/skills/live-tokens-create-component/SKILL.md +23 -28
  3. package/.claude/skills/live-tokens-create-component/references/contract-tests.md +61 -0
  4. package/.claude/skills/live-tokens-create-component/references/sketch-mode.md +2 -2
  5. package/.claude/skills/live-tokens-create-component/references/token-naming.md +6 -15
  6. package/.claude/skills/live-tokens-create-page/SKILL.md +6 -4
  7. package/.claude/skills/live-tokens-create-theme/references/design-directions.md +1 -1
  8. package/.claude/skills/live-tokens-pick-component/SKILL.md +3 -3
  9. package/.claude/skills/live-tokens-set-colors/references/color-anchors.md +1 -1
  10. package/.claude/skills/live-tokens-set-geometry/SKILL.md +1 -1
  11. package/.claude/skills/live-tokens-set-geometry/references/geometry-anchors.md +1 -1
  12. package/CHANGELOG.md +271 -0
  13. package/README.md +10 -16
  14. package/bin/check-component.mjs +154 -551
  15. package/bin/check-page.mjs +57 -541
  16. package/bin/cli.mjs +93 -16
  17. package/bin/contractRunner.mjs +37 -91
  18. package/bin/lib/buildChecks.mjs +32 -0
  19. package/bin/lib/catalogue.mjs +161 -34
  20. package/bin/lib/componentSource.mjs +152 -0
  21. package/bin/lib/cssValues.mjs +9 -0
  22. package/bin/lib/dataDir.mjs +126 -0
  23. package/bin/lib/findings.mjs +103 -12
  24. package/bin/lib/fixers.mjs +64 -0
  25. package/bin/lib/geometry.mjs +92 -0
  26. package/bin/lib/pageSource.mjs +230 -0
  27. package/bin/lib/report.mjs +57 -59
  28. package/bin/lib/tokenVocabulary.mjs +104 -34
  29. package/bin/migrate-build-script.mjs +66 -0
  30. package/bin/migrate.mjs +5 -0
  31. package/bin/rules/componentStructure.mjs +344 -0
  32. package/bin/rules/componentUse.mjs +313 -0
  33. package/bin/rules/importsAndRoutes.mjs +136 -0
  34. package/bin/rules/testRuns.mjs +122 -0
  35. package/bin/rules/tokens.mjs +426 -0
  36. package/bin/setup-claude.mjs +1 -2
  37. package/dist-plugin/{chunk-PDNL4NC5.js → chunk-D4WRIKEZ.js} +7 -2
  38. package/dist-plugin/{chunk-SWXRVZKT.js → chunk-REBHE3ZM.js} +414 -1
  39. package/dist-plugin/index.cjs +470 -19
  40. package/dist-plugin/index.d.cts +1 -0
  41. package/dist-plugin/index.d.ts +1 -0
  42. package/dist-plugin/index.js +87 -55
  43. package/dist-plugin/migrateData/index.cjs +422 -4
  44. package/dist-plugin/migrateData/index.js +2 -2
  45. package/dist-plugin/setColors/index.cjs +414 -1
  46. package/dist-plugin/setColors/index.d.cts +1 -1
  47. package/dist-plugin/setColors/index.d.ts +1 -1
  48. package/dist-plugin/setColors/index.js +1 -1
  49. package/dist-plugin/setGeometry/index.cjs +423 -13
  50. package/dist-plugin/setGeometry/index.d.cts +3 -3
  51. package/dist-plugin/setGeometry/index.d.ts +3 -3
  52. package/dist-plugin/setGeometry/index.js +10 -13
  53. package/dist-plugin/setType/index.d.cts +1 -1
  54. package/dist-plugin/setType/index.d.ts +1 -1
  55. package/dist-plugin/{themeTypes-BxRtuN5V.d.cts → themeTypes-B8_Idrp4.d.cts} +2 -2
  56. package/dist-plugin/{themeTypes-BxRtuN5V.d.ts → themeTypes-B8_Idrp4.d.ts} +2 -2
  57. package/package.json +2 -2
  58. package/src/editor/component-editor/CalloutEditor.svelte +2 -2
  59. package/src/editor/component-editor/CollapsibleSectionEditor.svelte +14 -15
  60. package/src/editor/component-editor/CornerBadgeEditor.svelte +14 -14
  61. package/src/editor/component-editor/DialogEditor.svelte +5 -5
  62. package/src/editor/component-editor/InlineEditActionsEditor.svelte +2 -2
  63. package/src/editor/component-editor/RadioButtonEditor.svelte +21 -21
  64. package/src/editor/component-editor/SectionDividerEditor.svelte +7 -7
  65. package/src/editor/component-editor/SegmentedControlEditor.svelte +5 -5
  66. package/src/editor/component-editor/SideNavigationEditor.svelte +25 -25
  67. package/src/editor/component-editor/TabBarEditor.svelte +6 -6
  68. package/src/editor/component-editor/TableEditor.svelte +6 -6
  69. package/src/editor/component-editor/ToggleEditor.svelte +2 -2
  70. package/src/editor/component-editor/index.ts +3 -0
  71. package/src/editor/component-editor/registry.ts +57 -1
  72. package/src/editor/component-editor/scaffolding/TokenLayout.svelte +14 -14
  73. package/src/editor/component-editor/scaffolding/VariantGroup.svelte +3 -0
  74. package/src/editor/component-editor/scaffolding/types.ts +15 -0
  75. package/src/editor/core/components/adjustAliases.ts +4 -4
  76. package/src/editor/core/components/aliasKinds.ts +20 -19
  77. package/src/editor/core/sketch/sketchLayer.ts +3 -3
  78. package/src/editor/core/themes/migrateComponentConfig.ts +14 -6
  79. package/src/editor/core/themes/migrations/2026-09-13-badge-brand.ts +42 -0
  80. package/src/editor/core/themes/migrations/2026-09-13-collapsiblesection-open.ts +33 -0
  81. package/src/editor/core/themes/migrations/2026-09-13-cornerbadge-prefix.ts +70 -0
  82. package/src/editor/core/themes/migrations/2026-09-13-hairline.ts +92 -0
  83. package/src/editor/core/themes/migrations/2026-09-13-indicator.ts +54 -0
  84. package/src/editor/core/themes/migrations/2026-09-13-sectiondivider-surface.ts +36 -0
  85. package/src/editor/core/themes/migrations/2026-09-13-selected-state.ts +124 -0
  86. package/src/editor/core/themes/migrations/2026-09-13-toggle-label.ts +31 -0
  87. package/src/editor/core/themes/migrations/index.ts +16 -0
  88. package/src/editor/core/themes/themeService.ts +3 -3
  89. package/src/editor/core/themes/themeTypes.ts +13 -15
  90. package/src/editor/docs/Docs.svelte +1 -1
  91. package/src/editor/docs/content/light-and-dark.md +3 -3
  92. package/src/editor/docs/content.generated.ts +1 -1
  93. package/src/editor/index.ts +1 -0
  94. package/src/editor/overlay/LiveEditorOverlay.svelte +15 -0
  95. package/src/editor/skill-atlas/SkillAtlas.svelte +4 -4
  96. package/src/editor/skill-atlas/TreeNodeCard.svelte +4 -4
  97. package/src/editor/skill-atlas/skillSources.generated.ts +11 -14
  98. package/src/editor/skill-atlas/skillTrees.ts +1 -3
  99. package/src/editor/skill-atlas/trees/check-compliance.ts +37 -149
  100. package/src/editor/skill-atlas/trees/create-component.ts +62 -64
  101. package/src/editor/skill-atlas/trees/create-page.ts +38 -17
  102. package/src/editor/skill-atlas/trees/pick-component.ts +3 -3
  103. package/src/editor/skill-atlas/trees/set-geometry.ts +1 -1
  104. package/src/editor/ui/UIPaletteSelector.svelte +11 -15
  105. package/src/editor/ui/variantScales.ts +8 -8
  106. package/src/live-tokens/data/themes/autumn.json +188 -188
  107. package/src/live-tokens/data/themes/halloween.json +188 -188
  108. package/src/live-tokens/data/themes/midnight-study.json +245 -245
  109. package/src/live-tokens/data/themes/ocean.json +188 -188
  110. package/src/live-tokens/data/themes/royal-velvet.json +188 -188
  111. package/src/live-tokens/data/themes/sketchy.json +188 -188
  112. package/src/live-tokens/data/themes/spring-meadow.json +188 -188
  113. package/src/live-tokens/data/themes/sunset.json +188 -188
  114. package/src/system/components/Badge.svelte +27 -23
  115. package/src/system/components/Button.svelte +13 -7
  116. package/src/system/components/Callout.svelte +16 -11
  117. package/src/system/components/Card.svelte +22 -15
  118. package/src/system/components/CodeSnippet.svelte +10 -6
  119. package/src/system/components/CollapsibleSection.svelte +81 -76
  120. package/src/system/components/CornerBadge.svelte +78 -72
  121. package/src/system/components/Dialog.svelte +21 -18
  122. package/src/system/components/IconButton.svelte +13 -9
  123. package/src/system/components/Image.svelte +14 -8
  124. package/src/system/components/ImageLightbox.svelte +10 -6
  125. package/src/system/components/InlineEditActions.svelte +17 -14
  126. package/src/system/components/Input.svelte +13 -7
  127. package/src/system/components/MenuSelect.svelte +13 -7
  128. package/src/system/components/Notification.svelte +17 -11
  129. package/src/system/components/Panel.svelte +13 -6
  130. package/src/system/components/ProgressBar.svelte +10 -5
  131. package/src/system/components/RadioButton.svelte +33 -30
  132. package/src/system/components/SectionDivider.svelte +28 -21
  133. package/src/system/components/SegmentedControl.svelte +27 -23
  134. package/src/system/components/SideNavigation.svelte +175 -171
  135. package/src/system/components/Slider.svelte +11 -7
  136. package/src/system/components/TabBar.svelte +53 -49
  137. package/src/system/components/Table.svelte +20 -15
  138. package/src/system/components/Toggle.svelte +14 -10
  139. package/src/system/components/Tooltip.svelte +10 -6
  140. package/src/system/styles/CONVENTIONS.md +3 -4
  141. package/src/testing-js/chunk-3UKGXCDL.js +48 -0
  142. package/src/testing-js/chunk-3UKGXCDL.js.map +1 -0
  143. package/src/testing-js/{chunk-FAFOAWYL.js → chunk-Q3YIAAG3.js} +17 -3
  144. package/src/testing-js/chunk-Q3YIAAG3.js.map +1 -0
  145. package/src/testing-js/{chunk-GNIUPIU2.js → chunk-U7OJE5DU.js} +18 -18
  146. package/src/testing-js/chunk-U7OJE5DU.js.map +1 -0
  147. package/src/testing-js/{chunk-4JQX6WWL.js → chunk-ZMZQZ33J.js} +474 -166
  148. package/src/testing-js/chunk-ZMZQZ33J.js.map +1 -0
  149. package/src/testing-js/component-behavior.contract.js +155 -0
  150. package/src/testing-js/component-behavior.contract.js.map +1 -0
  151. package/src/testing-js/component-editor.contract.js +6 -4
  152. package/src/testing-js/component-editor.contract.js.map +1 -1
  153. package/src/testing-js/component-render.contract.js +14 -10
  154. package/src/testing-js/component-render.contract.js.map +1 -1
  155. package/src/testing-js/index.d.ts +44 -4
  156. package/src/testing-js/index.js +13 -7
  157. package/src/testing-js/index.js.map +1 -1
  158. package/src/testing-js/page-compliance.contract.js +48 -10
  159. package/src/testing-js/page-compliance.contract.js.map +1 -1
  160. package/src/testing-js/registry.contract.js +5 -3
  161. package/src/testing-js/registry.contract.js.map +1 -1
  162. package/src/testing-js/{vitest-C-wNWcoA.d.ts → vitest-BMLIbDs2.d.ts} +8 -2
  163. package/src/testing-js/vitest.d.ts +1 -1
  164. package/src/testing-js/vitest.js +2 -1
  165. package/template/package.json +1 -2
  166. package/template/vite.config.ts +3 -2
  167. package/.claude/skills/live-tokens-create-component/SKILL copy.md +0 -196
  168. package/.claude/skills/live-tokens-fix-findings/SKILL.md +0 -105
  169. package/src/editor/skill-atlas/trees/fix-findings.ts +0 -504
  170. package/src/testing-js/chunk-4JQX6WWL.js.map +0 -1
  171. package/src/testing-js/chunk-FAFOAWYL.js.map +0 -1
  172. package/src/testing-js/chunk-GNIUPIU2.js.map +0 -1
@@ -1,15 +1,19 @@
1
- <!--
2
- SideNavigation.svelte. The rail that moves between the pages of a site.
3
- Use for: navigation that follows the current path.
4
- Not for: switching panels inside one page (TabBar); a menu of actions
5
- (MenuSelect).
6
- -->
1
+ <script module lang="ts">
2
+ import type { CatalogueEntry } from '../../editor/component-editor/scaffolding/types';
3
+
4
+ export const catalogue = {
5
+ description: 'The rail that moves between the pages of a site.',
6
+ useFor: 'navigation that follows the current path.',
7
+ notFor: 'switching views inside one page (TabBar); a menu of actions (MenuSelect).',
8
+ } satisfies CatalogueEntry;
9
+ </script>
10
+
7
11
  <script lang="ts">
8
12
  import { createEventDispatcher } from 'svelte';
9
13
  import CollapsibleSection from './CollapsibleSection.svelte';
10
14
 
11
15
  export type SideNavItem = {
12
- /** Full path. Matches `currentPath` exactly when this item is active. */
16
+ /** Full path. Matches `currentPath` exactly when this item is selected. */
13
17
  path: string;
14
18
  title: string;
15
19
  };
@@ -37,7 +41,7 @@
37
41
  hoverTint?: boolean | undefined;
38
42
  sections?: SideNavSection[];
39
43
  footer?: SideNavFooter | undefined;
40
- titleLabel?: string;
44
+ title?: string;
41
45
  titleHref?: string;
42
46
  currentPath?: string;
43
47
  open?: boolean;
@@ -45,8 +49,8 @@
45
49
  hrefFor?: (path: string) => string;
46
50
  /** Force-hover one part for editor previews. */
47
51
  forceHoverPart?: 'title' | 'toggle' | 'item' | 'footer' | 'section' | null;
48
- /** Force-active one part for editor previews. */
49
- forceActivePart?: 'title' | 'item' | 'footer' | 'section' | null;
52
+ /** Force the selected state on one part for editor previews. */
53
+ forceSelectedPart?: 'title' | 'item' | 'footer' | 'section' | null;
50
54
  class?: string;
51
55
  /** Toggle callback. Preferred over `on:toggle` from 0.5.0 onward. */
52
56
  ontoggle?: () => void;
@@ -63,13 +67,13 @@
63
67
  hoverTint = undefined,
64
68
  sections = [],
65
69
  footer = undefined,
66
- titleLabel = '',
70
+ title = '',
67
71
  titleHref = '#',
68
72
  currentPath = '',
69
73
  open = true,
70
74
  hrefFor,
71
75
  forceHoverPart = null,
72
- forceActivePart = null,
76
+ forceSelectedPart = null,
73
77
  class: className = '',
74
78
  ontoggle,
75
79
  lead,
@@ -86,11 +90,11 @@
86
90
 
87
91
  let expandedSections: Record<string, boolean> = $state({});
88
92
 
89
- // Auto-expand sections that match the current path or contain an active item.
93
+ // Auto-expand sections that match the current path or contain the selected item.
90
94
  $effect(() => {
91
95
  for (const section of sections) {
92
- const containsActive = section.items.some((i) => i.path === currentPath);
93
- if (currentPath === section.path || containsActive) {
96
+ const containsSelected = section.items.some((i) => i.path === currentPath);
97
+ if (currentPath === section.path || containsSelected) {
94
98
  expandedSections[section.path] = true;
95
99
  }
96
100
  }
@@ -127,10 +131,10 @@
127
131
  }
128
132
 
129
133
  // The first section's first / second items are the canonical preview targets
130
- // when the editor force-activates or force-hovers an item, so token edits
134
+ // when the editor forces an item selected or hovered, so token edits
131
135
  // always have a row to paint against.
132
- let activeItemKey = $derived(() => {
133
- if (forceActivePart !== 'item') return null;
136
+ let selectedItemKey = $derived(() => {
137
+ if (forceSelectedPart !== 'item') return null;
134
138
  const s = sections[0];
135
139
  if (!s || s.items.length === 0) return null;
136
140
  return s.items[0].path;
@@ -142,13 +146,13 @@
142
146
  return s.items.find((item) => item.path !== currentPath)?.path ?? s.items[0].path;
143
147
  });
144
148
 
145
- let titleActive = $derived(forceActivePart === 'title' || currentPath === '');
149
+ let titleSelected = $derived(forceSelectedPart === 'title' || currentPath === '');
146
150
 
147
- // When the editor force-activates the "section" part, pick the first section
148
- // that's a valid route (hasIndexPage) so the active styling has somewhere
151
+ // When the editor forces the "section" part selected, pick the first section
152
+ // that's a valid route (hasIndexPage) so the selected styling has somewhere
149
153
  // to land in the preview.
150
- let activeSectionKey = $derived(() => {
151
- if (forceActivePart !== 'section') return null;
154
+ let selectedSectionKey = $derived(() => {
155
+ if (forceSelectedPart !== 'section') return null;
152
156
  const s = sections.find((sec) => sec.hasIndexPage) ?? sections[0];
153
157
  return s?.path ?? null;
154
158
  });
@@ -158,9 +162,9 @@
158
162
  return s?.path ?? null;
159
163
  });
160
164
 
161
- function isSectionActive(section: SideNavSection): boolean {
165
+ function isSectionSelected(section: SideNavSection): boolean {
162
166
  if (!section.hasIndexPage) return false;
163
- if (activeSectionKey() === section.path) return true;
167
+ if (selectedSectionKey() === section.path) return true;
164
168
  return currentPath === section.path;
165
169
  }
166
170
  function isSectionHover(section: SideNavSection): boolean {
@@ -175,7 +179,7 @@
175
179
  class:force-title-hover={forceHoverPart === 'title'}
176
180
  class:force-toggle-hover={forceHoverPart === 'toggle'}
177
181
  class:force-footer-hover={forceHoverPart === 'footer'}
178
- class:force-footer-active={forceActivePart === 'footer'}
182
+ class:force-footer-selected={forceSelectedPart === 'footer'}
179
183
  >
180
184
  {#if open && lead}{@render lead()}{/if}
181
185
 
@@ -184,9 +188,9 @@
184
188
  rail is closed, the header reduces to just the toggle, centred via the
185
189
  toggle's own `left` calc. Header stays locked to open-width regardless;
186
190
  the aside's overflow clips it during the close animation. -->
187
- <header class="sn-title" class:active={titleActive}>
191
+ <header class="sn-title" class:selected={titleSelected}>
188
192
  {#if open}
189
- <a href={titleHref} class="sn-title-label">{titleLabel}</a>
193
+ <a href={titleHref} class="sn-title-label">{title}</a>
190
194
  {/if}
191
195
 
192
196
  <button
@@ -207,7 +211,7 @@
207
211
  <!-- svelte-ignore a11y_click_events_have_key_events, a11y_no_noninteractive_element_interactions, a11y_no_static_element_interactions -->
208
212
  <div
209
213
  class="sn-section-header"
210
- class:active={isSectionActive(section)}
214
+ class:selected={isSectionSelected(section)}
211
215
  class:force-hover={isSectionHover(section)}
212
216
  onclick={(e) => maybeInterceptLabel(e, section)}
213
217
  >
@@ -215,7 +219,7 @@
215
219
  variant="chromeless"
216
220
  label={section.title}
217
221
  href={sectionHref(section)}
218
- expanded={expandedSections[section.path] || false}
222
+ open={expandedSections[section.path] || false}
219
223
  ontoggle={() => toggleSection(section.path)}
220
224
  />
221
225
  </div>
@@ -226,7 +230,7 @@
226
230
  <a
227
231
  href={buildHref(item.path)}
228
232
  class="sn-item"
229
- class:active={item.path === currentPath || item.path === activeItemKey()}
233
+ class:selected={item.path === currentPath || item.path === selectedItemKey()}
230
234
  class:force-hover={item.path === hoverItemKey()}
231
235
  >
232
236
  {item.title}
@@ -241,7 +245,7 @@
241
245
  <a
242
246
  href={buildHref(footer.path)}
243
247
  class="sn-footer"
244
- class:active={currentPath === footer.path}
248
+ class:selected={currentPath === footer.path}
245
249
  >
246
250
  {#if footer.icon}<i class={footer.icon} aria-hidden="true"></i>{/if}
247
251
  <span>{footer.title}</span>
@@ -298,8 +302,8 @@
298
302
  --sidenavigation-title-default-border: var(--border-canvas-faint);
299
303
  --sidenavigation-title-default-border-width: var(--border-width-1);
300
304
  --sidenavigation-title-default-padding: var(--space-12);
301
- --sidenavigation-title-default-accent: var(--color-transparent);
302
- --sidenavigation-title-default-accent-width: var(--border-width-3);
305
+ --sidenavigation-title-default-indicator: var(--color-transparent);
306
+ --sidenavigation-title-default-indicator-width: var(--border-width-3);
303
307
  --sidenavigation-title-default-label: var(--text-primary);
304
308
  --sidenavigation-title-default-label-font-family: var(--font-display);
305
309
  --sidenavigation-title-default-label-font-size: var(--font-size-2xl);
@@ -311,26 +315,26 @@
311
315
  --sidenavigation-title-hover-border: var(--border-canvas-faint);
312
316
  --sidenavigation-title-hover-border-width: var(--border-width-1);
313
317
  --sidenavigation-title-hover-padding: var(--space-12);
314
- --sidenavigation-title-hover-accent: var(--color-transparent);
315
- --sidenavigation-title-hover-accent-width: var(--border-width-3);
318
+ --sidenavigation-title-hover-indicator: var(--color-transparent);
319
+ --sidenavigation-title-hover-indicator-width: var(--border-width-3);
316
320
  --sidenavigation-title-hover-label: var(--text-primary);
317
321
  --sidenavigation-title-hover-label-font-family: var(--font-display);
318
322
  --sidenavigation-title-hover-label-font-size: var(--font-size-2xl);
319
323
  --sidenavigation-title-hover-label-font-weight: var(--font-weight-bold);
320
324
  --sidenavigation-title-hover-label-line-height: var(--line-height-tighter);
321
325
 
322
- /* Title — active */
323
- --sidenavigation-title-active-surface: var(--surface-canvas-low);
324
- --sidenavigation-title-active-border: var(--border-canvas-faint);
325
- --sidenavigation-title-active-border-width: var(--border-width-1);
326
- --sidenavigation-title-active-padding: var(--space-12);
327
- --sidenavigation-title-active-accent: var(--border-brand-medium);
328
- --sidenavigation-title-active-accent-width: var(--border-width-3);
329
- --sidenavigation-title-active-label: var(--text-primary);
330
- --sidenavigation-title-active-label-font-family: var(--font-display);
331
- --sidenavigation-title-active-label-font-size: var(--font-size-2xl);
332
- --sidenavigation-title-active-label-font-weight: var(--font-weight-bold);
333
- --sidenavigation-title-active-label-line-height: var(--line-height-tighter);
326
+ /* Title — selected */
327
+ --sidenavigation-title-selected-surface: var(--surface-canvas-low);
328
+ --sidenavigation-title-selected-border: var(--border-canvas-faint);
329
+ --sidenavigation-title-selected-border-width: var(--border-width-1);
330
+ --sidenavigation-title-selected-padding: var(--space-12);
331
+ --sidenavigation-title-selected-indicator: var(--border-brand-medium);
332
+ --sidenavigation-title-selected-indicator-width: var(--border-width-3);
333
+ --sidenavigation-title-selected-label: var(--text-primary);
334
+ --sidenavigation-title-selected-label-font-family: var(--font-display);
335
+ --sidenavigation-title-selected-label-font-size: var(--font-size-2xl);
336
+ --sidenavigation-title-selected-label-font-weight: var(--font-weight-bold);
337
+ --sidenavigation-title-selected-label-line-height: var(--line-height-tighter);
334
338
 
335
339
  /* Toggle — default */
336
340
  --sidenavigation-toggle-default-surface: var(--color-transparent);
@@ -356,8 +360,8 @@
356
360
  so section typography can be edited per-state without touching the
357
361
  generic chromeless variant used elsewhere. */
358
362
  --sidenavigation-section-default-surface: var(--color-transparent);
359
- --sidenavigation-section-default-accent: var(--color-transparent);
360
- --sidenavigation-section-default-accent-width: var(--border-width-3);
363
+ --sidenavigation-section-default-indicator: var(--color-transparent);
364
+ --sidenavigation-section-default-indicator-width: var(--border-width-3);
361
365
  --sidenavigation-section-default-text: var(--text-primary);
362
366
  --sidenavigation-section-default-text-font-family: var(--font-sans);
363
367
  --sidenavigation-section-default-text-font-size: var(--font-size-lg);
@@ -366,29 +370,29 @@
366
370
 
367
371
  /* Section header — hover */
368
372
  --sidenavigation-section-hover-surface: var(--surface-canvas);
369
- --sidenavigation-section-hover-accent: var(--color-transparent);
370
- --sidenavigation-section-hover-accent-width: var(--border-width-3);
373
+ --sidenavigation-section-hover-indicator: var(--color-transparent);
374
+ --sidenavigation-section-hover-indicator-width: var(--border-width-3);
371
375
  --sidenavigation-section-hover-text: var(--text-primary);
372
376
  --sidenavigation-section-hover-text-font-family: var(--font-sans);
373
377
  --sidenavigation-section-hover-text-font-size: var(--font-size-lg);
374
378
  --sidenavigation-section-hover-text-font-weight: var(--font-weight-medium);
375
379
  --sidenavigation-section-hover-text-line-height: var(--line-height-normal);
376
380
 
377
- /* Section header — active (this section's page is the current route) */
378
- --sidenavigation-section-active-surface: var(--surface-canvas-low);
379
- --sidenavigation-section-active-accent: var(--border-brand-medium);
380
- --sidenavigation-section-active-accent-width: var(--border-width-3);
381
- --sidenavigation-section-active-text: var(--text-primary);
382
- --sidenavigation-section-active-text-font-family: var(--font-sans);
383
- --sidenavigation-section-active-text-font-size: var(--font-size-lg);
384
- --sidenavigation-section-active-text-font-weight: var(--font-weight-medium);
385
- --sidenavigation-section-active-text-line-height: var(--line-height-normal);
381
+ /* Section header — selected (this section's page is the current route) */
382
+ --sidenavigation-section-selected-surface: var(--surface-canvas-low);
383
+ --sidenavigation-section-selected-indicator: var(--border-brand-medium);
384
+ --sidenavigation-section-selected-indicator-width: var(--border-width-3);
385
+ --sidenavigation-section-selected-text: var(--text-primary);
386
+ --sidenavigation-section-selected-text-font-family: var(--font-sans);
387
+ --sidenavigation-section-selected-text-font-size: var(--font-size-lg);
388
+ --sidenavigation-section-selected-text-font-weight: var(--font-weight-medium);
389
+ --sidenavigation-section-selected-text-line-height: var(--line-height-normal);
386
390
 
387
391
  /* Item — default */
388
392
  --sidenavigation-item-default-surface: var(--color-transparent);
389
393
  --sidenavigation-item-default-padding: var(--space-6);
390
- --sidenavigation-item-default-accent: var(--color-transparent);
391
- --sidenavigation-item-default-accent-width: var(--border-width-3);
394
+ --sidenavigation-item-default-indicator: var(--color-transparent);
395
+ --sidenavigation-item-default-indicator-width: var(--border-width-3);
392
396
  --sidenavigation-item-default-text: var(--text-tertiary);
393
397
  --sidenavigation-item-default-text-font-family: var(--font-sans);
394
398
  --sidenavigation-item-default-text-font-size: var(--font-size-md);
@@ -398,31 +402,31 @@
398
402
  /* Item — hover */
399
403
  --sidenavigation-item-hover-surface: var(--surface-canvas);
400
404
  --sidenavigation-item-hover-padding: var(--space-6);
401
- --sidenavigation-item-hover-accent: var(--color-transparent);
402
- --sidenavigation-item-hover-accent-width: var(--border-width-3);
405
+ --sidenavigation-item-hover-indicator: var(--color-transparent);
406
+ --sidenavigation-item-hover-indicator-width: var(--border-width-3);
403
407
  --sidenavigation-item-hover-text: var(--text-secondary);
404
408
  --sidenavigation-item-hover-text-font-family: var(--font-sans);
405
409
  --sidenavigation-item-hover-text-font-size: var(--font-size-md);
406
410
  --sidenavigation-item-hover-text-font-weight: var(--font-weight-light);
407
411
  --sidenavigation-item-hover-text-line-height: var(--line-height-normal);
408
412
 
409
- /* Item — active */
410
- --sidenavigation-item-active-surface: var(--surface-canvas-low);
411
- --sidenavigation-item-active-padding: var(--space-6);
412
- --sidenavigation-item-active-accent: var(--border-brand-medium);
413
- --sidenavigation-item-active-accent-width: var(--border-width-3);
414
- --sidenavigation-item-active-text: var(--text-primary);
415
- --sidenavigation-item-active-text-font-family: var(--font-sans);
416
- --sidenavigation-item-active-text-font-size: var(--font-size-md);
417
- --sidenavigation-item-active-text-font-weight: var(--font-weight-normal);
418
- --sidenavigation-item-active-text-line-height: var(--line-height-normal);
413
+ /* Item — selected */
414
+ --sidenavigation-item-selected-surface: var(--surface-canvas-low);
415
+ --sidenavigation-item-selected-padding: var(--space-6);
416
+ --sidenavigation-item-selected-indicator: var(--border-brand-medium);
417
+ --sidenavigation-item-selected-indicator-width: var(--border-width-3);
418
+ --sidenavigation-item-selected-text: var(--text-primary);
419
+ --sidenavigation-item-selected-text-font-family: var(--font-sans);
420
+ --sidenavigation-item-selected-text-font-size: var(--font-size-md);
421
+ --sidenavigation-item-selected-text-font-weight: var(--font-weight-normal);
422
+ --sidenavigation-item-selected-text-line-height: var(--line-height-normal);
419
423
 
420
424
  /* Footer — default */
421
425
  --sidenavigation-footer-default-surface: var(--color-transparent);
422
426
  --sidenavigation-footer-default-padding: var(--space-8);
423
427
  --sidenavigation-footer-default-gap: var(--space-8);
424
- --sidenavigation-footer-default-accent: var(--color-transparent);
425
- --sidenavigation-footer-default-accent-width: var(--border-width-3);
428
+ --sidenavigation-footer-default-indicator: var(--color-transparent);
429
+ --sidenavigation-footer-default-indicator-width: var(--border-width-3);
426
430
  --sidenavigation-footer-default-icon: var(--text-muted);
427
431
  --sidenavigation-footer-default-icon-size: var(--icon-size-xs);
428
432
  --sidenavigation-footer-default-text: var(--text-tertiary);
@@ -435,8 +439,8 @@
435
439
  --sidenavigation-footer-hover-surface: var(--surface-canvas);
436
440
  --sidenavigation-footer-hover-padding: var(--space-8);
437
441
  --sidenavigation-footer-hover-gap: var(--space-8);
438
- --sidenavigation-footer-hover-accent: var(--color-transparent);
439
- --sidenavigation-footer-hover-accent-width: var(--border-width-3);
442
+ --sidenavigation-footer-hover-indicator: var(--color-transparent);
443
+ --sidenavigation-footer-hover-indicator-width: var(--border-width-3);
440
444
  --sidenavigation-footer-hover-icon: var(--text-secondary);
441
445
  --sidenavigation-footer-hover-icon-size: var(--icon-size-xs);
442
446
  --sidenavigation-footer-hover-text: var(--text-secondary);
@@ -445,19 +449,19 @@
445
449
  --sidenavigation-footer-hover-text-font-weight: var(--font-weight-light);
446
450
  --sidenavigation-footer-hover-text-line-height: var(--line-height-normal);
447
451
 
448
- /* Footer — active */
449
- --sidenavigation-footer-active-surface: var(--surface-canvas-low);
450
- --sidenavigation-footer-active-padding: var(--space-8);
451
- --sidenavigation-footer-active-gap: var(--space-8);
452
- --sidenavigation-footer-active-accent: var(--border-brand-medium);
453
- --sidenavigation-footer-active-accent-width: var(--border-width-3);
454
- --sidenavigation-footer-active-icon: var(--text-primary);
455
- --sidenavigation-footer-active-icon-size: var(--icon-size-xs);
456
- --sidenavigation-footer-active-text: var(--text-primary);
457
- --sidenavigation-footer-active-text-font-family: var(--font-sans);
458
- --sidenavigation-footer-active-text-font-size: var(--font-size-sm);
459
- --sidenavigation-footer-active-text-font-weight: var(--font-weight-normal);
460
- --sidenavigation-footer-active-text-line-height: var(--line-height-normal);
452
+ /* Footer — selected */
453
+ --sidenavigation-footer-selected-surface: var(--surface-canvas-low);
454
+ --sidenavigation-footer-selected-padding: var(--space-8);
455
+ --sidenavigation-footer-selected-gap: var(--space-8);
456
+ --sidenavigation-footer-selected-indicator: var(--border-brand-medium);
457
+ --sidenavigation-footer-selected-indicator-width: var(--border-width-3);
458
+ --sidenavigation-footer-selected-icon: var(--text-primary);
459
+ --sidenavigation-footer-selected-icon-size: var(--icon-size-xs);
460
+ --sidenavigation-footer-selected-text: var(--text-primary);
461
+ --sidenavigation-footer-selected-text-font-family: var(--font-sans);
462
+ --sidenavigation-footer-selected-text-font-size: var(--font-size-sm);
463
+ --sidenavigation-footer-selected-text-font-weight: var(--font-weight-normal);
464
+ --sidenavigation-footer-selected-text-line-height: var(--line-height-normal);
461
465
  }
462
466
 
463
467
  .sidenavigation {
@@ -492,8 +496,8 @@
492
496
  --_surface: var(--sidenavigation-title-default-surface);
493
497
  --_border: var(--sidenavigation-title-default-border);
494
498
  --_border-width: var(--sidenavigation-title-default-border-width);
495
- --_indicator: var(--sidenavigation-title-default-accent);
496
- --_indicator-width: var(--sidenavigation-title-default-accent-width);
499
+ --_indicator: var(--sidenavigation-title-default-indicator);
500
+ --_indicator-width: var(--sidenavigation-title-default-indicator-width);
497
501
  --_padding: var(--sidenavigation-title-default-padding);
498
502
  --_label: var(--sidenavigation-title-default-label);
499
503
  --_label-family: var(--sidenavigation-title-default-label-font-family);
@@ -520,14 +524,14 @@
520
524
  transition: background var(--duration-150);
521
525
  }
522
526
 
523
- .sn-title:hover:not(.active),
524
- .sidenavigation.force-title-hover .sn-title:not(.active) {
527
+ .sn-title:hover:not(.selected),
528
+ .sidenavigation.force-title-hover .sn-title:not(.selected) {
525
529
  background-image: linear-gradient(var(--sidenavigation-hover-tint-enabled), var(--sidenavigation-hover-tint-enabled));
526
530
  --_surface: var(--sidenavigation-title-hover-surface);
527
531
  --_border: var(--sidenavigation-title-hover-border);
528
532
  --_border-width: var(--sidenavigation-title-hover-border-width);
529
- --_indicator: var(--sidenavigation-title-hover-accent);
530
- --_indicator-width: var(--sidenavigation-title-hover-accent-width);
533
+ --_indicator: var(--sidenavigation-title-hover-indicator);
534
+ --_indicator-width: var(--sidenavigation-title-hover-indicator-width);
531
535
  --_padding: var(--sidenavigation-title-hover-padding);
532
536
  --_label: var(--sidenavigation-title-hover-label);
533
537
  --_label-family: var(--sidenavigation-title-hover-label-font-family);
@@ -536,18 +540,18 @@
536
540
  --_label-line-height: var(--sidenavigation-title-hover-label-line-height);
537
541
  }
538
542
 
539
- .sn-title.active {
540
- --_surface: var(--sidenavigation-title-active-surface);
541
- --_border: var(--sidenavigation-title-active-border);
542
- --_border-width: var(--sidenavigation-title-active-border-width);
543
- --_indicator: var(--sidenavigation-title-active-accent);
544
- --_indicator-width: var(--sidenavigation-title-active-accent-width);
545
- --_padding: var(--sidenavigation-title-active-padding);
546
- --_label: var(--sidenavigation-title-active-label);
547
- --_label-family: var(--sidenavigation-title-active-label-font-family);
548
- --_label-size: var(--sidenavigation-title-active-label-font-size);
549
- --_label-weight: var(--sidenavigation-title-active-label-font-weight);
550
- --_label-line-height: var(--sidenavigation-title-active-label-line-height);
543
+ .sn-title.selected {
544
+ --_surface: var(--sidenavigation-title-selected-surface);
545
+ --_border: var(--sidenavigation-title-selected-border);
546
+ --_border-width: var(--sidenavigation-title-selected-border-width);
547
+ --_indicator: var(--sidenavigation-title-selected-indicator);
548
+ --_indicator-width: var(--sidenavigation-title-selected-indicator-width);
549
+ --_padding: var(--sidenavigation-title-selected-padding);
550
+ --_label: var(--sidenavigation-title-selected-label);
551
+ --_label-family: var(--sidenavigation-title-selected-label-font-family);
552
+ --_label-size: var(--sidenavigation-title-selected-label-font-size);
553
+ --_label-weight: var(--sidenavigation-title-selected-label-font-weight);
554
+ --_label-line-height: var(--sidenavigation-title-selected-label-line-height);
551
555
  }
552
556
 
553
557
  /* In the collapsed state the header narrows with the rail. Drop horizontal
@@ -654,15 +658,15 @@
654
658
  }
655
659
 
656
660
  /* Section header wrapper. Paints background + left indicator around the
657
- CollapsibleSection so a section that's also a route can show an active
661
+ CollapsibleSection so a section that's also a route can show a selected
658
662
  state matching the panel's item/footer treatment. Section text tokens
659
663
  are forwarded into the inner CollapsibleSection by shadowing its
660
664
  chromeless slots — section typography can then be edited per-state
661
665
  without touching the generic chromeless variant. */
662
666
  .sn-section-header {
663
667
  --_surface: var(--sidenavigation-section-default-surface);
664
- --_indicator: var(--sidenavigation-section-default-accent);
665
- --_indicator-width: var(--sidenavigation-section-default-accent-width);
668
+ --_indicator: var(--sidenavigation-section-default-indicator);
669
+ --_indicator-width: var(--sidenavigation-section-default-indicator-width);
666
670
 
667
671
  --collapsiblesection-chromeless-default-label: var(--sidenavigation-section-default-text);
668
672
  --collapsiblesection-chromeless-default-label-font-family: var(--sidenavigation-section-default-text-font-family);
@@ -679,36 +683,36 @@
679
683
  border-left: var(--_indicator-width) solid var(--_indicator);
680
684
  transition: background var(--duration-150), border-color var(--duration-150);
681
685
  }
682
- .sn-section-header:hover:not(.active),
683
- .sn-section-header.force-hover:not(.active) {
686
+ .sn-section-header:hover:not(.selected),
687
+ .sn-section-header.force-hover:not(.selected) {
684
688
  background-image: linear-gradient(var(--sidenavigation-hover-tint-enabled), var(--sidenavigation-hover-tint-enabled));
685
689
  --_surface: var(--sidenavigation-section-hover-surface);
686
- --_indicator: var(--sidenavigation-section-hover-accent);
687
- --_indicator-width: var(--sidenavigation-section-hover-accent-width);
690
+ --_indicator: var(--sidenavigation-section-hover-indicator);
691
+ --_indicator-width: var(--sidenavigation-section-hover-indicator-width);
688
692
  --collapsiblesection-chromeless-default-label: var(--sidenavigation-section-hover-text);
689
693
  --collapsiblesection-chromeless-default-label-font-family: var(--sidenavigation-section-hover-text-font-family);
690
694
  --collapsiblesection-chromeless-default-label-font-size: var(--sidenavigation-section-hover-text-font-size);
691
695
  --collapsiblesection-chromeless-default-label-font-weight: var(--sidenavigation-section-hover-text-font-weight);
692
696
  --collapsiblesection-chromeless-default-label-line-height: var(--sidenavigation-section-hover-text-line-height);
693
697
  }
694
- .sn-section-header.active {
695
- --_surface: var(--sidenavigation-section-active-surface);
696
- --_indicator: var(--sidenavigation-section-active-accent);
697
- --_indicator-width: var(--sidenavigation-section-active-accent-width);
698
-
699
- /* Inner CollapsibleSection has no "active" state — shadow both the
700
- default-slot and hover-slot with the active text values so the section
701
- header keeps painting active typography whether or not it's hovered. */
702
- --collapsiblesection-chromeless-default-label: var(--sidenavigation-section-active-text);
703
- --collapsiblesection-chromeless-default-label-font-family: var(--sidenavigation-section-active-text-font-family);
704
- --collapsiblesection-chromeless-default-label-font-size: var(--sidenavigation-section-active-text-font-size);
705
- --collapsiblesection-chromeless-default-label-font-weight: var(--sidenavigation-section-active-text-font-weight);
706
- --collapsiblesection-chromeless-default-label-line-height: var(--sidenavigation-section-active-text-line-height);
707
- --collapsiblesection-chromeless-hover-label: var(--sidenavigation-section-active-text);
708
- --collapsiblesection-chromeless-hover-label-font-family: var(--sidenavigation-section-active-text-font-family);
709
- --collapsiblesection-chromeless-hover-label-font-size: var(--sidenavigation-section-active-text-font-size);
710
- --collapsiblesection-chromeless-hover-label-font-weight: var(--sidenavigation-section-active-text-font-weight);
711
- --collapsiblesection-chromeless-hover-label-line-height: var(--sidenavigation-section-active-text-line-height);
698
+ .sn-section-header.selected {
699
+ --_surface: var(--sidenavigation-section-selected-surface);
700
+ --_indicator: var(--sidenavigation-section-selected-indicator);
701
+ --_indicator-width: var(--sidenavigation-section-selected-indicator-width);
702
+
703
+ /* Inner CollapsibleSection has no selected state — shadow both the
704
+ default-slot and hover-slot with the selected text values so the section
705
+ header keeps painting selected typography whether or not it's hovered. */
706
+ --collapsiblesection-chromeless-default-label: var(--sidenavigation-section-selected-text);
707
+ --collapsiblesection-chromeless-default-label-font-family: var(--sidenavigation-section-selected-text-font-family);
708
+ --collapsiblesection-chromeless-default-label-font-size: var(--sidenavigation-section-selected-text-font-size);
709
+ --collapsiblesection-chromeless-default-label-font-weight: var(--sidenavigation-section-selected-text-font-weight);
710
+ --collapsiblesection-chromeless-default-label-line-height: var(--sidenavigation-section-selected-text-line-height);
711
+ --collapsiblesection-chromeless-hover-label: var(--sidenavigation-section-selected-text);
712
+ --collapsiblesection-chromeless-hover-label-font-family: var(--sidenavigation-section-selected-text-font-family);
713
+ --collapsiblesection-chromeless-hover-label-font-size: var(--sidenavigation-section-selected-text-font-size);
714
+ --collapsiblesection-chromeless-hover-label-font-weight: var(--sidenavigation-section-selected-text-font-weight);
715
+ --collapsiblesection-chromeless-hover-label-line-height: var(--sidenavigation-section-selected-text-line-height);
712
716
  }
713
717
 
714
718
  .sn-items {
@@ -720,8 +724,8 @@
720
724
  .sn-item {
721
725
  --_surface: var(--sidenavigation-item-default-surface);
722
726
  --_padding: var(--sidenavigation-item-default-padding);
723
- --_indicator: var(--sidenavigation-item-default-accent);
724
- --_indicator-width: var(--sidenavigation-item-default-accent-width);
727
+ --_indicator: var(--sidenavigation-item-default-indicator);
728
+ --_indicator-width: var(--sidenavigation-item-default-indicator-width);
725
729
  --_text: var(--sidenavigation-item-default-text);
726
730
  --_text-family: var(--sidenavigation-item-default-text-font-family);
727
731
  --_text-size: var(--sidenavigation-item-default-text-font-size);
@@ -742,13 +746,13 @@
742
746
  transition: background var(--duration-150), color var(--duration-150);
743
747
  }
744
748
 
745
- .sn-item:hover:not(.active),
746
- .sn-item.force-hover:not(.active) {
749
+ .sn-item:hover:not(.selected),
750
+ .sn-item.force-hover:not(.selected) {
747
751
  background-image: linear-gradient(var(--sidenavigation-hover-tint-enabled), var(--sidenavigation-hover-tint-enabled));
748
752
  --_surface: var(--sidenavigation-item-hover-surface);
749
753
  --_padding: var(--sidenavigation-item-hover-padding);
750
- --_indicator: var(--sidenavigation-item-hover-accent);
751
- --_indicator-width: var(--sidenavigation-item-hover-accent-width);
754
+ --_indicator: var(--sidenavigation-item-hover-indicator);
755
+ --_indicator-width: var(--sidenavigation-item-hover-indicator-width);
752
756
  --_text: var(--sidenavigation-item-hover-text);
753
757
  --_text-family: var(--sidenavigation-item-hover-text-font-family);
754
758
  --_text-size: var(--sidenavigation-item-hover-text-font-size);
@@ -756,24 +760,24 @@
756
760
  --_text-line-height: var(--sidenavigation-item-hover-text-line-height);
757
761
  }
758
762
 
759
- .sn-item.active {
760
- --_surface: var(--sidenavigation-item-active-surface);
761
- --_padding: var(--sidenavigation-item-active-padding);
762
- --_indicator: var(--sidenavigation-item-active-accent);
763
- --_indicator-width: var(--sidenavigation-item-active-accent-width);
764
- --_text: var(--sidenavigation-item-active-text);
765
- --_text-family: var(--sidenavigation-item-active-text-font-family);
766
- --_text-size: var(--sidenavigation-item-active-text-font-size);
767
- --_text-weight: var(--sidenavigation-item-active-text-font-weight);
768
- --_text-line-height: var(--sidenavigation-item-active-text-line-height);
763
+ .sn-item.selected {
764
+ --_surface: var(--sidenavigation-item-selected-surface);
765
+ --_padding: var(--sidenavigation-item-selected-padding);
766
+ --_indicator: var(--sidenavigation-item-selected-indicator);
767
+ --_indicator-width: var(--sidenavigation-item-selected-indicator-width);
768
+ --_text: var(--sidenavigation-item-selected-text);
769
+ --_text-family: var(--sidenavigation-item-selected-text-font-family);
770
+ --_text-size: var(--sidenavigation-item-selected-text-font-size);
771
+ --_text-weight: var(--sidenavigation-item-selected-text-font-weight);
772
+ --_text-line-height: var(--sidenavigation-item-selected-text-line-height);
769
773
  }
770
774
 
771
775
  .sn-footer {
772
776
  --_surface: var(--sidenavigation-footer-default-surface);
773
777
  --_padding: var(--sidenavigation-footer-default-padding);
774
778
  --_gap: var(--sidenavigation-footer-default-gap);
775
- --_indicator: var(--sidenavigation-footer-default-accent);
776
- --_indicator-width: var(--sidenavigation-footer-default-accent-width);
779
+ --_indicator: var(--sidenavigation-footer-default-indicator);
780
+ --_indicator-width: var(--sidenavigation-footer-default-indicator-width);
777
781
  --_icon: var(--sidenavigation-footer-default-icon);
778
782
  --_icon-size: var(--sidenavigation-footer-default-icon-size);
779
783
  --_text: var(--sidenavigation-footer-default-text);
@@ -804,14 +808,14 @@
804
808
  line-height: 1;
805
809
  }
806
810
 
807
- .sn-footer:hover:not(.active),
808
- .sidenavigation.force-footer-hover .sn-footer:not(.active) {
811
+ .sn-footer:hover:not(.selected),
812
+ .sidenavigation.force-footer-hover .sn-footer:not(.selected) {
809
813
  background-image: linear-gradient(var(--sidenavigation-hover-tint-enabled), var(--sidenavigation-hover-tint-enabled));
810
814
  --_surface: var(--sidenavigation-footer-hover-surface);
811
815
  --_padding: var(--sidenavigation-footer-hover-padding);
812
816
  --_gap: var(--sidenavigation-footer-hover-gap);
813
- --_indicator: var(--sidenavigation-footer-hover-accent);
814
- --_indicator-width: var(--sidenavigation-footer-hover-accent-width);
817
+ --_indicator: var(--sidenavigation-footer-hover-indicator);
818
+ --_indicator-width: var(--sidenavigation-footer-hover-indicator-width);
815
819
  --_icon: var(--sidenavigation-footer-hover-icon);
816
820
  --_icon-size: var(--sidenavigation-footer-hover-icon-size);
817
821
  --_text: var(--sidenavigation-footer-hover-text);
@@ -821,19 +825,19 @@
821
825
  --_text-line-height: var(--sidenavigation-footer-hover-text-line-height);
822
826
  }
823
827
 
824
- .sn-footer.active,
825
- .sidenavigation.force-footer-active .sn-footer {
826
- --_surface: var(--sidenavigation-footer-active-surface);
827
- --_padding: var(--sidenavigation-footer-active-padding);
828
- --_gap: var(--sidenavigation-footer-active-gap);
829
- --_indicator: var(--sidenavigation-footer-active-accent);
830
- --_indicator-width: var(--sidenavigation-footer-active-accent-width);
831
- --_icon: var(--sidenavigation-footer-active-icon);
832
- --_icon-size: var(--sidenavigation-footer-active-icon-size);
833
- --_text: var(--sidenavigation-footer-active-text);
834
- --_text-family: var(--sidenavigation-footer-active-text-font-family);
835
- --_text-size: var(--sidenavigation-footer-active-text-font-size);
836
- --_text-weight: var(--sidenavigation-footer-active-text-font-weight);
837
- --_text-line-height: var(--sidenavigation-footer-active-text-line-height);
828
+ .sn-footer.selected,
829
+ .sidenavigation.force-footer-selected .sn-footer {
830
+ --_surface: var(--sidenavigation-footer-selected-surface);
831
+ --_padding: var(--sidenavigation-footer-selected-padding);
832
+ --_gap: var(--sidenavigation-footer-selected-gap);
833
+ --_indicator: var(--sidenavigation-footer-selected-indicator);
834
+ --_indicator-width: var(--sidenavigation-footer-selected-indicator-width);
835
+ --_icon: var(--sidenavigation-footer-selected-icon);
836
+ --_icon-size: var(--sidenavigation-footer-selected-icon-size);
837
+ --_text: var(--sidenavigation-footer-selected-text);
838
+ --_text-family: var(--sidenavigation-footer-selected-text-font-family);
839
+ --_text-size: var(--sidenavigation-footer-selected-text-font-size);
840
+ --_text-weight: var(--sidenavigation-footer-selected-text-font-weight);
841
+ --_text-line-height: var(--sidenavigation-footer-selected-text-line-height);
838
842
  }
839
843
  </style>