@lobergdesign/dot-grid 1.0.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/grid.css ADDED
@@ -0,0 +1,1400 @@
1
+ /*!
2
+ * dot-grid v1.0.0
3
+ * A modern, flexible 12-column CSS Grid system
4
+ *
5
+ * Features:
6
+ * - Container queries for responsive layouts
7
+ * - Fluid/automatic layout utilities
8
+ * - Subgrid support
9
+ * - CSS custom properties for easy customization
10
+ * - Cascade layers for better specificity control
11
+ *
12
+ * (c) 2024 Jean Loberg
13
+ * Released under the MIT License
14
+ * https://github.com/lobergdesign/dot-grid
15
+ */
16
+ :root {
17
+ --grid-columns: 12;
18
+ --grid-gap: clamp(1rem, 2vw, 2rem);
19
+ --grid-bp-sm: 640px;
20
+ --grid-bp-md: 768px;
21
+ --grid-bp-lg: 1024px;
22
+ --grid-bp-xl: 1280px;
23
+ --grid-bp-xxl: 1536px;
24
+ --grid-wrap-max-width: 180rem;
25
+ --grid-wrap-width: 90vw;
26
+ --grid-gap-none: 0;
27
+ --grid-gap-xs: 0.5rem;
28
+ --grid-gap-sm: 1rem;
29
+ --grid-gap-md: clamp(1rem, 2vw, 2rem);
30
+ --grid-gap-lg: 3rem;
31
+ --grid-gap-xl: 4rem;
32
+ }
33
+
34
+ /*!
35
+ * dot-grid v1.0.0
36
+ * A modern, flexible 12-column CSS Grid system
37
+ *
38
+ * Features:
39
+ * - Container queries for responsive layouts
40
+ * - Fluid/automatic layout utilities
41
+ * - Subgrid support
42
+ * - CSS custom properties for easy customization
43
+ * - Cascade layers for better specificity control
44
+ *
45
+ * (c) 2024 Jean Loberg
46
+ * Released under the MIT License
47
+ * https://github.com/lobergdesign/dot-grid
48
+ */
49
+ @layer grid.base, grid.utilities, grid.responsive, grid.fluid;
50
+ @layer grid.base {
51
+ .wrap {
52
+ width: var(--grid-wrap-width, 90vw);
53
+ max-width: var(--grid-wrap-max-width, 180rem);
54
+ margin-inline: auto;
55
+ }
56
+ .row {
57
+ display: grid;
58
+ grid-template-columns: repeat(var(--grid-columns, 12), 1fr);
59
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
60
+ padding-block-end: var(--grid-gap, clamp(1rem, 2vw, 2rem));
61
+ container-type: inline-size;
62
+ container-name: grid;
63
+ }
64
+ .row > * {
65
+ grid-column-end: span var(--grid-columns, 12);
66
+ }
67
+ .col {
68
+ grid-column-end: span var(--grid-columns, 12);
69
+ }
70
+ .col-1 {
71
+ grid-column-end: span 1;
72
+ }
73
+ .col-2 {
74
+ grid-column-end: span 2;
75
+ }
76
+ .col-3 {
77
+ grid-column-end: span 3;
78
+ }
79
+ .col-4 {
80
+ grid-column-end: span 4;
81
+ }
82
+ .col-5 {
83
+ grid-column-end: span 5;
84
+ }
85
+ .col-6 {
86
+ grid-column-end: span 6;
87
+ }
88
+ .col-7 {
89
+ grid-column-end: span 7;
90
+ }
91
+ .col-8 {
92
+ grid-column-end: span 8;
93
+ }
94
+ .col-9 {
95
+ grid-column-end: span 9;
96
+ }
97
+ .col-10 {
98
+ grid-column-end: span 10;
99
+ }
100
+ .col-11 {
101
+ grid-column-end: span 11;
102
+ }
103
+ .col-12 {
104
+ grid-column-end: span 12;
105
+ }
106
+ .col-start-1 {
107
+ grid-column-start: 1;
108
+ }
109
+ .col-start-2 {
110
+ grid-column-start: 2;
111
+ }
112
+ .col-start-3 {
113
+ grid-column-start: 3;
114
+ }
115
+ .col-start-4 {
116
+ grid-column-start: 4;
117
+ }
118
+ .col-start-5 {
119
+ grid-column-start: 5;
120
+ }
121
+ .col-start-6 {
122
+ grid-column-start: 6;
123
+ }
124
+ .col-start-7 {
125
+ grid-column-start: 7;
126
+ }
127
+ .col-start-8 {
128
+ grid-column-start: 8;
129
+ }
130
+ .col-start-9 {
131
+ grid-column-start: 9;
132
+ }
133
+ .col-start-10 {
134
+ grid-column-start: 10;
135
+ }
136
+ .col-start-11 {
137
+ grid-column-start: 11;
138
+ }
139
+ .col-start-12 {
140
+ grid-column-start: 12;
141
+ }
142
+ .row-subgrid {
143
+ display: grid;
144
+ grid-template-columns: subgrid;
145
+ grid-column: 1/-1;
146
+ }
147
+ .row-subgrid:not([style*=gap]) {
148
+ gap: inherit;
149
+ }
150
+ .col-subgrid {
151
+ display: grid;
152
+ grid-template-rows: subgrid;
153
+ grid-row: 1/-1;
154
+ }
155
+ .row .row {
156
+ grid-column: 1/-1;
157
+ padding-block-end: 0;
158
+ }
159
+ }
160
+ /*!
161
+ * dot-grid v1.0.0
162
+ * A modern, flexible 12-column CSS Grid system
163
+ *
164
+ * Features:
165
+ * - Container queries for responsive layouts
166
+ * - Fluid/automatic layout utilities
167
+ * - Subgrid support
168
+ * - CSS custom properties for easy customization
169
+ * - Cascade layers for better specificity control
170
+ *
171
+ * (c) 2024 Jean Loberg
172
+ * Released under the MIT License
173
+ * https://github.com/lobergdesign/dot-grid
174
+ */
175
+ @layer grid.utilities {
176
+ .gap-none,
177
+ .no-gap {
178
+ gap: var(--grid-gap-none, 0) !important;
179
+ }
180
+ .gap-xs {
181
+ gap: var(--grid-gap-xs, 0.5rem) !important;
182
+ }
183
+ .gap-sm {
184
+ gap: var(--grid-gap-sm, 1rem) !important;
185
+ }
186
+ .gap,
187
+ .gap-md {
188
+ gap: var(--grid-gap-md, clamp(1rem, 2vw, 2rem)) !important;
189
+ }
190
+ .gap-lg {
191
+ gap: var(--grid-gap-lg, 3rem) !important;
192
+ }
193
+ .gap-xl {
194
+ gap: var(--grid-gap-xl, 4rem) !important;
195
+ }
196
+ .gap-b-none,
197
+ .no-gap-b {
198
+ row-gap: 0 !important;
199
+ }
200
+ .gap-sides-none,
201
+ .no-gap-sides {
202
+ column-gap: 0 !important;
203
+ }
204
+ .place-t-l {
205
+ display: grid;
206
+ align-items: start;
207
+ justify-items: start;
208
+ }
209
+ .place-t-c {
210
+ display: grid;
211
+ align-items: start;
212
+ justify-items: center;
213
+ }
214
+ .place-t-r {
215
+ display: grid;
216
+ align-items: start;
217
+ justify-items: end;
218
+ }
219
+ .place-c-l {
220
+ display: grid;
221
+ align-items: center;
222
+ justify-items: start;
223
+ }
224
+ .place-c-c {
225
+ display: grid;
226
+ align-items: center;
227
+ justify-items: center;
228
+ }
229
+ .place-c-r {
230
+ display: grid;
231
+ align-items: center;
232
+ justify-items: end;
233
+ }
234
+ .place-b-l {
235
+ display: grid;
236
+ align-items: end;
237
+ justify-items: start;
238
+ }
239
+ .place-b-c {
240
+ display: grid;
241
+ align-items: end;
242
+ justify-items: center;
243
+ }
244
+ .place-b-r {
245
+ display: grid;
246
+ align-items: end;
247
+ justify-items: end;
248
+ }
249
+ .justify-start {
250
+ display: flex;
251
+ justify-content: flex-start;
252
+ }
253
+ .justify-end {
254
+ display: flex;
255
+ justify-content: flex-end;
256
+ }
257
+ .justify-center,
258
+ .justify-space-center {
259
+ display: flex;
260
+ justify-content: center;
261
+ }
262
+ .justify-between,
263
+ .justify-space-between {
264
+ display: flex;
265
+ justify-content: space-between;
266
+ }
267
+ .justify-around,
268
+ .justify-space-around {
269
+ display: flex;
270
+ justify-content: space-around;
271
+ }
272
+ .justify-evenly {
273
+ display: flex;
274
+ justify-content: space-evenly;
275
+ }
276
+ .aspect-square {
277
+ aspect-ratio: 1/1;
278
+ }
279
+ .aspect-video {
280
+ aspect-ratio: 16/9;
281
+ }
282
+ .aspect-4-3 {
283
+ aspect-ratio: 4/3;
284
+ }
285
+ .aspect-21-9 {
286
+ aspect-ratio: 21/9;
287
+ }
288
+ .aspect-auto {
289
+ aspect-ratio: auto;
290
+ }
291
+ .col-min {
292
+ width: min-content;
293
+ grid-column: auto;
294
+ }
295
+ .col-max {
296
+ width: max-content;
297
+ grid-column: auto;
298
+ }
299
+ .col-fit {
300
+ width: fit-content;
301
+ grid-column: auto;
302
+ }
303
+ .hidden {
304
+ display: none !important;
305
+ }
306
+ .order-first {
307
+ order: -1;
308
+ }
309
+ .order-last {
310
+ order: 999;
311
+ }
312
+ .order-none {
313
+ order: 0;
314
+ }
315
+ }
316
+ /*!
317
+ * dot-grid v1.0.0
318
+ * A modern, flexible 12-column CSS Grid system
319
+ *
320
+ * Features:
321
+ * - Container queries for responsive layouts
322
+ * - Fluid/automatic layout utilities
323
+ * - Subgrid support
324
+ * - CSS custom properties for easy customization
325
+ * - Cascade layers for better specificity control
326
+ *
327
+ * (c) 2024 Jean Loberg
328
+ * Released under the MIT License
329
+ * https://github.com/lobergdesign/dot-grid
330
+ */
331
+ @layer grid.responsive {
332
+ @container grid (min-width: 640px) {
333
+ .col-sm-1 {
334
+ grid-column-end: span 1;
335
+ }
336
+ .col-sm-2 {
337
+ grid-column-end: span 2;
338
+ }
339
+ .col-sm-3 {
340
+ grid-column-end: span 3;
341
+ }
342
+ .col-sm-4 {
343
+ grid-column-end: span 4;
344
+ }
345
+ .col-sm-5 {
346
+ grid-column-end: span 5;
347
+ }
348
+ .col-sm-6 {
349
+ grid-column-end: span 6;
350
+ }
351
+ .col-sm-7 {
352
+ grid-column-end: span 7;
353
+ }
354
+ .col-sm-8 {
355
+ grid-column-end: span 8;
356
+ }
357
+ .col-sm-9 {
358
+ grid-column-end: span 9;
359
+ }
360
+ .col-sm-10 {
361
+ grid-column-end: span 10;
362
+ }
363
+ .col-sm-11 {
364
+ grid-column-end: span 11;
365
+ }
366
+ .col-sm-12 {
367
+ grid-column-end: span 12;
368
+ }
369
+ .col-start-sm-1 {
370
+ grid-column-start: 1;
371
+ }
372
+ .col-start-sm-2 {
373
+ grid-column-start: 2;
374
+ }
375
+ .col-start-sm-3 {
376
+ grid-column-start: 3;
377
+ }
378
+ .col-start-sm-4 {
379
+ grid-column-start: 4;
380
+ }
381
+ .col-start-sm-5 {
382
+ grid-column-start: 5;
383
+ }
384
+ .col-start-sm-6 {
385
+ grid-column-start: 6;
386
+ }
387
+ .col-start-sm-7 {
388
+ grid-column-start: 7;
389
+ }
390
+ .col-start-sm-8 {
391
+ grid-column-start: 8;
392
+ }
393
+ .col-start-sm-9 {
394
+ grid-column-start: 9;
395
+ }
396
+ .col-start-sm-10 {
397
+ grid-column-start: 10;
398
+ }
399
+ .col-start-sm-11 {
400
+ grid-column-start: 11;
401
+ }
402
+ .col-start-sm-12 {
403
+ grid-column-start: 12;
404
+ }
405
+ .gap-sm-none {
406
+ gap: 0 !important;
407
+ }
408
+ .gap-sm-xs {
409
+ gap: var(--grid-gap-xs, 0.5rem) !important;
410
+ }
411
+ .gap-sm-sm {
412
+ gap: var(--grid-gap-sm, 1rem) !important;
413
+ }
414
+ .gap-sm-md {
415
+ gap: var(--grid-gap-md, clamp(1rem, 2vw, 2rem)) !important;
416
+ }
417
+ .gap-sm-lg {
418
+ gap: var(--grid-gap-lg, 3rem) !important;
419
+ }
420
+ .gap-sm-xl {
421
+ gap: var(--grid-gap-xl, 4rem) !important;
422
+ }
423
+ .hidden-sm {
424
+ display: none !important;
425
+ }
426
+ .block-sm {
427
+ display: block !important;
428
+ }
429
+ .grid-sm {
430
+ display: grid !important;
431
+ }
432
+ .flex-sm {
433
+ display: flex !important;
434
+ }
435
+ }
436
+ @container grid (min-width: 768px) {
437
+ .col-md-1 {
438
+ grid-column-end: span 1;
439
+ }
440
+ .col-md-2 {
441
+ grid-column-end: span 2;
442
+ }
443
+ .col-md-3 {
444
+ grid-column-end: span 3;
445
+ }
446
+ .col-md-4 {
447
+ grid-column-end: span 4;
448
+ }
449
+ .col-md-5 {
450
+ grid-column-end: span 5;
451
+ }
452
+ .col-md-6 {
453
+ grid-column-end: span 6;
454
+ }
455
+ .col-md-7 {
456
+ grid-column-end: span 7;
457
+ }
458
+ .col-md-8 {
459
+ grid-column-end: span 8;
460
+ }
461
+ .col-md-9 {
462
+ grid-column-end: span 9;
463
+ }
464
+ .col-md-10 {
465
+ grid-column-end: span 10;
466
+ }
467
+ .col-md-11 {
468
+ grid-column-end: span 11;
469
+ }
470
+ .col-md-12 {
471
+ grid-column-end: span 12;
472
+ }
473
+ .col-start-md-1 {
474
+ grid-column-start: 1;
475
+ }
476
+ .col-start-md-2 {
477
+ grid-column-start: 2;
478
+ }
479
+ .col-start-md-3 {
480
+ grid-column-start: 3;
481
+ }
482
+ .col-start-md-4 {
483
+ grid-column-start: 4;
484
+ }
485
+ .col-start-md-5 {
486
+ grid-column-start: 5;
487
+ }
488
+ .col-start-md-6 {
489
+ grid-column-start: 6;
490
+ }
491
+ .col-start-md-7 {
492
+ grid-column-start: 7;
493
+ }
494
+ .col-start-md-8 {
495
+ grid-column-start: 8;
496
+ }
497
+ .col-start-md-9 {
498
+ grid-column-start: 9;
499
+ }
500
+ .col-start-md-10 {
501
+ grid-column-start: 10;
502
+ }
503
+ .col-start-md-11 {
504
+ grid-column-start: 11;
505
+ }
506
+ .col-start-md-12 {
507
+ grid-column-start: 12;
508
+ }
509
+ .gap-md-none {
510
+ gap: 0 !important;
511
+ }
512
+ .gap-md-xs {
513
+ gap: var(--grid-gap-xs, 0.5rem) !important;
514
+ }
515
+ .gap-md-sm {
516
+ gap: var(--grid-gap-sm, 1rem) !important;
517
+ }
518
+ .gap-md-md {
519
+ gap: var(--grid-gap-md, clamp(1rem, 2vw, 2rem)) !important;
520
+ }
521
+ .gap-md-lg {
522
+ gap: var(--grid-gap-lg, 3rem) !important;
523
+ }
524
+ .gap-md-xl {
525
+ gap: var(--grid-gap-xl, 4rem) !important;
526
+ }
527
+ .hidden-md {
528
+ display: none !important;
529
+ }
530
+ .block-md {
531
+ display: block !important;
532
+ }
533
+ .grid-md {
534
+ display: grid !important;
535
+ }
536
+ .flex-md {
537
+ display: flex !important;
538
+ }
539
+ }
540
+ @container grid (min-width: 1024px) {
541
+ .col-lg-1 {
542
+ grid-column-end: span 1;
543
+ }
544
+ .col-lg-2 {
545
+ grid-column-end: span 2;
546
+ }
547
+ .col-lg-3 {
548
+ grid-column-end: span 3;
549
+ }
550
+ .col-lg-4 {
551
+ grid-column-end: span 4;
552
+ }
553
+ .col-lg-5 {
554
+ grid-column-end: span 5;
555
+ }
556
+ .col-lg-6 {
557
+ grid-column-end: span 6;
558
+ }
559
+ .col-lg-7 {
560
+ grid-column-end: span 7;
561
+ }
562
+ .col-lg-8 {
563
+ grid-column-end: span 8;
564
+ }
565
+ .col-lg-9 {
566
+ grid-column-end: span 9;
567
+ }
568
+ .col-lg-10 {
569
+ grid-column-end: span 10;
570
+ }
571
+ .col-lg-11 {
572
+ grid-column-end: span 11;
573
+ }
574
+ .col-lg-12 {
575
+ grid-column-end: span 12;
576
+ }
577
+ .col-start-lg-1 {
578
+ grid-column-start: 1;
579
+ }
580
+ .col-start-lg-2 {
581
+ grid-column-start: 2;
582
+ }
583
+ .col-start-lg-3 {
584
+ grid-column-start: 3;
585
+ }
586
+ .col-start-lg-4 {
587
+ grid-column-start: 4;
588
+ }
589
+ .col-start-lg-5 {
590
+ grid-column-start: 5;
591
+ }
592
+ .col-start-lg-6 {
593
+ grid-column-start: 6;
594
+ }
595
+ .col-start-lg-7 {
596
+ grid-column-start: 7;
597
+ }
598
+ .col-start-lg-8 {
599
+ grid-column-start: 8;
600
+ }
601
+ .col-start-lg-9 {
602
+ grid-column-start: 9;
603
+ }
604
+ .col-start-lg-10 {
605
+ grid-column-start: 10;
606
+ }
607
+ .col-start-lg-11 {
608
+ grid-column-start: 11;
609
+ }
610
+ .col-start-lg-12 {
611
+ grid-column-start: 12;
612
+ }
613
+ .gap-lg-none {
614
+ gap: 0 !important;
615
+ }
616
+ .gap-lg-xs {
617
+ gap: var(--grid-gap-xs, 0.5rem) !important;
618
+ }
619
+ .gap-lg-sm {
620
+ gap: var(--grid-gap-sm, 1rem) !important;
621
+ }
622
+ .gap-lg-md {
623
+ gap: var(--grid-gap-md, clamp(1rem, 2vw, 2rem)) !important;
624
+ }
625
+ .gap-lg-lg {
626
+ gap: var(--grid-gap-lg, 3rem) !important;
627
+ }
628
+ .gap-lg-xl {
629
+ gap: var(--grid-gap-xl, 4rem) !important;
630
+ }
631
+ .hidden-lg {
632
+ display: none !important;
633
+ }
634
+ .block-lg {
635
+ display: block !important;
636
+ }
637
+ .grid-lg {
638
+ display: grid !important;
639
+ }
640
+ .flex-lg {
641
+ display: flex !important;
642
+ }
643
+ }
644
+ @container grid (min-width: 1280px) {
645
+ .col-xl-1 {
646
+ grid-column-end: span 1;
647
+ }
648
+ .col-xl-2 {
649
+ grid-column-end: span 2;
650
+ }
651
+ .col-xl-3 {
652
+ grid-column-end: span 3;
653
+ }
654
+ .col-xl-4 {
655
+ grid-column-end: span 4;
656
+ }
657
+ .col-xl-5 {
658
+ grid-column-end: span 5;
659
+ }
660
+ .col-xl-6 {
661
+ grid-column-end: span 6;
662
+ }
663
+ .col-xl-7 {
664
+ grid-column-end: span 7;
665
+ }
666
+ .col-xl-8 {
667
+ grid-column-end: span 8;
668
+ }
669
+ .col-xl-9 {
670
+ grid-column-end: span 9;
671
+ }
672
+ .col-xl-10 {
673
+ grid-column-end: span 10;
674
+ }
675
+ .col-xl-11 {
676
+ grid-column-end: span 11;
677
+ }
678
+ .col-xl-12 {
679
+ grid-column-end: span 12;
680
+ }
681
+ .col-start-xl-1 {
682
+ grid-column-start: 1;
683
+ }
684
+ .col-start-xl-2 {
685
+ grid-column-start: 2;
686
+ }
687
+ .col-start-xl-3 {
688
+ grid-column-start: 3;
689
+ }
690
+ .col-start-xl-4 {
691
+ grid-column-start: 4;
692
+ }
693
+ .col-start-xl-5 {
694
+ grid-column-start: 5;
695
+ }
696
+ .col-start-xl-6 {
697
+ grid-column-start: 6;
698
+ }
699
+ .col-start-xl-7 {
700
+ grid-column-start: 7;
701
+ }
702
+ .col-start-xl-8 {
703
+ grid-column-start: 8;
704
+ }
705
+ .col-start-xl-9 {
706
+ grid-column-start: 9;
707
+ }
708
+ .col-start-xl-10 {
709
+ grid-column-start: 10;
710
+ }
711
+ .col-start-xl-11 {
712
+ grid-column-start: 11;
713
+ }
714
+ .col-start-xl-12 {
715
+ grid-column-start: 12;
716
+ }
717
+ .gap-xl-none {
718
+ gap: 0 !important;
719
+ }
720
+ .gap-xl-xs {
721
+ gap: var(--grid-gap-xs, 0.5rem) !important;
722
+ }
723
+ .gap-xl-sm {
724
+ gap: var(--grid-gap-sm, 1rem) !important;
725
+ }
726
+ .gap-xl-md {
727
+ gap: var(--grid-gap-md, clamp(1rem, 2vw, 2rem)) !important;
728
+ }
729
+ .gap-xl-lg {
730
+ gap: var(--grid-gap-lg, 3rem) !important;
731
+ }
732
+ .gap-xl-xl {
733
+ gap: var(--grid-gap-xl, 4rem) !important;
734
+ }
735
+ .hidden-xl {
736
+ display: none !important;
737
+ }
738
+ .block-xl {
739
+ display: block !important;
740
+ }
741
+ .grid-xl {
742
+ display: grid !important;
743
+ }
744
+ .flex-xl {
745
+ display: flex !important;
746
+ }
747
+ }
748
+ @container grid (min-width: 1536px) {
749
+ .col-xxl-1 {
750
+ grid-column-end: span 1;
751
+ }
752
+ .col-xxl-2 {
753
+ grid-column-end: span 2;
754
+ }
755
+ .col-xxl-3 {
756
+ grid-column-end: span 3;
757
+ }
758
+ .col-xxl-4 {
759
+ grid-column-end: span 4;
760
+ }
761
+ .col-xxl-5 {
762
+ grid-column-end: span 5;
763
+ }
764
+ .col-xxl-6 {
765
+ grid-column-end: span 6;
766
+ }
767
+ .col-xxl-7 {
768
+ grid-column-end: span 7;
769
+ }
770
+ .col-xxl-8 {
771
+ grid-column-end: span 8;
772
+ }
773
+ .col-xxl-9 {
774
+ grid-column-end: span 9;
775
+ }
776
+ .col-xxl-10 {
777
+ grid-column-end: span 10;
778
+ }
779
+ .col-xxl-11 {
780
+ grid-column-end: span 11;
781
+ }
782
+ .col-xxl-12 {
783
+ grid-column-end: span 12;
784
+ }
785
+ .col-start-xxl-1 {
786
+ grid-column-start: 1;
787
+ }
788
+ .col-start-xxl-2 {
789
+ grid-column-start: 2;
790
+ }
791
+ .col-start-xxl-3 {
792
+ grid-column-start: 3;
793
+ }
794
+ .col-start-xxl-4 {
795
+ grid-column-start: 4;
796
+ }
797
+ .col-start-xxl-5 {
798
+ grid-column-start: 5;
799
+ }
800
+ .col-start-xxl-6 {
801
+ grid-column-start: 6;
802
+ }
803
+ .col-start-xxl-7 {
804
+ grid-column-start: 7;
805
+ }
806
+ .col-start-xxl-8 {
807
+ grid-column-start: 8;
808
+ }
809
+ .col-start-xxl-9 {
810
+ grid-column-start: 9;
811
+ }
812
+ .col-start-xxl-10 {
813
+ grid-column-start: 10;
814
+ }
815
+ .col-start-xxl-11 {
816
+ grid-column-start: 11;
817
+ }
818
+ .col-start-xxl-12 {
819
+ grid-column-start: 12;
820
+ }
821
+ .gap-xxl-none {
822
+ gap: 0 !important;
823
+ }
824
+ .gap-xxl-xs {
825
+ gap: var(--grid-gap-xs, 0.5rem) !important;
826
+ }
827
+ .gap-xxl-sm {
828
+ gap: var(--grid-gap-sm, 1rem) !important;
829
+ }
830
+ .gap-xxl-md {
831
+ gap: var(--grid-gap-md, clamp(1rem, 2vw, 2rem)) !important;
832
+ }
833
+ .gap-xxl-lg {
834
+ gap: var(--grid-gap-lg, 3rem) !important;
835
+ }
836
+ .gap-xxl-xl {
837
+ gap: var(--grid-gap-xl, 4rem) !important;
838
+ }
839
+ .hidden-xxl {
840
+ display: none !important;
841
+ }
842
+ .block-xxl {
843
+ display: block !important;
844
+ }
845
+ .grid-xxl {
846
+ display: grid !important;
847
+ }
848
+ .flex-xxl {
849
+ display: flex !important;
850
+ }
851
+ }
852
+ @media (min-width: 640px) {
853
+ .col-vp-sm-1 {
854
+ grid-column-end: span 1;
855
+ }
856
+ .col-vp-sm-2 {
857
+ grid-column-end: span 2;
858
+ }
859
+ .col-vp-sm-3 {
860
+ grid-column-end: span 3;
861
+ }
862
+ .col-vp-sm-4 {
863
+ grid-column-end: span 4;
864
+ }
865
+ .col-vp-sm-5 {
866
+ grid-column-end: span 5;
867
+ }
868
+ .col-vp-sm-6 {
869
+ grid-column-end: span 6;
870
+ }
871
+ .col-vp-sm-7 {
872
+ grid-column-end: span 7;
873
+ }
874
+ .col-vp-sm-8 {
875
+ grid-column-end: span 8;
876
+ }
877
+ .col-vp-sm-9 {
878
+ grid-column-end: span 9;
879
+ }
880
+ .col-vp-sm-10 {
881
+ grid-column-end: span 10;
882
+ }
883
+ .col-vp-sm-11 {
884
+ grid-column-end: span 11;
885
+ }
886
+ .col-vp-sm-12 {
887
+ grid-column-end: span 12;
888
+ }
889
+ .col-start-vp-sm-1 {
890
+ grid-column-start: 1;
891
+ }
892
+ .col-start-vp-sm-2 {
893
+ grid-column-start: 2;
894
+ }
895
+ .col-start-vp-sm-3 {
896
+ grid-column-start: 3;
897
+ }
898
+ .col-start-vp-sm-4 {
899
+ grid-column-start: 4;
900
+ }
901
+ .col-start-vp-sm-5 {
902
+ grid-column-start: 5;
903
+ }
904
+ .col-start-vp-sm-6 {
905
+ grid-column-start: 6;
906
+ }
907
+ .col-start-vp-sm-7 {
908
+ grid-column-start: 7;
909
+ }
910
+ .col-start-vp-sm-8 {
911
+ grid-column-start: 8;
912
+ }
913
+ .col-start-vp-sm-9 {
914
+ grid-column-start: 9;
915
+ }
916
+ .col-start-vp-sm-10 {
917
+ grid-column-start: 10;
918
+ }
919
+ .col-start-vp-sm-11 {
920
+ grid-column-start: 11;
921
+ }
922
+ .col-start-vp-sm-12 {
923
+ grid-column-start: 12;
924
+ }
925
+ .hidden-vp-sm {
926
+ display: none !important;
927
+ }
928
+ .block-vp-sm {
929
+ display: block !important;
930
+ }
931
+ .grid-vp-sm {
932
+ display: grid !important;
933
+ }
934
+ .flex-vp-sm {
935
+ display: flex !important;
936
+ }
937
+ }
938
+ @media (min-width: 768px) {
939
+ .col-vp-md-1 {
940
+ grid-column-end: span 1;
941
+ }
942
+ .col-vp-md-2 {
943
+ grid-column-end: span 2;
944
+ }
945
+ .col-vp-md-3 {
946
+ grid-column-end: span 3;
947
+ }
948
+ .col-vp-md-4 {
949
+ grid-column-end: span 4;
950
+ }
951
+ .col-vp-md-5 {
952
+ grid-column-end: span 5;
953
+ }
954
+ .col-vp-md-6 {
955
+ grid-column-end: span 6;
956
+ }
957
+ .col-vp-md-7 {
958
+ grid-column-end: span 7;
959
+ }
960
+ .col-vp-md-8 {
961
+ grid-column-end: span 8;
962
+ }
963
+ .col-vp-md-9 {
964
+ grid-column-end: span 9;
965
+ }
966
+ .col-vp-md-10 {
967
+ grid-column-end: span 10;
968
+ }
969
+ .col-vp-md-11 {
970
+ grid-column-end: span 11;
971
+ }
972
+ .col-vp-md-12 {
973
+ grid-column-end: span 12;
974
+ }
975
+ .col-start-vp-md-1 {
976
+ grid-column-start: 1;
977
+ }
978
+ .col-start-vp-md-2 {
979
+ grid-column-start: 2;
980
+ }
981
+ .col-start-vp-md-3 {
982
+ grid-column-start: 3;
983
+ }
984
+ .col-start-vp-md-4 {
985
+ grid-column-start: 4;
986
+ }
987
+ .col-start-vp-md-5 {
988
+ grid-column-start: 5;
989
+ }
990
+ .col-start-vp-md-6 {
991
+ grid-column-start: 6;
992
+ }
993
+ .col-start-vp-md-7 {
994
+ grid-column-start: 7;
995
+ }
996
+ .col-start-vp-md-8 {
997
+ grid-column-start: 8;
998
+ }
999
+ .col-start-vp-md-9 {
1000
+ grid-column-start: 9;
1001
+ }
1002
+ .col-start-vp-md-10 {
1003
+ grid-column-start: 10;
1004
+ }
1005
+ .col-start-vp-md-11 {
1006
+ grid-column-start: 11;
1007
+ }
1008
+ .col-start-vp-md-12 {
1009
+ grid-column-start: 12;
1010
+ }
1011
+ .hidden-vp-md {
1012
+ display: none !important;
1013
+ }
1014
+ .block-vp-md {
1015
+ display: block !important;
1016
+ }
1017
+ .grid-vp-md {
1018
+ display: grid !important;
1019
+ }
1020
+ .flex-vp-md {
1021
+ display: flex !important;
1022
+ }
1023
+ }
1024
+ @media (min-width: 1024px) {
1025
+ .col-vp-lg-1 {
1026
+ grid-column-end: span 1;
1027
+ }
1028
+ .col-vp-lg-2 {
1029
+ grid-column-end: span 2;
1030
+ }
1031
+ .col-vp-lg-3 {
1032
+ grid-column-end: span 3;
1033
+ }
1034
+ .col-vp-lg-4 {
1035
+ grid-column-end: span 4;
1036
+ }
1037
+ .col-vp-lg-5 {
1038
+ grid-column-end: span 5;
1039
+ }
1040
+ .col-vp-lg-6 {
1041
+ grid-column-end: span 6;
1042
+ }
1043
+ .col-vp-lg-7 {
1044
+ grid-column-end: span 7;
1045
+ }
1046
+ .col-vp-lg-8 {
1047
+ grid-column-end: span 8;
1048
+ }
1049
+ .col-vp-lg-9 {
1050
+ grid-column-end: span 9;
1051
+ }
1052
+ .col-vp-lg-10 {
1053
+ grid-column-end: span 10;
1054
+ }
1055
+ .col-vp-lg-11 {
1056
+ grid-column-end: span 11;
1057
+ }
1058
+ .col-vp-lg-12 {
1059
+ grid-column-end: span 12;
1060
+ }
1061
+ .col-start-vp-lg-1 {
1062
+ grid-column-start: 1;
1063
+ }
1064
+ .col-start-vp-lg-2 {
1065
+ grid-column-start: 2;
1066
+ }
1067
+ .col-start-vp-lg-3 {
1068
+ grid-column-start: 3;
1069
+ }
1070
+ .col-start-vp-lg-4 {
1071
+ grid-column-start: 4;
1072
+ }
1073
+ .col-start-vp-lg-5 {
1074
+ grid-column-start: 5;
1075
+ }
1076
+ .col-start-vp-lg-6 {
1077
+ grid-column-start: 6;
1078
+ }
1079
+ .col-start-vp-lg-7 {
1080
+ grid-column-start: 7;
1081
+ }
1082
+ .col-start-vp-lg-8 {
1083
+ grid-column-start: 8;
1084
+ }
1085
+ .col-start-vp-lg-9 {
1086
+ grid-column-start: 9;
1087
+ }
1088
+ .col-start-vp-lg-10 {
1089
+ grid-column-start: 10;
1090
+ }
1091
+ .col-start-vp-lg-11 {
1092
+ grid-column-start: 11;
1093
+ }
1094
+ .col-start-vp-lg-12 {
1095
+ grid-column-start: 12;
1096
+ }
1097
+ .hidden-vp-lg {
1098
+ display: none !important;
1099
+ }
1100
+ .block-vp-lg {
1101
+ display: block !important;
1102
+ }
1103
+ .grid-vp-lg {
1104
+ display: grid !important;
1105
+ }
1106
+ .flex-vp-lg {
1107
+ display: flex !important;
1108
+ }
1109
+ }
1110
+ @media (min-width: 1280px) {
1111
+ .col-vp-xl-1 {
1112
+ grid-column-end: span 1;
1113
+ }
1114
+ .col-vp-xl-2 {
1115
+ grid-column-end: span 2;
1116
+ }
1117
+ .col-vp-xl-3 {
1118
+ grid-column-end: span 3;
1119
+ }
1120
+ .col-vp-xl-4 {
1121
+ grid-column-end: span 4;
1122
+ }
1123
+ .col-vp-xl-5 {
1124
+ grid-column-end: span 5;
1125
+ }
1126
+ .col-vp-xl-6 {
1127
+ grid-column-end: span 6;
1128
+ }
1129
+ .col-vp-xl-7 {
1130
+ grid-column-end: span 7;
1131
+ }
1132
+ .col-vp-xl-8 {
1133
+ grid-column-end: span 8;
1134
+ }
1135
+ .col-vp-xl-9 {
1136
+ grid-column-end: span 9;
1137
+ }
1138
+ .col-vp-xl-10 {
1139
+ grid-column-end: span 10;
1140
+ }
1141
+ .col-vp-xl-11 {
1142
+ grid-column-end: span 11;
1143
+ }
1144
+ .col-vp-xl-12 {
1145
+ grid-column-end: span 12;
1146
+ }
1147
+ .col-start-vp-xl-1 {
1148
+ grid-column-start: 1;
1149
+ }
1150
+ .col-start-vp-xl-2 {
1151
+ grid-column-start: 2;
1152
+ }
1153
+ .col-start-vp-xl-3 {
1154
+ grid-column-start: 3;
1155
+ }
1156
+ .col-start-vp-xl-4 {
1157
+ grid-column-start: 4;
1158
+ }
1159
+ .col-start-vp-xl-5 {
1160
+ grid-column-start: 5;
1161
+ }
1162
+ .col-start-vp-xl-6 {
1163
+ grid-column-start: 6;
1164
+ }
1165
+ .col-start-vp-xl-7 {
1166
+ grid-column-start: 7;
1167
+ }
1168
+ .col-start-vp-xl-8 {
1169
+ grid-column-start: 8;
1170
+ }
1171
+ .col-start-vp-xl-9 {
1172
+ grid-column-start: 9;
1173
+ }
1174
+ .col-start-vp-xl-10 {
1175
+ grid-column-start: 10;
1176
+ }
1177
+ .col-start-vp-xl-11 {
1178
+ grid-column-start: 11;
1179
+ }
1180
+ .col-start-vp-xl-12 {
1181
+ grid-column-start: 12;
1182
+ }
1183
+ .hidden-vp-xl {
1184
+ display: none !important;
1185
+ }
1186
+ .block-vp-xl {
1187
+ display: block !important;
1188
+ }
1189
+ .grid-vp-xl {
1190
+ display: grid !important;
1191
+ }
1192
+ .flex-vp-xl {
1193
+ display: flex !important;
1194
+ }
1195
+ }
1196
+ @media (min-width: 1536px) {
1197
+ .col-vp-xxl-1 {
1198
+ grid-column-end: span 1;
1199
+ }
1200
+ .col-vp-xxl-2 {
1201
+ grid-column-end: span 2;
1202
+ }
1203
+ .col-vp-xxl-3 {
1204
+ grid-column-end: span 3;
1205
+ }
1206
+ .col-vp-xxl-4 {
1207
+ grid-column-end: span 4;
1208
+ }
1209
+ .col-vp-xxl-5 {
1210
+ grid-column-end: span 5;
1211
+ }
1212
+ .col-vp-xxl-6 {
1213
+ grid-column-end: span 6;
1214
+ }
1215
+ .col-vp-xxl-7 {
1216
+ grid-column-end: span 7;
1217
+ }
1218
+ .col-vp-xxl-8 {
1219
+ grid-column-end: span 8;
1220
+ }
1221
+ .col-vp-xxl-9 {
1222
+ grid-column-end: span 9;
1223
+ }
1224
+ .col-vp-xxl-10 {
1225
+ grid-column-end: span 10;
1226
+ }
1227
+ .col-vp-xxl-11 {
1228
+ grid-column-end: span 11;
1229
+ }
1230
+ .col-vp-xxl-12 {
1231
+ grid-column-end: span 12;
1232
+ }
1233
+ .col-start-vp-xxl-1 {
1234
+ grid-column-start: 1;
1235
+ }
1236
+ .col-start-vp-xxl-2 {
1237
+ grid-column-start: 2;
1238
+ }
1239
+ .col-start-vp-xxl-3 {
1240
+ grid-column-start: 3;
1241
+ }
1242
+ .col-start-vp-xxl-4 {
1243
+ grid-column-start: 4;
1244
+ }
1245
+ .col-start-vp-xxl-5 {
1246
+ grid-column-start: 5;
1247
+ }
1248
+ .col-start-vp-xxl-6 {
1249
+ grid-column-start: 6;
1250
+ }
1251
+ .col-start-vp-xxl-7 {
1252
+ grid-column-start: 7;
1253
+ }
1254
+ .col-start-vp-xxl-8 {
1255
+ grid-column-start: 8;
1256
+ }
1257
+ .col-start-vp-xxl-9 {
1258
+ grid-column-start: 9;
1259
+ }
1260
+ .col-start-vp-xxl-10 {
1261
+ grid-column-start: 10;
1262
+ }
1263
+ .col-start-vp-xxl-11 {
1264
+ grid-column-start: 11;
1265
+ }
1266
+ .col-start-vp-xxl-12 {
1267
+ grid-column-start: 12;
1268
+ }
1269
+ .hidden-vp-xxl {
1270
+ display: none !important;
1271
+ }
1272
+ .block-vp-xxl {
1273
+ display: block !important;
1274
+ }
1275
+ .grid-vp-xxl {
1276
+ display: grid !important;
1277
+ }
1278
+ .flex-vp-xxl {
1279
+ display: flex !important;
1280
+ }
1281
+ }
1282
+ }
1283
+ /*!
1284
+ * dot-grid v1.0.0
1285
+ * A modern, flexible 12-column CSS Grid system
1286
+ *
1287
+ * Features:
1288
+ * - Container queries for responsive layouts
1289
+ * - Fluid/automatic layout utilities
1290
+ * - Subgrid support
1291
+ * - CSS custom properties for easy customization
1292
+ * - Cascade layers for better specificity control
1293
+ *
1294
+ * (c) 2024 Jean Loberg
1295
+ * Released under the MIT License
1296
+ * https://github.com/lobergdesign/dot-grid
1297
+ */
1298
+ @layer grid.fluid {
1299
+ .grid-auto-fit {
1300
+ display: grid;
1301
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--grid-auto-min, 250px), 100%), 1fr));
1302
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1303
+ }
1304
+ .grid-auto-fill {
1305
+ display: grid;
1306
+ grid-template-columns: repeat(auto-fill, minmax(min(var(--grid-auto-min, 250px), 100%), 1fr));
1307
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1308
+ }
1309
+ .col-auto {
1310
+ grid-column: auto;
1311
+ width: auto;
1312
+ }
1313
+ .col-fluid {
1314
+ min-width: var(--col-min-width, 200px);
1315
+ flex: 1 1 var(--col-min-width, 200px);
1316
+ }
1317
+ .row-fluid-2 {
1318
+ display: grid;
1319
+ grid-template-columns: repeat(auto-fit, minmax(min(50% - var(--grid-gap, clamp(1rem, 2vw, 2rem)) / 2, 100%), 1fr));
1320
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1321
+ }
1322
+ .row-fluid-3 {
1323
+ display: grid;
1324
+ grid-template-columns: repeat(auto-fit, minmax(min(33.333% - var(--grid-gap, clamp(1rem, 2vw, 2rem)) * 2 / 3, 100%), 1fr));
1325
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1326
+ }
1327
+ .row-fluid-4 {
1328
+ display: grid;
1329
+ grid-template-columns: repeat(auto-fit, minmax(min(25% - var(--grid-gap, clamp(1rem, 2vw, 2rem)) * 3 / 4, 100%), 1fr));
1330
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1331
+ }
1332
+ .row-ram {
1333
+ display: grid;
1334
+ grid-template-columns: repeat(auto-fit, minmax(var(--col-min, 250px), 1fr));
1335
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1336
+ }
1337
+ .row-ram > * {
1338
+ grid-column: auto !important;
1339
+ }
1340
+ .row-intrinsic {
1341
+ display: grid;
1342
+ grid-template-columns: repeat(auto-fit, minmax(0, max-content));
1343
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1344
+ }
1345
+ .row-even {
1346
+ display: grid;
1347
+ grid-auto-columns: 1fr;
1348
+ grid-auto-flow: column;
1349
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1350
+ }
1351
+ .row-dense {
1352
+ grid-auto-flow: dense;
1353
+ }
1354
+ .row-flexible {
1355
+ display: grid;
1356
+ grid-template-columns: repeat(auto-fit, minmax(clamp(var(--col-min, 200px), (100% - var(--grid-gap, clamp(1rem, 2vw, 2rem)) * (var(--col-count, 3) - 1)) / var(--col-count, 3), 1fr), 1fr));
1357
+ gap: var(--grid-gap, clamp(1rem, 2vw, 2rem));
1358
+ }
1359
+ }
1360
+ /*
1361
+
1362
+ BASIC GRID:
1363
+ <div class="wrap">
1364
+ <div class="row">
1365
+ <div class="col-12 col-md-6 col-lg-4">Column</div>
1366
+ <div class="col-12 col-md-6 col-lg-4">Column</div>
1367
+ <div class="col-12 col-md-6 col-lg-4">Column</div>
1368
+ </div>
1369
+ </div>
1370
+
1371
+ FLUID GRID (auto-responsive):
1372
+ <div class="wrap">
1373
+ <div class="grid-auto-fit">
1374
+ <div>Card 1</div>
1375
+ <div>Card 2</div>
1376
+ <div>Card 3</div>
1377
+ </div>
1378
+ </div>
1379
+
1380
+ SUBGRID:
1381
+ <div class="row">
1382
+ <div class="col-12 row-subgrid">
1383
+ <div class="col-4">Nested 1</div>
1384
+ <div class="col-4">Nested 2</div>
1385
+ <div class="col-4">Nested 3</div>
1386
+ </div>
1387
+ </div>
1388
+
1389
+ CUSTOM GAP:
1390
+ <div class="row gap-lg">
1391
+ <div class="col-6">Large gap</div>
1392
+ <div class="col-6">Large gap</div>
1393
+ </div>
1394
+
1395
+ PLACEMENT:
1396
+ <div class="row">
1397
+ <div class="col-6 place-c-c">Centered content</div>
1398
+ </div>
1399
+
1400
+ */