@pure-ds/storybook 0.4.16 → 0.4.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/.storybook/addons/html-preview/Panel.jsx +71 -20
  2. package/dist/pds-reference.json +2 -7
  3. package/package.json +2 -2
  4. package/public/assets/js/app.js +617 -10565
  5. package/public/assets/js/lit.js +3 -1048
  6. package/public/assets/js/pds.js +396 -7354
  7. package/public/assets/pds/components/pds-calendar.js +1 -1
  8. package/public/assets/pds/custom-elements.json +263 -18
  9. package/public/assets/pds/pds-runtime-config.json +1 -1
  10. package/public/assets/pds/styles/pds-components.css +83 -221
  11. package/public/assets/pds/styles/pds-components.css.js +166 -442
  12. package/public/assets/pds/styles/pds-styles.css +240 -437
  13. package/public/assets/pds/styles/pds-styles.css.js +479 -881
  14. package/public/assets/pds/styles/pds-utilities.css +151 -214
  15. package/public/assets/pds/styles/pds-utilities.css.js +302 -428
  16. package/src/js/pds-core/pds-generator.js +88 -38
  17. package/src/js/pds-core/pds-ontology.js +1 -1
  18. package/stories/components/PdsCalendar.stories.js +2 -2
  19. package/stories/components/PdsDrawer.stories.js +15 -15
  20. package/stories/components/PdsJsonform.stories.js +78 -0
  21. package/stories/components/PdsRichtext.stories.js +4 -17
  22. package/stories/components/PdsScrollrow.stories.js +224 -72
  23. package/stories/components/PdsSplitpanel.stories.js +63 -28
  24. package/stories/components/PdsTabstrip.stories.js +7 -7
  25. package/stories/enhancements/Accordion.stories.js +2 -2
  26. package/stories/enhancements/Dropdowns.stories.js +13 -10
  27. package/stories/enhancements/RangeSliders.stories.js +9 -9
  28. package/stories/enhancements/RequiredFields.stories.js +8 -8
  29. package/stories/enhancements/Toggles.stories.js +45 -36
  30. package/stories/enhancements/_enhancement-header.js +2 -2
  31. package/stories/foundations/Colors.stories.js +13 -13
  32. package/stories/foundations/HTMLDefaults.stories.js +4 -4
  33. package/stories/foundations/Icons.stories.js +123 -288
  34. package/stories/foundations/MeshGradients.stories.js +161 -250
  35. package/stories/foundations/SmartSurfaces.stories.js +147 -64
  36. package/stories/foundations/Spacing.stories.js +30 -30
  37. package/stories/foundations/Typography.stories.js +352 -723
  38. package/stories/foundations/ZIndex.stories.js +124 -141
  39. package/stories/layout/LayoutOverview.stories.js +343 -250
  40. package/stories/layout/LayoutSystem.stories.js +60 -76
  41. package/stories/patterns/InteractiveStates.stories.js +29 -29
  42. package/stories/patterns/Utilities.stories.js +17 -5
  43. package/stories/primitives/Alerts.stories.js +6 -6
  44. package/stories/primitives/Cards.stories.js +22 -11
  45. package/stories/primitives/Forms.stories.js +17 -8
  46. package/stories/primitives/Media.stories.js +23 -20
  47. package/stories/utilities/Backdrop.stories.js +68 -27
  48. package/stories/utils/PdsAsk.stories.js +1 -1
  49. package/public/assets/js/app.js.map +0 -7
  50. package/public/assets/js/lit.js.map +0 -7
  51. package/public/assets/js/pds.js.map +0 -7
@@ -1,25 +1,68 @@
1
- import { html } from 'lit';
1
+ import { html } from "lit";
2
+
3
+ // Story-specific styles for smart surfaces demos
4
+ const smartSurfacesStoryStyles = html`
5
+ <style>
6
+ .story-translucent-container {
7
+ position: relative;
8
+ padding: var(--spacing-8);
9
+ border-radius: var(--radius-lg);
10
+ overflow: hidden;
11
+ }
12
+ .story-translucent-bg {
13
+ position: absolute;
14
+ inset: 0;
15
+ width: 100%;
16
+ height: 100%;
17
+ object-fit: cover;
18
+ z-index: 0;
19
+ }
20
+ .story-translucent-content {
21
+ position: relative;
22
+ z-index: 1;
23
+ }
24
+ .story-border-current {
25
+ border-color: currentColor;
26
+ }
27
+ </style>
28
+ `;
2
29
 
3
30
  export default {
4
- title: 'Foundations/Smart Surfaces',
5
- tags: ['surface', 'background', 'theming', 'contrast', 'elevated'],
31
+ title: "Foundations/Smart Surfaces",
32
+ tags: ["surface", "background", "theming", "contrast", "elevated"],
6
33
  parameters: {
7
34
  pds: {
8
- tags: ['surface', 'background', 'theming', 'contrast', 'elevated', 'subtle', 'sunken', 'overlay', 'inverse', 'colors', 'layout']
35
+ tags: [
36
+ "surface",
37
+ "background",
38
+ "theming",
39
+ "contrast",
40
+ "elevated",
41
+ "subtle",
42
+ "sunken",
43
+ "overlay",
44
+ "inverse",
45
+ "colors",
46
+ "layout",
47
+ ],
9
48
  },
10
49
  docs: {
11
50
  description: {
12
- component: 'Smart surface system that automatically adapts text, icons, shadows, and borders based on backgrounds. Maintains WCAG AA contrast ratios automatically.'
13
- }
14
- }
15
- }
51
+ component:
52
+ "Smart surface system that automatically adapts text, icons, shadows, and borders based on backgrounds. Maintains WCAG AA contrast ratios automatically.",
53
+ },
54
+ },
55
+ },
16
56
  };
17
57
 
18
58
  export const SurfaceVariants = () => html`
19
59
  <div class="card stack-md">
20
60
  <h2>Surface Variants</h2>
21
- <p class="text-muted">All surfaces automatically adjust text, icon, shadow, and border colors to maintain proper contrast.</p>
22
-
61
+ <p class="text-muted">
62
+ All surfaces automatically adjust text, icon, shadow, and border colors to
63
+ maintain proper contrast.
64
+ </p>
65
+
23
66
  <div class="grid grid-auto-sm gap-md">
24
67
  <div class="card surface-base stack-md">
25
68
  <strong class="flex items-center gap-xs">
@@ -29,7 +72,7 @@ export const SurfaceVariants = () => html`
29
72
  <p>Default background with auto-adjusted text and icons</p>
30
73
  <button class="btn-primary">Button</button>
31
74
  </div>
32
-
75
+
33
76
  <div class="card surface-subtle stack-md">
34
77
  <strong class="flex items-center gap-xs">
35
78
  <pds-icon icon="square"></pds-icon>
@@ -38,7 +81,7 @@ export const SurfaceVariants = () => html`
38
81
  <p>Slightly different tone for visual hierarchy</p>
39
82
  <button class="btn-secondary">Button</button>
40
83
  </div>
41
-
84
+
42
85
  <div class="card surface-elevated stack-md">
43
86
  <strong class="flex items-center gap-xs">
44
87
  <pds-icon icon="arrow-up"></pds-icon>
@@ -47,7 +90,7 @@ export const SurfaceVariants = () => html`
47
90
  <p>Raised with smart shadows that adapt in dark mode</p>
48
91
  <button class="btn-primary">Button</button>
49
92
  </div>
50
-
93
+
51
94
  <div class="card surface-overlay stack-md">
52
95
  <strong class="flex items-center gap-xs">
53
96
  <pds-icon icon="desktop"></pds-icon>
@@ -60,26 +103,29 @@ export const SurfaceVariants = () => html`
60
103
  </div>
61
104
  `;
62
105
 
63
- SurfaceVariants.storyName = 'Surface Variants';
106
+ SurfaceVariants.storyName = "Surface Variants";
64
107
 
65
108
  export const ContextAwareShadows = () => html`
66
- <div class="card stack-md">
109
+ <div class="stack-md">
67
110
  <h2>Context-Aware Shadows</h2>
68
- <p class="text-muted">Shadows automatically invert in dark mode: dark shadows on light surfaces, light shadows on dark surfaces.</p>
69
-
111
+ <p class="text-muted">
112
+ Shadows automatically invert in dark mode: dark shadows on light surfaces,
113
+ light shadows on dark surfaces.
114
+ </p>
115
+
70
116
  <div class="grid grid-auto-sm gap-lg">
71
117
  <div class="card shadow-sm surface-elevated text-center stack-md">
72
118
  <pds-icon icon="feather" size="lg"></pds-icon>
73
119
  <strong>Small</strong>
74
120
  <small class="text-muted">--shadow-sm</small>
75
121
  </div>
76
-
122
+
77
123
  <div class="card shadow-md surface-elevated text-center stack-md">
78
124
  <pds-icon icon="grid-four" size="lg"></pds-icon>
79
125
  <strong>Medium</strong>
80
126
  <small class="text-muted">--shadow-md</small>
81
127
  </div>
82
-
128
+
83
129
  <div class="card shadow-lg surface-elevated text-center stack-md">
84
130
  <pds-icon icon="rocket" size="lg"></pds-icon>
85
131
  <strong>Large</strong>
@@ -89,19 +135,25 @@ export const ContextAwareShadows = () => html`
89
135
  </div>
90
136
  `;
91
137
 
92
- ContextAwareShadows.storyName = 'Context-Aware Shadows';
138
+ ContextAwareShadows.storyName = "Context-Aware Shadows";
93
139
 
94
140
  export const NestedSurfaces = () => html`
95
141
  <div class="card stack-md">
96
142
  <h2>Nested Surfaces</h2>
97
- <p class="text-muted">Surfaces can be nested infinitely. Each level maintains proper contrast and visual hierarchy automatically.</p>
98
-
143
+ <p class="text-muted">
144
+ Surfaces can be nested infinitely. Each level maintains proper contrast
145
+ and visual hierarchy automatically.
146
+ </p>
147
+
99
148
  <div class="card surface-base stack-md">
100
149
  <h4 class="flex items-center gap-xs">
101
150
  <pds-icon icon="circle"></pds-icon>
102
151
  Level 1: Base Surface
103
152
  </h4>
104
- <p>Notice how icons and text adapt at each nesting level to maintain readability.</p>
153
+ <p>
154
+ Notice how icons and text adapt at each nesting level to maintain
155
+ readability.
156
+ </p>
105
157
 
106
158
  <div class="card surface-elevated stack-md">
107
159
  <h5 class="flex items-center gap-xs">
@@ -143,20 +195,26 @@ export const NestedSurfaces = () => html`
143
195
  </div>
144
196
  `;
145
197
 
146
- NestedSurfaces.storyName = 'Nested Surfaces';
198
+ NestedSurfaces.storyName = "Nested Surfaces";
147
199
 
148
200
  export const SurfaceInversion = () => html`
149
201
  <div class="card stack-md">
150
202
  <h2>Surface Inversion</h2>
151
- <p class="text-muted">The smart surface system automatically inverts text and icon colors on contrasting backgrounds. Toggle dark mode to see the magic!</p>
152
-
203
+ <p class="text-muted">
204
+ The smart surface system automatically inverts text and icon colors on
205
+ contrasting backgrounds. Toggle dark mode to see the magic!
206
+ </p>
207
+
153
208
  <div class="grid grid-auto-md gap-md">
154
209
  <div class="card surface-inverse stack-md">
155
210
  <h4 class="flex items-center gap-xs">
156
211
  <pds-icon icon="moon"></pds-icon>
157
212
  Automatic Inversion
158
213
  </h4>
159
- <p>This inverted surface automatically uses contrasting text and icons for perfect readability</p>
214
+ <p>
215
+ This inverted surface automatically uses contrasting text and icons
216
+ for perfect readability
217
+ </p>
160
218
  <button class="btn-primary">Primary Button</button>
161
219
  </div>
162
220
 
@@ -166,36 +224,45 @@ export const SurfaceInversion = () => html`
166
224
  Overlay Surface
167
225
  </h4>
168
226
  <p>Text and icons auto-adapt to maintain WCAG AA contrast</p>
169
- <button class="btn-secondary">Secondary Button
170
- </button>
227
+ <button class="btn-secondary">Secondary Button</button>
171
228
  </div>
172
229
  </div>
173
230
  </div>
174
231
  `;
175
232
 
176
- SurfaceInversion.storyName = 'Surface Inversion';
233
+ SurfaceInversion.storyName = "Surface Inversion";
177
234
 
178
235
  export const BorderGradients = () => html`
179
236
  <div class="card stack-md">
180
237
  <h2>Surface Border Effects</h2>
181
- <p class="text-muted">Advanced border gradient effects for standout surfaces. All gradients are animated and adapt to your theme.</p>
182
-
238
+ <p class="text-muted">
239
+ Advanced border gradient effects for standout surfaces. All gradients are
240
+ animated and adapt to your theme.
241
+ </p>
242
+
183
243
  <div class="grid grid-auto-md gap-lg">
184
244
  <article class="card border-gradient stack-md">
185
245
  <h3>Default Gradient</h3>
186
- <p>A card with a subtle animated border gradient that follows your color palette.</p>
246
+ <p>
247
+ A card with a subtle animated border gradient that follows your color
248
+ palette.
249
+ </p>
187
250
  <code class="text-muted">.border-gradient</code>
188
251
  </article>
189
252
 
190
253
  <article class="card border-gradient-primary stack-md">
191
254
  <h3>Primary Gradient</h3>
192
- <p>Border gradient using the primary color scheme for brand emphasis.</p>
255
+ <p>
256
+ Border gradient using the primary color scheme for brand emphasis.
257
+ </p>
193
258
  <code class="text-muted">.border-gradient-primary</code>
194
259
  </article>
195
260
 
196
261
  <article class="card border-gradient-accent stack-md">
197
262
  <h3>Accent Gradient</h3>
198
- <p>Border gradient using the accent color for highlights and attention.</p>
263
+ <p>
264
+ Border gradient using the accent color for highlights and attention.
265
+ </p>
199
266
  <code class="text-muted">.border-gradient-accent</code>
200
267
  </article>
201
268
 
@@ -225,46 +292,53 @@ export const BorderGradients = () => html`
225
292
 
226
293
  <article class="card border-gradient-glow stack-md">
227
294
  <h3>Glowing Border</h3>
228
- <p>A card with a glowing border gradient effect for emphasis and visual interest.</p>
295
+ <p>
296
+ A card with a glowing border gradient effect for emphasis and visual
297
+ interest.
298
+ </p>
229
299
  <code class="text-muted">.border-gradient-glow</code>
230
300
  </article>
231
301
  </div>
232
302
  </div>
233
303
  `;
234
304
 
235
- BorderGradients.storyName = 'Border Gradients';
305
+ BorderGradients.storyName = "Border Gradients";
236
306
 
237
307
  export const TranslucentSurfaces = () => html`
308
+ ${smartSurfacesStoryStyles}
238
309
  <div class="card stack-md">
239
310
  <h2>Translucent Surfaces</h2>
240
- <p class="text-muted">Semi-transparent surfaces for glassmorphism effects and layered UI. Works beautifully over images and gradients.</p>
241
-
242
- <div style="position: relative; padding: var(--spacing-8); border-radius: var(--radius-lg); overflow: hidden;">
243
- <img
244
- src="https://picsum.photos/1200/600?random=10"
245
- alt="Background"
246
- style="position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0;"
311
+ <p class="text-muted">
312
+ Semi-transparent surfaces for glassmorphism effects and layered UI. Works
313
+ beautifully over images and gradients.
314
+ </p>
315
+
316
+ <div class="story-translucent-container">
317
+ <img
318
+ src="https://picsum.photos/1200/600?random=10"
319
+ alt="Background"
320
+ class="story-translucent-bg"
247
321
  />
248
-
249
- <div class="grid grid-auto-md gap-lg" style="position: relative; z-index: 1;">
322
+
323
+ <div class="grid grid-auto-md gap-lg story-translucent-content">
250
324
  <article class="card surface-translucent-25 stack-md backdrop-blur">
251
325
  <h4>.surface-translucent-25</h4>
252
326
  <p>25% opacity - very subtle, mostly transparent</p>
253
327
  <code>--color-surface-translucent-25</code>
254
328
  </article>
255
-
329
+
256
330
  <article class="card surface-translucent-50 stack-md backdrop-blur">
257
331
  <h4>.surface-translucent-50</h4>
258
332
  <p>50% opacity - balanced transparency</p>
259
333
  <code>--color-surface-translucent-50</code>
260
334
  </article>
261
-
335
+
262
336
  <article class="card surface-translucent-75 stack-md backdrop-blur">
263
337
  <h4>.surface-translucent-75</h4>
264
338
  <p>75% opacity - more solid, less see-through</p>
265
339
  <code>--color-surface-translucent-75</code>
266
340
  </article>
267
-
341
+
268
342
  <article class="card surface-translucent stack-md backdrop-blur">
269
343
  <h4>.surface-translucent</h4>
270
344
  <p>Default (50%) - alias for translucent-50</p>
@@ -275,13 +349,16 @@ export const TranslucentSurfaces = () => html`
275
349
  </div>
276
350
  `;
277
351
 
278
- TranslucentSurfaces.storyName = 'Translucent Surfaces';
352
+ TranslucentSurfaces.storyName = "Translucent Surfaces";
279
353
 
280
354
  export const SurfaceInverseExpanded = () => html`
281
355
  <div class="card stack-md">
282
356
  <h2>Inverse Surface Deep Dive</h2>
283
- <p class="text-muted">The <code>.surface-inverse</code> class automatically inverts all text, icon, and border colors for perfect contrast on dark backgrounds.</p>
284
-
357
+ <p class="text-muted">
358
+ The <code>.surface-inverse</code> class automatically inverts all text,
359
+ icon, and border colors for perfect contrast on dark backgrounds.
360
+ </p>
361
+
285
362
  <div class="grid grid-auto-md gap-lg">
286
363
  <article class="card surface-inverse stack-md">
287
364
  <h3 class="flex items-center gap-xs">
@@ -295,14 +372,17 @@ export const SurfaceInverseExpanded = () => html`
295
372
  <button class="btn-secondary">Secondary</button>
296
373
  </div>
297
374
  </article>
298
-
375
+
299
376
  <article class="card surface-inverse stack-md">
300
377
  <h4>Code on Inverse</h4>
301
- <p>Inline <code>code elements</code> also adapt their background for visibility.</p>
378
+ <p>
379
+ Inline <code>code elements</code> also adapt their background for
380
+ visibility.
381
+ </p>
302
382
  <pre><code>// Code blocks work too
303
383
  const example = "Hello!";</code></pre>
304
384
  </article>
305
-
385
+
306
386
  <article class="card surface-inverse stack-md">
307
387
  <h4>Icons on Inverse</h4>
308
388
  <div class="flex gap-md flex-wrap">
@@ -312,20 +392,24 @@ const example = "Hello!";</code></pre>
312
392
  <pds-icon icon="settings" size="lg"></pds-icon>
313
393
  <pds-icon icon="bell" size="lg"></pds-icon>
314
394
  </div>
315
- <small class="text-muted">Icons inherit the correct inverse color automatically.</small>
395
+ <small class="text-muted"
396
+ >Icons inherit the correct inverse color automatically.</small
397
+ >
316
398
  </article>
317
-
399
+
318
400
  <article class="card surface-inverse stack-md">
319
401
  <h4>Form Elements</h4>
320
402
  <label>
321
- <span>Input Field</span>
403
+ <span data-label>Input Field</span>
322
404
  <input type="text" placeholder="Type here..." />
323
405
  </label>
324
- <button class="btn-outline" style="border-color: currentColor;">Outline Button</button>
406
+ <button class="btn-outline story-border-current">
407
+ Outline Button
408
+ </button>
325
409
  </article>
326
410
  </div>
327
-
328
- <article class="card stack-md">
411
+
412
+ <section class="card stack-md">
329
413
  <h3>CSS Variables Set by .surface-inverse</h3>
330
414
  <pre><code>.surface-inverse {
331
415
  background-color: var(--color-surface-inverse);
@@ -336,9 +420,8 @@ const example = "Hello!";</code></pre>
336
420
  --color-surface-muted: rgba(255, 255, 255, 0.08);
337
421
  --color-border: var(--surface-inverse-border);
338
422
  }</code></pre>
339
- </div>
423
+ </section>
340
424
  </div>
341
425
  `;
342
426
 
343
- SurfaceInverseExpanded.storyName = 'Inverse Surface Details';
344
-
427
+ SurfaceInverseExpanded.storyName = "Inverse Surface Details";
@@ -2,30 +2,30 @@ import { html } from 'lit';
2
2
 
3
3
  const spacingStoryStyles = html`
4
4
  <style>
5
- .spacing-story-container {
5
+ .story-spacing-story-container {
6
6
  padding: var(--spacing-8);
7
7
  display: grid;
8
8
  gap: var(--spacing-6);
9
9
  }
10
10
 
11
- .spacing-story-description {
11
+ .story-spacing-story-description {
12
12
  max-width: 64ch;
13
13
  color: var(--surface-text-secondary);
14
14
  }
15
15
 
16
- .spacing-token-grid {
16
+ .story-spacing-token-grid {
17
17
  display: grid;
18
18
  gap: var(--spacing-4);
19
19
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
20
20
  }
21
21
 
22
- .spacing-token-card {
22
+ .story-spacing-token-card {
23
23
  display: flex;
24
24
  flex-direction: column;
25
25
  gap: var(--spacing-2);
26
26
  }
27
27
 
28
- .spacing-token-swatch {
28
+ .story-spacing-token-swatch {
29
29
  border: 1px solid var(--color-border-subtle);
30
30
  border-radius: var(--radius-md);
31
31
  background: var(--color-surface);
@@ -35,24 +35,24 @@ const spacingStoryStyles = html`
35
35
  font-weight: 600;
36
36
  }
37
37
 
38
- .spacing-usage-examples {
38
+ .story-spacing-usage-examples {
39
39
  display: grid;
40
40
  gap: var(--spacing-4);
41
41
  }
42
42
 
43
- .spacing-stack-example {
43
+ .story-spacing-stack-example {
44
44
  display: grid;
45
45
  gap: var(--spacing-3);
46
46
  }
47
47
 
48
- .spacing-inline-example {
48
+ .story-spacing-inline-example {
49
49
  display: flex;
50
50
  flex-wrap: wrap;
51
51
  gap: var(--spacing-3);
52
52
  align-items: flex-start;
53
53
  }
54
54
 
55
- .spacing-inline-chip {
55
+ .story-spacing-inline-chip {
56
56
  padding: var(--spacing-2) var(--spacing-3);
57
57
  border-radius: var(--radius-full);
58
58
  background: var(--surface-bg);
@@ -60,41 +60,41 @@ const spacingStoryStyles = html`
60
60
  font-size: 0.875rem;
61
61
  }
62
62
 
63
- .spacing-demo-card {
63
+ .story-spacing-demo-card {
64
64
  border: 1px dashed var(--color-border-subtle);
65
65
  border-radius: var(--radius-md);
66
66
  background: var(--surface-bg);
67
67
  padding: var(--spacing-4);
68
68
  }
69
69
 
70
- .spacing-demo-card__stack {
70
+ .story-spacing-demo-card__stack {
71
71
  display: grid;
72
72
  gap: var(--spacing-2);
73
73
  }
74
74
 
75
- .spacing-demo-card__bar {
75
+ .story-spacing-demo-card__bar {
76
76
  height: 8px;
77
77
  border-radius: var(--radius-full);
78
78
  background: var(--color-primary-200);
79
79
  }
80
80
 
81
- .spacing-card-spacing-1 {
81
+ .story-spacing-card-spacing-1 {
82
82
  padding: var(--spacing-1);
83
83
  }
84
84
 
85
- .spacing-card-spacing-2 {
85
+ .story-spacing-card-spacing-2 {
86
86
  padding: var(--spacing-2);
87
87
  }
88
88
 
89
- .spacing-card-spacing-3 {
89
+ .story-spacing-card-spacing-3 {
90
90
  padding: var(--spacing-3);
91
91
  }
92
92
 
93
- .spacing-card-spacing-4 {
93
+ .story-spacing-card-spacing-4 {
94
94
  padding: var(--spacing-4);
95
95
  }
96
96
 
97
- .spacing-card-spacing-5 {
97
+ .story-spacing-card-spacing-5 {
98
98
  padding: var(--spacing-5);
99
99
  }
100
100
  </style>
@@ -128,16 +128,16 @@ export const SpacingScale = {
128
128
  render: () => html`
129
129
  ${spacingStoryStyles}
130
130
  <div class="story-container spacing-story-container">
131
- <div class="spacing-story-description">
131
+ <div class="story-spacing-story-description">
132
132
  Spacing tokens provide a consistent, modular scale for layout, component padding, and visual rhythm.
133
133
  Each increment scales proportionally so vertical and horizontal spacing feels balanced throughout the UI.
134
134
  </div>
135
135
 
136
- <section class="spacing-token-grid">
136
+ <section class="story-spacing-token-grid">
137
137
  ${spacingTokens.map(
138
138
  (token) => html`
139
139
  <article class="card spacing-token-card">
140
- <div class="spacing-token-swatch ${token.className}">
140
+ <div class="story-spacing-token-swatch ${token.className}">
141
141
  ${token.token}
142
142
  </div>
143
143
  <div>
@@ -149,26 +149,26 @@ export const SpacingScale = {
149
149
  )}
150
150
  </section>
151
151
 
152
- <section class="spacing-usage-examples">
153
- <div class="spacing-stack-example">
152
+ <section class="story-spacing-usage-examples">
153
+ <div class="story-spacing-stack-example">
154
154
  <h3>Vertical Stacks</h3>
155
155
  <article class="card spacing-demo-card">
156
- <div class="spacing-demo-card__stack">
157
- <div class="spacing-demo-card__bar spacing-card-spacing-1"></div>
158
- <div class="spacing-demo-card__bar spacing-card-spacing-2"></div>
159
- <div class="spacing-demo-card__bar spacing-card-spacing-3"></div>
160
- <div class="spacing-demo-card__bar spacing-card-spacing-4"></div>
161
- <div class="spacing-demo-card__bar spacing-card-spacing-5"></div>
156
+ <div class="story-spacing-demo-card__stack">
157
+ <div class="story-spacing-demo-card__bar spacing-card-spacing-1"></div>
158
+ <div class="story-spacing-demo-card__bar spacing-card-spacing-2"></div>
159
+ <div class="story-spacing-demo-card__bar spacing-card-spacing-3"></div>
160
+ <div class="story-spacing-demo-card__bar spacing-card-spacing-4"></div>
161
+ <div class="story-spacing-demo-card__bar spacing-card-spacing-5"></div>
162
162
  </div>
163
163
  </article>
164
164
  </div>
165
165
 
166
166
  <div>
167
167
  <h3>Inline Layout</h3>
168
- <div class="spacing-inline-example">
168
+ <div class="story-spacing-inline-example">
169
169
  ${spacingTokens.map(
170
170
  (token) => html`
171
- <span class="spacing-inline-chip">${token.token}</span>
171
+ <span class="story-spacing-inline-chip">${token.token}</span>
172
172
  `
173
173
  )}
174
174
  </div>