@getvitops/generator 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 (75) hide show
  1. package/README.md +35 -0
  2. package/assets/bricks/elements/carousel.php +89 -0
  3. package/assets/bricks/elements/centered.php +128 -0
  4. package/assets/bricks/elements/color-scheme-toggle.php +61 -0
  5. package/assets/bricks/elements/copy-button.php +65 -0
  6. package/assets/bricks/elements/dismissable.php +93 -0
  7. package/assets/bricks/elements/entries.php +96 -0
  8. package/assets/bricks/elements/image-compare.php +132 -0
  9. package/assets/bricks/elements/multi-field.php +148 -0
  10. package/assets/bricks/elements/sitenav.php +298 -0
  11. package/assets/bricks/elements/split-link.php +170 -0
  12. package/assets/bricks/elements/split-panel.php +155 -0
  13. package/assets/bricks/elements/split.php +83 -0
  14. package/assets/bricks/load.php +129 -0
  15. package/assets/css/animation.css +526 -0
  16. package/assets/css/global.css +17 -0
  17. package/assets/css/index.css +58 -0
  18. package/assets/css/layout.css +723 -0
  19. package/assets/css/patterns/anchor-link.css +66 -0
  20. package/assets/css/patterns/banner.css +64 -0
  21. package/assets/css/patterns/carousel.css +269 -0
  22. package/assets/css/patterns/cluster.css +64 -0
  23. package/assets/css/patterns/code.css +17 -0
  24. package/assets/css/patterns/combobox.css +97 -0
  25. package/assets/css/patterns/comment.css +88 -0
  26. package/assets/css/patterns/copy.css +82 -0
  27. package/assets/css/patterns/details.css +87 -0
  28. package/assets/css/patterns/dialog.css +99 -0
  29. package/assets/css/patterns/drawer.css +108 -0
  30. package/assets/css/patterns/dropdown.css +45 -0
  31. package/assets/css/patterns/forms.css +335 -0
  32. package/assets/css/patterns/grouped.css +86 -0
  33. package/assets/css/patterns/horizontal-scroll.css +40 -0
  34. package/assets/css/patterns/icon.css +72 -0
  35. package/assets/css/patterns/lightbox.css +156 -0
  36. package/assets/css/patterns/list.css +272 -0
  37. package/assets/css/patterns/marquee.css +68 -0
  38. package/assets/css/patterns/masonry.css +40 -0
  39. package/assets/css/patterns/media.css +70 -0
  40. package/assets/css/patterns/nav.css +241 -0
  41. package/assets/css/patterns/notification.css +114 -0
  42. package/assets/css/patterns/overlay.css +28 -0
  43. package/assets/css/patterns/popover.css +68 -0
  44. package/assets/css/patterns/pull-quote.css +71 -0
  45. package/assets/css/patterns/scroll-based.css +227 -0
  46. package/assets/css/patterns/scroll-target.css +124 -0
  47. package/assets/css/patterns/separator.css +130 -0
  48. package/assets/css/patterns/sitenav.css +582 -0
  49. package/assets/css/patterns/split-link.css +113 -0
  50. package/assets/css/patterns/splitter.css +212 -0
  51. package/assets/css/patterns/stack.css +67 -0
  52. package/assets/css/patterns/sticky.css +127 -0
  53. package/assets/css/patterns/subgrid.css +178 -0
  54. package/assets/css/patterns/svg.css +166 -0
  55. package/assets/css/patterns/table.css +106 -0
  56. package/assets/css/patterns/tag.css +75 -0
  57. package/assets/css/patterns/text-effects.css +317 -0
  58. package/assets/css/patterns/tooltip.css +68 -0
  59. package/assets/css/patterns/tree.css +126 -0
  60. package/assets/css/utilities.css +351 -0
  61. package/assets/js/deferred.js +1 -0
  62. package/assets/js/elements.js +887 -0
  63. package/assets/js/polyfills/adoptedStyleSheets.js +1 -0
  64. package/assets/js/polyfills/css-anchor-positioning-fn.js +17 -0
  65. package/assets/js/polyfills/global.esm.js +1 -0
  66. package/assets/js/polyfills/popover.js +63 -0
  67. package/assets/js/polyfills/template-shadowroot.js +24 -0
  68. package/assets/js/polyfills/webcomponents-bundle.js +27 -0
  69. package/assets/js/polyfills.js +1 -0
  70. package/dist/index.d.mts +1425 -0
  71. package/dist/index.d.mts.map +1 -0
  72. package/dist/index.mjs +2611 -0
  73. package/dist/index.mjs.map +1 -0
  74. package/package.json +33 -0
  75. package/schema.json +508 -0
@@ -0,0 +1,723 @@
1
+ /* ═══════════════════════════════════════════════════════════════════════════
2
+ 2. TYPOGRAPHY — moved to schema-driven .font-* roles.
3
+ The named text roles (.font-display/.font-title/.font-heading/.font-body/
4
+ .font-quote/.font-caption/.font-eyebrow/.font-lead/.font-footnote/.font-code/
5
+ .font-tag) are now generated from design-system.json into
6
+ ./generated/typography.css. Edit the `typography` key there, not here.
7
+ ═══════════════════════════════════════════════════════════════════════════ */
8
+
9
+ /* ═══════════════════════════════════════════════════════════════════════════
10
+ Responsive variant naming (Tailwind-aligned)
11
+ Utilities follow Tailwind's left-to-right prefix order with `-` for `:`:
12
+ [<query>-][<pseudo>-]<utility> e.g. md-split-1-2, md-items-center
13
+ Query prefixes are bare container breakpoints (sm 30rem · md 48rem · lg 64rem
14
+ · xl 80rem), resolved against the nearest container-type ancestor. Base utility
15
+ names mirror Tailwind (items-*, justify-*, text-*, flex*), so the same vocabulary
16
+ works in the CSS/Bricks framework and, via Tailwind's own @md:/hover: variants,
17
+ in the generated tailwind.css.
18
+ ═══════════════════════════════════════════════════════════════════════════ */
19
+
20
+ /* ═══════════════════════════════════════════════════════════════════════════
21
+ 3. RHYTHM — automatic vertical rhythm between sibling elements
22
+ Put .rhythm on a container. Adjacent siblings get margin-top based on the
23
+ relationship between the two elements. Gaps are multiples of --rhythm-base
24
+ (1rlh × dial). :where() keeps selectors at 0 specificity so .m-* overrides win.
25
+ ═══════════════════════════════════════════════════════════════════════════ */
26
+ :root {
27
+ --rhythm-scale: 1; /* global dial */
28
+ --rhythm-base: calc(1rlh * var(--rhythm-scale)); /* one root line-height × dial */
29
+
30
+ --rhythm-h-p: 0.4;
31
+ --rhythm-p-p: 0.9;
32
+ --rhythm-p-h: 1.6;
33
+ --rhythm-h-h: 0.6;
34
+ --rhythm-p-list: 0.5;
35
+ --rhythm-list-p: 0.9;
36
+ --rhythm-li-li: 0.3;
37
+ --rhythm-text-media: 1.2;
38
+ --rhythm-media-text: 1.2;
39
+ }
40
+
41
+ /* .rhythm establishes a flow-root: contains child top-margins (no collapse-out)
42
+ and gives the parser a non-empty bare rule to register. */
43
+ .rhythm {
44
+ display: flow-root;
45
+ }
46
+ .rhythm > * + * {
47
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-p-p));
48
+ }
49
+ .rhythm > :where(h1, h2, h3, h4, h5, h6) + p {
50
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-h-p));
51
+ }
52
+ .rhythm > p + :where(h1, h2, h3, h4, h5, h6) {
53
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-p-h));
54
+ }
55
+ .rhythm > :where(h1, h2, h3, h4, h5, h6) + :where(h1, h2, h3, h4, h5, h6) {
56
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-h-h));
57
+ }
58
+ .rhythm > p + :where(ul, ol) {
59
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-p-list));
60
+ }
61
+ .rhythm > :where(ul, ol) + p {
62
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-list-p));
63
+ }
64
+ .rhythm :where(ul, ol) > li + li {
65
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-li-li));
66
+ }
67
+ .rhythm > :where(p, h1, h2, h3, h4, h5, h6, ul, ol) + :where(figure, img, picture, video) {
68
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-text-media));
69
+ }
70
+ .rhythm > :where(figure, img, picture, video) + :where(p, h1, h2, h3, h4, h5, h6, ul, ol) {
71
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-media-text));
72
+ }
73
+
74
+ /* Manual rhythm overrides (apply to the second element of a pair) */
75
+ .m-h-p {
76
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-h-p));
77
+ }
78
+ .m-p-p {
79
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-p-p));
80
+ }
81
+ .m-p-h {
82
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-p-h));
83
+ }
84
+ .m-h-h {
85
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-h-h));
86
+ }
87
+ .m-p-list {
88
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-p-list));
89
+ }
90
+ .m-list-p {
91
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-list-p));
92
+ }
93
+ .m-li-li {
94
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-li-li));
95
+ }
96
+ .m-text-media {
97
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-text-media));
98
+ }
99
+ .m-media-text {
100
+ margin-top: calc(var(--rhythm-base) * var(--rhythm-media-text));
101
+ }
102
+
103
+ .m-0 {
104
+ margin-top: 0;
105
+ }
106
+ .m-xs {
107
+ margin-top: calc(var(--rhythm-base) * 0.25);
108
+ }
109
+ .m-s {
110
+ margin-top: calc(var(--rhythm-base) * 0.5);
111
+ }
112
+ .m-m {
113
+ margin-top: calc(var(--rhythm-base) * 1);
114
+ }
115
+ .m-l {
116
+ margin-top: calc(var(--rhythm-base) * 1.5);
117
+ }
118
+ .m-xl {
119
+ margin-top: calc(var(--rhythm-base) * 2);
120
+ }
121
+
122
+ /* ═══════════════════════════════════════════════════════════════════════════
123
+ 4. CENTERED SECTIONS — named-track grid
124
+ Put .centered on a Div. Children default to the measure (reading) track;
125
+ add .breakout / .spotlight / .fullbleed to widen. Track widths in ch so the
126
+ reading measure is character-based and the subtraction math stays consistent.
127
+ ═══════════════════════════════════════════════════════════════════════════ */
128
+ :root {
129
+ --width-measure: 65ch;
130
+ --width-breakout: 90ch;
131
+ --width-spotlight: 120ch;
132
+ --gutter: clamp(1rem, 4cqi, 3rem);
133
+ }
134
+
135
+ body {
136
+ container-type: inline-size;
137
+ /* Named so scroll.css's `@container body (…)` queries (toc-layout/-sidebar/
138
+ -inline) resolve. Unnamed utility variant queries still match the nearest
139
+ container regardless of the name. */
140
+ container-name: body;
141
+ }
142
+
143
+ .centered {
144
+ --_measure: min(var(--width-measure), 100% - var(--gutter) * 2);
145
+ --_breakout: minmax(0, calc((var(--width-breakout) - var(--width-measure)) / 2));
146
+ --_spotlight: minmax(0, calc((var(--width-spotlight) - var(--width-breakout)) / 2));
147
+ position: relative;
148
+ display: grid;
149
+ grid-template-columns:
150
+ [fullbleed-start] minmax(var(--gutter), 1fr)
151
+ [spotlight-start] var(--_spotlight)
152
+ [breakout-start] var(--_breakout)
153
+ [measure-start] var(--_measure) [measure-end]
154
+ var(--_breakout) [breakout-end]
155
+ var(--_spotlight) [spotlight-end]
156
+ minmax(var(--gutter), 1fr) [fullbleed-end];
157
+ }
158
+
159
+ .centered > * {
160
+ grid-column: measure;
161
+ }
162
+
163
+ /* Bare placement. .measure restates the default (redundant but parser-visible). */
164
+ .measure {
165
+ grid-column: measure;
166
+ }
167
+ .breakout {
168
+ grid-column: breakout;
169
+ }
170
+ .spotlight {
171
+ grid-column: spotlight;
172
+ }
173
+ .fullbleed {
174
+ grid-column: fullbleed;
175
+ }
176
+
177
+ /* Promotion variants (base = measure; widen past each container breakpoint) */
178
+ @container (min-width: 30rem) {
179
+ .sm-measure {
180
+ grid-column: measure;
181
+ }
182
+ .sm-breakout {
183
+ grid-column: breakout;
184
+ }
185
+ .sm-spotlight {
186
+ grid-column: spotlight;
187
+ }
188
+ .sm-fullbleed {
189
+ grid-column: fullbleed;
190
+ }
191
+ }
192
+ @container (min-width: 48rem) {
193
+ .md-measure {
194
+ grid-column: measure;
195
+ }
196
+ .md-breakout {
197
+ grid-column: breakout;
198
+ }
199
+ .md-spotlight {
200
+ grid-column: spotlight;
201
+ }
202
+ .md-fullbleed {
203
+ grid-column: fullbleed;
204
+ }
205
+ }
206
+ @container (min-width: 64rem) {
207
+ .lg-measure {
208
+ grid-column: measure;
209
+ }
210
+ .lg-breakout {
211
+ grid-column: breakout;
212
+ }
213
+ .lg-spotlight {
214
+ grid-column: spotlight;
215
+ }
216
+ .lg-fullbleed {
217
+ grid-column: fullbleed;
218
+ }
219
+ }
220
+ @container (min-width: 80rem) {
221
+ .xl-measure {
222
+ grid-column: measure;
223
+ }
224
+ .xl-breakout {
225
+ grid-column: breakout;
226
+ }
227
+ .xl-spotlight {
228
+ grid-column: spotlight;
229
+ }
230
+ .xl-fullbleed {
231
+ grid-column: fullbleed;
232
+ }
233
+ }
234
+
235
+ /* Vertical rhythm region (usually on the Section) */
236
+ .region {
237
+ padding-block: clamp(
238
+ var(--region-space-min, 3rem),
239
+ var(--region-space, 8vh),
240
+ var(--region-space-max, 8rem)
241
+ );
242
+ }
243
+
244
+ /* ═══════════════════════════════════════════════════════════════════════════
245
+ 5. LAYOUT UTILITIES — flex direction, splits, alignment, text-align
246
+ Container-gated (unnamed @container): resolve against the nearest
247
+ container-type ancestor. Bare = base/mobile; sm- md- lg- xl- widen up.
248
+ Breakpoints: sm 30rem · md 48rem · lg 64rem · xl 80rem.
249
+ ═══════════════════════════════════════════════════════════════════════════ */
250
+
251
+ /* ── Flex direction (display + direction; tiered classes set both) ── */
252
+ .flex {
253
+ display: flex;
254
+ /* Set direction explicitly (not just `display:flex`): hosts like Bricks' block
255
+ element default `flex-direction: column`, which would otherwise win. `.flex-col`
256
+ still overrides. */
257
+ flex-direction: row;
258
+ --_flex-direction: row;
259
+ }
260
+ /* Each direction class also publishes --_flex-direction so descendants (e.g. .group)
261
+ can read the container's axis via a style query and adapt when it flips responsively. */
262
+ .flex-row {
263
+ flex-direction: row;
264
+ --_flex-direction: row;
265
+ }
266
+ .flex-col {
267
+ flex-direction: column;
268
+ --_flex-direction: column;
269
+ }
270
+
271
+ @container (min-width: 30rem) {
272
+ .sm-flex {
273
+ display: flex;
274
+ }
275
+ .sm-flex-row {
276
+ display: flex;
277
+ flex-direction: row;
278
+ --_flex-direction: row;
279
+ }
280
+ .sm-flex-col {
281
+ display: flex;
282
+ flex-direction: column;
283
+ --_flex-direction: column;
284
+ }
285
+ }
286
+ @container (min-width: 48rem) {
287
+ .md-flex {
288
+ display: flex;
289
+ }
290
+ .md-flex-row {
291
+ display: flex;
292
+ flex-direction: row;
293
+ --_flex-direction: row;
294
+ }
295
+ .md-flex-col {
296
+ display: flex;
297
+ flex-direction: column;
298
+ --_flex-direction: column;
299
+ }
300
+ }
301
+ @container (min-width: 64rem) {
302
+ .lg-flex {
303
+ display: flex;
304
+ }
305
+ .lg-flex-row {
306
+ display: flex;
307
+ flex-direction: row;
308
+ --_flex-direction: row;
309
+ }
310
+ .lg-flex-col {
311
+ display: flex;
312
+ flex-direction: column;
313
+ --_flex-direction: column;
314
+ }
315
+ }
316
+ @container (min-width: 80rem) {
317
+ .xl-flex {
318
+ display: flex;
319
+ }
320
+ .xl-flex-row {
321
+ display: flex;
322
+ flex-direction: row;
323
+ --_flex-direction: row;
324
+ }
325
+ .xl-flex-col {
326
+ display: flex;
327
+ flex-direction: column;
328
+ --_flex-direction: column;
329
+ }
330
+ }
331
+
332
+ /* ── Splits (internal fractions). .split sets its own flex context so it works
333
+ standalone AND is registered by Bricks' parser (a non-empty bare rule). ── */
334
+ .split {
335
+ display: flex;
336
+ }
337
+ /* Equal by default. A ratio class sets two flex vars on the container (any a:b
338
+ in one line); the first/last child read them. Responsive prefixes engage the
339
+ ratio from a container breakpoint (equal below it). */
340
+ .split > * {
341
+ flex: 1;
342
+ }
343
+ .split > :first-child {
344
+ flex: var(--_split-a, 1);
345
+ }
346
+ .split > :last-child {
347
+ flex: var(--_split-b, 1);
348
+ }
349
+
350
+ /* ── Auto-fit grid: cards wrap into as many equal columns as fit, each at least
351
+ --grid-min wide. Unlike .split (explicit fractions) the column count is
352
+ content-driven. ── */
353
+ .grid-auto {
354
+ display: grid;
355
+ gap: var(--grid-gap, 1rem);
356
+ grid-template-columns: repeat(auto-fit, minmax(var(--grid-min, 13rem), 1fr));
357
+ }
358
+
359
+ .split-1-2 {
360
+ --_split-a: 1;
361
+ --_split-b: 2;
362
+ }
363
+ .split-2-1 {
364
+ --_split-a: 2;
365
+ --_split-b: 1;
366
+ }
367
+ .split-1-3 {
368
+ --_split-a: 1;
369
+ --_split-b: 3;
370
+ }
371
+ .split-3-1 {
372
+ --_split-a: 3;
373
+ --_split-b: 1;
374
+ }
375
+ .split-1-4 {
376
+ --_split-a: 1;
377
+ --_split-b: 4;
378
+ }
379
+ .split-4-1 {
380
+ --_split-a: 4;
381
+ --_split-b: 1;
382
+ }
383
+ .split-2-3 {
384
+ --_split-a: 2;
385
+ --_split-b: 3;
386
+ }
387
+ .split-3-2 {
388
+ --_split-a: 3;
389
+ --_split-b: 2;
390
+ }
391
+
392
+ @container (min-width: 30rem) {
393
+ .sm-split {
394
+ --_split-a: 1;
395
+ --_split-b: 1;
396
+ }
397
+ .sm-split-1-2 {
398
+ --_split-a: 1;
399
+ --_split-b: 2;
400
+ }
401
+ .sm-split-2-1 {
402
+ --_split-a: 2;
403
+ --_split-b: 1;
404
+ }
405
+ .sm-split-1-3 {
406
+ --_split-a: 1;
407
+ --_split-b: 3;
408
+ }
409
+ .sm-split-3-1 {
410
+ --_split-a: 3;
411
+ --_split-b: 1;
412
+ }
413
+ .sm-split-1-4 {
414
+ --_split-a: 1;
415
+ --_split-b: 4;
416
+ }
417
+ .sm-split-4-1 {
418
+ --_split-a: 4;
419
+ --_split-b: 1;
420
+ }
421
+ .sm-split-2-3 {
422
+ --_split-a: 2;
423
+ --_split-b: 3;
424
+ }
425
+ .sm-split-3-2 {
426
+ --_split-a: 3;
427
+ --_split-b: 2;
428
+ }
429
+ }
430
+ @container (min-width: 48rem) {
431
+ .md-split {
432
+ --_split-a: 1;
433
+ --_split-b: 1;
434
+ }
435
+ .md-split-1-2 {
436
+ --_split-a: 1;
437
+ --_split-b: 2;
438
+ }
439
+ .md-split-2-1 {
440
+ --_split-a: 2;
441
+ --_split-b: 1;
442
+ }
443
+ .md-split-1-3 {
444
+ --_split-a: 1;
445
+ --_split-b: 3;
446
+ }
447
+ .md-split-3-1 {
448
+ --_split-a: 3;
449
+ --_split-b: 1;
450
+ }
451
+ .md-split-1-4 {
452
+ --_split-a: 1;
453
+ --_split-b: 4;
454
+ }
455
+ .md-split-4-1 {
456
+ --_split-a: 4;
457
+ --_split-b: 1;
458
+ }
459
+ .md-split-2-3 {
460
+ --_split-a: 2;
461
+ --_split-b: 3;
462
+ }
463
+ .md-split-3-2 {
464
+ --_split-a: 3;
465
+ --_split-b: 2;
466
+ }
467
+ }
468
+ @container (min-width: 64rem) {
469
+ .lg-split {
470
+ --_split-a: 1;
471
+ --_split-b: 1;
472
+ }
473
+ .lg-split-1-2 {
474
+ --_split-a: 1;
475
+ --_split-b: 2;
476
+ }
477
+ .lg-split-2-1 {
478
+ --_split-a: 2;
479
+ --_split-b: 1;
480
+ }
481
+ .lg-split-1-3 {
482
+ --_split-a: 1;
483
+ --_split-b: 3;
484
+ }
485
+ .lg-split-3-1 {
486
+ --_split-a: 3;
487
+ --_split-b: 1;
488
+ }
489
+ .lg-split-1-4 {
490
+ --_split-a: 1;
491
+ --_split-b: 4;
492
+ }
493
+ .lg-split-4-1 {
494
+ --_split-a: 4;
495
+ --_split-b: 1;
496
+ }
497
+ .lg-split-2-3 {
498
+ --_split-a: 2;
499
+ --_split-b: 3;
500
+ }
501
+ .lg-split-3-2 {
502
+ --_split-a: 3;
503
+ --_split-b: 2;
504
+ }
505
+ }
506
+ @container (min-width: 80rem) {
507
+ .xl-split {
508
+ --_split-a: 1;
509
+ --_split-b: 1;
510
+ }
511
+ .xl-split-1-2 {
512
+ --_split-a: 1;
513
+ --_split-b: 2;
514
+ }
515
+ .xl-split-2-1 {
516
+ --_split-a: 2;
517
+ --_split-b: 1;
518
+ }
519
+ .xl-split-1-3 {
520
+ --_split-a: 1;
521
+ --_split-b: 3;
522
+ }
523
+ .xl-split-3-1 {
524
+ --_split-a: 3;
525
+ --_split-b: 1;
526
+ }
527
+ .xl-split-1-4 {
528
+ --_split-a: 1;
529
+ --_split-b: 4;
530
+ }
531
+ .xl-split-4-1 {
532
+ --_split-a: 4;
533
+ --_split-b: 1;
534
+ }
535
+ .xl-split-2-3 {
536
+ --_split-a: 2;
537
+ --_split-b: 3;
538
+ }
539
+ .xl-split-3-2 {
540
+ --_split-a: 3;
541
+ --_split-b: 2;
542
+ }
543
+ }
544
+
545
+ /* ── Alignment (flex parents) + text-align. Bare classes, then shared tiers.
546
+ Names mirror Tailwind: items-* (align-items), justify-* (justify-content),
547
+ text-* (text-align). ── */
548
+ .items-start {
549
+ align-items: flex-start;
550
+ }
551
+ .items-center {
552
+ align-items: center;
553
+ }
554
+ .items-end {
555
+ align-items: flex-end;
556
+ }
557
+ .items-stretch {
558
+ align-items: stretch;
559
+ }
560
+
561
+ .justify-start {
562
+ justify-content: flex-start;
563
+ }
564
+ .justify-center {
565
+ justify-content: center;
566
+ }
567
+ .justify-end {
568
+ justify-content: flex-end;
569
+ }
570
+ .justify-between {
571
+ justify-content: space-between;
572
+ }
573
+
574
+ .text-start {
575
+ text-align: start;
576
+ }
577
+ .text-center {
578
+ text-align: center;
579
+ }
580
+ .text-end {
581
+ text-align: end;
582
+ }
583
+
584
+ @container (min-width: 30rem) {
585
+ .sm-items-start {
586
+ align-items: flex-start;
587
+ }
588
+ .sm-items-center {
589
+ align-items: center;
590
+ }
591
+ .sm-items-end {
592
+ align-items: flex-end;
593
+ }
594
+ .sm-items-stretch {
595
+ align-items: stretch;
596
+ }
597
+ .sm-justify-start {
598
+ justify-content: flex-start;
599
+ }
600
+ .sm-justify-center {
601
+ justify-content: center;
602
+ }
603
+ .sm-justify-end {
604
+ justify-content: flex-end;
605
+ }
606
+ .sm-justify-between {
607
+ justify-content: space-between;
608
+ }
609
+ .sm-text-start {
610
+ text-align: start;
611
+ }
612
+ .sm-text-center {
613
+ text-align: center;
614
+ }
615
+ .sm-text-end {
616
+ text-align: end;
617
+ }
618
+ }
619
+ @container (min-width: 48rem) {
620
+ .md-items-start {
621
+ align-items: flex-start;
622
+ }
623
+ .md-items-center {
624
+ align-items: center;
625
+ }
626
+ .md-items-end {
627
+ align-items: flex-end;
628
+ }
629
+ .md-items-stretch {
630
+ align-items: stretch;
631
+ }
632
+ .md-justify-start {
633
+ justify-content: flex-start;
634
+ }
635
+ .md-justify-center {
636
+ justify-content: center;
637
+ }
638
+ .md-justify-end {
639
+ justify-content: flex-end;
640
+ }
641
+ .md-justify-between {
642
+ justify-content: space-between;
643
+ }
644
+ .md-text-start {
645
+ text-align: start;
646
+ }
647
+ .md-text-center {
648
+ text-align: center;
649
+ }
650
+ .md-text-end {
651
+ text-align: end;
652
+ }
653
+ }
654
+ @container (min-width: 64rem) {
655
+ .lg-items-start {
656
+ align-items: flex-start;
657
+ }
658
+ .lg-items-center {
659
+ align-items: center;
660
+ }
661
+ .lg-items-end {
662
+ align-items: flex-end;
663
+ }
664
+ .lg-items-stretch {
665
+ align-items: stretch;
666
+ }
667
+ .lg-justify-start {
668
+ justify-content: flex-start;
669
+ }
670
+ .lg-justify-center {
671
+ justify-content: center;
672
+ }
673
+ .lg-justify-end {
674
+ justify-content: flex-end;
675
+ }
676
+ .lg-justify-between {
677
+ justify-content: space-between;
678
+ }
679
+ .lg-text-start {
680
+ text-align: start;
681
+ }
682
+ .lg-text-center {
683
+ text-align: center;
684
+ }
685
+ .lg-text-end {
686
+ text-align: end;
687
+ }
688
+ }
689
+ @container (min-width: 80rem) {
690
+ .xl-items-start {
691
+ align-items: flex-start;
692
+ }
693
+ .xl-items-center {
694
+ align-items: center;
695
+ }
696
+ .xl-items-end {
697
+ align-items: flex-end;
698
+ }
699
+ .xl-items-stretch {
700
+ align-items: stretch;
701
+ }
702
+ .xl-justify-start {
703
+ justify-content: flex-start;
704
+ }
705
+ .xl-justify-center {
706
+ justify-content: center;
707
+ }
708
+ .xl-justify-end {
709
+ justify-content: flex-end;
710
+ }
711
+ .xl-justify-between {
712
+ justify-content: space-between;
713
+ }
714
+ .xl-text-start {
715
+ text-align: start;
716
+ }
717
+ .xl-text-center {
718
+ text-align: center;
719
+ }
720
+ .xl-text-end {
721
+ text-align: end;
722
+ }
723
+ }