@mineui/utils 0.0.3 → 0.0.4

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.
@@ -1,2679 +1,14 @@
1
- // src/scss/utils.scss
1
+ // @mineui/utils
2
2
  //
3
3
  // Made with ❤️ by Maysara.
4
4
 
5
5
 
6
6
 
7
- @use "sass:math";
8
- @use "sass:map";
9
- @use "sass:list";
10
-
11
-
12
-
13
- // Configuration Variables
14
- // ============================================
15
-
16
- $spacing-scale: (
17
- 0: 0,
18
- 1: 0.25rem,
19
- 2: 0.5rem,
20
- 3: 0.75rem,
21
- 4: 1rem,
22
- 5: 1.25rem,
23
- 6: 1.5rem,
24
- 8: 2rem,
25
- 10: 2.5rem,
26
- 12: 3rem,
27
- 16: 4rem,
28
- 20: 5rem,
29
- 24: 6rem,
30
- 32: 8rem,
31
- 40: 10rem,
32
- 48: 12rem,
33
- 56: 14rem,
34
- 64: 16rem
35
- );
36
-
37
- $colors: (
38
- 'white': #ffffff,
39
- 'black': #000000,
40
- 'gray-50': #f9fafb,
41
- 'gray-100': #f3f4f6,
42
- 'gray-200': #e5e7eb,
43
- 'gray-300': #d1d5db,
44
- 'gray-400': #9ca3af,
45
- 'gray-500': #6b7280,
46
- 'gray-600': #4b5563,
47
- 'gray-700': #374151,
48
- 'gray-800': #1f2937,
49
- 'gray-900': #111827,
50
- 'red-50': #fef2f2,
51
- 'red-100': #fee2e2,
52
- 'red-500': #ef4444,
53
- 'red-600': #dc2626,
54
- 'red-700': #b91c1c,
55
- 'orange-500': #f97316,
56
- 'yellow-500': #eab308,
57
- 'green-50': #f0fdf4,
58
- 'green-500': #22c55e,
59
- 'green-600': #16a34a,
60
- 'blue-50': #eff6ff,
61
- 'blue-500': #3b82f6,
62
- 'blue-600': #2563eb,
63
- 'blue-700': #1d4ed8,
64
- 'indigo-500': #6366f1,
65
- 'purple-500': #a855f7,
66
- 'pink-500': #ec4899
67
- );
68
-
69
- $font-sizes: (
70
- 'xs': 0.75rem,
71
- 'sm': 0.875rem,
72
- 'base': 1rem,
73
- 'lg': 1.125rem,
74
- 'xl': 1.25rem,
75
- '2xl': 1.5rem,
76
- '3xl': 1.875rem,
77
- '4xl': 2.25rem,
78
- '5xl': 3rem,
79
- '6xl': 3.75rem,
80
- '7xl': 4.5rem,
81
- '8xl': 6rem,
82
- '9xl': 8rem
83
- );
84
-
85
- $font-weights: (
86
- 'thin': 100,
87
- 'extralight': 200,
88
- 'light': 300,
89
- 'normal': 400,
90
- 'medium': 500,
91
- 'semibold': 600,
92
- 'bold': 700,
93
- 'extrabold': 800,
94
- 'black': 900
95
- );
96
-
97
- $breakpoints: (
98
- 'sm': 640px,
99
- 'md': 768px,
100
- 'lg': 1024px,
101
- 'xl': 1280px,
102
- 'xxl': 1536px
103
- );
104
-
105
- $shadows: (
106
- 'sm': 0 1px 2px 0 rgb(0 0 0 / 0.05),
107
- 'DEFAULT': 0 1px 3px 0 rgb(0 0 0 / 0.1),
108
- 'md': 0 4px 6px -1px rgb(0 0 0 / 0.1),
109
- 'lg': 0 10px 15px -3px rgb(0 0 0 / 0.1),
110
- 'xl': 0 20px 25px -5px rgb(0 0 0 / 0.1),
111
- '2xl': 0 25px 50px -12px rgb(0 0 0 / 0.25),
112
- 'inner': inset 0 2px 4px 0 rgb(0 0 0 / 0.05),
113
- 'none': none
114
- );
115
-
116
- // Reset & Base Styles
117
- // ============================================
118
-
119
- *,
120
- *::before,
121
- *::after {
122
- box-sizing: border-box;
123
- margin: 0;
124
- padding: 0;
125
- }
126
-
127
- // Display Utilities
128
- // ============================================
129
-
130
- .block {
131
- display: block;
132
- }
133
-
134
- .inline-block {
135
- display: inline-block;
136
- }
137
-
138
- .inline {
139
- display: inline;
140
- }
141
-
142
- .flex {
143
- display: flex;
144
- }
145
-
146
- .inline-flex {
147
- display: inline-flex;
148
- }
149
-
150
- .grid {
151
- display: grid;
152
- }
153
-
154
- .inline-grid {
155
- display: inline-grid;
156
- }
157
-
158
- .table {
159
- display: table;
160
- }
161
-
162
- .table-row {
163
- display: table-row;
164
- }
165
-
166
- .table-cell {
167
- display: table-cell;
168
- }
169
-
170
- .hidden {
171
- display: none;
172
- }
173
-
174
- .contents {
175
- display: contents;
176
- }
177
-
178
- // Flexbox Utilities
179
- // ============================================
180
-
181
- .flex-row {
182
- flex-direction: row;
183
- }
184
-
185
- .flex-row-reverse {
186
- flex-direction: row-reverse;
187
- }
188
-
189
- .flex-col {
190
- flex-direction: column;
191
- }
192
-
193
- .flex-col-reverse {
194
- flex-direction: column-reverse;
195
- }
196
-
197
- .flex-wrap {
198
- flex-wrap: wrap;
199
- }
200
-
201
- .flex-wrap-reverse {
202
- flex-wrap: wrap-reverse;
203
- }
204
-
205
- .flex-nowrap {
206
- flex-wrap: nowrap;
207
- }
208
-
209
- .items-start {
210
- align-items: flex-start;
211
- }
212
-
213
- .items-center {
214
- align-items: center;
215
- }
216
-
217
- .items-end {
218
- align-items: flex-end;
219
- }
220
-
221
- .items-stretch {
222
- align-items: stretch;
223
- }
224
-
225
- .items-baseline {
226
- align-items: baseline;
227
- }
228
-
229
- .justify-start {
230
- justify-content: flex-start;
231
- }
232
-
233
- .justify-center {
234
- justify-content: center;
235
- }
236
-
237
- .justify-end {
238
- justify-content: flex-end;
239
- }
240
-
241
- .justify-between {
242
- justify-content: space-between;
243
- }
244
-
245
- .justify-around {
246
- justify-content: space-around;
247
- }
248
-
249
- .justify-evenly {
250
- justify-content: space-evenly;
251
- }
252
-
253
- .self-auto {
254
- align-self: auto;
255
- }
256
-
257
- .self-start {
258
- align-self: flex-start;
259
- }
260
-
261
- .self-center {
262
- align-self: center;
263
- }
264
-
265
- .self-end {
266
- align-self: flex-end;
267
- }
268
-
269
- .self-stretch {
270
- align-self: stretch;
271
- }
272
-
273
- .flex-1 {
274
- flex: 1 1 0%;
275
- }
276
-
277
- .flex-auto {
278
- flex: 1 1 auto;
279
- }
280
-
281
- .flex-initial {
282
- flex: 0 1 auto;
283
- }
284
-
285
- .flex-none {
286
- flex: none;
287
- }
288
-
289
- .grow {
290
- flex-grow: 1;
291
- }
292
-
293
- .grow-0 {
294
- flex-grow: 0;
295
- }
296
-
297
- .shrink {
298
- flex-shrink: 1;
299
- }
300
-
301
- .shrink-0 {
302
- flex-shrink: 0;
303
- }
304
-
305
- .order-1 {
306
- order: 1;
307
- }
308
-
309
- .order-2 {
310
- order: 2;
311
- }
312
-
313
- .order-3 {
314
- order: 3;
315
- }
316
-
317
- .order-first {
318
- order: -9999;
319
- }
320
-
321
- .order-last {
322
- order: 9999;
323
- }
324
-
325
- .order-none {
326
- order: 0;
327
- }
328
-
329
- @each $key, $value in $spacing-scale {
330
- .gap-#{$key} {
331
- gap: $value;
332
- }
333
-
334
- .gap-x-#{$key} {
335
- column-gap: $value;
336
- }
337
-
338
- .gap-y-#{$key} {
339
- row-gap: $value;
340
- }
341
- }
342
-
343
- // Grid Utilities
344
- // ============================================
345
-
346
- @for $i from 1 through 12 {
347
- .grid-cols-#{$i} {
348
- grid-template-columns: repeat($i, minmax(0, 1fr));
349
- }
350
-
351
- .col-span-#{$i} {
352
- grid-column: span $i / span $i;
353
- }
354
-
355
- .col-start-#{$i} {
356
- grid-column-start: $i;
357
- }
358
-
359
- .col-end-#{$i} {
360
- grid-column-end: $i;
361
- }
362
-
363
- .grid-rows-#{$i} {
364
- grid-template-rows: repeat($i, minmax(0, 1fr));
365
- }
366
-
367
- .row-span-#{$i} {
368
- grid-row: span $i / span $i;
369
- }
370
-
371
- .row-start-#{$i} {
372
- grid-row-start: $i;
373
- }
374
-
375
- .row-end-#{$i} {
376
- grid-row-end: $i;
377
- }
378
- }
379
-
380
- .col-auto {
381
- grid-column: auto;
382
- }
383
-
384
- .row-auto {
385
- grid-row: auto;
386
- }
387
-
388
- .place-items-start {
389
- place-items: start;
390
- }
391
-
392
- .place-items-center {
393
- place-items: center;
394
- }
395
-
396
- .place-items-end {
397
- place-items: end;
398
- }
399
-
400
- .place-items-stretch {
401
- place-items: stretch;
402
- }
403
-
404
- .place-content-start {
405
- place-content: start;
406
- }
407
-
408
- .place-content-center {
409
- place-content: center;
410
- }
411
-
412
- .place-content-end {
413
- place-content: end;
414
- }
415
-
416
- .place-content-between {
417
- place-content: space-between;
418
- }
419
-
420
- .place-content-around {
421
- place-content: space-around;
422
- }
423
-
424
- // Spacing Utilities (Margin & Padding)
425
- // ============================================
426
-
427
- @each $key, $value in $spacing-scale {
428
-
429
- // Margin - All sides
430
- .m-#{$key} {
431
- margin: $value;
432
- }
433
-
434
- .mt-#{$key} {
435
- margin-top: $value;
436
- }
437
-
438
- .mr-#{$key} {
439
- margin-right: $value;
440
- }
441
-
442
- .mb-#{$key} {
443
- margin-bottom: $value;
444
- }
445
-
446
- .ml-#{$key} {
447
- margin-left: $value;
448
- }
449
-
450
- .mx-#{$key} {
451
- margin-left: $value;
452
- margin-right: $value;
453
- }
454
-
455
- .my-#{$key} {
456
- margin-top: $value;
457
- margin-bottom: $value;
458
- }
459
-
460
- // Padding - All sides
461
- .p-#{$key} {
462
- padding: $value;
463
- }
464
-
465
- .pt-#{$key} {
466
- padding-top: $value;
467
- }
468
-
469
- .pr-#{$key} {
470
- padding-right: $value;
471
- }
472
-
473
- .pb-#{$key} {
474
- padding-bottom: $value;
475
- }
476
-
477
- .pl-#{$key} {
478
- padding-left: $value;
479
- }
480
-
481
- .px-#{$key} {
482
- padding-left: $value;
483
- padding-right: $value;
484
- }
485
-
486
- .py-#{$key} {
487
- padding-top: $value;
488
- padding-bottom: $value;
489
- }
490
-
491
- // Smart directional utilities (start/end for RTL support)
492
- .ms-#{$key} {
493
- margin-inline-start: $value;
494
- }
495
-
496
- .me-#{$key} {
497
- margin-inline-end: $value;
498
- }
499
-
500
- .ps-#{$key} {
501
- padding-inline-start: $value;
502
- }
503
-
504
- .pe-#{$key} {
505
- padding-inline-end: $value;
506
- }
507
-
508
- // Negative margins
509
- .-m-#{$key} {
510
- margin: -$value;
511
- }
512
-
513
- .-mt-#{$key} {
514
- margin-top: -$value;
515
- }
516
-
517
- .-mr-#{$key} {
518
- margin-right: -$value;
519
- }
520
-
521
- .-mb-#{$key} {
522
- margin-bottom: -$value;
523
- }
524
-
525
- .-ml-#{$key} {
526
- margin-left: -$value;
527
- }
528
-
529
- .-mx-#{$key} {
530
- margin-left: -$value;
531
- margin-right: -$value;
532
- }
533
-
534
- .-my-#{$key} {
535
- margin-top: -$value;
536
- margin-bottom: -$value;
537
- }
538
-
539
- // Space between children
540
- .space-x-#{$key}> :not([hidden])~ :not([hidden]) {
541
- margin-left: $value;
542
- }
543
-
544
- .space-y-#{$key}> :not([hidden])~ :not([hidden]) {
545
- margin-top: $value;
546
- }
547
- }
548
-
549
- // Auto margins
550
- .m-auto {
551
- margin: auto;
552
- }
553
-
554
- .mx-auto {
555
- margin-left: auto;
556
- margin-right: auto;
557
- }
558
-
559
- .my-auto {
560
- margin-top: auto;
561
- margin-bottom: auto;
562
- }
563
-
564
- .mt-auto {
565
- margin-top: auto;
566
- }
567
-
568
- .mr-auto {
569
- margin-right: auto;
570
- }
571
-
572
- .mb-auto {
573
- margin-bottom: auto;
574
- }
575
-
576
- .ml-auto {
577
- margin-left: auto;
578
- }
579
-
580
- .ms-auto {
581
- margin-inline-start: auto;
582
- }
583
-
584
- .me-auto {
585
- margin-inline-end: auto;
586
- }
587
-
588
- // Width & Height Utilities
589
- // ============================================
590
-
591
- .w-auto {
592
- width: auto;
593
- }
594
-
595
- .w-full {
596
- width: 100%;
597
- }
598
-
599
- .w-screen {
600
- width: 100vw;
601
- }
602
-
603
- .w-min {
604
- width: min-content;
605
- }
606
-
607
- .w-max {
608
- width: max-content;
609
- }
610
-
611
- .w-fit {
612
- width: fit-content;
613
- }
614
-
615
- @for $i from 1 through 12 {
616
- .w-#{$i}-12 {
617
- width: math.percentage(math.div($i, 12));
618
- }
619
- }
620
-
621
- .w-1-2 {
622
- width: 50%;
623
- }
624
-
625
- .w-1-3 {
626
- width: 33.333333%;
627
- }
628
-
629
- .w-2-3 {
630
- width: 66.666667%;
631
- }
632
-
633
- .w-1-4 {
634
- width: 25%;
635
- }
636
-
637
- .w-3-4 {
638
- width: 75%;
639
- }
640
-
641
- .w-1-5 {
642
- width: 20%;
643
- }
644
-
645
- .h-auto {
646
- height: auto;
647
- }
648
-
649
- .h-full {
650
- height: 100%;
651
- }
652
-
653
- .h-screen {
654
- height: 100vh;
655
- }
656
-
657
- .h-min {
658
- height: min-content;
659
- }
660
-
661
- .h-max {
662
- height: max-content;
663
- }
664
-
665
- .h-fit {
666
- height: fit-content;
667
- }
668
-
669
- @each $key, $value in $spacing-scale {
670
- .w-#{$key} {
671
- width: $value;
672
- }
673
-
674
- .h-#{$key} {
675
- height: $value;
676
- }
677
- }
678
-
679
- .min-w-0 {
680
- min-width: 0;
681
- }
682
-
683
- .min-w-full {
684
- min-width: 100%;
685
- }
686
-
687
- .min-w-min {
688
- min-width: min-content;
689
- }
690
-
691
- .min-w-max {
692
- min-width: max-content;
693
- }
694
-
695
- .min-h-0 {
696
- min-height: 0;
697
- }
698
-
699
- .min-h-full {
700
- min-height: 100%;
701
- }
702
-
703
- .min-h-screen {
704
- min-height: 100vh;
705
- }
706
-
707
- .max-w-none {
708
- max-width: none;
709
- }
710
-
711
- .max-w-xs {
712
- max-width: 20rem;
713
- }
714
-
715
- .max-w-sm {
716
- max-width: 24rem;
717
- }
718
-
719
- .max-w-md {
720
- max-width: 28rem;
721
- }
722
-
723
- .max-w-lg {
724
- max-width: 32rem;
725
- }
726
-
727
- .max-w-xl {
728
- max-width: 36rem;
729
- }
730
-
731
- .max-w-2xl {
732
- max-width: 42rem;
733
- }
734
-
735
- .max-w-3xl {
736
- max-width: 48rem;
737
- }
738
-
739
- .max-w-4xl {
740
- max-width: 56rem;
741
- }
742
-
743
- .max-w-5xl {
744
- max-width: 64rem;
745
- }
746
-
747
- .max-w-6xl {
748
- max-width: 72rem;
749
- }
750
-
751
- .max-w-7xl {
752
- max-width: 80rem;
753
- }
754
-
755
- .max-w-full {
756
- max-width: 100%;
757
- }
758
-
759
- .max-w-screen-sm {
760
- max-width: map.get($breakpoints, 'sm');
761
- }
762
-
763
- .max-w-screen-md {
764
- max-width: map.get($breakpoints, 'md');
765
- }
766
-
767
- .max-w-screen-lg {
768
- max-width: map.get($breakpoints, 'lg');
769
- }
770
-
771
- .max-w-screen-xl {
772
- max-width: map.get($breakpoints, 'xl');
773
- }
774
-
775
- .max-h-full {
776
- max-height: 100%;
777
- }
778
-
779
- .max-h-screen {
780
- max-height: 100vh;
781
- }
782
-
783
- // Typography Utilities
784
- // ============================================
785
-
786
- @each $key, $value in $font-sizes {
787
- .text-#{$key} {
788
- font-size: $value;
789
- }
790
- }
791
-
792
- @each $key, $value in $font-weights {
793
- .font-#{$key} {
794
- font-weight: $value;
795
- }
796
- }
797
-
798
- .text-left {
799
- text-align: left;
800
- }
801
-
802
- .text-center {
803
- text-align: center;
804
- }
805
-
806
- .text-right {
807
- text-align: right;
808
- }
809
-
810
- .text-justify {
811
- text-align: justify;
812
- }
813
-
814
- .text-start {
815
- text-align: start;
816
- }
817
-
818
- .text-end {
819
- text-align: end;
820
- }
821
-
822
- .uppercase {
823
- text-transform: uppercase;
824
- }
825
-
826
- .lowercase {
827
- text-transform: lowercase;
828
- }
829
-
830
- .capitalize {
831
- text-transform: capitalize;
832
- }
833
-
834
- .normal-case {
835
- text-transform: none;
836
- }
837
-
838
- .italic {
839
- font-style: italic;
840
- }
841
-
842
- .not-italic {
843
- font-style: normal;
844
- }
845
-
846
- .underline {
847
- text-decoration: underline;
848
- }
849
-
850
- .line-through {
851
- text-decoration: line-through;
852
- }
853
-
854
- .no-underline {
855
- text-decoration: none;
856
- }
857
-
858
- .leading-none {
859
- line-height: 1;
860
- }
861
-
862
- .leading-tight {
863
- line-height: 1.25;
864
- }
865
-
866
- .leading-snug {
867
- line-height: 1.375;
868
- }
869
-
870
- .leading-normal {
871
- line-height: 1.5;
872
- }
873
-
874
- .leading-relaxed {
875
- line-height: 1.625;
876
- }
877
-
878
- .leading-loose {
879
- line-height: 2;
880
- }
881
-
882
- .tracking-tighter {
883
- letter-spacing: -0.05em;
884
- }
885
-
886
- .tracking-tight {
887
- letter-spacing: -0.025em;
888
- }
889
-
890
- .tracking-normal {
891
- letter-spacing: 0;
892
- }
893
-
894
- .tracking-wide {
895
- letter-spacing: 0.025em;
896
- }
897
-
898
- .tracking-wider {
899
- letter-spacing: 0.05em;
900
- }
901
-
902
- .tracking-widest {
903
- letter-spacing: 0.1em;
904
- }
905
-
906
- .truncate {
907
- overflow: hidden;
908
- text-overflow: ellipsis;
909
- white-space: nowrap;
910
- }
911
-
912
- .text-ellipsis {
913
- text-overflow: ellipsis;
914
- }
915
-
916
- .text-clip {
917
- text-overflow: clip;
918
- }
919
-
920
- .break-normal {
921
- overflow-wrap: normal;
922
- word-break: normal;
923
- }
924
-
925
- .break-words {
926
- overflow-wrap: break-word;
927
- }
928
-
929
- .break-all {
930
- word-break: break-all;
931
- }
932
-
933
- .whitespace-normal {
934
- white-space: normal;
935
- }
936
-
937
- .whitespace-nowrap {
938
- white-space: nowrap;
939
- }
940
-
941
- .whitespace-pre {
942
- white-space: pre;
943
- }
944
-
945
- .whitespace-pre-line {
946
- white-space: pre-line;
947
- }
948
-
949
- .whitespace-pre-wrap {
950
- white-space: pre-wrap;
951
- }
952
-
953
- // Color Utilities
954
- // ============================================
955
-
956
- @each $name, $color in $colors {
957
- .text-#{$name} {
958
- color: $color;
959
- }
960
-
961
- .bg-#{$name} {
962
- background-color: $color;
963
- }
964
-
965
- .border-#{$name} {
966
- border-color: $color;
967
- }
968
-
969
- .fill-#{$name} {
970
- fill: $color;
971
- }
972
-
973
- .stroke-#{$name} {
974
- stroke: $color;
975
- }
976
- }
977
-
978
- .text-transparent {
979
- color: transparent;
980
- }
981
-
982
- .bg-transparent {
983
- background-color: transparent;
984
- }
985
-
986
- .text-current {
987
- color: currentColor;
988
- }
989
-
990
- .bg-current {
991
- background-color: currentColor;
992
- }
993
-
994
- // Border Utilities
995
- // ============================================
996
-
997
- .border {
998
- border-width: 1px;
999
- border-style: solid;
1000
- }
1001
-
1002
- .border-0 {
1003
- border-width: 0;
1004
- }
1005
-
1006
- .border-2 {
1007
- border-width: 2px;
1008
- border-style: solid;
1009
- }
1010
-
1011
- .border-4 {
1012
- border-width: 4px;
1013
- border-style: solid;
1014
- }
1015
-
1016
- .border-8 {
1017
- border-width: 8px;
1018
- border-style: solid;
1019
- }
1020
-
1021
- .border-t {
1022
- border-top-width: 1px;
1023
- border-top-style: solid;
1024
- }
1025
-
1026
- .border-r {
1027
- border-right-width: 1px;
1028
- border-right-style: solid;
1029
- }
1030
-
1031
- .border-b {
1032
- border-bottom-width: 1px;
1033
- border-bottom-style: solid;
1034
- }
1035
-
1036
- .border-l {
1037
- border-left-width: 1px;
1038
- border-left-style: solid;
1039
- }
1040
-
1041
- .border-t-0 {
1042
- border-top-width: 0;
1043
- }
1044
-
1045
- .border-r-0 {
1046
- border-right-width: 0;
1047
- }
1048
-
1049
- .border-b-0 {
1050
- border-bottom-width: 0;
1051
- }
1052
-
1053
- .border-l-0 {
1054
- border-left-width: 0;
1055
- }
1056
-
1057
- .border-t-2 {
1058
- border-top-width: 2px;
1059
- border-top-style: solid;
1060
- }
1061
-
1062
- .border-r-2 {
1063
- border-right-width: 2px;
1064
- border-right-style: solid;
1065
- }
1066
-
1067
- .border-b-2 {
1068
- border-bottom-width: 2px;
1069
- border-bottom-style: solid;
1070
- }
1071
-
1072
- .border-l-2 {
1073
- border-left-width: 2px;
1074
- border-left-style: solid;
1075
- }
1076
-
1077
- // Smart directional borders (start/end)
1078
- .border-s {
1079
- border-inline-start-width: 1px;
1080
- border-inline-start-style: solid;
1081
- }
1082
-
1083
- .border-e {
1084
- border-inline-end-width: 1px;
1085
- border-inline-end-style: solid;
1086
- }
1087
-
1088
- .border-s-0 {
1089
- border-inline-start-width: 0;
1090
- }
1091
-
1092
- .border-e-0 {
1093
- border-inline-end-width: 0;
1094
- }
1095
-
1096
- .border-solid {
1097
- border-style: solid;
1098
- }
1099
-
1100
- .border-dashed {
1101
- border-style: dashed;
1102
- }
1103
-
1104
- .border-dotted {
1105
- border-style: dotted;
1106
- }
1107
-
1108
- .border-double {
1109
- border-style: double;
1110
- }
1111
-
1112
- .border-none {
1113
- border-style: none;
1114
- }
1115
-
1116
- .rounded-none {
1117
- border-radius: 0;
1118
- }
1119
-
1120
- .rounded-sm {
1121
- border-radius: 0.125rem;
1122
- }
1123
-
1124
- .rounded {
1125
- border-radius: 0.25rem;
1126
- }
1127
-
1128
- .rounded-md {
1129
- border-radius: 0.375rem;
1130
- }
1131
-
1132
- .rounded-lg {
1133
- border-radius: 0.5rem;
1134
- }
1135
-
1136
- .rounded-xl {
1137
- border-radius: 0.75rem;
1138
- }
1139
-
1140
- .rounded-2xl {
1141
- border-radius: 1rem;
1142
- }
1143
-
1144
- .rounded-3xl {
1145
- border-radius: 1.5rem;
1146
- }
1147
-
1148
- .rounded-full {
1149
- border-radius: 9999px;
1150
- }
1151
-
1152
- .rounded-t-none {
1153
- border-top-left-radius: 0;
1154
- border-top-right-radius: 0;
1155
- }
1156
-
1157
- .rounded-r-none {
1158
- border-top-right-radius: 0;
1159
- border-bottom-right-radius: 0;
1160
- }
1161
-
1162
- .rounded-b-none {
1163
- border-bottom-left-radius: 0;
1164
- border-bottom-right-radius: 0;
1165
- }
1166
-
1167
- .rounded-l-none {
1168
- border-top-left-radius: 0;
1169
- border-bottom-left-radius: 0;
1170
- }
1171
-
1172
- .rounded-t {
1173
- border-top-left-radius: 0.25rem;
1174
- border-top-right-radius: 0.25rem;
1175
- }
1176
-
1177
- .rounded-r {
1178
- border-top-right-radius: 0.25rem;
1179
- border-bottom-right-radius: 0.25rem;
1180
- }
1181
-
1182
- .rounded-b {
1183
- border-bottom-left-radius: 0.25rem;
1184
- border-bottom-right-radius: 0.25rem;
1185
- }
1186
-
1187
- .rounded-l {
1188
- border-top-left-radius: 0.25rem;
1189
- border-bottom-left-radius: 0.25rem;
1190
- }
1191
-
1192
- .rounded-tl {
1193
- border-top-left-radius: 0.25rem;
1194
- }
1195
-
1196
- .rounded-tr {
1197
- border-top-right-radius: 0.25rem;
1198
- }
1199
-
1200
- .rounded-br {
1201
- border-bottom-right-radius: 0.25rem;
1202
- }
1203
-
1204
- .rounded-bl {
1205
- border-bottom-left-radius: 0.25rem;
1206
- }
1207
-
1208
- // Smart directional radius (start/end)
1209
- .rounded-s {
1210
- border-start-start-radius: 0.25rem;
1211
- border-end-start-radius: 0.25rem;
1212
- }
1213
-
1214
- .rounded-e {
1215
- border-start-end-radius: 0.25rem;
1216
- border-end-end-radius: 0.25rem;
1217
- }
1218
-
1219
- // Outline Utilities
1220
- // ============================================
1221
-
1222
- .outline-none {
1223
- outline: 2px solid transparent;
1224
- outline-offset: 2px;
1225
- }
1226
-
1227
- .outline {
1228
- outline-style: solid;
1229
- }
1230
-
1231
- .outline-dashed {
1232
- outline-style: dashed;
1233
- }
1234
-
1235
- .outline-dotted {
1236
- outline-style: dotted;
1237
- }
1238
-
1239
- .outline-0 {
1240
- outline-width: 0;
1241
- }
1242
-
1243
- .outline-1 {
1244
- outline-width: 1px;
1245
- }
1246
-
1247
- .outline-2 {
1248
- outline-width: 2px;
1249
- }
1250
-
1251
- .outline-4 {
1252
- outline-width: 4px;
1253
- }
1254
-
1255
- // Shadow Utilities
1256
- // ============================================
1257
-
1258
- @each $name, $shadow in $shadows {
1259
- @if $name =='DEFAULT' {
1260
- .shadow {
1261
- box-shadow: $shadow;
1262
- }
1263
- }
1264
-
1265
- @else {
1266
- .shadow-#{$name} {
1267
- box-shadow: $shadow;
1268
- }
1269
- }
1270
- }
1271
-
1272
- // Position Utilities
1273
- // ============================================
1274
-
1275
- .static {
1276
- position: static;
1277
- }
1278
-
1279
- .fixed {
1280
- position: fixed;
1281
- }
1282
-
1283
- .absolute {
1284
- position: absolute;
1285
- }
1286
-
1287
- .relative {
1288
- position: relative;
1289
- }
1290
-
1291
- .sticky {
1292
- position: sticky;
1293
- }
1294
-
1295
- .inset-0 {
1296
- top: 0;
1297
- right: 0;
1298
- bottom: 0;
1299
- left: 0;
1300
- }
1301
-
1302
- .inset-x-0 {
1303
- left: 0;
1304
- right: 0;
1305
- }
1306
-
1307
- .inset-y-0 {
1308
- top: 0;
1309
- bottom: 0;
1310
- }
1311
-
1312
- .inset-auto {
1313
- top: auto;
1314
- right: auto;
1315
- bottom: auto;
1316
- left: auto;
1317
- }
1318
-
1319
- .top-0 {
1320
- top: 0;
1321
- }
1322
-
1323
- .right-0 {
1324
- right: 0;
1325
- }
1326
-
1327
- .bottom-0 {
1328
- bottom: 0;
1329
- }
1330
-
1331
- .left-0 {
1332
- left: 0;
1333
- }
1334
-
1335
- .top-auto {
1336
- top: auto;
1337
- }
1338
-
1339
- .right-auto {
1340
- right: auto;
1341
- }
1342
-
1343
- .bottom-auto {
1344
- bottom: auto;
1345
- }
1346
-
1347
- .left-auto {
1348
- left: auto;
1349
- }
1350
-
1351
- @each $key, $value in $spacing-scale {
1352
- .top-#{$key} {
1353
- top: $value;
1354
- }
1355
-
1356
- .right-#{$key} {
1357
- right: $value;
1358
- }
1359
-
1360
- .bottom-#{$key} {
1361
- bottom: $value;
1362
- }
1363
-
1364
- .left-#{$key} {
1365
- left: $value;
1366
- }
1367
-
1368
- .inset-#{$key} {
1369
- top: $value;
1370
- right: $value;
1371
- bottom: $value;
1372
- left: $value;
1373
- }
1374
-
1375
- .-top-#{$key} {
1376
- top: -$value;
1377
- }
1378
-
1379
- .-right-#{$key} {
1380
- right: -$value;
1381
- }
1382
-
1383
- .-bottom-#{$key} {
1384
- bottom: -$value;
1385
- }
1386
-
1387
- .-left-#{$key} {
1388
- left: -$value;
1389
- }
1390
-
1391
- // Smart directional positioning
1392
- .start-#{$key} {
1393
- inset-inline-start: $value;
1394
- }
1395
-
1396
- .end-#{$key} {
1397
- inset-inline-end: $value;
1398
- }
1399
- }
1400
-
1401
- // Z-Index Utilities
1402
- // ============================================
1403
-
1404
- .z-0 {
1405
- z-index: 0;
1406
- }
1407
-
1408
- .z-10 {
1409
- z-index: 10;
1410
- }
1411
-
1412
- .z-20 {
1413
- z-index: 20;
1414
- }
1415
-
1416
- .z-30 {
1417
- z-index: 30;
1418
- }
1419
-
1420
- .z-40 {
1421
- z-index: 40;
1422
- }
1423
-
1424
- .z-50 {
1425
- z-index: 50;
1426
- }
1427
-
1428
- .z-60 {
1429
- z-index: 60;
1430
- }
1431
-
1432
- .z-70 {
1433
- z-index: 70;
1434
- }
1435
-
1436
- .z-auto {
1437
- z-index: auto;
1438
- }
1439
-
1440
- // Opacity Utilities
1441
- // ============================================
1442
-
1443
- @for $i from 0 through 10 {
1444
- .opacity-#{$i * 10} {
1445
- opacity: $i * 0.1;
1446
- }
1447
- }
1448
-
1449
- .opacity-5 {
1450
- opacity: 0.05;
1451
- }
1452
-
1453
- .opacity-25 {
1454
- opacity: 0.25;
1455
- }
1456
-
1457
- .opacity-75 {
1458
- opacity: 0.75;
1459
- }
1460
-
1461
- .opacity-95 {
1462
- opacity: 0.95;
1463
- }
1464
-
1465
- // Visibility Utilities
1466
- // ============================================
1467
-
1468
- .visible {
1469
- visibility: visible;
1470
- }
1471
-
1472
- .invisible {
1473
- visibility: hidden;
1474
- }
1475
-
1476
- .collapse {
1477
- visibility: collapse;
1478
- }
1479
-
1480
- // Pointer Events
1481
- // ============================================
1482
-
1483
- .pointer-events-none {
1484
- pointer-events: none;
1485
- }
1486
-
1487
- .pointer-events-auto {
1488
- pointer-events: auto;
1489
- }
1490
-
1491
- // Cursor Utilities
1492
- // ============================================
1493
-
1494
- .cursor-auto {
1495
- cursor: auto;
1496
- }
1497
-
1498
- .cursor-default {
1499
- cursor: default;
1500
- }
1501
-
1502
- .cursor-pointer {
1503
- cursor: pointer;
1504
- }
1505
-
1506
- .cursor-wait {
1507
- cursor: wait;
1508
- }
1509
-
1510
- .cursor-text {
1511
- cursor: text;
1512
- }
1513
-
1514
- .cursor-move {
1515
- cursor: move;
1516
- }
1517
-
1518
- .cursor-help {
1519
- cursor: help;
1520
- }
1521
-
1522
- .cursor-not-allowed {
1523
- cursor: not-allowed;
1524
- }
1525
-
1526
- .cursor-grab {
1527
- cursor: grab;
1528
- }
1529
-
1530
- .cursor-grabbing {
1531
- cursor: grabbing;
1532
- }
1533
-
1534
- // User Select
1535
- // ============================================
1536
-
1537
- .select-none {
1538
- user-select: none;
1539
- }
1540
-
1541
- .select-text {
1542
- user-select: text;
1543
- }
1544
-
1545
- .select-all {
1546
- user-select: all;
1547
- }
1548
-
1549
- .select-auto {
1550
- user-select: auto;
1551
- }
1552
-
1553
- // Overflow Utilities
1554
- // ============================================
1555
-
1556
- .overflow-auto {
1557
- overflow: auto;
1558
- }
1559
-
1560
- .overflow-hidden {
1561
- overflow: hidden;
1562
- }
1563
-
1564
- .overflow-visible {
1565
- overflow: visible;
1566
- }
1567
-
1568
- .overflow-scroll {
1569
- overflow: scroll;
1570
- }
1571
-
1572
- .overflow-clip {
1573
- overflow: clip;
1574
- }
1575
-
1576
- .overflow-x-auto {
1577
- overflow-x: auto;
1578
- }
1579
-
1580
- .overflow-y-auto {
1581
- overflow-y: auto;
1582
- }
1583
-
1584
- .overflow-x-hidden {
1585
- overflow-x: hidden;
1586
- }
1587
-
1588
- .overflow-y-hidden {
1589
- overflow-y: hidden;
1590
- }
1591
-
1592
- .overflow-x-scroll {
1593
- overflow-x: scroll;
1594
- }
1595
-
1596
- .overflow-y-scroll {
1597
- overflow-y: scroll;
1598
- }
1599
-
1600
- .overscroll-auto {
1601
- overscroll-behavior: auto;
1602
- }
1603
-
1604
- .overscroll-contain {
1605
- overscroll-behavior: contain;
1606
- }
1607
-
1608
- .overscroll-none {
1609
- overscroll-behavior: none;
1610
- }
1611
-
1612
- // Object Fit & Position
1613
- // ============================================
1614
-
1615
- .object-contain {
1616
- object-fit: contain;
1617
- }
1618
-
1619
- .object-cover {
1620
- object-fit: cover;
1621
- }
1622
-
1623
- .object-fill {
1624
- object-fit: fill;
1625
- }
1626
-
1627
- .object-none {
1628
- object-fit: none;
1629
- }
1630
-
1631
- .object-scale-down {
1632
- object-fit: scale-down;
1633
- }
1634
-
1635
- .object-center {
1636
- object-position: center;
1637
- }
1638
-
1639
- .object-top {
1640
- object-position: top;
1641
- }
1642
-
1643
- .object-right {
1644
- object-position: right;
1645
- }
1646
-
1647
- .object-bottom {
1648
- object-position: bottom;
1649
- }
1650
-
1651
- .object-left {
1652
- object-position: left;
1653
- }
1654
-
1655
- // Aspect Ratio
1656
- // ============================================
1657
-
1658
- .aspect-auto {
1659
- aspect-ratio: auto;
1660
- }
1661
-
1662
- .aspect-square {
1663
- aspect-ratio: 1 / 1;
1664
- }
1665
-
1666
- .aspect-video {
1667
- aspect-ratio: 16 / 9;
1668
- }
1669
-
1670
- // Transition Utilities
1671
- // ============================================
1672
-
1673
- .transition-none {
1674
- transition-property: none;
1675
- }
1676
-
1677
- .transition-all {
1678
- transition-property: all;
1679
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1680
- transition-duration: 150ms;
1681
- }
1682
-
1683
- .transition {
1684
- transition-property: background-color, border-color, color, fill, stroke, opacity, box-shadow, transform;
1685
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1686
- transition-duration: 150ms;
1687
- }
1688
-
1689
- .transition-colors {
1690
- transition-property: background-color, border-color, color, fill, stroke;
1691
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1692
- transition-duration: 150ms;
1693
- }
1694
-
1695
- .transition-opacity {
1696
- transition-property: opacity;
1697
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1698
- transition-duration: 150ms;
1699
- }
1700
-
1701
- .transition-shadow {
1702
- transition-property: box-shadow;
1703
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1704
- transition-duration: 150ms;
1705
- }
1706
-
1707
- .transition-transform {
1708
- transition-property: transform;
1709
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1710
- transition-duration: 150ms;
1711
- }
1712
-
1713
- .duration-75 {
1714
- transition-duration: 75ms;
1715
- }
1716
-
1717
- .duration-100 {
1718
- transition-duration: 100ms;
1719
- }
1720
-
1721
- .duration-150 {
1722
- transition-duration: 150ms;
1723
- }
1724
-
1725
- .duration-200 {
1726
- transition-duration: 200ms;
1727
- }
1728
-
1729
- .duration-300 {
1730
- transition-duration: 300ms;
1731
- }
1732
-
1733
- .duration-500 {
1734
- transition-duration: 500ms;
1735
- }
1736
-
1737
- .duration-700 {
1738
- transition-duration: 700ms;
1739
- }
1740
-
1741
- .duration-1000 {
1742
- transition-duration: 1000ms;
1743
- }
1744
-
1745
- .ease-linear {
1746
- transition-timing-function: linear;
1747
- }
1748
-
1749
- .ease-in {
1750
- transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
1751
- }
1752
-
1753
- .ease-out {
1754
- transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1755
- }
1756
-
1757
- .ease-in-out {
1758
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1759
- }
1760
-
1761
- .delay-75 {
1762
- transition-delay: 75ms;
1763
- }
1764
-
1765
- .delay-100 {
1766
- transition-delay: 100ms;
1767
- }
1768
-
1769
- .delay-150 {
1770
- transition-delay: 150ms;
1771
- }
1772
-
1773
- .delay-200 {
1774
- transition-delay: 200ms;
1775
- }
1776
-
1777
- .delay-300 {
1778
- transition-delay: 300ms;
1779
- }
1780
-
1781
- // Animation Utilities
1782
- // ============================================
1783
-
1784
- @keyframes spin {
1785
- from {
1786
- transform: rotate(0deg);
1787
- }
1788
-
1789
- to {
1790
- transform: rotate(360deg);
1791
- }
1792
- }
1793
-
1794
- @keyframes ping {
1795
-
1796
- 75%,
1797
- 100% {
1798
- transform: scale(2);
1799
- opacity: 0;
1800
- }
1801
- }
1802
-
1803
- @keyframes pulse {
1804
-
1805
- 0%,
1806
- 100% {
1807
- opacity: 1;
1808
- }
1809
-
1810
- 50% {
1811
- opacity: .5;
1812
- }
1813
- }
1814
-
1815
- @keyframes bounce {
1816
-
1817
- 0%,
1818
- 100% {
1819
- transform: translateY(-25%);
1820
- animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
1821
- }
1822
-
1823
- 50% {
1824
- transform: translateY(0);
1825
- animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
1826
- }
1827
- }
1828
-
1829
- .animate-spin {
1830
- animation: spin 1s linear infinite;
1831
- }
1832
-
1833
- .animate-ping {
1834
- animation: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
1835
- }
1836
-
1837
- .animate-pulse {
1838
- animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
1839
- }
1840
-
1841
- .animate-bounce {
1842
- animation: bounce 1s infinite;
1843
- }
1844
-
1845
- .animate-none {
1846
- animation: none;
1847
- }
1848
-
1849
- // Transform Utilities
1850
- // ============================================
1851
-
1852
- .transform {
1853
- transform: translateX(var(--tw-translate-x, 0)) translateY(var(--tw-translate-y, 0)) rotate(var(--tw-rotate, 0)) skewX(var(--tw-skew-x, 0)) skewY(var(--tw-skew-y, 0)) scaleX(var(--tw-scale-x, 1)) scaleY(var(--tw-scale-y, 1));
1854
- }
1855
-
1856
- .transform-none {
1857
- transform: none;
1858
- }
1859
-
1860
- .scale-0 {
1861
- transform: scale(0);
1862
- }
1863
-
1864
- .scale-50 {
1865
- transform: scale(0.5);
1866
- }
1867
-
1868
- .scale-75 {
1869
- transform: scale(0.75);
1870
- }
1871
-
1872
- .scale-90 {
1873
- transform: scale(0.9);
1874
- }
1875
-
1876
- .scale-95 {
1877
- transform: scale(0.95);
1878
- }
1879
-
1880
- .scale-100 {
1881
- transform: scale(1);
1882
- }
1883
-
1884
- .scale-105 {
1885
- transform: scale(1.05);
1886
- }
1887
-
1888
- .scale-110 {
1889
- transform: scale(1.1);
1890
- }
1891
-
1892
- .scale-125 {
1893
- transform: scale(1.25);
1894
- }
1895
-
1896
- .scale-150 {
1897
- transform: scale(1.5);
1898
- }
1899
-
1900
- .rotate-0 {
1901
- transform: rotate(0deg);
1902
- }
1903
-
1904
- .rotate-45 {
1905
- transform: rotate(45deg);
1906
- }
1907
-
1908
- .rotate-90 {
1909
- transform: rotate(90deg);
1910
- }
1911
-
1912
- .rotate-180 {
1913
- transform: rotate(180deg);
1914
- }
1915
-
1916
- .rotate-270 {
1917
- transform: rotate(270deg);
1918
- }
1919
-
1920
- .-rotate-45 {
1921
- transform: rotate(-45deg);
1922
- }
1923
-
1924
- .-rotate-90 {
1925
- transform: rotate(-90deg);
1926
- }
1927
-
1928
- .-rotate-180 {
1929
- transform: rotate(-180deg);
1930
- }
1931
-
1932
- .translate-x-0 {
1933
- transform: translateX(0);
1934
- }
1935
-
1936
- .translate-x-1 {
1937
- transform: translateX(0.25rem);
1938
- }
1939
-
1940
- .translate-x-2 {
1941
- transform: translateX(0.5rem);
1942
- }
1943
-
1944
- .translate-x-4 {
1945
- transform: translateX(1rem);
1946
- }
1947
-
1948
- .translate-x-full {
1949
- transform: translateX(100%);
1950
- }
1951
-
1952
- .-translate-x-full {
1953
- transform: translateX(-100%);
1954
- }
1955
-
1956
- .translate-y-0 {
1957
- transform: translateY(0);
1958
- }
1959
-
1960
- .translate-y-1 {
1961
- transform: translateY(0.25rem);
1962
- }
1963
-
1964
- .translate-y-2 {
1965
- transform: translateY(0.5rem);
1966
- }
1967
-
1968
- .translate-y-4 {
1969
- transform: translateY(1rem);
1970
- }
1971
-
1972
- .translate-y-full {
1973
- transform: translateY(100%);
1974
- }
1975
-
1976
- .-translate-y-full {
1977
- transform: translateY(-100%);
1978
- }
1979
-
1980
- .skew-x-0 {
1981
- transform: skewX(0deg);
1982
- }
1983
-
1984
- .skew-x-3 {
1985
- transform: skewX(3deg);
1986
- }
1987
-
1988
- .skew-x-6 {
1989
- transform: skewX(6deg);
1990
- }
1991
-
1992
- .skew-x-12 {
1993
- transform: skewX(12deg);
1994
- }
1995
-
1996
- .skew-y-0 {
1997
- transform: skewY(0deg);
1998
- }
1999
-
2000
- .skew-y-3 {
2001
- transform: skewY(3deg);
2002
- }
2003
-
2004
- .skew-y-6 {
2005
- transform: skewY(6deg);
2006
- }
2007
-
2008
- .skew-y-12 {
2009
- transform: skewY(12deg);
2010
- }
2011
-
2012
- .origin-center {
2013
- transform-origin: center;
2014
- }
2015
-
2016
- .origin-top {
2017
- transform-origin: top;
2018
- }
2019
-
2020
- .origin-top-right {
2021
- transform-origin: top right;
2022
- }
2023
-
2024
- .origin-right {
2025
- transform-origin: right;
2026
- }
2027
-
2028
- .origin-bottom-right {
2029
- transform-origin: bottom right;
2030
- }
2031
-
2032
- .origin-bottom {
2033
- transform-origin: bottom;
2034
- }
2035
-
2036
- .origin-bottom-left {
2037
- transform-origin: bottom left;
2038
- }
2039
-
2040
- .origin-left {
2041
- transform-origin: left;
2042
- }
2043
-
2044
- .origin-top-left {
2045
- transform-origin: top left;
2046
- }
2047
-
2048
- // Filter Utilities
2049
- // ============================================
2050
-
2051
- .blur-none {
2052
- filter: blur(0);
2053
- }
2054
-
2055
- .blur-sm {
2056
- filter: blur(4px);
2057
- }
2058
-
2059
- .blur {
2060
- filter: blur(8px);
2061
- }
2062
-
2063
- .blur-md {
2064
- filter: blur(12px);
2065
- }
2066
-
2067
- .blur-lg {
2068
- filter: blur(16px);
2069
- }
2070
-
2071
- .blur-xl {
2072
- filter: blur(24px);
2073
- }
2074
-
2075
- .brightness-0 {
2076
- filter: brightness(0);
2077
- }
2078
-
2079
- .brightness-50 {
2080
- filter: brightness(0.5);
2081
- }
2082
-
2083
- .brightness-75 {
2084
- filter: brightness(0.75);
2085
- }
2086
-
2087
- .brightness-100 {
2088
- filter: brightness(1);
2089
- }
2090
-
2091
- .brightness-125 {
2092
- filter: brightness(1.25);
2093
- }
2094
-
2095
- .brightness-150 {
2096
- filter: brightness(1.5);
2097
- }
2098
-
2099
- .contrast-0 {
2100
- filter: contrast(0);
2101
- }
2102
-
2103
- .contrast-50 {
2104
- filter: contrast(0.5);
2105
- }
2106
-
2107
- .contrast-100 {
2108
- filter: contrast(1);
2109
- }
2110
-
2111
- .contrast-125 {
2112
- filter: contrast(1.25);
2113
- }
2114
-
2115
- .contrast-150 {
2116
- filter: contrast(1.5);
2117
- }
2118
-
2119
- .grayscale-0 {
2120
- filter: grayscale(0);
2121
- }
2122
-
2123
- .grayscale {
2124
- filter: grayscale(100%);
2125
- }
2126
-
2127
- .invert-0 {
2128
- filter: invert(0);
2129
- }
2130
-
2131
- .invert {
2132
- filter: invert(100%);
2133
- }
2134
-
2135
- .saturate-0 {
2136
- filter: saturate(0);
2137
- }
2138
-
2139
- .saturate-50 {
2140
- filter: saturate(0.5);
2141
- }
2142
-
2143
- .saturate-100 {
2144
- filter: saturate(1);
2145
- }
2146
-
2147
- .saturate-150 {
2148
- filter: saturate(1.5);
2149
- }
2150
-
2151
- .saturate-200 {
2152
- filter: saturate(2);
2153
- }
2154
-
2155
- .sepia-0 {
2156
- filter: sepia(0);
2157
- }
2158
-
2159
- .sepia {
2160
- filter: sepia(100%);
2161
- }
2162
-
2163
- // Backdrop Filter
2164
- // ============================================
2165
-
2166
- .backdrop-blur-none {
2167
- backdrop-filter: blur(0);
2168
- }
2169
-
2170
- .backdrop-blur-sm {
2171
- backdrop-filter: blur(4px);
2172
- }
2173
-
2174
- .backdrop-blur {
2175
- backdrop-filter: blur(8px);
2176
- }
2177
-
2178
- .backdrop-blur-md {
2179
- backdrop-filter: blur(12px);
2180
- }
2181
-
2182
- .backdrop-blur-lg {
2183
- backdrop-filter: blur(16px);
2184
- }
2185
-
2186
- // Interactivity States (Hover, Focus, Active)
2187
- // ============================================
2188
-
2189
- @each $name, $color in $colors {
2190
- .hover\:bg-#{$name}:hover {
2191
- background-color: $color;
2192
- }
2193
-
2194
- .hover\:text-#{$name}:hover {
2195
- color: $color;
2196
- }
2197
-
2198
- .hover\:border-#{$name}:hover {
2199
- border-color: $color;
2200
- }
2201
-
2202
- .focus\:bg-#{$name}:focus {
2203
- background-color: $color;
2204
- }
2205
-
2206
- .focus\:text-#{$name}:focus {
2207
- color: $color;
2208
- }
2209
-
2210
- .focus\:border-#{$name}:focus {
2211
- border-color: $color;
2212
- }
2213
-
2214
- .active\:bg-#{$name}:active {
2215
- background-color: $color;
2216
- }
2217
-
2218
- .active\:text-#{$name}:active {
2219
- color: $color;
2220
- }
2221
- }
2222
-
2223
- .hover\:opacity-100:hover {
2224
- opacity: 1;
2225
- }
2226
-
2227
- .hover\:opacity-90:hover {
2228
- opacity: 0.9;
2229
- }
2230
-
2231
- .hover\:opacity-75:hover {
2232
- opacity: 0.75;
2233
- }
2234
-
2235
- .hover\:opacity-50:hover {
2236
- opacity: 0.5;
2237
- }
2238
-
2239
- .hover\:scale-105:hover {
2240
- transform: scale(1.05);
2241
- }
2242
-
2243
- .hover\:scale-110:hover {
2244
- transform: scale(1.1);
2245
- }
2246
-
2247
- .hover\:scale-95:hover {
2248
- transform: scale(0.95);
2249
- }
2250
-
2251
- .hover\:shadow-sm:hover {
2252
- box-shadow: map-get($shadows, 'sm');
2253
- }
2254
-
2255
- .hover\:shadow:hover {
2256
- box-shadow: map-get($shadows, 'DEFAULT');
2257
- }
2258
-
2259
- .hover\:shadow-md:hover {
2260
- box-shadow: map-get($shadows, 'md');
2261
- }
2262
-
2263
- .hover\:shadow-lg:hover {
2264
- box-shadow: map-get($shadows, 'lg');
2265
- }
2266
-
2267
- .hover\:shadow-xl:hover {
2268
- box-shadow: map-get($shadows, 'xl');
2269
- }
2270
-
2271
- .hover\:shadow-none:hover {
2272
- box-shadow: none;
2273
- }
2274
-
2275
- .focus\:outline-none:focus {
2276
- outline: 2px solid transparent;
2277
- outline-offset: 2px;
2278
- }
2279
-
2280
- .focus\:ring:focus {
2281
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
2282
- }
2283
-
2284
- .focus\:ring-2:focus {
2285
- box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.5);
2286
- }
2287
-
2288
- .focus\:ring-4:focus {
2289
- box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.5);
2290
- }
2291
-
2292
- .focus-visible\:outline-none:focus-visible {
2293
- outline: 2px solid transparent;
2294
- outline-offset: 2px;
2295
- }
2296
-
2297
- .focus-visible\:ring:focus-visible {
2298
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
2299
- }
2300
-
2301
- .disabled\:opacity-50:disabled {
2302
- opacity: 0.5;
2303
- }
2304
-
2305
- .disabled\:cursor-not-allowed:disabled {
2306
- cursor: not-allowed;
2307
- }
2308
-
2309
- // Group Hover (requires parent with .group class)
2310
- // ============================================
2311
-
2312
- @each $name, $color in $colors {
2313
- .group:hover .group-hover\:bg-#{$name} {
2314
- background-color: $color;
2315
- }
2316
-
2317
- .group:hover .group-hover\:text-#{$name} {
2318
- color: $color;
2319
- }
2320
- }
2321
-
2322
- .group:hover .group-hover\:opacity-100 {
2323
- opacity: 1;
2324
- }
2325
-
2326
- .group:hover .group-hover\:scale-105 {
2327
- transform: scale(1.05);
2328
- }
2329
-
2330
- // Responsive Utilities
2331
- // ============================================
2332
-
2333
- @each $breakpoint, $width in $breakpoints {
2334
- @media (min-width: $width) {
2335
-
2336
- // Display
2337
- .#{$breakpoint}\:block {
2338
- display: block;
2339
- }
2340
-
2341
- .#{$breakpoint}\:inline-block {
2342
- display: inline-block;
2343
- }
2344
-
2345
- .#{$breakpoint}\:inline {
2346
- display: inline;
2347
- }
2348
-
2349
- .#{$breakpoint}\:flex {
2350
- display: flex;
2351
- }
2352
-
2353
- .#{$breakpoint}\:inline-flex {
2354
- display: inline-flex;
2355
- }
2356
-
2357
- .#{$breakpoint}\:grid {
2358
- display: grid;
2359
- }
2360
-
2361
- .#{$breakpoint}\:hidden {
2362
- display: none;
2363
- }
2364
-
2365
- // Flex direction
2366
- .#{$breakpoint}\:flex-row {
2367
- flex-direction: row;
2368
- }
2369
-
2370
- .#{$breakpoint}\:flex-col {
2371
- flex-direction: column;
2372
- }
2373
-
2374
- // Justify & Align
2375
- .#{$breakpoint}\:justify-start {
2376
- justify-content: flex-start;
2377
- }
2378
-
2379
- .#{$breakpoint}\:justify-center {
2380
- justify-content: center;
2381
- }
2382
-
2383
- .#{$breakpoint}\:justify-end {
2384
- justify-content: flex-end;
2385
- }
2386
-
2387
- .#{$breakpoint}\:justify-between {
2388
- justify-content: space-between;
2389
- }
2390
-
2391
- .#{$breakpoint}\:items-start {
2392
- align-items: flex-start;
2393
- }
2394
-
2395
- .#{$breakpoint}\:items-center {
2396
- align-items: center;
2397
- }
2398
-
2399
- .#{$breakpoint}\:items-end {
2400
- align-items: flex-end;
2401
- }
2402
-
2403
- // Grid
2404
- @for $i from 1 through 12 {
2405
- .#{$breakpoint}\:grid-cols-#{$i} {
2406
- grid-template-columns: repeat($i, minmax(0, 1fr));
2407
- }
2408
-
2409
- .#{$breakpoint}\:col-span-#{$i} {
2410
- grid-column: span $i / span $i;
2411
- }
2412
- }
2413
-
2414
- // Spacing
2415
- @each $key, $value in $spacing-scale {
2416
- .#{$breakpoint}\:p-#{$key} {
2417
- padding: $value;
2418
- }
2419
-
2420
- .#{$breakpoint}\:px-#{$key} {
2421
- padding-left: $value;
2422
- padding-right: $value;
2423
- }
2424
-
2425
- .#{$breakpoint}\:py-#{$key} {
2426
- padding-top: $value;
2427
- padding-bottom: $value;
2428
- }
2429
-
2430
- .#{$breakpoint}\:m-#{$key} {
2431
- margin: $value;
2432
- }
2433
-
2434
- .#{$breakpoint}\:mx-#{$key} {
2435
- margin-left: $value;
2436
- margin-right: $value;
2437
- }
2438
-
2439
- .#{$breakpoint}\:my-#{$key} {
2440
- margin-top: $value;
2441
- margin-bottom: $value;
2442
- }
2443
-
2444
- .#{$breakpoint}\:gap-#{$key} {
2445
- gap: $value;
2446
- }
2447
- }
2448
-
2449
- // Width
2450
- .#{$breakpoint}\:w-auto {
2451
- width: auto;
2452
- }
2453
-
2454
- .#{$breakpoint}\:w-full {
2455
- width: 100%;
2456
- }
2457
-
2458
- .#{$breakpoint}\:w-1\/2 {
2459
- width: 50%;
2460
- }
2461
-
2462
- .#{$breakpoint}\:w-1\/3 {
2463
- width: 33.333333%;
2464
- }
2465
-
2466
- .#{$breakpoint}\:w-2\/3 {
2467
- width: 66.666667%;
2468
- }
2469
-
2470
- // Text alignment
2471
- .#{$breakpoint}\:text-left {
2472
- text-align: left;
2473
- }
2474
-
2475
- .#{$breakpoint}\:text-center {
2476
- text-align: center;
2477
- }
2478
-
2479
- .#{$breakpoint}\:text-right {
2480
- text-align: right;
2481
- }
2482
-
2483
- // Font sizes
2484
- @each $size-key, $size-value in $font-sizes {
2485
- .#{$breakpoint}\:text-#{$size-key} {
2486
- font-size: $size-value;
2487
- }
2488
- }
2489
- }
2490
- }
2491
-
2492
- // RTL Support Classes
2493
- // ============================================
2494
-
2495
- [dir="rtl"] {
2496
- .rtl\:text-right {
2497
- text-align: right;
2498
- }
2499
-
2500
- .rtl\:text-left {
2501
- text-align: left;
2502
- }
2503
-
2504
- .rtl\:flex-row-reverse {
2505
- flex-direction: row-reverse;
2506
- }
2507
- }
2508
-
2509
- [dir="ltr"] {
2510
- .ltr\:text-left {
2511
- text-align: left;
2512
- }
2513
-
2514
- .ltr\:text-right {
2515
- text-align: right;
2516
- }
2517
- }
2518
-
2519
- // Print Utilities
2520
- // ============================================
2521
-
2522
- @media print {
2523
- .print\:hidden {
2524
- display: none;
2525
- }
2526
-
2527
- .print\:block {
2528
- display: block;
2529
- }
2530
- }
2531
-
2532
- // Dark Mode Utilities (requires .dark class on html/body)
2533
- // ============================================
2534
-
2535
- .dark {
2536
- @each $name, $color in $colors {
2537
- .dark\:bg-#{$name} {
2538
- background-color: $color;
2539
- }
2540
-
2541
- .dark\:text-#{$name} {
2542
- color: $color;
2543
- }
2544
-
2545
- .dark\:border-#{$name} {
2546
- border-color: $color;
2547
- }
2548
- }
2549
- }
2550
-
2551
- // Utility Mixins
2552
- // ============================================
2553
-
2554
- @mixin flex-center {
2555
- display: flex;
2556
- align-items: center;
2557
- justify-content: center;
2558
- }
2559
-
2560
- @mixin absolute-center {
2561
- position: absolute;
2562
- top: 50%;
2563
- left: 50%;
2564
- transform: translate(-50%, -50%);
2565
- }
2566
-
2567
- @mixin truncate {
2568
- overflow: hidden;
2569
- text-overflow: ellipsis;
2570
- white-space: nowrap;
2571
- }
2572
-
2573
- @mixin aspect-ratio($width, $height) {
2574
- aspect-ratio: $width / $height;
2575
- }
2576
-
2577
- @mixin container($max-width: 1200px) {
2578
- width: 100%;
2579
- max-width: $max-width;
2580
- margin-left: auto;
2581
- margin-right: auto;
2582
- padding-left: 1rem;
2583
- padding-right: 1rem;
2584
- }
2585
-
2586
- @mixin clearfix {
2587
- &::after {
2588
- content: "";
2589
- display: table;
2590
- clear: both;
2591
- }
2592
- }
2593
-
2594
- @mixin visually-hidden {
2595
- position: absolute;
2596
- width: 1px;
2597
- height: 1px;
2598
- padding: 0;
2599
- margin: -1px;
2600
- overflow: hidden;
2601
- clip: rect(0, 0, 0, 0);
2602
- white-space: nowrap;
2603
- border-width: 0;
2604
- }
2605
-
2606
- @mixin gradient($direction, $colors...) {
2607
- background: linear-gradient($direction, $colors);
2608
- }
2609
-
2610
- // Accessibility
2611
- // ============================================
2612
-
2613
- .sr-only {
2614
- position: absolute;
2615
- width: 1px;
2616
- height: 1px;
2617
- padding: 0;
2618
- margin: -1px;
2619
- overflow: hidden;
2620
- clip: rect(0, 0, 0, 0);
2621
- white-space: nowrap;
2622
- border-width: 0;
2623
- }
2624
-
2625
- .not-sr-only {
2626
- position: static;
2627
- width: auto;
2628
- height: auto;
2629
- padding: 0;
2630
- margin: 0;
2631
- overflow: visible;
2632
- clip: auto;
2633
- white-space: normal;
2634
- }
2635
-
2636
- .focus\:not-sr-only:focus {
2637
- position: static;
2638
- width: auto;
2639
- height: auto;
2640
- padding: 0;
2641
- margin: 0;
2642
- overflow: visible;
2643
- clip: auto;
2644
- white-space: normal;
2645
- }
2646
-
2647
- // Container
2648
- // ============================================
2649
-
2650
- .container {
2651
- width: 100%;
2652
- margin-left: auto;
2653
- margin-right: auto;
2654
- padding-left: 1rem;
2655
- padding-right: 1rem;
2656
-
2657
- @media (min-width: map-get($breakpoints, 'sm')) {
2658
- max-width: map-get($breakpoints, 'sm');
2659
- }
2660
-
2661
- @media (min-width: map-get($breakpoints, 'md')) {
2662
- max-width: map-get($breakpoints, 'md');
2663
- }
2664
-
2665
- @media (min-width: map-get($breakpoints, 'lg')) {
2666
- max-width: map-get($breakpoints, 'lg');
2667
- }
2668
-
2669
- @media (min-width: map-get($breakpoints, 'xl')) {
2670
- max-width: map-get($breakpoints, 'xl');
2671
- }
2672
-
2673
- @media (min-width: map-get($breakpoints, '2xl')) {
2674
- max-width: map-get($breakpoints, '2xl');
2675
- }
2676
- }
2677
-
2678
- // Export mixins for use in your components
2679
- // Usage: @include flex-center;
7
+ // ----------------------------------------------------------------------------
8
+ // PACK
9
+ // ----------------------------------------------------------------------------
10
+ @use './p1.scss';
11
+ @use './p2.scss';
12
+ @use './p3.scss';
13
+ @use './p4.scss';
14
+ @use './responsive.scss';