@24vlh/vds 0.1.10 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/action-bar.css +111 -0
- package/dist/components/action-bar.min.css +1 -0
- package/dist/components/authoring.css +262 -42
- package/dist/components/authoring.min.css +1 -1
- package/dist/components/avatar.css +229 -0
- package/dist/components/avatar.min.css +1 -0
- package/dist/components/badge-tag.css +235 -0
- package/dist/components/badge-tag.min.css +1 -0
- package/dist/components/buttons.css +90 -98
- package/dist/components/buttons.min.css +1 -1
- package/dist/components/command.css +846 -2
- package/dist/components/command.min.css +1 -1
- package/dist/components/content-blocks.css +328 -6
- package/dist/components/content-blocks.min.css +1 -1
- package/dist/components/description-list.css +117 -0
- package/dist/components/description-list.min.css +1 -0
- package/dist/components/flows.css +60 -47
- package/dist/components/flows.min.css +1 -1
- package/dist/components/header-footer.css +178 -18
- package/dist/components/header-footer.min.css +1 -1
- package/dist/components/hero.css +148 -14
- package/dist/components/hero.min.css +1 -1
- package/dist/components/icons.css +23 -11
- package/dist/components/icons.min.css +1 -1
- package/dist/components/navigation.css +67 -7
- package/dist/components/navigation.min.css +1 -1
- package/dist/components/overlays.css +121 -19
- package/dist/components/overlays.min.css +1 -1
- package/dist/components/progress.css +322 -0
- package/dist/components/progress.min.css +1 -0
- package/dist/components/skeleton.css +22 -3
- package/dist/components/skeleton.min.css +1 -1
- package/dist/components/state.css +172 -0
- package/dist/components/state.min.css +1 -0
- package/dist/components/tables.css +93 -15
- package/dist/components/tables.min.css +1 -1
- package/dist/components/tabs.css +116 -4
- package/dist/components/tabs.min.css +1 -1
- package/dist/components/toasts.css +115 -41
- package/dist/components/toasts.min.css +1 -1
- package/dist/components/tooltips-popovers.css +135 -93
- package/dist/components/tooltips-popovers.min.css +1 -1
- package/dist/components/utilities.css +33 -3
- package/dist/components/utilities.min.css +1 -1
- package/dist/core.css +43 -21
- package/dist/core.min.css +1 -1
- package/dist/identity.css +107 -1
- package/dist/identity.min.css +1 -1
- package/dist/vds.css +4952 -1304
- package/dist/vds.min.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
/************************************************************
|
|
2
|
+
* VLAH DESIGN SYSTEM (VDS) - Progress & Stepper Indicators
|
|
3
|
+
*
|
|
4
|
+
* Responsibilities:
|
|
5
|
+
* - Provide linear progress bars (determinate + indeterminate)
|
|
6
|
+
* - Support semantic states and density variants
|
|
7
|
+
* - Offer stepper indicators for multi-step flows
|
|
8
|
+
*
|
|
9
|
+
* System Notes:
|
|
10
|
+
* - Pure CSS; JS only updates width or active states
|
|
11
|
+
* - Fully token-driven for sizing and colour
|
|
12
|
+
************************************************************/
|
|
13
|
+
|
|
14
|
+
/* ---------------------------------------------------------
|
|
15
|
+
1. PROGRESS TOKENS
|
|
16
|
+
--------------------------------------------------------- */
|
|
17
|
+
|
|
18
|
+
[data-vds-progress],
|
|
19
|
+
.vds-progress {
|
|
20
|
+
--progress-height-sm: 0.35rem;
|
|
21
|
+
--progress-height-md: var(--space-2);
|
|
22
|
+
--progress-height-lg: 0.9rem;
|
|
23
|
+
--progress-radius: var(--radius-sm);
|
|
24
|
+
--progress-track-bg: var(--color-muted-bg);
|
|
25
|
+
--progress-track-border: transparent;
|
|
26
|
+
--progress-fill: var(--color-accent);
|
|
27
|
+
--progress-label-color: var(--color-text-muted);
|
|
28
|
+
--progress-value-color: var(--color-text);
|
|
29
|
+
--progress-meta-color: var(--color-text-muted);
|
|
30
|
+
|
|
31
|
+
--stepper-gap: var(--space-6);
|
|
32
|
+
--stepper-marker-size: var(--space-6);
|
|
33
|
+
--stepper-line-size: 2px;
|
|
34
|
+
--stepper-line: var(--color-border-subtle);
|
|
35
|
+
--stepper-marker-bg: var(--color-surface);
|
|
36
|
+
--stepper-marker-border: var(--color-border-subtle);
|
|
37
|
+
--stepper-marker-text: var(--color-text);
|
|
38
|
+
--stepper-active: var(--color-accent);
|
|
39
|
+
--stepper-title-bg: var(--color-surface);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/* ---------------------------------------------------------
|
|
43
|
+
2. LINEAR PROGRESS
|
|
44
|
+
--------------------------------------------------------- */
|
|
45
|
+
|
|
46
|
+
.progress-stack {
|
|
47
|
+
display: grid;
|
|
48
|
+
grid-gap: var(--space-2);
|
|
49
|
+
gap: var(--space-2);
|
|
50
|
+
width: 100%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.progress-stack--compact {
|
|
54
|
+
gap: var(--space-1_5);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.progress__header {
|
|
58
|
+
display: flex;
|
|
59
|
+
align-items: center;
|
|
60
|
+
justify-content: space-between;
|
|
61
|
+
gap: var(--space-3);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.progress__label {
|
|
65
|
+
font-size: var(--text-xs);
|
|
66
|
+
color: var(--progress-label-color);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.progress__value {
|
|
70
|
+
font-size: var(--text-xs);
|
|
71
|
+
font-weight: 600;
|
|
72
|
+
color: var(--progress-value-color);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.progress__meta {
|
|
76
|
+
font-size: var(--text-xs);
|
|
77
|
+
color: var(--progress-meta-color);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.progress,
|
|
81
|
+
.progress__track {
|
|
82
|
+
position: relative;
|
|
83
|
+
width: 100%;
|
|
84
|
+
height: var(--progress-height-md);
|
|
85
|
+
border-radius: var(--progress-radius);
|
|
86
|
+
background: var(--progress-track-bg);
|
|
87
|
+
border: 1px solid var(--progress-track-border);
|
|
88
|
+
overflow: hidden;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.progress__bar {
|
|
92
|
+
height: 100%;
|
|
93
|
+
width: 0%;
|
|
94
|
+
width: var(--progress-value, 0%);
|
|
95
|
+
border-radius: inherit;
|
|
96
|
+
background: var(--progress-fill);
|
|
97
|
+
transition: width var(--transition-normal);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
[data-vds-progress] .progress--sm, .vds-progress .progress--sm, [data-vds-progress] .progress--sm .progress__track, .vds-progress .progress--sm .progress__track {
|
|
101
|
+
height: var(--progress-height-sm);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
[data-vds-progress] .progress--lg, .vds-progress .progress--lg, [data-vds-progress] .progress--lg .progress__track, .vds-progress .progress--lg .progress__track {
|
|
105
|
+
height: var(--progress-height-lg);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
[data-vds-progress] .progress--outlined, .vds-progress .progress--outlined {
|
|
109
|
+
--progress-track-border: var(--color-border-subtle);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
[data-vds-progress] .progress--pill, .vds-progress .progress--pill {
|
|
113
|
+
--progress-radius: var(--radius-full);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
[data-vds-progress] .progress--striped .progress__bar, .vds-progress .progress--striped .progress__bar {
|
|
117
|
+
background-image: linear-gradient(
|
|
118
|
+
45deg,
|
|
119
|
+
rgba(255, 255, 255, 0.2) 25%,
|
|
120
|
+
rgba(255, 255, 255, 0) 25%,
|
|
121
|
+
rgba(255, 255, 255, 0) 50%,
|
|
122
|
+
rgba(255, 255, 255, 0.2) 50%,
|
|
123
|
+
rgba(255, 255, 255, 0.2) 75%,
|
|
124
|
+
rgba(255, 255, 255, 0) 75%,
|
|
125
|
+
rgba(255, 255, 255, 0)
|
|
126
|
+
);
|
|
127
|
+
background-size: 1.2rem 1.2rem;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
[data-vds-progress] .progress--animated .progress__bar, .vds-progress .progress--animated .progress__bar {
|
|
131
|
+
animation: vds-progress-stripes 0.9s linear infinite;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
[data-vds-progress] .progress--indeterminate .progress__bar, .vds-progress .progress--indeterminate .progress__bar {
|
|
135
|
+
width: 35%;
|
|
136
|
+
animation: progress-indeterminate 1.4s ease infinite;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@keyframes vds-progress-stripes {
|
|
140
|
+
0% {
|
|
141
|
+
background-position: 1.2rem 0;
|
|
142
|
+
}
|
|
143
|
+
100% {
|
|
144
|
+
background-position: 0 0;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@keyframes progress-indeterminate {
|
|
149
|
+
0% {
|
|
150
|
+
transform: translateX(-120%);
|
|
151
|
+
}
|
|
152
|
+
100% {
|
|
153
|
+
transform: translateX(260%);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/* ---------------------------------------------------------
|
|
158
|
+
3. PROGRESS SEMANTICS
|
|
159
|
+
--------------------------------------------------------- */
|
|
160
|
+
|
|
161
|
+
[data-vds-progress] .progress--success, .vds-progress .progress--success {
|
|
162
|
+
--progress-fill: var(--color-success);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
[data-vds-progress] .progress--info, .vds-progress .progress--info {
|
|
166
|
+
--progress-fill: var(--color-info);
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
[data-vds-progress] .progress--warning, .vds-progress .progress--warning {
|
|
170
|
+
--progress-fill: var(--color-warning);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
[data-vds-progress] .progress--danger, .vds-progress .progress--danger {
|
|
174
|
+
--progress-fill: var(--color-danger);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* ---------------------------------------------------------
|
|
178
|
+
4. STEPPER
|
|
179
|
+
--------------------------------------------------------- */
|
|
180
|
+
|
|
181
|
+
.stepper {
|
|
182
|
+
display: flex;
|
|
183
|
+
gap: var(--stepper-gap);
|
|
184
|
+
align-items: flex-start;
|
|
185
|
+
padding: var(--space-5);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.stepper__item {
|
|
189
|
+
position: relative;
|
|
190
|
+
display: flex;
|
|
191
|
+
gap: var(--space-3);
|
|
192
|
+
flex: 1 1 0;
|
|
193
|
+
min-width: 0;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.stepper__item:not(:last-child)::after {
|
|
197
|
+
content: "";
|
|
198
|
+
position: absolute;
|
|
199
|
+
top: calc(var(--stepper-marker-size) / 2);
|
|
200
|
+
left: calc(var(--stepper-marker-size) + var(--space-3));
|
|
201
|
+
right: calc(-1 * var(--stepper-gap) + (var(--stepper-marker-size) / 2));
|
|
202
|
+
height: var(--stepper-line-size);
|
|
203
|
+
background: var(--stepper-line);
|
|
204
|
+
z-index: 0;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.stepper__marker {
|
|
208
|
+
width: var(--stepper-marker-size);
|
|
209
|
+
height: var(--stepper-marker-size);
|
|
210
|
+
border-radius: 999px;
|
|
211
|
+
display: inline-flex;
|
|
212
|
+
align-items: center;
|
|
213
|
+
justify-content: center;
|
|
214
|
+
border: 1px solid var(--stepper-marker-border);
|
|
215
|
+
background: var(--stepper-marker-bg);
|
|
216
|
+
color: var(--stepper-marker-text);
|
|
217
|
+
font-size: var(--text-xs);
|
|
218
|
+
font-weight: 600;
|
|
219
|
+
flex-shrink: 0;
|
|
220
|
+
z-index: 1;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.stepper__content {
|
|
224
|
+
display: flex;
|
|
225
|
+
flex-direction: column;
|
|
226
|
+
gap: var(--space-1);
|
|
227
|
+
position: relative;
|
|
228
|
+
z-index: 1;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.stepper__title {
|
|
232
|
+
padding-right: var(--space-2);
|
|
233
|
+
font-size: var(--text-sm);
|
|
234
|
+
font-weight: 600;
|
|
235
|
+
color: var(--color-text);
|
|
236
|
+
align-self: flex-start;
|
|
237
|
+
background: var(--stepper-title-bg);
|
|
238
|
+
-webkit-box-decoration-break: clone;
|
|
239
|
+
box-decoration-break: clone;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.stepper__desc {
|
|
243
|
+
font-size: var(--text-xs);
|
|
244
|
+
color: var(--color-text-muted);
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
.stepper__item--active .stepper__marker {
|
|
248
|
+
border-color: var(--stepper-active);
|
|
249
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--stepper-active) 30%, transparent);
|
|
250
|
+
color: var(--stepper-active);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.stepper__item--complete .stepper__marker {
|
|
254
|
+
border-color: var(--color-success);
|
|
255
|
+
background: var(--color-success);
|
|
256
|
+
color: var(--color-on-success);
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.stepper__item--disabled .stepper__content {
|
|
260
|
+
opacity: 0.5;
|
|
261
|
+
pointer-events: none;
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
.stepper__item--disabled .stepper__marker {
|
|
265
|
+
pointer-events: none;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.stepper--compact {
|
|
269
|
+
--stepper-gap: var(--space-4);
|
|
270
|
+
--stepper-marker-size: var(--space-5);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/* ---------------------------------------------------------
|
|
274
|
+
5. VERTICAL STEPPER
|
|
275
|
+
--------------------------------------------------------- */
|
|
276
|
+
|
|
277
|
+
.stepper--vertical {
|
|
278
|
+
flex-direction: column;
|
|
279
|
+
gap: var(--space-4);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.stepper--vertical .stepper__item {
|
|
283
|
+
padding-left: calc(var(--stepper-marker-size) + var(--space-3));
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.stepper--vertical .stepper__marker {
|
|
287
|
+
position: absolute;
|
|
288
|
+
left: 0;
|
|
289
|
+
top: 0;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
.stepper--vertical .stepper__item:not(:last-child)::after {
|
|
293
|
+
left: calc(var(--stepper-marker-size) / 2);
|
|
294
|
+
top: var(--stepper-marker-size);
|
|
295
|
+
right: auto;
|
|
296
|
+
width: var(--stepper-line-size);
|
|
297
|
+
height: calc(100% + var(--space-4));
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
@media (max-width: 768px) {
|
|
301
|
+
.stepper {
|
|
302
|
+
flex-direction: column;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.stepper__item {
|
|
306
|
+
padding-left: calc(var(--stepper-marker-size) + var(--space-3));
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.stepper__marker {
|
|
310
|
+
position: absolute;
|
|
311
|
+
left: 0;
|
|
312
|
+
top: 0;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.stepper__item:not(:last-child)::after {
|
|
316
|
+
left: calc(var(--stepper-marker-size) / 2);
|
|
317
|
+
top: var(--stepper-marker-size);
|
|
318
|
+
right: auto;
|
|
319
|
+
width: var(--stepper-line-size);
|
|
320
|
+
height: calc(100% + var(--space-4));
|
|
321
|
+
}
|
|
322
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.vds-progress,[data-vds-progress]{--progress-height-sm:0.35rem;--progress-height-md:var(--space-2);--progress-height-lg:0.9rem;--progress-radius:var(--radius-sm);--progress-track-bg:var(--color-muted-bg);--progress-track-border:transparent;--progress-fill:var(--color-accent);--progress-label-color:var(--color-text-muted);--progress-value-color:var(--color-text);--progress-meta-color:var(--color-text-muted);--stepper-gap:var(--space-6);--stepper-marker-size:var(--space-6);--stepper-line-size:2px;--stepper-line:var(--color-border-subtle);--stepper-marker-bg:var(--color-surface);--stepper-marker-border:var(--color-border-subtle);--stepper-marker-text:var(--color-text);--stepper-active:var(--color-accent);--stepper-title-bg:var(--color-surface)}.progress-stack{grid-gap:var(--space-2);display:grid;gap:var(--space-2);width:100%}.progress-stack--compact{gap:var(--space-1_5)}.progress__header{align-items:center;display:flex;gap:var(--space-3);justify-content:space-between}.progress__label{color:var(--progress-label-color);font-size:var(--text-xs)}.progress__value{color:var(--progress-value-color);font-size:var(--text-xs);font-weight:600}.progress__meta{color:var(--progress-meta-color);font-size:var(--text-xs)}.progress,.progress__track{background:var(--progress-track-bg);border:1px solid var(--progress-track-border);border-radius:var(--progress-radius);height:var(--progress-height-md);overflow:hidden;position:relative;width:100%}.progress__bar{background:var(--progress-fill);border-radius:inherit;height:100%;transition:width var(--transition-normal);width:0;width:var(--progress-value,0)}.vds-progress .progress--sm,.vds-progress .progress--sm .progress__track,[data-vds-progress] .progress--sm,[data-vds-progress] .progress--sm .progress__track{height:var(--progress-height-sm)}.vds-progress .progress--lg,.vds-progress .progress--lg .progress__track,[data-vds-progress] .progress--lg,[data-vds-progress] .progress--lg .progress__track{height:var(--progress-height-lg)}.vds-progress .progress--outlined,[data-vds-progress] .progress--outlined{--progress-track-border:var(--color-border-subtle)}.vds-progress .progress--pill,[data-vds-progress] .progress--pill{--progress-radius:var(--radius-full)}.vds-progress .progress--striped .progress__bar,[data-vds-progress] .progress--striped .progress__bar{background-image:linear-gradient(45deg,hsla(0,0%,100%,.2) 25%,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,0) 50%,hsla(0,0%,100%,.2) 0,hsla(0,0%,100%,.2) 75%,hsla(0,0%,100%,0) 0,hsla(0,0%,100%,0));background-size:1.2rem 1.2rem}.vds-progress .progress--animated .progress__bar,[data-vds-progress] .progress--animated .progress__bar{animation:vds-progress-stripes .9s linear infinite}.vds-progress .progress--indeterminate .progress__bar,[data-vds-progress] .progress--indeterminate .progress__bar{animation:progress-indeterminate 1.4s ease infinite;width:35%}@keyframes vds-progress-stripes{0%{background-position:1.2rem 0}to{background-position:0 0}}@keyframes progress-indeterminate{0%{transform:translateX(-120%)}to{transform:translateX(260%)}}.vds-progress .progress--success,[data-vds-progress] .progress--success{--progress-fill:var(--color-success)}.vds-progress .progress--info,[data-vds-progress] .progress--info{--progress-fill:var(--color-info)}.vds-progress .progress--warning,[data-vds-progress] .progress--warning{--progress-fill:var(--color-warning)}.vds-progress .progress--danger,[data-vds-progress] .progress--danger{--progress-fill:var(--color-danger)}.stepper{align-items:flex-start;display:flex;gap:var(--stepper-gap);padding:var(--space-5)}.stepper__item{display:flex;flex:1 1 0;gap:var(--space-3);min-width:0;position:relative}.stepper__item:not(:last-child):after{background:var(--stepper-line);content:"";height:var(--stepper-line-size);left:calc(var(--stepper-marker-size) + var(--space-3));position:absolute;right:calc(var(--stepper-gap)*-1 + var(--stepper-marker-size)/2);top:calc(var(--stepper-marker-size)/2);z-index:0}.stepper__marker{align-items:center;background:var(--stepper-marker-bg);border:1px solid var(--stepper-marker-border);border-radius:999px;color:var(--stepper-marker-text);display:inline-flex;flex-shrink:0;font-size:var(--text-xs);font-weight:600;height:var(--stepper-marker-size);justify-content:center;width:var(--stepper-marker-size);z-index:1}.stepper__content{display:flex;flex-direction:column;gap:var(--space-1);position:relative;z-index:1}.stepper__title{align-self:flex-start;background:var(--stepper-title-bg);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:var(--color-text);font-size:var(--text-sm);font-weight:600;padding-right:var(--space-2)}.stepper__desc{color:var(--color-text-muted);font-size:var(--text-xs)}.stepper__item--active .stepper__marker{border-color:var(--stepper-active);box-shadow:0 0 0 2px color-mix(in srgb,var(--stepper-active) 30%,transparent);color:var(--stepper-active)}.stepper__item--complete .stepper__marker{background:var(--color-success);border-color:var(--color-success);color:var(--color-on-success)}.stepper__item--disabled .stepper__content{opacity:.5;pointer-events:none}.stepper__item--disabled .stepper__marker{pointer-events:none}.stepper--compact{--stepper-gap:var(--space-4);--stepper-marker-size:var(--space-5)}.stepper--vertical{flex-direction:column;gap:var(--space-4)}.stepper--vertical .stepper__item{padding-left:calc(var(--stepper-marker-size) + var(--space-3))}.stepper--vertical .stepper__marker{left:0;position:absolute;top:0}.stepper--vertical .stepper__item:not(:last-child):after{height:calc(100% + var(--space-4));left:calc(var(--stepper-marker-size)/2);right:auto;top:var(--stepper-marker-size);width:var(--stepper-line-size)}@media (max-width:768px){.stepper{flex-direction:column}.stepper__item{padding-left:calc(var(--stepper-marker-size) + var(--space-3))}.stepper__marker{left:0;position:absolute;top:0}.stepper__item:not(:last-child):after{height:calc(100% + var(--space-4));left:calc(var(--stepper-marker-size)/2);right:auto;top:var(--stepper-marker-size);width:var(--stepper-line-size)}}
|
|
@@ -22,6 +22,8 @@
|
|
|
22
22
|
[data-vds-skeleton],
|
|
23
23
|
.vds-skeleton {
|
|
24
24
|
--skeleton-line-height: 1rem;
|
|
25
|
+
--skeleton-radius: var(--radius-md);
|
|
26
|
+
--skeleton-shimmer-duration: 1.6s;
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
/* ---------------------------------------------------------
|
|
@@ -48,7 +50,7 @@
|
|
|
48
50
|
width: 100%;
|
|
49
51
|
height: var(--skeleton-line-height);
|
|
50
52
|
|
|
51
|
-
border-radius: var(--radius-md);
|
|
53
|
+
border-radius: var(--skeleton-radius, var(--radius-md));
|
|
52
54
|
background-color: var(--color-muted-bg);
|
|
53
55
|
|
|
54
56
|
overflow: hidden;
|
|
@@ -71,6 +73,8 @@
|
|
|
71
73
|
);
|
|
72
74
|
|
|
73
75
|
animation: vds-skeleton-shimmer 1.6s infinite;
|
|
76
|
+
|
|
77
|
+
animation: vds-skeleton-shimmer var(--skeleton-shimmer-duration, 1.6s) infinite;
|
|
74
78
|
}
|
|
75
79
|
|
|
76
80
|
.skeleton--sm {
|
|
@@ -97,6 +101,14 @@
|
|
|
97
101
|
background-color: var(--color-muted-border);
|
|
98
102
|
}
|
|
99
103
|
|
|
104
|
+
.skeleton--pill {
|
|
105
|
+
--skeleton-radius: var(--radius-full);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.skeleton--square {
|
|
109
|
+
--skeleton-radius: var(--radius-none);
|
|
110
|
+
}
|
|
111
|
+
|
|
100
112
|
.skeleton--static::after {
|
|
101
113
|
animation: none !important;
|
|
102
114
|
display: none !important;
|
|
@@ -112,7 +124,7 @@
|
|
|
112
124
|
height: var(--skeleton-line-height);
|
|
113
125
|
|
|
114
126
|
margin-bottom: var(--space-2);
|
|
115
|
-
border-radius: var(--radius-md);
|
|
127
|
+
border-radius: var(--skeleton-radius, var(--radius-md));
|
|
116
128
|
background-color: var(--color-muted-bg);
|
|
117
129
|
|
|
118
130
|
position: relative;
|
|
@@ -134,6 +146,7 @@
|
|
|
134
146
|
transparent
|
|
135
147
|
);
|
|
136
148
|
animation: vds-skeleton-shimmer 1.6s infinite;
|
|
149
|
+
animation: vds-skeleton-shimmer var(--skeleton-shimmer-duration, 1.6s) infinite;
|
|
137
150
|
}
|
|
138
151
|
|
|
139
152
|
.skeleton-line--short {
|
|
@@ -212,6 +225,7 @@
|
|
|
212
225
|
transparent
|
|
213
226
|
);
|
|
214
227
|
animation: vds-skeleton-shimmer 1.6s infinite;
|
|
228
|
+
animation: vds-skeleton-shimmer var(--skeleton-shimmer-duration, 1.6s) infinite;
|
|
215
229
|
}
|
|
216
230
|
|
|
217
231
|
/* ---------------------------------------------------------
|
|
@@ -221,7 +235,7 @@
|
|
|
221
235
|
.skeleton-block {
|
|
222
236
|
width: 100%;
|
|
223
237
|
background-color: var(--color-muted-bg);
|
|
224
|
-
border-radius: var(--radius-md);
|
|
238
|
+
border-radius: var(--skeleton-radius, var(--radius-md));
|
|
225
239
|
position: relative;
|
|
226
240
|
overflow: hidden;
|
|
227
241
|
}
|
|
@@ -269,6 +283,7 @@
|
|
|
269
283
|
transparent
|
|
270
284
|
);
|
|
271
285
|
animation: vds-skeleton-shimmer 1.6s infinite;
|
|
286
|
+
animation: vds-skeleton-shimmer var(--skeleton-shimmer-duration, 1.6s) infinite;
|
|
272
287
|
}
|
|
273
288
|
|
|
274
289
|
/* ---------------------------------------------------------
|
|
@@ -357,6 +372,10 @@
|
|
|
357
372
|
gap: var(--space-3);
|
|
358
373
|
}
|
|
359
374
|
|
|
375
|
+
.skeleton-stack .skeleton-line {
|
|
376
|
+
margin-bottom: 0;
|
|
377
|
+
}
|
|
378
|
+
|
|
360
379
|
.skeleton-inline {
|
|
361
380
|
display: flex;
|
|
362
381
|
align-items: center;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.vds-skeleton,[data-vds-skeleton]{--skeleton-line-height:1rem}@keyframes vds-skeleton-shimmer{0%{transform:translateX(-150%)}to{transform:translateX(150%)}}.skeleton{background-color:var(--color-muted-bg);border-radius:var(--radius-md);display:block;height:var(--skeleton-line-height);overflow:hidden;position:relative;width:100%}.skeleton:after{animation:vds-skeleton-shimmer 1.6s infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton--sm{height:calc(var(--skeleton-line-height)*.75)}.skeleton--md{height:var(--skeleton-line-height)}.skeleton--lg{height:calc(var(--skeleton-line-height)*1.25)}.skeleton--xl{height:calc(var(--skeleton-line-height)*1.75)}.skeleton--subtle{background-color:var(--color-surface-subtle)}.skeleton--strong{background-color:var(--color-muted-border)}.skeleton--static:after{animation:none!important;display:none!important}.skeleton-line{background-color:var(--color-muted-bg);border-radius:var(--radius-md);display:block;height:var(--skeleton-line-height);margin-bottom:var(--space-2);overflow:hidden;position:relative;width:100%}.skeleton-line:after{animation:vds-skeleton-shimmer 1.6s infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton-line--short{width:40%}.skeleton-line--medium{width:60%}.skeleton-line--long{width:80%}.skeleton-line--full{width:100%}.skeleton-line--xs{height:calc(var(--skeleton-line-height)*.6)}.skeleton-line--sm{height:calc(var(--skeleton-line-height)*.8)}.skeleton-line--lg{height:calc(var(--skeleton-line-height)*1.3)}.skeleton-avatar{background-color:var(--color-muted-bg);border-radius:var(--radius-full);display:inline-block;overflow:hidden;position:relative}.skeleton-avatar--sm{height:var(--avatar-size-sm);width:var(--avatar-size-sm)}.skeleton-avatar--md{height:var(--avatar-size-md);width:var(--avatar-size-md)}.skeleton-avatar--lg{height:var(--avatar-size-lg);width:var(--avatar-size-lg)}.skeleton-avatar--square{border-radius:var(--radius-md)}.skeleton-avatar:after{animation:vds-skeleton-shimmer 1.6s infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton-block{background-color:var(--color-muted-bg);border-radius:var(--radius-md);overflow:hidden;position:relative;width:100%}.skeleton-block--1-1{aspect-ratio:1/1}.skeleton-block--4-3{aspect-ratio:4/3}.skeleton-block--16-9{aspect-ratio:16/9}.skeleton-block--21-9{aspect-ratio:21/9}.skeleton-block--sm{height:6rem}.skeleton-block--md{height:12rem}.skeleton-block--lg{height:18rem}.skeleton-block:after{animation:vds-skeleton-shimmer 1.6s infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton-card{background-color:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6)}.skeleton-card--dense{padding:var(--space-4)}.skeleton-card--relaxed{padding:var(--space-8)}.skeleton-card--list{align-items:center;flex-direction:row;gap:var(--space-4)}.skeleton-card--media .skeleton-block{margin-bottom:var(--space-4)}.skeleton-card--stat .skeleton-line{height:calc(var(--skeleton-line-height)*1.6);width:50%}.skeleton-row td{padding:var(--space-3) var(--space-4)}.skeleton-row--a td{padding:var(--space-4) var(--space-5)}.skeleton-row--c td{padding:var(--space-2) var(--space-3)}.skeleton-item{align-items:center;display:flex;gap:var(--space-3);padding:var(--space-3) 0}.skeleton-item--compact{gap:var(--space-2);padding:var(--space-2) 0}.skeleton-item--spacious{gap:var(--space-4);padding:var(--space-4) 0}.skeleton-stack{display:flex;flex-direction:column;gap:var(--space-3)}.skeleton-inline{align-items:center;display:flex;gap:var(--space-3)}.skeleton-gap-sm{gap:var(--space-2)}.skeleton-gap-lg{gap:var(--space-6)}@media (prefers-reduced-motion:reduce){.skeleton-avatar:after,.skeleton-block:after,.skeleton-line:after,.skeleton:after{animation:none!important}}
|
|
1
|
+
.vds-skeleton,[data-vds-skeleton]{--skeleton-line-height:1rem;--skeleton-radius:var(--radius-md);--skeleton-shimmer-duration:1.6s}@keyframes vds-skeleton-shimmer{0%{transform:translateX(-150%)}to{transform:translateX(150%)}}.skeleton{background-color:var(--color-muted-bg);border-radius:var(--skeleton-radius,var(--radius-md));display:block;height:var(--skeleton-line-height);overflow:hidden;position:relative;width:100%}.skeleton:after{animation:vds-skeleton-shimmer 1.6s infinite;animation:vds-skeleton-shimmer var(--skeleton-shimmer-duration,1.6s) infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton--sm{height:calc(var(--skeleton-line-height)*.75)}.skeleton--md{height:var(--skeleton-line-height)}.skeleton--lg{height:calc(var(--skeleton-line-height)*1.25)}.skeleton--xl{height:calc(var(--skeleton-line-height)*1.75)}.skeleton--subtle{background-color:var(--color-surface-subtle)}.skeleton--strong{background-color:var(--color-muted-border)}.skeleton--pill{--skeleton-radius:var(--radius-full)}.skeleton--square{--skeleton-radius:var(--radius-none)}.skeleton--static:after{animation:none!important;display:none!important}.skeleton-line{background-color:var(--color-muted-bg);border-radius:var(--skeleton-radius,var(--radius-md));display:block;height:var(--skeleton-line-height);margin-bottom:var(--space-2);overflow:hidden;position:relative;width:100%}.skeleton-line:after{animation:vds-skeleton-shimmer 1.6s infinite;animation:vds-skeleton-shimmer var(--skeleton-shimmer-duration,1.6s) infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton-line--short{width:40%}.skeleton-line--medium{width:60%}.skeleton-line--long{width:80%}.skeleton-line--full{width:100%}.skeleton-line--xs{height:calc(var(--skeleton-line-height)*.6)}.skeleton-line--sm{height:calc(var(--skeleton-line-height)*.8)}.skeleton-line--lg{height:calc(var(--skeleton-line-height)*1.3)}.skeleton-avatar{background-color:var(--color-muted-bg);border-radius:var(--radius-full);display:inline-block;overflow:hidden;position:relative}.skeleton-avatar--sm{height:var(--avatar-size-sm);width:var(--avatar-size-sm)}.skeleton-avatar--md{height:var(--avatar-size-md);width:var(--avatar-size-md)}.skeleton-avatar--lg{height:var(--avatar-size-lg);width:var(--avatar-size-lg)}.skeleton-avatar--square{border-radius:var(--radius-md)}.skeleton-avatar:after{animation:vds-skeleton-shimmer 1.6s infinite;animation:vds-skeleton-shimmer var(--skeleton-shimmer-duration,1.6s) infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton-block{background-color:var(--color-muted-bg);border-radius:var(--skeleton-radius,var(--radius-md));overflow:hidden;position:relative;width:100%}.skeleton-block--1-1{aspect-ratio:1/1}.skeleton-block--4-3{aspect-ratio:4/3}.skeleton-block--16-9{aspect-ratio:16/9}.skeleton-block--21-9{aspect-ratio:21/9}.skeleton-block--sm{height:6rem}.skeleton-block--md{height:12rem}.skeleton-block--lg{height:18rem}.skeleton-block:after{animation:vds-skeleton-shimmer 1.6s infinite;animation:vds-skeleton-shimmer var(--skeleton-shimmer-duration,1.6s) infinite;background:linear-gradient(90deg,transparent,var(--color-surface-subtle),transparent);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-150%)}.skeleton-card{background-color:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6)}.skeleton-card--dense{padding:var(--space-4)}.skeleton-card--relaxed{padding:var(--space-8)}.skeleton-card--list{align-items:center;flex-direction:row;gap:var(--space-4)}.skeleton-card--media .skeleton-block{margin-bottom:var(--space-4)}.skeleton-card--stat .skeleton-line{height:calc(var(--skeleton-line-height)*1.6);width:50%}.skeleton-row td{padding:var(--space-3) var(--space-4)}.skeleton-row--a td{padding:var(--space-4) var(--space-5)}.skeleton-row--c td{padding:var(--space-2) var(--space-3)}.skeleton-item{align-items:center;display:flex;gap:var(--space-3);padding:var(--space-3) 0}.skeleton-item--compact{gap:var(--space-2);padding:var(--space-2) 0}.skeleton-item--spacious{gap:var(--space-4);padding:var(--space-4) 0}.skeleton-stack{display:flex;flex-direction:column;gap:var(--space-3)}.skeleton-stack .skeleton-line{margin-bottom:0}.skeleton-inline{align-items:center;display:flex;gap:var(--space-3)}.skeleton-gap-sm{gap:var(--space-2)}.skeleton-gap-lg{gap:var(--space-6)}@media (prefers-reduced-motion:reduce){.skeleton-avatar:after,.skeleton-block:after,.skeleton-line:after,.skeleton:after{animation:none!important}}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/************************************************************
|
|
2
|
+
* VLAH DESIGN SYSTEM (VDS) - Empty / Zero States
|
|
3
|
+
*
|
|
4
|
+
* Responsibilities:
|
|
5
|
+
* - Provide empty-state shells for lists, dashboards, and setups
|
|
6
|
+
* - Support inline, centered, and compact presentations
|
|
7
|
+
* - Provide consistent icon, title, body, and action slots
|
|
8
|
+
*
|
|
9
|
+
* System Notes:
|
|
10
|
+
* - Pure CSS; use buttons and links for actions
|
|
11
|
+
* - Token-driven spacing, surfaces, and typography
|
|
12
|
+
************************************************************/
|
|
13
|
+
|
|
14
|
+
/* ---------------------------------------------------------
|
|
15
|
+
1. STATE TOKENS
|
|
16
|
+
--------------------------------------------------------- */
|
|
17
|
+
|
|
18
|
+
[data-vds-state],
|
|
19
|
+
.vds-state {
|
|
20
|
+
--state-gap: var(--space-4);
|
|
21
|
+
--state-padding: var(--space-8);
|
|
22
|
+
--state-radius: var(--radius-lg);
|
|
23
|
+
--state-surface: var(--color-surface);
|
|
24
|
+
--state-border: var(--color-border-subtle);
|
|
25
|
+
--state-icon-size: 2.75rem;
|
|
26
|
+
--state-icon-bg: var(--color-surface-subtle);
|
|
27
|
+
--state-icon-color: var(--color-accent);
|
|
28
|
+
--state-title-size: var(--text-md);
|
|
29
|
+
--state-eyebrow-color: var(--color-text-muted);
|
|
30
|
+
--state-media-size: 3.5rem;
|
|
31
|
+
--state-media-bg: var(--color-surface-subtle);
|
|
32
|
+
--state-media-color: var(--color-text);
|
|
33
|
+
--state-border-style: dashed;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* ---------------------------------------------------------
|
|
37
|
+
2. BASE STATE
|
|
38
|
+
--------------------------------------------------------- */
|
|
39
|
+
|
|
40
|
+
.state {
|
|
41
|
+
display: flex;
|
|
42
|
+
flex-direction: column;
|
|
43
|
+
align-items: center;
|
|
44
|
+
gap: var(--state-gap);
|
|
45
|
+
padding: var(--state-padding);
|
|
46
|
+
border-radius: var(--state-radius);
|
|
47
|
+
border: 1px var(--state-border-style) var(--state-border);
|
|
48
|
+
background: var(--state-surface);
|
|
49
|
+
text-align: center;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.state__eyebrow {
|
|
53
|
+
font-size: var(--text-xxs);
|
|
54
|
+
letter-spacing: 0.12em;
|
|
55
|
+
text-transform: uppercase;
|
|
56
|
+
color: var(--state-eyebrow-color);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.state__icon {
|
|
60
|
+
width: var(--state-icon-size);
|
|
61
|
+
height: var(--state-icon-size);
|
|
62
|
+
border-radius: var(--radius-md);
|
|
63
|
+
background: var(--state-icon-bg);
|
|
64
|
+
color: var(--state-icon-color);
|
|
65
|
+
display: inline-flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
font-size: var(--text-md);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.state__media {
|
|
72
|
+
width: var(--state-media-size);
|
|
73
|
+
height: var(--state-media-size);
|
|
74
|
+
border-radius: var(--radius-lg);
|
|
75
|
+
background: var(--state-media-bg);
|
|
76
|
+
color: var(--state-media-color);
|
|
77
|
+
display: inline-flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
justify-content: center;
|
|
80
|
+
font-size: var(--text-lg);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.state__content {
|
|
84
|
+
display: flex;
|
|
85
|
+
flex-direction: column;
|
|
86
|
+
gap: var(--space-2);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.state__title {
|
|
90
|
+
font-size: var(--state-title-size);
|
|
91
|
+
font-weight: 600;
|
|
92
|
+
color: var(--color-text);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.state__text {
|
|
96
|
+
font-size: var(--text-sm);
|
|
97
|
+
color: var(--color-text-muted);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.state__actions {
|
|
101
|
+
display: flex;
|
|
102
|
+
flex-wrap: wrap;
|
|
103
|
+
gap: var(--space-3);
|
|
104
|
+
justify-content: center;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.state__meta {
|
|
108
|
+
font-size: var(--text-xs);
|
|
109
|
+
color: var(--color-text-muted);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* ---------------------------------------------------------
|
|
113
|
+
3. VARIANTS
|
|
114
|
+
--------------------------------------------------------- */
|
|
115
|
+
|
|
116
|
+
.state--left {
|
|
117
|
+
align-items: flex-start;
|
|
118
|
+
text-align: left;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.state--soft {
|
|
122
|
+
--state-surface: var(--color-surface-subtle);
|
|
123
|
+
--state-border-style: solid;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.state--inline {
|
|
127
|
+
flex-direction: row;
|
|
128
|
+
align-items: flex-start;
|
|
129
|
+
text-align: left;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.state--split {
|
|
133
|
+
flex-direction: row;
|
|
134
|
+
align-items: center;
|
|
135
|
+
text-align: left;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.state--left .state__actions,
|
|
139
|
+
.state--inline .state__actions,
|
|
140
|
+
.state--split .state__actions {
|
|
141
|
+
justify-content: flex-start;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.state--compact {
|
|
145
|
+
--state-padding: var(--space-5);
|
|
146
|
+
--state-gap: var(--space-3);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.state--plain {
|
|
150
|
+
padding: 0;
|
|
151
|
+
border: none;
|
|
152
|
+
background: transparent;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.state--center {
|
|
156
|
+
align-items: center;
|
|
157
|
+
text-align: center;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
@media (max-width: 768px) {
|
|
161
|
+
.state--inline {
|
|
162
|
+
flex-direction: column;
|
|
163
|
+
align-items: center;
|
|
164
|
+
text-align: center;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.state--split {
|
|
168
|
+
flex-direction: column;
|
|
169
|
+
align-items: center;
|
|
170
|
+
text-align: center;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.vds-state,[data-vds-state]{--state-gap:var(--space-4);--state-padding:var(--space-8);--state-radius:var(--radius-lg);--state-surface:var(--color-surface);--state-border:var(--color-border-subtle);--state-icon-size:2.75rem;--state-icon-bg:var(--color-surface-subtle);--state-icon-color:var(--color-accent);--state-title-size:var(--text-md);--state-eyebrow-color:var(--color-text-muted);--state-media-size:3.5rem;--state-media-bg:var(--color-surface-subtle);--state-media-color:var(--color-text);--state-border-style:dashed}.state{align-items:center;background:var(--state-surface);border:1px var(--state-border-style) var(--state-border);border-radius:var(--state-radius);display:flex;flex-direction:column;gap:var(--state-gap);padding:var(--state-padding);text-align:center}.state__eyebrow{color:var(--state-eyebrow-color);font-size:var(--text-xxs);letter-spacing:.12em;text-transform:uppercase}.state__icon{background:var(--state-icon-bg);border-radius:var(--radius-md);color:var(--state-icon-color);font-size:var(--text-md);height:var(--state-icon-size);width:var(--state-icon-size)}.state__icon,.state__media{align-items:center;display:inline-flex;justify-content:center}.state__media{background:var(--state-media-bg);border-radius:var(--radius-lg);color:var(--state-media-color);font-size:var(--text-lg);height:var(--state-media-size);width:var(--state-media-size)}.state__content{display:flex;flex-direction:column;gap:var(--space-2)}.state__title{color:var(--color-text);font-size:var(--state-title-size);font-weight:600}.state__text{color:var(--color-text-muted);font-size:var(--text-sm)}.state__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center}.state__meta{color:var(--color-text-muted);font-size:var(--text-xs)}.state--left{align-items:flex-start;text-align:left}.state--soft{--state-surface:var(--color-surface-subtle);--state-border-style:solid}.state--inline{align-items:flex-start}.state--inline,.state--split{flex-direction:row;text-align:left}.state--split{align-items:center}.state--inline .state__actions,.state--left .state__actions,.state--split .state__actions{justify-content:flex-start}.state--compact{--state-padding:var(--space-5);--state-gap:var(--space-3)}.state--plain{background:transparent;border:none;padding:0}.state--center{align-items:center;text-align:center}@media (max-width:768px){.state--inline,.state--split{align-items:center;flex-direction:column;text-align:center}}
|