@motion-proto/live-tokens 0.1.1 → 0.3.2

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 (224) hide show
  1. package/README.md +168 -21
  2. package/dist-plugin/index.cjs +823 -336
  3. package/dist-plugin/index.d.cts +9 -7
  4. package/dist-plugin/index.d.ts +9 -7
  5. package/dist-plugin/index.js +822 -335
  6. package/package.json +46 -20
  7. package/src/assets/newspaper.webp +0 -0
  8. package/src/assets/offering.webp +0 -0
  9. package/src/component-editor/BadgeEditor.svelte +170 -0
  10. package/src/component-editor/CalloutEditor.svelte +103 -0
  11. package/src/component-editor/CardEditor.svelte +184 -0
  12. package/src/component-editor/CollapsibleSectionEditor.svelte +167 -0
  13. package/src/component-editor/CornerBadgeEditor.svelte +207 -0
  14. package/src/component-editor/DialogEditor.svelte +172 -0
  15. package/src/component-editor/ImageEditor.svelte +72 -0
  16. package/src/component-editor/InlineEditActionsEditor.svelte +83 -0
  17. package/src/component-editor/NotificationEditor.svelte +160 -0
  18. package/src/component-editor/ProgressBarEditor.svelte +124 -0
  19. package/src/component-editor/RadioButtonEditor.svelte +140 -0
  20. package/src/component-editor/SectionDividerEditor.svelte +263 -0
  21. package/src/component-editor/SegmentedControlEditor.svelte +154 -0
  22. package/src/component-editor/StandardButtonsEditor.svelte +178 -0
  23. package/src/component-editor/TabBarEditor.svelte +137 -0
  24. package/src/component-editor/TableEditor.svelte +128 -0
  25. package/src/component-editor/TooltipEditor.svelte +122 -0
  26. package/src/component-editor/editorTokens.test.ts +93 -0
  27. package/src/component-editor/groupKeySlots.test.ts +67 -0
  28. package/src/component-editor/groupKeySnapshot.test.ts +52 -0
  29. package/src/component-editor/index.ts +5 -0
  30. package/src/component-editor/registry.ts +246 -0
  31. package/src/component-editor/scaffolding/AngleDial.svelte +185 -0
  32. package/src/component-editor/scaffolding/ComponentEditorBase.svelte +96 -0
  33. package/src/component-editor/scaffolding/ComponentFileManager.svelte +682 -0
  34. package/src/component-editor/scaffolding/ComponentFileMenu.svelte +312 -0
  35. package/src/component-editor/scaffolding/ComponentsTab.svelte +69 -0
  36. package/src/component-editor/scaffolding/CopyFromMenu.svelte +246 -0
  37. package/src/component-editor/scaffolding/DemoHeader.svelte +21 -0
  38. package/src/component-editor/scaffolding/DividerEditor.svelte +81 -0
  39. package/src/component-editor/scaffolding/FieldsetWrapper.svelte +46 -0
  40. package/src/component-editor/scaffolding/GradientCard.svelte +291 -0
  41. package/src/component-editor/scaffolding/LinkageChart.svelte +297 -0
  42. package/src/component-editor/scaffolding/LinkedBlock.svelte +418 -0
  43. package/src/component-editor/scaffolding/NonStylableConfig.svelte +57 -0
  44. package/src/component-editor/scaffolding/SaveAsDialog.svelte +177 -0
  45. package/src/component-editor/scaffolding/ShadowBackdrop.svelte +25 -0
  46. package/src/component-editor/scaffolding/ShadowBackdropControls.svelte +56 -0
  47. package/src/component-editor/scaffolding/StateBlock.svelte +115 -0
  48. package/src/component-editor/scaffolding/TokenLayout.svelte +511 -0
  49. package/src/component-editor/scaffolding/TypeEditor.svelte +82 -0
  50. package/src/component-editor/scaffolding/VariantGroup.svelte +277 -0
  51. package/src/component-editor/scaffolding/buildTypeGroupTokens.ts +97 -0
  52. package/src/component-editor/scaffolding/componentSectionType.ts +8 -0
  53. package/src/component-editor/scaffolding/componentSources.ts +9 -0
  54. package/src/component-editor/scaffolding/defaultSections.ts +16 -0
  55. package/src/component-editor/scaffolding/editorContext.ts +44 -0
  56. package/src/component-editor/scaffolding/linkedBlock.ts +226 -0
  57. package/src/component-editor/scaffolding/siblings.ts +33 -0
  58. package/src/component-editor/scaffolding/types.ts +39 -0
  59. package/src/components/Badge.svelte +231 -42
  60. package/src/components/Button.svelte +324 -124
  61. package/src/components/Callout.svelte +145 -0
  62. package/src/components/Card.svelte +123 -25
  63. package/src/components/CollapsibleSection.svelte +213 -35
  64. package/src/components/CornerBadge.svelte +224 -0
  65. package/src/components/Dialog.svelte +137 -114
  66. package/src/components/Image.svelte +43 -0
  67. package/src/components/InlineEditActions.svelte +74 -14
  68. package/src/components/Notification.svelte +184 -163
  69. package/src/components/ProgressBar.svelte +216 -22
  70. package/src/components/RadioButton.svelte +110 -40
  71. package/src/components/SectionDivider.svelte +428 -74
  72. package/src/components/SegmentedControl.svelte +203 -0
  73. package/src/components/TabBar.svelte +146 -21
  74. package/src/components/Table.svelte +102 -0
  75. package/src/components/Tooltip.svelte +45 -19
  76. package/src/components/types.ts +51 -0
  77. package/src/data/google-fonts.json +75 -0
  78. package/src/lib/ColumnsOverlay.svelte +20 -7
  79. package/src/lib/LiveEditorOverlay.svelte +257 -78
  80. package/src/lib/columnsOverlay.ts +21 -17
  81. package/src/lib/componentConfig.test.ts +204 -0
  82. package/src/lib/componentConfigKeys.ts +19 -0
  83. package/src/lib/componentConfigService.ts +88 -0
  84. package/src/lib/copyPopover.ts +30 -0
  85. package/src/lib/cssVarSync.ts +59 -7
  86. package/src/lib/editorConfigStore.ts +0 -10
  87. package/src/lib/editorCore.ts +402 -0
  88. package/src/lib/editorKeybindings.ts +52 -0
  89. package/src/lib/editorPersistence.ts +106 -0
  90. package/src/lib/editorRenderer.ts +74 -0
  91. package/src/lib/editorStore.test.ts +328 -0
  92. package/src/lib/editorStore.ts +412 -0
  93. package/src/lib/editorTypes.ts +100 -0
  94. package/src/lib/editorViewStore.ts +55 -0
  95. package/src/lib/files/versionedFileResource.ts +140 -0
  96. package/src/lib/fontLoader.ts +130 -0
  97. package/src/lib/fontMigration.ts +140 -0
  98. package/src/lib/fontParse.ts +168 -0
  99. package/src/lib/index.ts +48 -30
  100. package/src/lib/lazyConfig.test.ts +54 -0
  101. package/src/lib/migrations/2026-04-24-component-prefix-and-suffix-renames.ts +64 -0
  102. package/src/lib/migrations/2026-04-24-legacy-keys-and-bg-to-canvas.ts +71 -0
  103. package/src/lib/migrations/2026-04-27-segmentedcontrol-disabled-flatten.ts +43 -0
  104. package/src/lib/migrations/2026-05-08-collapsiblesection-frame-and-cleanup.ts +68 -0
  105. package/src/lib/migrations/2026-05-08-collapsiblesection-variant-namespace.ts +35 -0
  106. package/src/lib/migrations/2026-05-10-sectiondivider-gradient-stops.ts +50 -0
  107. package/src/lib/migrations/2026-05-13-primary-to-brand.ts +90 -0
  108. package/src/lib/migrations/index.ts +93 -0
  109. package/src/lib/migrations/migrations.test.ts +341 -0
  110. package/src/lib/navLinkTypes.ts +1 -0
  111. package/src/lib/overlayState.ts +3 -0
  112. package/src/lib/paletteDerivation.ts +300 -0
  113. package/src/lib/parentRouteStore.ts +42 -0
  114. package/src/lib/parsers/globalRootBlock.ts +32 -0
  115. package/src/lib/presetService.ts +94 -0
  116. package/src/lib/router.ts +42 -10
  117. package/src/lib/scrollSection.ts +45 -0
  118. package/src/lib/slices/columns.ts +59 -0
  119. package/src/lib/slices/components.ts +362 -0
  120. package/src/lib/slices/domainVars.ts +15 -0
  121. package/src/lib/slices/fonts.ts +30 -0
  122. package/src/lib/slices/gradients.ts +153 -0
  123. package/src/lib/slices/overlays.ts +132 -0
  124. package/src/lib/slices/palettes.ts +26 -0
  125. package/src/lib/slices/shadows.ts +123 -0
  126. package/src/lib/storage.ts +88 -0
  127. package/src/lib/themeInit.ts +74 -0
  128. package/src/lib/themeService.ts +101 -0
  129. package/src/lib/themeTypes.ts +146 -0
  130. package/src/lib/tokenRegistry.ts +148 -0
  131. package/src/pages/ComponentEditorPage.svelte +384 -0
  132. package/src/pages/ComponentEditorPage.svelte.d.ts +2 -0
  133. package/src/pages/Editor.svelte +98 -0
  134. package/src/pages/Editor.svelte.d.ts +2 -0
  135. package/src/pages/EditorShell.svelte +348 -0
  136. package/src/styles/_padding.scss +34 -0
  137. package/src/styles/fonts/Fraunces/Fraunces-italic-latin-ext.woff2 +0 -0
  138. package/src/styles/fonts/Fraunces/Fraunces-italic-latin.woff2 +0 -0
  139. package/src/styles/fonts/Fraunces/Fraunces-roman-latin-ext.woff2 +0 -0
  140. package/src/styles/fonts/Fraunces/Fraunces-roman-latin.woff2 +0 -0
  141. package/src/styles/fonts/Manrope/Manrope-latin-ext.woff2 +0 -0
  142. package/src/styles/fonts/Manrope/Manrope-latin.woff2 +0 -0
  143. package/src/styles/fonts.css +22 -10
  144. package/src/styles/form-controls.css +14 -16
  145. package/src/styles/tokens.css +1322 -0
  146. package/src/styles/ui-editor.css +126 -0
  147. package/src/{showcase → ui}/BezierCurveEditor.svelte +14 -14
  148. package/src/{showcase → ui}/ColorEditPanel.svelte +42 -36
  149. package/src/ui/EditorViewSwitcher.svelte +180 -0
  150. package/src/ui/FontStackEditor.svelte +360 -0
  151. package/src/ui/GradientEditor.svelte +461 -0
  152. package/src/ui/GradientStopPicker.svelte +74 -0
  153. package/src/ui/PaletteEditor.svelte +1590 -0
  154. package/src/ui/PaletteEditor.test.ts +108 -0
  155. package/src/ui/PresetFileManager.svelte +567 -0
  156. package/src/ui/ProjectFontsSection.svelte +645 -0
  157. package/src/{showcase → ui}/SurfacesTab.svelte +39 -39
  158. package/src/{showcase → ui}/TextTab.svelte +27 -27
  159. package/src/{showcase/TokenFileManager.svelte → ui/ThemeFileManager.svelte} +196 -112
  160. package/src/ui/Toggle.svelte +108 -0
  161. package/src/ui/UICopyPopover.svelte +78 -0
  162. package/src/{showcase/EditorDialog.svelte → ui/UIDialog.svelte} +66 -25
  163. package/src/ui/UIFontFamilySelector.svelte +309 -0
  164. package/src/ui/UIFontSizeSelector.svelte +165 -0
  165. package/src/ui/UIFontWeightSelector.svelte +52 -0
  166. package/src/ui/UILineHeightSelector.svelte +47 -0
  167. package/src/ui/UILinkToggle.svelte +60 -0
  168. package/src/ui/UIOptionItem.svelte +74 -0
  169. package/src/ui/UIOptionList.svelte +27 -0
  170. package/src/ui/UIPaddingSelector.svelte +661 -0
  171. package/src/ui/UIPaletteSelector.svelte +1084 -0
  172. package/src/ui/UIRadio.svelte +72 -0
  173. package/src/ui/UIRadioGroup.svelte +59 -0
  174. package/src/ui/UIRelinkConfirmPopover.svelte +235 -0
  175. package/src/ui/UITokenSelector.svelte +509 -0
  176. package/src/ui/UIVariantSelector.svelte +145 -0
  177. package/src/ui/VariablesTab.svelte +252 -0
  178. package/src/ui/index.ts +31 -0
  179. package/src/ui/keepInViewport.ts +84 -0
  180. package/src/ui/palette/GradientStopEditor.svelte +482 -0
  181. package/src/ui/palette/OverridesPanel.svelte +526 -0
  182. package/src/ui/palette/PaletteBase.svelte +165 -0
  183. package/src/ui/palette/ScaleCurveEditor.svelte +38 -0
  184. package/src/ui/palette/paletteEditorState.ts +89 -0
  185. package/src/ui/sections/ColumnsSection.svelte +273 -0
  186. package/src/ui/sections/GradientsSection.svelte +147 -0
  187. package/src/ui/sections/OverlaysSection.svelte +670 -0
  188. package/src/ui/sections/ShadowsSection.svelte +1250 -0
  189. package/src/ui/sections/TokenScaleTable.svelte +332 -0
  190. package/src/ui/sections/tokenScales.ts +81 -0
  191. package/src/ui/variantScales.ts +108 -0
  192. package/src/components/DetailNav.svelte +0 -78
  193. package/src/components/Toggle.svelte +0 -86
  194. package/src/lib/tokenInit.ts +0 -29
  195. package/src/lib/tokenService.ts +0 -144
  196. package/src/lib/tokenTypes.ts +0 -45
  197. package/src/pages/Admin.svelte +0 -100
  198. package/src/pages/ShowcasePage.svelte +0 -144
  199. package/src/showcase/BackupBrowser.svelte +0 -617
  200. package/src/showcase/ComponentsTab.svelte +0 -105
  201. package/src/showcase/PaletteEditor.svelte +0 -2579
  202. package/src/showcase/PaletteSelector.svelte +0 -627
  203. package/src/showcase/TokenMap.svelte +0 -54
  204. package/src/showcase/VariablesTab.svelte +0 -2655
  205. package/src/showcase/VisualsTab.svelte +0 -231
  206. package/src/showcase/demos/BadgeDemo.svelte +0 -56
  207. package/src/showcase/demos/CardDemo.svelte +0 -50
  208. package/src/showcase/demos/ChoiceButtonsDemo.svelte +0 -192
  209. package/src/showcase/demos/CollapsibleSectionDemo.svelte +0 -54
  210. package/src/showcase/demos/DialogDemo.svelte +0 -42
  211. package/src/showcase/demos/InlineEditActionsDemo.svelte +0 -25
  212. package/src/showcase/demos/NotificationDemo.svelte +0 -147
  213. package/src/showcase/demos/ProgressBarDemo.svelte +0 -54
  214. package/src/showcase/demos/RadioButtonDemo.svelte +0 -56
  215. package/src/showcase/demos/SectionDividerDemo.svelte +0 -77
  216. package/src/showcase/demos/StandardButtonsDemo.svelte +0 -455
  217. package/src/showcase/demos/TabBarDemo.svelte +0 -58
  218. package/src/showcase/demos/TooltipDemo.svelte +0 -52
  219. package/src/showcase/editor.css +0 -93
  220. package/src/showcase/index.ts +0 -17
  221. package/src/styles/fonts/Domine/Domine-VariableFont_wght.ttf +0 -0
  222. package/src/styles/fonts/Domine/OFL.txt +0 -97
  223. package/src/styles/fonts/Domine/README.txt +0 -66
  224. /package/src/{showcase → ui}/curveEngine.ts +0 -0
@@ -1,121 +1,475 @@
1
1
  <script lang="ts">
2
+ import { onMount, tick } from 'svelte';
3
+
2
4
  export let title: string;
3
5
  export let description: string | undefined = undefined;
4
- export let variant: 'bg' | 'neutral' | 'alternate' | 'primary' | 'accent' | 'special' = 'bg';
6
+ export let variant: 'canvas' | 'neutral' | 'alternate' | 'primary' | 'accent' | 'special' = 'canvas';
7
+
8
+ let svgEl: SVGSVGElement | undefined;
9
+ let svgTextEl: SVGTextElement | undefined;
10
+ let svgW = 0;
11
+ let svgH = 0;
12
+ let svgX = 0;
13
+ let svgY = 0;
14
+
15
+ // feMorphology radius and feFlood flood-color are non-presentation attributes:
16
+ // they can't read CSS vars. We read the resolved values off the SVG element
17
+ // and push them onto the filter primitives, refreshing whenever the editor
18
+ // mutates inline CSS vars on documentElement. Reading the variant-scoped
19
+ // internal `--_divider-title-*` vars (set by the .variant-{v} class) keeps
20
+ // this independent of the variant prop.
21
+ let outlineRadius = '0';
22
+ let outlineColor = '#000';
23
+ // Stable per-instance id so multiple SectionDividers on the same page each
24
+ // bind their <text> to their own filter.
25
+ const filterId = `sd-outline-${Math.random().toString(36).slice(2, 10)}`;
26
+
27
+ function syncFilter(): void {
28
+ if (!svgEl) return;
29
+ const cs = getComputedStyle(svgEl);
30
+ const wPx = parseFloat(cs.getPropertyValue('--_divider-title-border-width'));
31
+ // SVG stroke extends `width/2` on each side; feMorphology radius dilates
32
+ // by `radius` outward — so radius = width/2 gives the same visible outline.
33
+ outlineRadius = String(Number.isFinite(wPx) ? wPx / 2 : 0);
34
+ const c = cs.getPropertyValue('--_divider-title-stroke-color').trim();
35
+ outlineColor = c || '#000';
36
+ }
37
+
38
+ function measure(): void {
39
+ if (!svgTextEl) return;
40
+ const bb = svgTextEl.getBBox();
41
+ // Size the SVG to the glyph bbox exactly and map that bbox onto the
42
+ // canvas via viewBox. Otherwise svgH = bb.y + bb.height carries any
43
+ // empty band between y=0 and the glyph top (and any extra at the
44
+ // bottom of the bbox), leaving the title vertically unbalanced inside
45
+ // the container's symmetric top/bottom padding.
46
+ svgX = bb.x;
47
+ svgY = bb.y;
48
+ svgW = Math.ceil(bb.width);
49
+ svgH = Math.ceil(bb.height);
50
+ }
51
+
52
+ $: if (title) {
53
+ tick().then(() => { measure(); syncFilter(); });
54
+ }
55
+
56
+ onMount(() => {
57
+ measure();
58
+ syncFilter();
59
+ // CSS-var edits (font-size/family/weight) change the rendered bbox but
60
+ // never change the `title` prop — so re-measure on every style mutation
61
+ // alongside the filter sync.
62
+ const obs = new MutationObserver(() => { measure(); syncFilter(); });
63
+ obs.observe(document.documentElement, { attributes: true, attributeFilter: ['style'] });
64
+ return () => obs.disconnect();
65
+ });
5
66
  </script>
6
67
 
7
68
  <div class="section-divider variant-{variant}">
8
- <span class="divider-label">{title}</span>
69
+ <svg
70
+ bind:this={svgEl}
71
+ class="divider-label"
72
+ width={svgW || undefined}
73
+ height={svgH || undefined}
74
+ viewBox={svgW && svgH ? `${svgX} ${svgY} ${svgW} ${svgH}` : undefined}
75
+ aria-label={title}
76
+ role="img"
77
+ >
78
+ <defs>
79
+ <filter id={filterId} x="-50%" y="-50%" width="200%" height="200%">
80
+ <feMorphology in="SourceAlpha" operator="dilate" radius={outlineRadius} result="dilated" />
81
+ <feFlood flood-color={outlineColor} result="color" />
82
+ <feComposite in="color" in2="dilated" operator="in" result="outline" />
83
+ <feComposite in="SourceGraphic" in2="outline" operator="over" />
84
+ </filter>
85
+ </defs>
86
+ <text
87
+ bind:this={svgTextEl}
88
+ x="0"
89
+ y="0"
90
+ dominant-baseline="hanging"
91
+ filter="url(#{filterId})"
92
+ >{title}</text>
93
+ </svg>
9
94
  {#if description}
10
95
  <p class="divider-description">{description}</p>
11
96
  {/if}
12
97
  </div>
13
98
 
14
99
  <style>
100
+ /* Per-variant slots. Properties the editor links across variants
101
+ (typography, padding, outline, radius) ship with identical defaults so
102
+ they read as one linked group out of the box; gradient angle, stop
103
+ colors, and stop positions are authored per variant and are not linked. */
104
+ :global(:root) {
105
+ /* Canvas */
106
+ --sectiondivider-canvas-padding: var(--space-16);
107
+ --sectiondivider-canvas-title: var(--text-primary);
108
+ --sectiondivider-canvas-title-font-family: var(--font-display);
109
+ --sectiondivider-canvas-title-font-size: var(--font-size-5xl);
110
+ --sectiondivider-canvas-title-font-weight: var(--font-weight-normal);
111
+ --sectiondivider-canvas-title-line-height: var(--line-height-tight);
112
+ --sectiondivider-canvas-title-border-width: var(--border-width-4);
113
+ --sectiondivider-canvas-title-stroke-color: var(--surface-canvas-lowest);
114
+ /* Title stroke defaults intentionally diverge per variant — the property
115
+ is linkable but ships unlinked, with each variant matching its own
116
+ surface-lowest so stroke + gradient read as one family. */
117
+ --sectiondivider-canvas-description: var(--text-secondary);
118
+ --sectiondivider-canvas-description-font-family: var(--font-sans);
119
+ --sectiondivider-canvas-description-font-size: var(--font-size-md);
120
+ --sectiondivider-canvas-description-font-weight: var(--font-weight-normal);
121
+ --sectiondivider-canvas-description-line-height: var(--line-height-normal);
122
+ --sectiondivider-canvas-gradient-angle: var(--gradient-angle-diagonal);
123
+ --sectiondivider-canvas-gradient-stop-1-color: var(--surface-canvas-highest);
124
+ --sectiondivider-canvas-gradient-stop-1-position: var(--gradient-stop-start);
125
+ --sectiondivider-canvas-gradient-stop-2-color: var(--surface-canvas-higher);
126
+ --sectiondivider-canvas-gradient-stop-2-position: var(--gradient-stop-mid);
127
+ --sectiondivider-canvas-gradient-stop-3-color: var(--surface-canvas);
128
+ --sectiondivider-canvas-gradient-stop-3-position: var(--gradient-stop-end);
129
+ --sectiondivider-canvas-radius: var(--radius-lg);
130
+ --sectiondivider-canvas-border: var(--color-transparent);
131
+ --sectiondivider-canvas-border-width: var(--border-width-0);
132
+ --sectiondivider-canvas-shadow: var(--shadow-none);
133
+
134
+ /* Neutral */
135
+ --sectiondivider-neutral-padding: var(--space-16);
136
+ --sectiondivider-neutral-title: var(--text-primary);
137
+ --sectiondivider-neutral-title-font-family: var(--font-display);
138
+ --sectiondivider-neutral-title-font-size: var(--font-size-5xl);
139
+ --sectiondivider-neutral-title-font-weight: var(--font-weight-normal);
140
+ --sectiondivider-neutral-title-line-height: var(--line-height-tight);
141
+ --sectiondivider-neutral-title-border-width: var(--border-width-4);
142
+ --sectiondivider-neutral-title-stroke-color: var(--surface-neutral-lowest);
143
+ --sectiondivider-neutral-description: var(--text-secondary);
144
+ --sectiondivider-neutral-description-font-family: var(--font-sans);
145
+ --sectiondivider-neutral-description-font-size: var(--font-size-md);
146
+ --sectiondivider-neutral-description-font-weight: var(--font-weight-normal);
147
+ --sectiondivider-neutral-description-line-height: var(--line-height-normal);
148
+ --sectiondivider-neutral-gradient-angle: var(--gradient-angle-diagonal);
149
+ --sectiondivider-neutral-gradient-stop-1-color: var(--surface-neutral-highest);
150
+ --sectiondivider-neutral-gradient-stop-1-position: var(--gradient-stop-start);
151
+ --sectiondivider-neutral-gradient-stop-2-color: var(--surface-neutral-higher);
152
+ --sectiondivider-neutral-gradient-stop-2-position: var(--gradient-stop-mid);
153
+ --sectiondivider-neutral-gradient-stop-3-color: var(--surface-neutral);
154
+ --sectiondivider-neutral-gradient-stop-3-position: var(--gradient-stop-end);
155
+ --sectiondivider-neutral-radius: var(--radius-lg);
156
+ --sectiondivider-neutral-border: var(--color-transparent);
157
+ --sectiondivider-neutral-border-width: var(--border-width-0);
158
+ --sectiondivider-neutral-shadow: var(--shadow-none);
159
+
160
+ /* Alternate */
161
+ --sectiondivider-alternate-padding: var(--space-16);
162
+ --sectiondivider-alternate-title: var(--text-primary);
163
+ --sectiondivider-alternate-title-font-family: var(--font-display);
164
+ --sectiondivider-alternate-title-font-size: var(--font-size-5xl);
165
+ --sectiondivider-alternate-title-font-weight: var(--font-weight-normal);
166
+ --sectiondivider-alternate-title-line-height: var(--line-height-tight);
167
+ --sectiondivider-alternate-title-border-width: var(--border-width-4);
168
+ --sectiondivider-alternate-title-stroke-color: var(--surface-alternate-lowest);
169
+ --sectiondivider-alternate-description: var(--text-secondary);
170
+ --sectiondivider-alternate-description-font-family: var(--font-sans);
171
+ --sectiondivider-alternate-description-font-size: var(--font-size-md);
172
+ --sectiondivider-alternate-description-font-weight: var(--font-weight-normal);
173
+ --sectiondivider-alternate-description-line-height: var(--line-height-normal);
174
+ --sectiondivider-alternate-gradient-angle: var(--gradient-angle-diagonal);
175
+ --sectiondivider-alternate-gradient-stop-1-color: var(--surface-alternate-highest);
176
+ --sectiondivider-alternate-gradient-stop-1-position: var(--gradient-stop-start);
177
+ --sectiondivider-alternate-gradient-stop-2-color: var(--surface-alternate-higher);
178
+ --sectiondivider-alternate-gradient-stop-2-position: var(--gradient-stop-mid);
179
+ --sectiondivider-alternate-gradient-stop-3-color: var(--surface-alternate);
180
+ --sectiondivider-alternate-gradient-stop-3-position: var(--gradient-stop-end);
181
+ --sectiondivider-alternate-radius: var(--radius-lg);
182
+ --sectiondivider-alternate-border: var(--color-transparent);
183
+ --sectiondivider-alternate-border-width: var(--border-width-0);
184
+ --sectiondivider-alternate-shadow: var(--shadow-none);
185
+
186
+ /* Primary */
187
+ --sectiondivider-primary-padding: var(--space-16);
188
+ --sectiondivider-primary-title: var(--text-primary);
189
+ --sectiondivider-primary-title-font-family: var(--font-display);
190
+ --sectiondivider-primary-title-font-size: var(--font-size-5xl);
191
+ --sectiondivider-primary-title-font-weight: var(--font-weight-normal);
192
+ --sectiondivider-primary-title-line-height: var(--line-height-tight);
193
+ --sectiondivider-primary-title-border-width: var(--border-width-4);
194
+ --sectiondivider-primary-title-stroke-color: var(--surface-brand-lowest);
195
+ --sectiondivider-primary-description: var(--text-secondary);
196
+ --sectiondivider-primary-description-font-family: var(--font-sans);
197
+ --sectiondivider-primary-description-font-size: var(--font-size-md);
198
+ --sectiondivider-primary-description-font-weight: var(--font-weight-normal);
199
+ --sectiondivider-primary-description-line-height: var(--line-height-normal);
200
+ --sectiondivider-primary-gradient-angle: var(--gradient-angle-diagonal);
201
+ --sectiondivider-primary-gradient-stop-1-color: var(--surface-brand-highest);
202
+ --sectiondivider-primary-gradient-stop-1-position: var(--gradient-stop-start);
203
+ --sectiondivider-primary-gradient-stop-2-color: var(--surface-brand-higher);
204
+ --sectiondivider-primary-gradient-stop-2-position: var(--gradient-stop-mid);
205
+ --sectiondivider-primary-gradient-stop-3-color: var(--surface-brand);
206
+ --sectiondivider-primary-gradient-stop-3-position: var(--gradient-stop-end);
207
+ --sectiondivider-primary-radius: var(--radius-lg);
208
+ --sectiondivider-primary-border: var(--color-transparent);
209
+ --sectiondivider-primary-border-width: var(--border-width-0);
210
+ --sectiondivider-primary-shadow: var(--shadow-none);
211
+
212
+ /* Accent */
213
+ --sectiondivider-accent-padding: var(--space-16);
214
+ --sectiondivider-accent-title: var(--text-primary);
215
+ --sectiondivider-accent-title-font-family: var(--font-display);
216
+ --sectiondivider-accent-title-font-size: var(--font-size-5xl);
217
+ --sectiondivider-accent-title-font-weight: var(--font-weight-normal);
218
+ --sectiondivider-accent-title-line-height: var(--line-height-tight);
219
+ --sectiondivider-accent-title-border-width: var(--border-width-4);
220
+ --sectiondivider-accent-title-stroke-color: var(--surface-accent-lowest);
221
+ --sectiondivider-accent-description: var(--text-secondary);
222
+ --sectiondivider-accent-description-font-family: var(--font-sans);
223
+ --sectiondivider-accent-description-font-size: var(--font-size-md);
224
+ --sectiondivider-accent-description-font-weight: var(--font-weight-normal);
225
+ --sectiondivider-accent-description-line-height: var(--line-height-normal);
226
+ --sectiondivider-accent-gradient-angle: var(--gradient-angle-diagonal);
227
+ --sectiondivider-accent-gradient-stop-1-color: var(--surface-accent-highest);
228
+ --sectiondivider-accent-gradient-stop-1-position: var(--gradient-stop-start);
229
+ --sectiondivider-accent-gradient-stop-2-color: var(--surface-accent-higher);
230
+ --sectiondivider-accent-gradient-stop-2-position: var(--gradient-stop-mid);
231
+ --sectiondivider-accent-gradient-stop-3-color: var(--surface-accent);
232
+ --sectiondivider-accent-gradient-stop-3-position: var(--gradient-stop-end);
233
+ --sectiondivider-accent-radius: var(--radius-lg);
234
+ --sectiondivider-accent-border: var(--color-transparent);
235
+ --sectiondivider-accent-border-width: var(--border-width-0);
236
+ --sectiondivider-accent-shadow: var(--shadow-none);
237
+
238
+ /* Special */
239
+ --sectiondivider-special-padding: var(--space-16);
240
+ --sectiondivider-special-title: var(--text-primary);
241
+ --sectiondivider-special-title-font-family: var(--font-display);
242
+ --sectiondivider-special-title-font-size: var(--font-size-5xl);
243
+ --sectiondivider-special-title-font-weight: var(--font-weight-normal);
244
+ --sectiondivider-special-title-line-height: var(--line-height-tight);
245
+ --sectiondivider-special-title-border-width: var(--border-width-4);
246
+ --sectiondivider-special-title-stroke-color: var(--surface-special-lowest);
247
+ --sectiondivider-special-description: var(--text-secondary);
248
+ --sectiondivider-special-description-font-family: var(--font-sans);
249
+ --sectiondivider-special-description-font-size: var(--font-size-md);
250
+ --sectiondivider-special-description-font-weight: var(--font-weight-normal);
251
+ --sectiondivider-special-description-line-height: var(--line-height-normal);
252
+ --sectiondivider-special-gradient-angle: var(--gradient-angle-diagonal);
253
+ --sectiondivider-special-gradient-stop-1-color: var(--surface-special-highest);
254
+ --sectiondivider-special-gradient-stop-1-position: var(--gradient-stop-start);
255
+ --sectiondivider-special-gradient-stop-2-color: var(--surface-special-higher);
256
+ --sectiondivider-special-gradient-stop-2-position: var(--gradient-stop-mid);
257
+ --sectiondivider-special-gradient-stop-3-color: var(--surface-special);
258
+ --sectiondivider-special-gradient-stop-3-position: var(--gradient-stop-end);
259
+ --sectiondivider-special-radius: var(--radius-lg);
260
+ --sectiondivider-special-border: var(--color-transparent);
261
+ --sectiondivider-special-border-width: var(--border-width-0);
262
+ --sectiondivider-special-shadow: var(--shadow-none);
263
+ }
264
+
15
265
  .section-divider {
16
266
  margin: var(--space-24) 0;
17
- padding: var(--space-16) var(--space-24);
18
- border-radius: var(--radius-lg);
19
- background: linear-gradient(135deg,
20
- var(--_divider-1) 0%,
21
- var(--_divider-2) 30%,
22
- var(--_divider-3) 60%,
23
- var(--_divider-4) 100%
267
+ padding: var(--_divider-padding) calc(var(--_divider-padding) * 1.5);
268
+ border-radius: var(--_divider-radius);
269
+ border: var(--_divider-border-width) solid var(--_divider-border);
270
+ box-shadow: var(--_divider-shadow);
271
+ background: linear-gradient(
272
+ var(--_divider-gradient-angle),
273
+ var(--_divider-stop-1-color) var(--_divider-stop-1-position),
274
+ var(--_divider-stop-2-color) var(--_divider-stop-2-position),
275
+ var(--_divider-stop-3-color) var(--_divider-stop-3-position)
24
276
  );
25
277
  }
26
278
 
27
- /* Variant palette mappings */
28
- .variant-bg {
29
- --_divider-1: var(--surface-bg-highest);
30
- --_divider-2: var(--surface-bg-higher);
31
- --_divider-3: var(--surface-bg-high);
32
- --_divider-4: var(--surface-bg);
33
- --_divider-stroke: var(--surface-bg-lowest);
279
+ /* Each variant class collapses its per-variant slots onto one set of
280
+ internal `--_divider-*` vars; the rest of the styles only consume those,
281
+ so adding a variant means adding a class and a :root block. */
282
+ .variant-canvas {
283
+ --_divider-padding: var(--sectiondivider-canvas-padding);
284
+ --_divider-radius: var(--sectiondivider-canvas-radius);
285
+ --_divider-border: var(--sectiondivider-canvas-border);
286
+ --_divider-border-width: var(--sectiondivider-canvas-border-width);
287
+ --_divider-shadow: var(--sectiondivider-canvas-shadow);
288
+ --_divider-gradient-angle: var(--sectiondivider-canvas-gradient-angle);
289
+ --_divider-stop-1-color: var(--sectiondivider-canvas-gradient-stop-1-color);
290
+ --_divider-stop-1-position: var(--sectiondivider-canvas-gradient-stop-1-position);
291
+ --_divider-stop-2-color: var(--sectiondivider-canvas-gradient-stop-2-color);
292
+ --_divider-stop-2-position: var(--sectiondivider-canvas-gradient-stop-2-position);
293
+ --_divider-stop-3-color: var(--sectiondivider-canvas-gradient-stop-3-color);
294
+ --_divider-stop-3-position: var(--sectiondivider-canvas-gradient-stop-3-position);
295
+ --_divider-title: var(--sectiondivider-canvas-title);
296
+ --_divider-title-font-family: var(--sectiondivider-canvas-title-font-family);
297
+ --_divider-title-font-size: var(--sectiondivider-canvas-title-font-size);
298
+ --_divider-title-font-weight: var(--sectiondivider-canvas-title-font-weight);
299
+ --_divider-title-line-height: var(--sectiondivider-canvas-title-line-height);
300
+ --_divider-title-border-width: var(--sectiondivider-canvas-title-border-width);
301
+ --_divider-title-stroke-color: var(--sectiondivider-canvas-title-stroke-color);
302
+ --_divider-description: var(--sectiondivider-canvas-description);
303
+ --_divider-description-font-family: var(--sectiondivider-canvas-description-font-family);
304
+ --_divider-description-font-size: var(--sectiondivider-canvas-description-font-size);
305
+ --_divider-description-font-weight: var(--sectiondivider-canvas-description-font-weight);
306
+ --_divider-description-line-height: var(--sectiondivider-canvas-description-line-height);
34
307
  }
35
308
 
36
309
  .variant-neutral {
37
- --_divider-1: var(--surface-neutral-highest);
38
- --_divider-2: var(--surface-neutral-higher);
39
- --_divider-3: var(--surface-neutral-high);
40
- --_divider-4: var(--surface-neutral);
41
- --_divider-stroke: var(--surface-neutral-lowest);
310
+ --_divider-padding: var(--sectiondivider-neutral-padding);
311
+ --_divider-radius: var(--sectiondivider-neutral-radius);
312
+ --_divider-border: var(--sectiondivider-neutral-border);
313
+ --_divider-border-width: var(--sectiondivider-neutral-border-width);
314
+ --_divider-shadow: var(--sectiondivider-neutral-shadow);
315
+ --_divider-gradient-angle: var(--sectiondivider-neutral-gradient-angle);
316
+ --_divider-stop-1-color: var(--sectiondivider-neutral-gradient-stop-1-color);
317
+ --_divider-stop-1-position: var(--sectiondivider-neutral-gradient-stop-1-position);
318
+ --_divider-stop-2-color: var(--sectiondivider-neutral-gradient-stop-2-color);
319
+ --_divider-stop-2-position: var(--sectiondivider-neutral-gradient-stop-2-position);
320
+ --_divider-stop-3-color: var(--sectiondivider-neutral-gradient-stop-3-color);
321
+ --_divider-stop-3-position: var(--sectiondivider-neutral-gradient-stop-3-position);
322
+ --_divider-title: var(--sectiondivider-neutral-title);
323
+ --_divider-title-font-family: var(--sectiondivider-neutral-title-font-family);
324
+ --_divider-title-font-size: var(--sectiondivider-neutral-title-font-size);
325
+ --_divider-title-font-weight: var(--sectiondivider-neutral-title-font-weight);
326
+ --_divider-title-line-height: var(--sectiondivider-neutral-title-line-height);
327
+ --_divider-title-border-width: var(--sectiondivider-neutral-title-border-width);
328
+ --_divider-title-stroke-color: var(--sectiondivider-neutral-title-stroke-color);
329
+ --_divider-description: var(--sectiondivider-neutral-description);
330
+ --_divider-description-font-family: var(--sectiondivider-neutral-description-font-family);
331
+ --_divider-description-font-size: var(--sectiondivider-neutral-description-font-size);
332
+ --_divider-description-font-weight: var(--sectiondivider-neutral-description-font-weight);
333
+ --_divider-description-line-height: var(--sectiondivider-neutral-description-line-height);
42
334
  }
43
335
 
44
336
  .variant-alternate {
45
- --_divider-1: var(--surface-alternate-highest);
46
- --_divider-2: var(--surface-alternate-higher);
47
- --_divider-3: var(--surface-alternate-high);
48
- --_divider-4: var(--surface-alternate);
49
- --_divider-stroke: var(--surface-alternate-lowest);
337
+ --_divider-padding: var(--sectiondivider-alternate-padding);
338
+ --_divider-radius: var(--sectiondivider-alternate-radius);
339
+ --_divider-border: var(--sectiondivider-alternate-border);
340
+ --_divider-border-width: var(--sectiondivider-alternate-border-width);
341
+ --_divider-shadow: var(--sectiondivider-alternate-shadow);
342
+ --_divider-gradient-angle: var(--sectiondivider-alternate-gradient-angle);
343
+ --_divider-stop-1-color: var(--sectiondivider-alternate-gradient-stop-1-color);
344
+ --_divider-stop-1-position: var(--sectiondivider-alternate-gradient-stop-1-position);
345
+ --_divider-stop-2-color: var(--sectiondivider-alternate-gradient-stop-2-color);
346
+ --_divider-stop-2-position: var(--sectiondivider-alternate-gradient-stop-2-position);
347
+ --_divider-stop-3-color: var(--sectiondivider-alternate-gradient-stop-3-color);
348
+ --_divider-stop-3-position: var(--sectiondivider-alternate-gradient-stop-3-position);
349
+ --_divider-title: var(--sectiondivider-alternate-title);
350
+ --_divider-title-font-family: var(--sectiondivider-alternate-title-font-family);
351
+ --_divider-title-font-size: var(--sectiondivider-alternate-title-font-size);
352
+ --_divider-title-font-weight: var(--sectiondivider-alternate-title-font-weight);
353
+ --_divider-title-line-height: var(--sectiondivider-alternate-title-line-height);
354
+ --_divider-title-border-width: var(--sectiondivider-alternate-title-border-width);
355
+ --_divider-title-stroke-color: var(--sectiondivider-alternate-title-stroke-color);
356
+ --_divider-description: var(--sectiondivider-alternate-description);
357
+ --_divider-description-font-family: var(--sectiondivider-alternate-description-font-family);
358
+ --_divider-description-font-size: var(--sectiondivider-alternate-description-font-size);
359
+ --_divider-description-font-weight: var(--sectiondivider-alternate-description-font-weight);
360
+ --_divider-description-line-height: var(--sectiondivider-alternate-description-line-height);
50
361
  }
51
362
 
52
363
  .variant-primary {
53
- --_divider-1: var(--surface-primary-highest);
54
- --_divider-2: var(--surface-primary-higher);
55
- --_divider-3: var(--surface-primary-high);
56
- --_divider-4: var(--surface-primary);
57
- --_divider-stroke: var(--surface-primary-lowest);
364
+ --_divider-padding: var(--sectiondivider-primary-padding);
365
+ --_divider-radius: var(--sectiondivider-primary-radius);
366
+ --_divider-border: var(--sectiondivider-primary-border);
367
+ --_divider-border-width: var(--sectiondivider-primary-border-width);
368
+ --_divider-shadow: var(--sectiondivider-primary-shadow);
369
+ --_divider-gradient-angle: var(--sectiondivider-primary-gradient-angle);
370
+ --_divider-stop-1-color: var(--sectiondivider-primary-gradient-stop-1-color);
371
+ --_divider-stop-1-position: var(--sectiondivider-primary-gradient-stop-1-position);
372
+ --_divider-stop-2-color: var(--sectiondivider-primary-gradient-stop-2-color);
373
+ --_divider-stop-2-position: var(--sectiondivider-primary-gradient-stop-2-position);
374
+ --_divider-stop-3-color: var(--sectiondivider-primary-gradient-stop-3-color);
375
+ --_divider-stop-3-position: var(--sectiondivider-primary-gradient-stop-3-position);
376
+ --_divider-title: var(--sectiondivider-primary-title);
377
+ --_divider-title-font-family: var(--sectiondivider-primary-title-font-family);
378
+ --_divider-title-font-size: var(--sectiondivider-primary-title-font-size);
379
+ --_divider-title-font-weight: var(--sectiondivider-primary-title-font-weight);
380
+ --_divider-title-line-height: var(--sectiondivider-primary-title-line-height);
381
+ --_divider-title-border-width: var(--sectiondivider-primary-title-border-width);
382
+ --_divider-title-stroke-color: var(--sectiondivider-primary-title-stroke-color);
383
+ --_divider-description: var(--sectiondivider-primary-description);
384
+ --_divider-description-font-family: var(--sectiondivider-primary-description-font-family);
385
+ --_divider-description-font-size: var(--sectiondivider-primary-description-font-size);
386
+ --_divider-description-font-weight: var(--sectiondivider-primary-description-font-weight);
387
+ --_divider-description-line-height: var(--sectiondivider-primary-description-line-height);
58
388
  }
59
389
 
60
390
  .variant-accent {
61
- --_divider-1: var(--surface-accent-highest);
62
- --_divider-2: var(--surface-accent-higher);
63
- --_divider-3: var(--surface-accent-high);
64
- --_divider-4: var(--surface-accent);
65
- --_divider-stroke: var(--surface-accent-lowest);
391
+ --_divider-padding: var(--sectiondivider-accent-padding);
392
+ --_divider-radius: var(--sectiondivider-accent-radius);
393
+ --_divider-border: var(--sectiondivider-accent-border);
394
+ --_divider-border-width: var(--sectiondivider-accent-border-width);
395
+ --_divider-shadow: var(--sectiondivider-accent-shadow);
396
+ --_divider-gradient-angle: var(--sectiondivider-accent-gradient-angle);
397
+ --_divider-stop-1-color: var(--sectiondivider-accent-gradient-stop-1-color);
398
+ --_divider-stop-1-position: var(--sectiondivider-accent-gradient-stop-1-position);
399
+ --_divider-stop-2-color: var(--sectiondivider-accent-gradient-stop-2-color);
400
+ --_divider-stop-2-position: var(--sectiondivider-accent-gradient-stop-2-position);
401
+ --_divider-stop-3-color: var(--sectiondivider-accent-gradient-stop-3-color);
402
+ --_divider-stop-3-position: var(--sectiondivider-accent-gradient-stop-3-position);
403
+ --_divider-title: var(--sectiondivider-accent-title);
404
+ --_divider-title-font-family: var(--sectiondivider-accent-title-font-family);
405
+ --_divider-title-font-size: var(--sectiondivider-accent-title-font-size);
406
+ --_divider-title-font-weight: var(--sectiondivider-accent-title-font-weight);
407
+ --_divider-title-line-height: var(--sectiondivider-accent-title-line-height);
408
+ --_divider-title-border-width: var(--sectiondivider-accent-title-border-width);
409
+ --_divider-title-stroke-color: var(--sectiondivider-accent-title-stroke-color);
410
+ --_divider-description: var(--sectiondivider-accent-description);
411
+ --_divider-description-font-family: var(--sectiondivider-accent-description-font-family);
412
+ --_divider-description-font-size: var(--sectiondivider-accent-description-font-size);
413
+ --_divider-description-font-weight: var(--sectiondivider-accent-description-font-weight);
414
+ --_divider-description-line-height: var(--sectiondivider-accent-description-line-height);
66
415
  }
67
416
 
68
417
  .variant-special {
69
- --_divider-1: var(--surface-special-highest);
70
- --_divider-2: var(--surface-special-higher);
71
- --_divider-3: var(--surface-special-high);
72
- --_divider-4: var(--surface-special);
73
- --_divider-stroke: var(--surface-special-lowest);
418
+ --_divider-padding: var(--sectiondivider-special-padding);
419
+ --_divider-radius: var(--sectiondivider-special-radius);
420
+ --_divider-border: var(--sectiondivider-special-border);
421
+ --_divider-border-width: var(--sectiondivider-special-border-width);
422
+ --_divider-shadow: var(--sectiondivider-special-shadow);
423
+ --_divider-gradient-angle: var(--sectiondivider-special-gradient-angle);
424
+ --_divider-stop-1-color: var(--sectiondivider-special-gradient-stop-1-color);
425
+ --_divider-stop-1-position: var(--sectiondivider-special-gradient-stop-1-position);
426
+ --_divider-stop-2-color: var(--sectiondivider-special-gradient-stop-2-color);
427
+ --_divider-stop-2-position: var(--sectiondivider-special-gradient-stop-2-position);
428
+ --_divider-stop-3-color: var(--sectiondivider-special-gradient-stop-3-color);
429
+ --_divider-stop-3-position: var(--sectiondivider-special-gradient-stop-3-position);
430
+ --_divider-title: var(--sectiondivider-special-title);
431
+ --_divider-title-font-family: var(--sectiondivider-special-title-font-family);
432
+ --_divider-title-font-size: var(--sectiondivider-special-title-font-size);
433
+ --_divider-title-font-weight: var(--sectiondivider-special-title-font-weight);
434
+ --_divider-title-line-height: var(--sectiondivider-special-title-line-height);
435
+ --_divider-title-border-width: var(--sectiondivider-special-title-border-width);
436
+ --_divider-title-stroke-color: var(--sectiondivider-special-title-stroke-color);
437
+ --_divider-description: var(--sectiondivider-special-description);
438
+ --_divider-description-font-family: var(--sectiondivider-special-description-font-family);
439
+ --_divider-description-font-size: var(--sectiondivider-special-description-font-size);
440
+ --_divider-description-font-weight: var(--sectiondivider-special-description-font-weight);
441
+ --_divider-description-line-height: var(--sectiondivider-special-description-line-height);
74
442
  }
75
443
 
76
- .divider-label {
444
+ /* Title rendered as a single <text> through a feMorphology dilate + flood +
445
+ composite filter. Dilating the alpha treats all glyphs as one combined
446
+ shape, so neighbor-glyph overlaps (CQ, AC etc.) merge into a single
447
+ outline instead of double-stacking. Filter values are pushed onto
448
+ <feMorphology>/<feFlood> from JS — those attrs can't read CSS vars. */
449
+ svg.divider-label {
77
450
  display: block;
78
- font-family: var(--font-display);
79
- font-size: var(--font-5xl);
80
- line-height: 1.05;
81
- color: #fff;
82
- overflow-wrap: break-word;
83
- word-wrap: break-word;
84
- hyphens: auto;
85
- text-shadow:
86
- -4px -4px 0 var(--_divider-stroke),
87
- 4px -4px 0 var(--_divider-stroke),
88
- -4px 4px 0 var(--_divider-stroke),
89
- 4px 4px 0 var(--_divider-stroke),
90
- 0 -4px 0 var(--_divider-stroke),
91
- 0 4px 0 var(--_divider-stroke),
92
- -4px 0 0 var(--_divider-stroke),
93
- 4px 0 0 var(--_divider-stroke);
451
+ overflow: visible;
452
+ color: var(--_divider-title);
453
+ }
454
+ svg.divider-label text {
455
+ font-family: var(--_divider-title-font-family);
456
+ font-size: var(--_divider-title-font-size);
457
+ font-weight: var(--_divider-title-font-weight);
458
+ fill: currentColor;
94
459
  }
95
460
 
96
461
  .divider-description {
97
462
  margin: var(--space-4) 0 0;
98
- font-family: var(--font-sans);
99
- font-size: var(--font-md);
100
- color: rgba(255, 255, 255, 0.8);
101
- line-height: var(--line-height-normal);
463
+ font-family: var(--_divider-description-font-family);
464
+ font-size: var(--_divider-description-font-size);
465
+ font-weight: var(--_divider-description-font-weight);
466
+ line-height: var(--_divider-description-line-height);
467
+ color: var(--_divider-description);
102
468
  }
103
469
 
104
470
  @media (max-width: 600px) {
105
471
  .section-divider {
106
472
  padding: var(--space-12) var(--space-16);
107
473
  }
108
-
109
- .divider-label {
110
- text-shadow:
111
- -2px -2px 0 var(--_divider-stroke),
112
- 2px -2px 0 var(--_divider-stroke),
113
- -2px 2px 0 var(--_divider-stroke),
114
- 2px 2px 0 var(--_divider-stroke),
115
- 0 -2px 0 var(--_divider-stroke),
116
- 0 2px 0 var(--_divider-stroke),
117
- -2px 0 0 var(--_divider-stroke),
118
- 2px 0 0 var(--_divider-stroke);
119
- }
120
474
  }
121
475
  </style>