@24vlh/vds 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/LICENSE.txt +201 -0
  2. package/README.md +147 -0
  3. package/dist/components/accordion.css +170 -0
  4. package/dist/components/accordion.min.css +1 -0
  5. package/dist/components/authoring.css +332 -0
  6. package/dist/components/authoring.min.css +1 -0
  7. package/dist/components/buttons.css +683 -0
  8. package/dist/components/buttons.min.css +1 -0
  9. package/dist/components/charts.css +502 -0
  10. package/dist/components/charts.min.css +1 -0
  11. package/dist/components/command.css +521 -0
  12. package/dist/components/command.min.css +1 -0
  13. package/dist/components/content-blocks.css +944 -0
  14. package/dist/components/content-blocks.min.css +1 -0
  15. package/dist/components/doc-block.css +782 -0
  16. package/dist/components/doc-block.min.css +1 -0
  17. package/dist/components/feedback.css +657 -0
  18. package/dist/components/feedback.min.css +1 -0
  19. package/dist/components/flows.css +1101 -0
  20. package/dist/components/flows.min.css +1 -0
  21. package/dist/components/forms-advanced.css +462 -0
  22. package/dist/components/forms-advanced.min.css +1 -0
  23. package/dist/components/forms.css +1831 -0
  24. package/dist/components/forms.min.css +1 -0
  25. package/dist/components/header-footer.css +348 -0
  26. package/dist/components/header-footer.min.css +1 -0
  27. package/dist/components/hero.css +498 -0
  28. package/dist/components/hero.min.css +1 -0
  29. package/dist/components/icons.css +937 -0
  30. package/dist/components/icons.min.css +1 -0
  31. package/dist/components/navigation.css +900 -0
  32. package/dist/components/navigation.min.css +1 -0
  33. package/dist/components/overlays.css +498 -0
  34. package/dist/components/overlays.min.css +1 -0
  35. package/dist/components/sections.css +450 -0
  36. package/dist/components/sections.min.css +1 -0
  37. package/dist/components/skeleton.css +385 -0
  38. package/dist/components/skeleton.min.css +1 -0
  39. package/dist/components/tables.css +591 -0
  40. package/dist/components/tables.min.css +1 -0
  41. package/dist/components/tabs.css +307 -0
  42. package/dist/components/tabs.min.css +1 -0
  43. package/dist/components/toasts.css +421 -0
  44. package/dist/components/toasts.min.css +1 -0
  45. package/dist/components/tooltips-popovers.css +447 -0
  46. package/dist/components/tooltips-popovers.min.css +1 -0
  47. package/dist/components/typography.css +250 -0
  48. package/dist/components/typography.min.css +1 -0
  49. package/dist/components/utilities.css +3434 -0
  50. package/dist/components/utilities.min.css +1 -0
  51. package/dist/core.css +866 -0
  52. package/dist/core.min.css +1 -0
  53. package/dist/identity.css +266 -0
  54. package/dist/identity.min.css +1 -0
  55. package/dist/themes/carbon.css +658 -0
  56. package/dist/themes/carbon.min.css +1 -0
  57. package/dist/themes/graphite.css +658 -0
  58. package/dist/themes/graphite.min.css +1 -0
  59. package/dist/themes/navy.css +657 -0
  60. package/dist/themes/navy.min.css +1 -0
  61. package/dist/themes/slate.css +659 -0
  62. package/dist/themes/slate.min.css +1 -0
  63. package/dist/vds.css +20313 -0
  64. package/dist/vds.min.css +1 -0
  65. package/package.json +64 -0
@@ -0,0 +1,450 @@
1
+ /************************************************************
2
+ * VLAH DESIGN SYSTEM (VDS) - Sections System
3
+ *
4
+ * Responsibilities:
5
+ * - Provide the fundamental block-level layout system used across all
6
+ * marketing, documentation, and application pages
7
+ * - Define universal section spacing (XS–XL) with legacy A/B/C support
8
+ * - Implement section headers (eyebrow, title, subtitle), alignment variants,
9
+ * surfaces, alt backgrounds, and full divider patterns
10
+ * - Supply grid utilities (2–6 columns + auto-fit), stacks (vertical /
11
+ * horizontal), inset sections, split sections, and reversed split layouts
12
+ *
13
+ * System Notes:
14
+ * - Fully token-driven: section-spacing-*, text scales, radius, surfaces,
15
+ * border lanes, grid-min, and layout-max-width
16
+ * - Pure CSS; responsive behaviour uses safe grid/flex reflow with no JS
17
+ * - Namespaced to be compatible with legacy VDS layouts and new v1 rhythms
18
+ ************************************************************/
19
+
20
+ /* ---------------------------------------------------------
21
+ 1. BASE SECTION CONTAINER
22
+ --------------------------------------------------------- */
23
+
24
+ .section {
25
+ width: 100%;
26
+ padding-top: var(--section-spacing-md);
27
+ padding-bottom: var(--section-spacing-md);
28
+ position: relative;
29
+ background-color: var(--color-bg);
30
+ }
31
+
32
+ .section__inner {
33
+ max-width: var(--layout-max-width);
34
+ margin: 0 auto;
35
+ padding: 0 var(--space-6);
36
+
37
+ display: flex;
38
+ flex-direction: column;
39
+ gap: var(--space-6);
40
+ }
41
+
42
+ /* ---------------------------------------------------------
43
+ 2. LEGACY DENSITY SYSTEM (A / B / C / FLUSH)
44
+ --------------------------------------------------------- */
45
+
46
+ .section--a {
47
+ padding-top: var(--space-20);
48
+ padding-bottom: var(--space-20);
49
+ }
50
+
51
+ .section--b {
52
+ padding-top: var(--space-14);
53
+ padding-bottom: var(--space-14);
54
+ }
55
+
56
+ .section--c {
57
+ padding-top: var(--space-10);
58
+ padding-bottom: var(--space-10);
59
+ }
60
+
61
+ .section--flush {
62
+ padding-top: 0;
63
+ padding-bottom: 0;
64
+ }
65
+
66
+ /* ---------------------------------------------------------
67
+ 3. NEW UNIVERSAL SECTION RHYTHM (XS–XL)
68
+ --------------------------------------------------------- */
69
+
70
+ .section--xs {
71
+ padding-top: var(--section-spacing-xs);
72
+ padding-bottom: var(--section-spacing-xs);
73
+ }
74
+
75
+ .section--sm {
76
+ padding-top: var(--section-spacing-sm);
77
+ padding-bottom: var(--section-spacing-sm);
78
+ }
79
+
80
+ .section--md {
81
+ padding-top: var(--section-spacing-md);
82
+ padding-bottom: var(--section-spacing-md);
83
+ }
84
+
85
+ .section--lg {
86
+ padding-top: var(--section-spacing-lg);
87
+ padding-bottom: var(--section-spacing-lg);
88
+ }
89
+
90
+ .section--xl {
91
+ padding-top: var(--section-spacing-xl);
92
+ padding-bottom: var(--section-spacing-xl);
93
+ }
94
+
95
+ /* ---------------------------------------------------------
96
+ 4. SECTION HEADER SYSTEM
97
+ --------------------------------------------------------- */
98
+
99
+ .section__header {
100
+ display: flex;
101
+ flex-direction: column;
102
+ gap: var(--space-3);
103
+ max-width: 70ch;
104
+ }
105
+
106
+ .section__eyebrow {
107
+ font-size: var(--text-xs);
108
+ font-weight: 600;
109
+ letter-spacing: 0.05em;
110
+ text-transform: uppercase;
111
+ color: var(--section-brand-eyebrow, var(--color-text-muted));
112
+ }
113
+
114
+ .section__title {
115
+ font-size: var(--text-2xl);
116
+ font-weight: 600;
117
+ line-height: 1.2;
118
+ color: var(--section-brand-title, var(--color-text));
119
+ }
120
+
121
+ .section__subtitle {
122
+ font-size: var(--text-sm);
123
+ color: var(--section-brand-subtitle, var(--color-text-muted));
124
+ max-width: 60ch;
125
+ }
126
+
127
+ .section--a .section__title {
128
+ font-size: var(--text-3xl);
129
+ }
130
+
131
+ .section--b .section__title {
132
+ font-size: var(--text-2xl);
133
+ }
134
+
135
+ .section--c .section__title {
136
+ font-size: var(--text-xl);
137
+ }
138
+
139
+ .section--center .section__header {
140
+ text-align: center;
141
+ align-items: center;
142
+ }
143
+
144
+ .section--right .section__header {
145
+ text-align: right;
146
+ align-items: flex-end;
147
+ }
148
+
149
+ .section__header--tight {
150
+ gap: var(--space-2);
151
+ }
152
+
153
+ .section__header--wide {
154
+ gap: var(--space-6);
155
+ }
156
+
157
+ /* ---------------------------------------------------------
158
+ 5. SECTION DIVIDERS
159
+ --------------------------------------------------------- */
160
+
161
+ .section--divided {
162
+ border-top: 1px solid var(--color-border-subtle);
163
+ }
164
+
165
+ .section--divided + .section--divided {
166
+ border-top: none;
167
+ border-bottom: 1px solid var(--color-border-subtle);
168
+ }
169
+
170
+ .section--divided-x {
171
+ border-left: 1px solid var(--color-border-subtle);
172
+ border-right: 1px solid var(--color-border-subtle);
173
+ }
174
+
175
+ /* ---------------------------------------------------------
176
+ 6. SURFACES (surface / subtle / brand)
177
+ --------------------------------------------------------- */
178
+
179
+ .section--surface {
180
+ background-color: var(--color-surface);
181
+ border: 1px solid var(--color-border-subtle);
182
+ border-radius: var(--radius-md);
183
+
184
+ padding-top: var(--section-spacing-lg);
185
+ padding-bottom: var(--section-spacing-lg);
186
+
187
+ transition: background-color 0.15s ease;
188
+ }
189
+
190
+ .section--surface:hover {
191
+ background-color: var(--color-surface-hover);
192
+ }
193
+
194
+ .section--subtle {
195
+ background-color: var(--color-surface-subtle);
196
+ }
197
+
198
+ .section--brand {
199
+ background-color: var(--color-accent-soft);
200
+ }
201
+
202
+ /* ---------------------------------------------------------
203
+ 7. ALTERNATE BACKGROUND
204
+ --------------------------------------------------------- */
205
+
206
+ .section--alt {
207
+ background-color: var(--color-bg-soft);
208
+ }
209
+
210
+ /* ---------------------------------------------------------
211
+ 8. SPLIT SECTIONS - CLEAN GRID REVERSAL
212
+ --------------------------------------------------------- */
213
+
214
+ .section--split .section__inner {
215
+ display: grid;
216
+ grid-template-columns: 1fr 1fr;
217
+ grid-gap: var(--space-12);
218
+ gap: var(--space-12);
219
+ }
220
+
221
+ .section--split-reverse .section__inner {
222
+ display: grid;
223
+ grid-template-columns: 1fr 1fr;
224
+ grid-gap: var(--space-12);
225
+ gap: var(--space-12);
226
+ }
227
+
228
+ .section--split-reverse .section__inner > :first-child {
229
+ order: 2;
230
+ }
231
+
232
+ .section--split-reverse .section__inner > :last-child {
233
+ order: 1;
234
+ }
235
+
236
+ /* ---------------------------------------------------------
237
+ 9. INSET SECTIONS (Base + SM/LG)
238
+ --------------------------------------------------------- */
239
+
240
+ .section--inset .section__inner {
241
+ background-color: var(--color-surface);
242
+ border-radius: var(--radius-md);
243
+ border: 1px solid var(--color-border-subtle);
244
+ padding: var(--space-10);
245
+ }
246
+
247
+ .section--inset-sm .section__inner {
248
+ padding: var(--space-6);
249
+ }
250
+
251
+ .section--inset-lg .section__inner {
252
+ padding: var(--space-14);
253
+ }
254
+
255
+ /* ---------------------------------------------------------
256
+ 10. COLUMN GRIDS (2/3/4/5/6/auto) + GAP VARIANTS
257
+ --------------------------------------------------------- */
258
+
259
+ .section__grid-2,
260
+ .section__grid-3,
261
+ .section__grid-4,
262
+ .section__grid-5,
263
+ .section__grid-6,
264
+ .section__grid-auto {
265
+ display: grid;
266
+ grid-gap: var(--space-10);
267
+ gap: var(--space-10);
268
+ }
269
+
270
+ .section__grid-2 {
271
+ grid-template-columns: repeat(2, 1fr);
272
+ }
273
+
274
+ .section__grid-3 {
275
+ grid-template-columns: repeat(3, 1fr);
276
+ }
277
+
278
+ .section__grid-4 {
279
+ grid-template-columns: repeat(4, 1fr);
280
+ }
281
+
282
+ .section__grid-5 {
283
+ grid-template-columns: repeat(5, 1fr);
284
+ }
285
+
286
+ .section__grid-6 {
287
+ grid-template-columns: repeat(6, 1fr);
288
+ }
289
+
290
+ .section__grid-auto {
291
+ grid-template-columns: repeat(auto-fit, minmax(var(--grid-min), 1fr));
292
+ }
293
+
294
+ .section__grid-sm {
295
+ gap: var(--space-4);
296
+ }
297
+
298
+ .section__grid-md {
299
+ gap: var(--space-6);
300
+ }
301
+
302
+ .section__grid-lg {
303
+ gap: var(--space-14);
304
+ }
305
+
306
+ /* ---------------------------------------------------------
307
+ 11. CONTENT STACKS (VERTICAL)
308
+ --------------------------------------------------------- */
309
+
310
+ .section__stack {
311
+ display: flex;
312
+ flex-direction: column;
313
+ gap: var(--space-6);
314
+ }
315
+
316
+ .section__stack-sm {
317
+ display: flex;
318
+ flex-direction: column;
319
+ gap: var(--space-4);
320
+ }
321
+
322
+ .section__stack-lg {
323
+ display: flex;
324
+ flex-direction: column;
325
+ gap: var(--space-10);
326
+ }
327
+
328
+ /* ---------------------------------------------------------
329
+ 12. INLINE STACKS (HORIZONTAL)
330
+ --------------------------------------------------------- */
331
+
332
+ .section__inline {
333
+ display: flex;
334
+ flex-direction: row;
335
+ align-items: center;
336
+ gap: var(--space-3);
337
+ }
338
+
339
+ .section__inline-sm {
340
+ display: flex;
341
+ flex-direction: row;
342
+ align-items: center;
343
+ gap: var(--space-2);
344
+ }
345
+
346
+ .section__inline-lg {
347
+ display: flex;
348
+ flex-direction: row;
349
+ align-items: center;
350
+ gap: var(--space-4);
351
+ }
352
+
353
+ /* ---------------------------------------------------------
354
+ 13. VALUE / LIST SECTIONS
355
+ --------------------------------------------------------- */
356
+
357
+ .section__list {
358
+ display: flex;
359
+ flex-direction: column;
360
+ gap: var(--space-3);
361
+ }
362
+
363
+ .section__list-item {
364
+ display: flex;
365
+ align-items: flex-start;
366
+ gap: var(--space-3);
367
+ font-size: var(--text-sm);
368
+ color: var(--color-text);
369
+ }
370
+
371
+ .section__list-item svg {
372
+ width: 1.25em;
373
+ height: 1.25em;
374
+ stroke: var(--color-accent);
375
+ fill: none;
376
+ flex-shrink: 0;
377
+ }
378
+
379
+ .section__list-item-title {
380
+ font-weight: 600;
381
+ color: var(--color-text);
382
+ }
383
+
384
+ .section__list-item-desc {
385
+ font-size: var(--text-sm);
386
+ color: var(--color-text-muted);
387
+ }
388
+
389
+ /* ---------------------------------------------------------
390
+ 14. RESPONSIVE BEHAVIOUR
391
+ --------------------------------------------------------- */
392
+
393
+ @media (max-width: 1280px) {
394
+ .section__grid-2,
395
+ .section__grid-3,
396
+ .section__grid-4,
397
+ .section__grid-5,
398
+ .section__grid-6,
399
+ .section__grid-auto {
400
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
401
+ }
402
+ }
403
+
404
+ @media (max-width: 1024px) {
405
+ .section--split .section__inner,
406
+ .section--split-reverse .section__inner {
407
+ grid-template-columns: 1fr;
408
+ }
409
+
410
+ .section__grid-2,
411
+ .section__grid-3,
412
+ .section__grid-4,
413
+ .section__grid-5,
414
+ .section__grid-6,
415
+ .section__grid-auto {
416
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
417
+ }
418
+ }
419
+
420
+ @media (max-width: 768px) {
421
+
422
+ .section,
423
+ .section--a,
424
+ .section--b,
425
+ .section--c {
426
+ padding-top: var(--space-10);
427
+ padding-bottom: var(--space-10);
428
+ }
429
+
430
+ .section__grid-2,
431
+ .section__grid-3,
432
+ .section__grid-4,
433
+ .section__grid-5,
434
+ .section__grid-6,
435
+ .section__grid-auto {
436
+ grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
437
+ }
438
+
439
+ .section__title {
440
+ font-size: var(--text-xl);
441
+ }
442
+
443
+ .section__subtitle {
444
+ font-size: var(--text-sm);
445
+ }
446
+
447
+ .section--inset .section__inner {
448
+ padding: var(--space-6);
449
+ }
450
+ }
@@ -0,0 +1 @@
1
+ .section{background-color:var(--color-bg);padding-bottom:var(--section-spacing-md);padding-top:var(--section-spacing-md);position:relative;width:100%}.section__inner{display:flex;flex-direction:column;gap:var(--space-6);margin:0 auto;max-width:var(--layout-max-width);padding:0 var(--space-6)}.section--a{padding-bottom:var(--space-20);padding-top:var(--space-20)}.section--b{padding-bottom:var(--space-14);padding-top:var(--space-14)}.section--c{padding-bottom:var(--space-10);padding-top:var(--space-10)}.section--flush{padding-bottom:0;padding-top:0}.section--xs{padding-bottom:var(--section-spacing-xs);padding-top:var(--section-spacing-xs)}.section--sm{padding-bottom:var(--section-spacing-sm);padding-top:var(--section-spacing-sm)}.section--md{padding-bottom:var(--section-spacing-md);padding-top:var(--section-spacing-md)}.section--lg{padding-bottom:var(--section-spacing-lg);padding-top:var(--section-spacing-lg)}.section--xl{padding-bottom:var(--section-spacing-xl);padding-top:var(--section-spacing-xl)}.section__header{display:flex;flex-direction:column;gap:var(--space-3);max-width:70ch}.section__eyebrow{color:var(--section-brand-eyebrow,var(--color-text-muted));font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.section__title{color:var(--section-brand-title,var(--color-text));font-size:var(--text-2xl);font-weight:600;line-height:1.2}.section__subtitle{color:var(--section-brand-subtitle,var(--color-text-muted));font-size:var(--text-sm);max-width:60ch}.section--a .section__title{font-size:var(--text-3xl)}.section--b .section__title{font-size:var(--text-2xl)}.section--c .section__title{font-size:var(--text-xl)}.section--center .section__header{align-items:center;text-align:center}.section--right .section__header{align-items:flex-end;text-align:right}.section__header--tight{gap:var(--space-2)}.section__header--wide{gap:var(--space-6)}.section--divided{border-top:1px solid var(--color-border-subtle)}.section--divided+.section--divided{border-bottom:1px solid var(--color-border-subtle);border-top:none}.section--divided-x{border-left:1px solid var(--color-border-subtle);border-right:1px solid var(--color-border-subtle)}.section--surface{background-color:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding-bottom:var(--section-spacing-lg);padding-top:var(--section-spacing-lg);transition:background-color .15s ease}.section--surface:hover{background-color:var(--color-surface-hover)}.section--subtle{background-color:var(--color-surface-subtle)}.section--brand{background-color:var(--color-accent-soft)}.section--alt{background-color:var(--color-bg-soft)}.section--split .section__inner,.section--split-reverse .section__inner{grid-gap:var(--space-12);display:grid;gap:var(--space-12);grid-template-columns:1fr 1fr}.section--split-reverse .section__inner>:first-child{order:2}.section--split-reverse .section__inner>:last-child{order:1}.section--inset .section__inner{background-color:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-10)}.section--inset-sm .section__inner{padding:var(--space-6)}.section--inset-lg .section__inner{padding:var(--space-14)}.section__grid-2,.section__grid-3,.section__grid-4,.section__grid-5,.section__grid-6,.section__grid-auto{grid-gap:var(--space-10);display:grid;gap:var(--space-10)}.section__grid-2{grid-template-columns:repeat(2,1fr)}.section__grid-3{grid-template-columns:repeat(3,1fr)}.section__grid-4{grid-template-columns:repeat(4,1fr)}.section__grid-5{grid-template-columns:repeat(5,1fr)}.section__grid-6{grid-template-columns:repeat(6,1fr)}.section__grid-auto{grid-template-columns:repeat(auto-fit,minmax(var(--grid-min),1fr))}.section__grid-sm{gap:var(--space-4)}.section__grid-md{gap:var(--space-6)}.section__grid-lg{gap:var(--space-14)}.section__stack{display:flex;flex-direction:column;gap:var(--space-6)}.section__stack-sm{display:flex;flex-direction:column;gap:var(--space-4)}.section__stack-lg{display:flex;flex-direction:column;gap:var(--space-10)}.section__inline{gap:var(--space-3)}.section__inline,.section__inline-sm{align-items:center;display:flex;flex-direction:row}.section__inline-sm{gap:var(--space-2)}.section__inline-lg{align-items:center;display:flex;flex-direction:row;gap:var(--space-4)}.section__list{display:flex;flex-direction:column;gap:var(--space-3)}.section__list-item{align-items:flex-start;color:var(--color-text);display:flex;font-size:var(--text-sm);gap:var(--space-3)}.section__list-item svg{stroke:var(--color-accent);fill:none;flex-shrink:0;height:1.25em;width:1.25em}.section__list-item-title{color:var(--color-text);font-weight:600}.section__list-item-desc{color:var(--color-text-muted);font-size:var(--text-sm)}@media (max-width:1280px){.section__grid-2,.section__grid-3,.section__grid-4,.section__grid-5,.section__grid-6,.section__grid-auto{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}@media (max-width:1024px){.section--split .section__inner,.section--split-reverse .section__inner{grid-template-columns:1fr}.section__grid-2,.section__grid-3,.section__grid-4,.section__grid-5,.section__grid-6,.section__grid-auto{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}@media (max-width:768px){.section,.section--a,.section--b,.section--c{padding-bottom:var(--space-10);padding-top:var(--space-10)}.section__grid-2,.section__grid-3,.section__grid-4,.section__grid-5,.section__grid-6,.section__grid-auto{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.section__title{font-size:var(--text-xl)}.section__subtitle{font-size:var(--text-sm)}.section--inset .section__inner{padding:var(--space-6)}}