@pure-ds/storybook 0.4.15 → 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.
- package/.storybook/addons/html-preview/Panel.jsx +75 -23
- package/.storybook/addons/html-preview/preview.js +27 -1
- package/.storybook/docs.css +7 -0
- package/.storybook/htmlPreview.css +6 -6
- package/.storybook/htmlPreview.js +27 -1
- package/.storybook/manager-head.html +13 -0
- package/.storybook/preview-head.html +5 -0
- package/.storybook/preview.js +1 -1
- package/dist/pds-reference.json +2 -7
- package/package.json +2 -2
- package/public/assets/js/app.js +617 -10565
- package/public/assets/js/lit.js +3 -1048
- package/public/assets/js/pds.js +396 -7354
- package/public/assets/pds/components/pds-calendar.js +1 -1
- package/public/assets/pds/custom-elements.json +263 -18
- package/public/assets/pds/pds-runtime-config.json +1 -1
- package/public/assets/pds/styles/pds-components.css +83 -221
- package/public/assets/pds/styles/pds-components.css.js +166 -442
- package/public/assets/pds/styles/pds-styles.css +240 -437
- package/public/assets/pds/styles/pds-styles.css.js +479 -881
- package/public/assets/pds/styles/pds-utilities.css +151 -214
- package/public/assets/pds/styles/pds-utilities.css.js +302 -428
- package/src/js/pds-configurator/pds-demo.js +11 -1
- package/src/js/pds-core/pds-generator.js +88 -38
- package/src/js/pds-core/pds-ontology.js +1 -1
- package/stories/components/PdsCalendar.stories.js +2 -2
- package/stories/components/PdsDrawer.stories.js +15 -15
- package/stories/components/PdsJsonform.stories.js +78 -0
- package/stories/components/PdsRichtext.stories.js +4 -17
- package/stories/components/PdsScrollrow.stories.js +224 -72
- package/stories/components/PdsSplitpanel.stories.js +63 -28
- package/stories/components/PdsTabstrip.stories.js +7 -7
- package/stories/enhancements/Accordion.stories.js +2 -2
- package/stories/enhancements/Dropdowns.stories.js +13 -10
- package/stories/enhancements/RangeSliders.stories.js +9 -9
- package/stories/enhancements/RequiredFields.stories.js +8 -8
- package/stories/enhancements/Toggles.stories.js +45 -36
- package/stories/enhancements/_enhancement-header.js +2 -2
- package/stories/foundations/Colors.stories.js +13 -13
- package/stories/foundations/HTMLDefaults.stories.js +4 -4
- package/stories/foundations/Icons.stories.js +123 -288
- package/stories/foundations/MeshGradients.stories.js +161 -250
- package/stories/foundations/SmartSurfaces.stories.js +147 -64
- package/stories/foundations/Spacing.stories.js +30 -30
- package/stories/foundations/Typography.stories.js +352 -723
- package/stories/foundations/ZIndex.stories.js +124 -141
- package/stories/layout/LayoutOverview.stories.js +343 -250
- package/stories/layout/LayoutSystem.stories.js +60 -76
- package/stories/patterns/InteractiveStates.stories.js +29 -29
- package/stories/patterns/Utilities.stories.js +17 -5
- package/stories/primitives/Alerts.stories.js +6 -6
- package/stories/primitives/Cards.stories.js +22 -11
- package/stories/primitives/Forms.stories.js +17 -8
- package/stories/primitives/Media.stories.js +23 -20
- package/stories/utilities/Backdrop.stories.js +68 -27
- package/stories/utils/PdsAsk.stories.js +1 -1
- package/public/assets/js/app.js.map +0 -7
- package/public/assets/js/lit.js.map +0 -7
- package/public/assets/js/pds.js.map +0 -7
|
@@ -1,25 +1,68 @@
|
|
|
1
|
-
import { html } from
|
|
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:
|
|
5
|
-
tags: [
|
|
31
|
+
title: "Foundations/Smart Surfaces",
|
|
32
|
+
tags: ["surface", "background", "theming", "contrast", "elevated"],
|
|
6
33
|
parameters: {
|
|
7
34
|
pds: {
|
|
8
|
-
tags: [
|
|
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:
|
|
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">
|
|
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 =
|
|
106
|
+
SurfaceVariants.storyName = "Surface Variants";
|
|
64
107
|
|
|
65
108
|
export const ContextAwareShadows = () => html`
|
|
66
|
-
<div class="
|
|
109
|
+
<div class="stack-md">
|
|
67
110
|
<h2>Context-Aware Shadows</h2>
|
|
68
|
-
<p class="text-muted">
|
|
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 =
|
|
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">
|
|
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>
|
|
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 =
|
|
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">
|
|
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>
|
|
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 =
|
|
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">
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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 =
|
|
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">
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
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
|
|
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 =
|
|
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">
|
|
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>
|
|
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"
|
|
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
|
|
406
|
+
<button class="btn-outline story-border-current">
|
|
407
|
+
Outline Button
|
|
408
|
+
</button>
|
|
325
409
|
</article>
|
|
326
410
|
</div>
|
|
327
|
-
|
|
328
|
-
<
|
|
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
|
-
</
|
|
423
|
+
</section>
|
|
340
424
|
</div>
|
|
341
425
|
`;
|
|
342
426
|
|
|
343
|
-
SurfaceInverseExpanded.storyName =
|
|
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>
|