@nuvoui/core 1.1.6 → 1.1.8

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.
@@ -5,6 +5,7 @@
5
5
  @use 'layouts/flex' as *;
6
6
  @use 'layouts/grid' as *;
7
7
  @use 'themes/theme' as *;
8
+ @use 'utilities/alignment' as *;
8
9
  @use 'utilities/animations' as *;
9
10
  @use 'utilities/borders' as *;
10
11
  @use 'utilities/colors' as *;
@@ -19,6 +20,7 @@
19
20
  @use 'utilities/sizing' as *;
20
21
  @use 'utilities/spacing' as *;
21
22
  @use 'utilities/tooltips' as *;
23
+ @use 'utilities/transitions' as *;
22
24
  @use 'utilities/typography' as *;
23
25
  @use 'utilities/variables' as *;
24
26
 
@@ -140,6 +142,14 @@
140
142
  @include flow-in-col;
141
143
  } @else if $mixin-str == 'flow-dense-items' {
142
144
  @include flow-dense-items;
145
+ } @else if $mixin-str == 'align-baseline' {
146
+ @include align-baseline;
147
+ } @else if $mixin-str == 'align-top' {
148
+ @include align-top;
149
+ } @else if $mixin-str == 'align-middle' {
150
+ @include align-middle;
151
+ } @else if $mixin-str == 'align-bottom' {
152
+ @include align-bottom;
143
153
  } @else if $mixin-str == 'hide' {
144
154
  @include hide;
145
155
  } @else if $mixin-str == 'block' {
@@ -156,8 +166,34 @@
156
166
  @include d-tbl-row;
157
167
  } @else if $mixin-str == 'd-tbl-cell' {
158
168
  @include d-tbl-cell;
169
+ } @else if $mixin-str == 'visible' {
170
+ @include visible;
171
+ } @else if $mixin-str == 'invisible' {
172
+ @include invisible;
173
+ } @else if $mixin-str == 'collapse' {
174
+ @include collapse;
175
+ } @else if $mixin-str == 'contents' {
176
+ @include contents;
159
177
  } @else if $mixin-str == 'overflow-hidden' {
160
178
  @include overflow-hidden;
179
+ } @else if $mixin-str == 'overflow-visible' {
180
+ @include overflow-visible;
181
+ } @else if $mixin-str == 'overflow-scroll' {
182
+ @include overflow-scroll;
183
+ } @else if $mixin-str == 'overflow-auto' {
184
+ @include overflow-auto;
185
+ } @else if $mixin-str == 'overflow-x-hidden' {
186
+ @include overflow-x-hidden;
187
+ } @else if $mixin-str == 'overflow-y-hidden' {
188
+ @include overflow-y-hidden;
189
+ } @else if $mixin-str == 'overflow-x-scroll' {
190
+ @include overflow-x-scroll;
191
+ } @else if $mixin-str == 'overflow-y-scroll' {
192
+ @include overflow-y-scroll;
193
+ } @else if $mixin-str == 'overflow-x-auto' {
194
+ @include overflow-x-auto;
195
+ } @else if $mixin-str == 'overflow-y-auto' {
196
+ @include overflow-y-auto;
161
197
  } @else if $mixin-str == 'touch' {
162
198
  @include touch;
163
199
  } @else if $mixin-str == 'print' {
@@ -200,12 +236,38 @@
200
236
  @include min-h-full;
201
237
  } @else if $mixin-str == 'max-h-full' {
202
238
  @include max-h-full;
239
+ } @else if $mixin-str == 'w-screen' {
240
+ @include w-screen;
241
+ } @else if $mixin-str == 'h-screen' {
242
+ @include h-screen;
203
243
  } @else if $mixin-str == 'ml-auto' {
204
244
  @include ml-auto;
205
245
  } @else if $mixin-str == 'mr-auto' {
206
246
  @include mr-auto;
207
247
  } @else if $mixin-str == 'mx-auto' {
208
248
  @include mx-auto;
249
+ } @else if $mixin-str == 'transition' {
250
+ @include transition;
251
+ } @else if $mixin-str == 'transition-none' {
252
+ @include transition-none;
253
+ } @else if $mixin-str == 'transition-all' {
254
+ @include transition-all;
255
+ } @else if $mixin-str == 'transition-colors' {
256
+ @include transition-colors;
257
+ } @else if $mixin-str == 'transition-opacity' {
258
+ @include transition-opacity;
259
+ } @else if $mixin-str == 'transition-shadow' {
260
+ @include transition-shadow;
261
+ } @else if $mixin-str == 'transition-transform' {
262
+ @include transition-transform;
263
+ } @else if $mixin-str == 'ease-linear' {
264
+ @include ease-linear;
265
+ } @else if $mixin-str == 'ease-in' {
266
+ @include ease-in;
267
+ } @else if $mixin-str == 'ease-out' {
268
+ @include ease-out;
269
+ } @else if $mixin-str == 'ease-in-out' {
270
+ @include ease-in-out;
209
271
  } @else if $mixin-str == 'font-thin' {
210
272
  @include font-thin;
211
273
  } @else if $mixin-str == 'font-extralight' {
@@ -264,6 +326,27 @@
264
326
  @include no-underline;
265
327
  } @else if $mixin-str == 'truncate' {
266
328
  @include truncate;
329
+ } @else if $mixin-str == 'break-normal' {
330
+ @include break-normal;
331
+ } @else if $mixin-str == 'break-words' {
332
+ @include break-words;
333
+ } @else if $mixin-str == 'break-all' {
334
+ @include break-all;
335
+ } @else if $mixin-str == 'whitespace-normal' {
336
+ @include whitespace-normal;
337
+ } @else if $mixin-str == 'whitespace-nowrap' {
338
+ @include whitespace-nowrap;
339
+ } @else if $mixin-str == 'whitespace-pre' {
340
+ @include whitespace-pre;
341
+ } @else if $mixin-str == 'whitespace-pre-line' {
342
+ @include whitespace-pre-line;
343
+ } @else if $mixin-str == 'whitespace-pre-wrap' {
344
+ @include whitespace-pre-wrap;
345
+ } @else if str.index($mixin-str, 'container-padding(') == 1 {
346
+ $start: str.index($mixin-str, '(') + 1;
347
+ $end: str.length($mixin-str) - 1;
348
+ $value: str.slice($mixin-str, $start, $end);
349
+ @include container-padding(str.unquote($value));
267
350
  } @else if str.index($mixin-str, 'container(') == 1 {
268
351
  $start: str.index($mixin-str, '(') + 1;
269
352
  $end: str.length($mixin-str) - 1;
@@ -284,11 +367,11 @@
284
367
  $end: str.length($mixin-str) - 1;
285
368
  $value: str.slice($mixin-str, $start, $end);
286
369
  @include rows(str.unquote($value));
287
- } @else if str.index($mixin-str, 'grid-cols-custom(') == 1 {
370
+ } @else if str.index($mixin-str, 'cols-custom(') == 1 {
288
371
  $start: str.index($mixin-str, '(') + 1;
289
372
  $end: str.length($mixin-str) - 1;
290
373
  $value: str.slice($mixin-str, $start, $end);
291
- @include grid-cols-custom(str.unquote($value));
374
+ @include cols-custom(str.unquote($value));
292
375
  } @else if str.index($mixin-str, 'auto-fit(') == 1 {
293
376
  $start: str.index($mixin-str, '(') + 1;
294
377
  $end: str.length($mixin-str) - 1;
@@ -359,6 +442,21 @@
359
442
  $end: str.length($mixin-str) - 1;
360
443
  $value: str.slice($mixin-str, $start, $end);
361
444
  @include position-row(str.unquote($value));
445
+ } @else if str.index($mixin-str, 'grid-gap(') == 1 {
446
+ $start: str.index($mixin-str, '(') + 1;
447
+ $end: str.length($mixin-str) - 1;
448
+ $value: str.slice($mixin-str, $start, $end);
449
+ @include grid-gap(str.unquote($value));
450
+ } @else if str.index($mixin-str, 'col-gap(') == 1 {
451
+ $start: str.index($mixin-str, '(') + 1;
452
+ $end: str.length($mixin-str) - 1;
453
+ $value: str.slice($mixin-str, $start, $end);
454
+ @include col-gap(str.unquote($value));
455
+ } @else if str.index($mixin-str, 'row-gap(') == 1 {
456
+ $start: str.index($mixin-str, '(') + 1;
457
+ $end: str.length($mixin-str) - 1;
458
+ $value: str.slice($mixin-str, $start, $end);
459
+ @include row-gap(str.unquote($value));
362
460
  } @else if str.index($mixin-str, 'generate-bounce-keyframes(') == 1 {
363
461
  $start: str.index($mixin-str, '(') + 1;
364
462
  $end: str.length($mixin-str) - 1;
@@ -419,6 +517,16 @@
419
517
  $end: str.length($mixin-str) - 1;
420
518
  $value: str.slice($mixin-str, $start, $end);
421
519
  @include container-query(str.unquote($value));
520
+ } @else if str.index($mixin-str, 'container-type(') == 1 {
521
+ $start: str.index($mixin-str, '(') + 1;
522
+ $end: str.length($mixin-str) - 1;
523
+ $value: str.slice($mixin-str, $start, $end);
524
+ @include container-type(str.unquote($value));
525
+ } @else if str.index($mixin-str, 'container-name(') == 1 {
526
+ $start: str.index($mixin-str, '(') + 1;
527
+ $end: str.length($mixin-str) - 1;
528
+ $value: str.slice($mixin-str, $start, $end);
529
+ @include container-name(str.unquote($value));
422
530
  } @else if str.index($mixin-str, 'media-up(') == 1 {
423
531
  $start: str.index($mixin-str, '(') + 1;
424
532
  $end: str.length($mixin-str) - 1;
@@ -644,11 +752,31 @@
644
752
  $end: str.length($mixin-str) - 1;
645
753
  $value: str.slice($mixin-str, $start, $end);
646
754
  @include gap-y(str.unquote($value));
755
+ } @else if str.index($mixin-str, 'duration(') == 1 {
756
+ $start: str.index($mixin-str, '(') + 1;
757
+ $end: str.length($mixin-str) - 1;
758
+ $value: str.slice($mixin-str, $start, $end);
759
+ @include duration(str.unquote($value));
760
+ } @else if str.index($mixin-str, 'delay(') == 1 {
761
+ $start: str.index($mixin-str, '(') + 1;
762
+ $end: str.length($mixin-str) - 1;
763
+ $value: str.slice($mixin-str, $start, $end);
764
+ @include delay(str.unquote($value));
647
765
  } @else if str.index($mixin-str, 'text-size(') == 1 {
648
766
  $start: str.index($mixin-str, '(') + 1;
649
767
  $end: str.length($mixin-str) - 1;
650
768
  $value: str.slice($mixin-str, $start, $end);
651
769
  @include text-size(str.unquote($value));
770
+ } @else if str.index($mixin-str, 'truncate-lines(') == 1 {
771
+ $start: str.index($mixin-str, '(') + 1;
772
+ $end: str.length($mixin-str) - 1;
773
+ $value: str.slice($mixin-str, $start, $end);
774
+ @include truncate-lines(str.unquote($value));
775
+ } @else if str.index($mixin-str, 'responsive-typography(') == 1 {
776
+ $start: str.index($mixin-str, '(') + 1;
777
+ $end: str.length($mixin-str) - 1;
778
+ $value: str.slice($mixin-str, $start, $end);
779
+ @include responsive-typography(str.unquote($value));
652
780
  }
653
781
  }
654
782
  } @else {
@@ -744,6 +872,14 @@
744
872
  @include flow-in-col;
745
873
  } @else if $mixin-str == 'flow-dense-items' {
746
874
  @include flow-dense-items;
875
+ } @else if $mixin-str == 'align-baseline' {
876
+ @include align-baseline;
877
+ } @else if $mixin-str == 'align-top' {
878
+ @include align-top;
879
+ } @else if $mixin-str == 'align-middle' {
880
+ @include align-middle;
881
+ } @else if $mixin-str == 'align-bottom' {
882
+ @include align-bottom;
747
883
  } @else if $mixin-str == 'hide' {
748
884
  @include hide;
749
885
  } @else if $mixin-str == 'block' {
@@ -760,8 +896,34 @@
760
896
  @include d-tbl-row;
761
897
  } @else if $mixin-str == 'd-tbl-cell' {
762
898
  @include d-tbl-cell;
899
+ } @else if $mixin-str == 'visible' {
900
+ @include visible;
901
+ } @else if $mixin-str == 'invisible' {
902
+ @include invisible;
903
+ } @else if $mixin-str == 'collapse' {
904
+ @include collapse;
905
+ } @else if $mixin-str == 'contents' {
906
+ @include contents;
763
907
  } @else if $mixin-str == 'overflow-hidden' {
764
908
  @include overflow-hidden;
909
+ } @else if $mixin-str == 'overflow-visible' {
910
+ @include overflow-visible;
911
+ } @else if $mixin-str == 'overflow-scroll' {
912
+ @include overflow-scroll;
913
+ } @else if $mixin-str == 'overflow-auto' {
914
+ @include overflow-auto;
915
+ } @else if $mixin-str == 'overflow-x-hidden' {
916
+ @include overflow-x-hidden;
917
+ } @else if $mixin-str == 'overflow-y-hidden' {
918
+ @include overflow-y-hidden;
919
+ } @else if $mixin-str == 'overflow-x-scroll' {
920
+ @include overflow-x-scroll;
921
+ } @else if $mixin-str == 'overflow-y-scroll' {
922
+ @include overflow-y-scroll;
923
+ } @else if $mixin-str == 'overflow-x-auto' {
924
+ @include overflow-x-auto;
925
+ } @else if $mixin-str == 'overflow-y-auto' {
926
+ @include overflow-y-auto;
765
927
  } @else if $mixin-str == 'touch' {
766
928
  @include touch;
767
929
  } @else if $mixin-str == 'print' {
@@ -804,12 +966,38 @@
804
966
  @include min-h-full;
805
967
  } @else if $mixin-str == 'max-h-full' {
806
968
  @include max-h-full;
969
+ } @else if $mixin-str == 'w-screen' {
970
+ @include w-screen;
971
+ } @else if $mixin-str == 'h-screen' {
972
+ @include h-screen;
807
973
  } @else if $mixin-str == 'ml-auto' {
808
974
  @include ml-auto;
809
975
  } @else if $mixin-str == 'mr-auto' {
810
976
  @include mr-auto;
811
977
  } @else if $mixin-str == 'mx-auto' {
812
978
  @include mx-auto;
979
+ } @else if $mixin-str == 'transition' {
980
+ @include transition;
981
+ } @else if $mixin-str == 'transition-none' {
982
+ @include transition-none;
983
+ } @else if $mixin-str == 'transition-all' {
984
+ @include transition-all;
985
+ } @else if $mixin-str == 'transition-colors' {
986
+ @include transition-colors;
987
+ } @else if $mixin-str == 'transition-opacity' {
988
+ @include transition-opacity;
989
+ } @else if $mixin-str == 'transition-shadow' {
990
+ @include transition-shadow;
991
+ } @else if $mixin-str == 'transition-transform' {
992
+ @include transition-transform;
993
+ } @else if $mixin-str == 'ease-linear' {
994
+ @include ease-linear;
995
+ } @else if $mixin-str == 'ease-in' {
996
+ @include ease-in;
997
+ } @else if $mixin-str == 'ease-out' {
998
+ @include ease-out;
999
+ } @else if $mixin-str == 'ease-in-out' {
1000
+ @include ease-in-out;
813
1001
  } @else if $mixin-str == 'font-thin' {
814
1002
  @include font-thin;
815
1003
  } @else if $mixin-str == 'font-extralight' {
@@ -868,6 +1056,27 @@
868
1056
  @include no-underline;
869
1057
  } @else if $mixin-str == 'truncate' {
870
1058
  @include truncate;
1059
+ } @else if $mixin-str == 'break-normal' {
1060
+ @include break-normal;
1061
+ } @else if $mixin-str == 'break-words' {
1062
+ @include break-words;
1063
+ } @else if $mixin-str == 'break-all' {
1064
+ @include break-all;
1065
+ } @else if $mixin-str == 'whitespace-normal' {
1066
+ @include whitespace-normal;
1067
+ } @else if $mixin-str == 'whitespace-nowrap' {
1068
+ @include whitespace-nowrap;
1069
+ } @else if $mixin-str == 'whitespace-pre' {
1070
+ @include whitespace-pre;
1071
+ } @else if $mixin-str == 'whitespace-pre-line' {
1072
+ @include whitespace-pre-line;
1073
+ } @else if $mixin-str == 'whitespace-pre-wrap' {
1074
+ @include whitespace-pre-wrap;
1075
+ } @else if str.index($mixin-str, 'container-padding(') == 1 {
1076
+ $start: str.index($mixin-str, '(') + 1;
1077
+ $end: str.length($mixin-str) - 1;
1078
+ $value: str.slice($mixin-str, $start, $end);
1079
+ @include container-padding(str.unquote($value));
871
1080
  } @else if str.index($mixin-str, 'container(') == 1 {
872
1081
  $start: str.index($mixin-str, '(') + 1;
873
1082
  $end: str.length($mixin-str) - 1;
@@ -888,11 +1097,11 @@
888
1097
  $end: str.length($mixin-str) - 1;
889
1098
  $value: str.slice($mixin-str, $start, $end);
890
1099
  @include rows(str.unquote($value));
891
- } @else if str.index($mixin-str, 'grid-cols-custom(') == 1 {
1100
+ } @else if str.index($mixin-str, 'cols-custom(') == 1 {
892
1101
  $start: str.index($mixin-str, '(') + 1;
893
1102
  $end: str.length($mixin-str) - 1;
894
1103
  $value: str.slice($mixin-str, $start, $end);
895
- @include grid-cols-custom(str.unquote($value));
1104
+ @include cols-custom(str.unquote($value));
896
1105
  } @else if str.index($mixin-str, 'auto-fit(') == 1 {
897
1106
  $start: str.index($mixin-str, '(') + 1;
898
1107
  $end: str.length($mixin-str) - 1;
@@ -963,6 +1172,21 @@
963
1172
  $end: str.length($mixin-str) - 1;
964
1173
  $value: str.slice($mixin-str, $start, $end);
965
1174
  @include position-row(str.unquote($value));
1175
+ } @else if str.index($mixin-str, 'grid-gap(') == 1 {
1176
+ $start: str.index($mixin-str, '(') + 1;
1177
+ $end: str.length($mixin-str) - 1;
1178
+ $value: str.slice($mixin-str, $start, $end);
1179
+ @include grid-gap(str.unquote($value));
1180
+ } @else if str.index($mixin-str, 'col-gap(') == 1 {
1181
+ $start: str.index($mixin-str, '(') + 1;
1182
+ $end: str.length($mixin-str) - 1;
1183
+ $value: str.slice($mixin-str, $start, $end);
1184
+ @include col-gap(str.unquote($value));
1185
+ } @else if str.index($mixin-str, 'row-gap(') == 1 {
1186
+ $start: str.index($mixin-str, '(') + 1;
1187
+ $end: str.length($mixin-str) - 1;
1188
+ $value: str.slice($mixin-str, $start, $end);
1189
+ @include row-gap(str.unquote($value));
966
1190
  } @else if str.index($mixin-str, 'generate-bounce-keyframes(') == 1 {
967
1191
  $start: str.index($mixin-str, '(') + 1;
968
1192
  $end: str.length($mixin-str) - 1;
@@ -1023,6 +1247,16 @@
1023
1247
  $end: str.length($mixin-str) - 1;
1024
1248
  $value: str.slice($mixin-str, $start, $end);
1025
1249
  @include container-query(str.unquote($value));
1250
+ } @else if str.index($mixin-str, 'container-type(') == 1 {
1251
+ $start: str.index($mixin-str, '(') + 1;
1252
+ $end: str.length($mixin-str) - 1;
1253
+ $value: str.slice($mixin-str, $start, $end);
1254
+ @include container-type(str.unquote($value));
1255
+ } @else if str.index($mixin-str, 'container-name(') == 1 {
1256
+ $start: str.index($mixin-str, '(') + 1;
1257
+ $end: str.length($mixin-str) - 1;
1258
+ $value: str.slice($mixin-str, $start, $end);
1259
+ @include container-name(str.unquote($value));
1026
1260
  } @else if str.index($mixin-str, 'media-up(') == 1 {
1027
1261
  $start: str.index($mixin-str, '(') + 1;
1028
1262
  $end: str.length($mixin-str) - 1;
@@ -1248,11 +1482,31 @@
1248
1482
  $end: str.length($mixin-str) - 1;
1249
1483
  $value: str.slice($mixin-str, $start, $end);
1250
1484
  @include gap-y(str.unquote($value));
1485
+ } @else if str.index($mixin-str, 'duration(') == 1 {
1486
+ $start: str.index($mixin-str, '(') + 1;
1487
+ $end: str.length($mixin-str) - 1;
1488
+ $value: str.slice($mixin-str, $start, $end);
1489
+ @include duration(str.unquote($value));
1490
+ } @else if str.index($mixin-str, 'delay(') == 1 {
1491
+ $start: str.index($mixin-str, '(') + 1;
1492
+ $end: str.length($mixin-str) - 1;
1493
+ $value: str.slice($mixin-str, $start, $end);
1494
+ @include delay(str.unquote($value));
1251
1495
  } @else if str.index($mixin-str, 'text-size(') == 1 {
1252
1496
  $start: str.index($mixin-str, '(') + 1;
1253
1497
  $end: str.length($mixin-str) - 1;
1254
1498
  $value: str.slice($mixin-str, $start, $end);
1255
1499
  @include text-size(str.unquote($value));
1500
+ } @else if str.index($mixin-str, 'truncate-lines(') == 1 {
1501
+ $start: str.index($mixin-str, '(') + 1;
1502
+ $end: str.length($mixin-str) - 1;
1503
+ $value: str.slice($mixin-str, $start, $end);
1504
+ @include truncate-lines(str.unquote($value));
1505
+ } @else if str.index($mixin-str, 'responsive-typography(') == 1 {
1506
+ $start: str.index($mixin-str, '(') + 1;
1507
+ $end: str.length($mixin-str) - 1;
1508
+ $value: str.slice($mixin-str, $start, $end);
1509
+ @include responsive-typography(str.unquote($value));
1256
1510
  } @else {
1257
1511
  @warn "Mixin '#{$mixin}' is not defined.";
1258
1512
  }
@@ -0,0 +1,20 @@
1
+ @use '../utilities/variables' as VAR;
2
+
3
+ @mixin align-baseline { vertical-align: baseline; }
4
+ @mixin align-top { vertical-align: top; }
5
+ @mixin align-middle { vertical-align: middle; }
6
+ @mixin align-bottom { vertical-align: bottom; }
7
+
8
+ .align-baseline { @include align-baseline; }
9
+ .align-top { @include align-top; }
10
+ .align-middle { @include align-middle; }
11
+ .align-bottom { @include align-bottom; }
12
+
13
+ @each $breakpoint, $width in VAR.$breakpoints {
14
+ @media (min-width: #{$width}) {
15
+ .align-baseline\@#{$breakpoint} { @include align-baseline; }
16
+ .align-top\@#{$breakpoint} { @include align-top; }
17
+ .align-middle\@#{$breakpoint} { @include align-middle; }
18
+ .align-bottom\@#{$breakpoint} { @include align-bottom; }
19
+ }
20
+ }
@@ -3,6 +3,22 @@
3
3
  @use './variables' as *;
4
4
  @use './functions' as FN;
5
5
 
6
+ /**
7
+ * Container Query Mixins
8
+ *
9
+ * Usage:
10
+ * .container {
11
+ * container-type: inline-size;
12
+ * container-name: sidebar;
13
+ * }
14
+ *
15
+ * .item {
16
+ * @include container-up('md', 'sidebar') {
17
+ * // Styles for 'md' and up within 'sidebar' container
18
+ * }
19
+ * }
20
+ */
21
+
6
22
  /// Container Query: Up
7
23
  @mixin container-up($breakpoint, $containerName: null) {
8
24
  $bp-val: FN.get-breakpoint-value($breakpoint);
@@ -55,4 +71,28 @@
55
71
  @container #{$containerName} (min-width: $size) {
56
72
  @content;
57
73
  }
74
+ }
75
+
76
+ @mixin container-type($type: inline-size) {
77
+ container-type: $type;
78
+ }
79
+
80
+ @mixin container-name($name) {
81
+ container-name: $name;
82
+ }
83
+
84
+
85
+ // Utility classes
86
+ .container-inline-size {
87
+ container-type: inline-size;
88
+ }
89
+
90
+ .container-size {
91
+ container-type: size;
92
+ }
93
+
94
+ @each $name in ('main', 'sidebar', 'card', 'section') {
95
+ .container-#{$name} {
96
+ container-name: $name;
97
+ }
58
98
  }
@@ -4,6 +4,19 @@
4
4
  @use './variables' as *;
5
5
  @use './functions' as FN;
6
6
 
7
+ /**
8
+ * Display Utilities
9
+ *
10
+ * Classes:
11
+ * - .hide, .show: Control element visibility
12
+ * - .block, .inline, .inline-block: Basic display modes
13
+ * - .d-tbl, .d-tbl-row, .d-tbl-cell: Table display modes
14
+ * - .overflow-hidden: Control overflow behavior
15
+ *
16
+ * All utilities support responsive variants with @breakpoint suffix:
17
+ * - .hide@md, .block@lg, etc.
18
+ */
19
+
7
20
  // Display Mixins
8
21
 
9
22
  /**
@@ -47,8 +60,22 @@
47
60
  @mixin d-tbl-cell { display: table-cell; }
48
61
 
49
62
 
63
+ @mixin visible { visibility: visible; }
64
+ @mixin invisible { visibility: hidden; }
65
+ @mixin collapse { visibility: collapse; }
66
+ @mixin contents { display: contents; }
50
67
 
51
68
  @mixin overflow-hidden { overflow: hidden; }
69
+ @mixin overflow-visible { overflow: visible; }
70
+ @mixin overflow-scroll { overflow: scroll; }
71
+ @mixin overflow-auto { overflow: auto; }
72
+ @mixin overflow-x-hidden { overflow-x: hidden; }
73
+ @mixin overflow-y-hidden { overflow-y: hidden; }
74
+ @mixin overflow-x-scroll { overflow-x: scroll; }
75
+ @mixin overflow-y-scroll { overflow-y: scroll; }
76
+ @mixin overflow-x-auto { overflow-x: auto; }
77
+ @mixin overflow-y-auto { overflow-y: auto; }
78
+
52
79
 
53
80
  // Base Classes
54
81
  .hide { @include hide; }
@@ -56,7 +83,21 @@
56
83
  .block { @include block; }
57
84
  .inline { @include inline; }
58
85
  .inline-block { @include inline-block; }
86
+ .visible { @include visible; }
87
+ .invisible { @include invisible; }
88
+ .collapse { @include collapse; }
89
+ .contents { @include contents; }
59
90
  .overflow-hidden { @include overflow-hidden; }
91
+ .overflow-visible { @include overflow-visible; }
92
+ .overflow-scroll { @include overflow-scroll; }
93
+ .overflow-auto { @include overflow-auto; }
94
+ .overflow-x-hidden { @include overflow-x-hidden; }
95
+ .overflow-y-hidden { @include overflow-y-hidden; }
96
+ .overflow-x-scroll { @include overflow-x-scroll; }
97
+ .overflow-y-scroll { @include overflow-y-scroll; }
98
+ .overflow-x-auto { @include overflow-x-auto; }
99
+ .overflow-y-auto { @include overflow-y-auto; }
100
+
60
101
 
61
102
  .d {
62
103
  &-tbl { @include d-tbl; }
@@ -72,8 +113,21 @@
72
113
  .block\@#{$breakpoint} { @include block; }
73
114
  .inline\@#{$breakpoint} { @include inline; }
74
115
  .inline-block\@#{$breakpoint} { @include inline-block; }
116
+ .visible\@#{$breakpoint} { @include visible; }
117
+ .invisible\@#{$breakpoint} { @include invisible; }
118
+ .collapse\@#{$breakpoint} { @include collapse; }
119
+ .contents\@#{$breakpoint} { @include contents; }
75
120
  .overflow-hidden\@#{$breakpoint} { @include overflow-hidden; }
76
-
121
+ .overflow-visible\@#{$breakpoint} { @include overflow-visible; }
122
+ .overflow-scroll\@#{$breakpoint} { @include overflow-scroll; }
123
+ .overflow-auto\@#{$breakpoint} { @include overflow-auto; }
124
+ .overflow-x-hidden\@#{$breakpoint} { @include overflow-x-hidden; }
125
+ .overflow-y-hidden\@#{$breakpoint} { @include overflow-y-hidden; }
126
+ .overflow-x-scroll\@#{$breakpoint} { @include overflow-x-scroll; }
127
+ .overflow-y-scroll\@#{$breakpoint} { @include overflow-y-scroll; }
128
+ .overflow-x-auto\@#{$breakpoint} { @include overflow-x-auto; }
129
+ .overflow-y-auto\@#{$breakpoint} { @include overflow-y-auto; }
130
+
77
131
  .d {
78
132
  &-tbl\@#{$breakpoint} { @include d-tbl; }
79
133
  &-tbl-row\@#{$breakpoint} { @include d-tbl-row; }
@@ -13,21 +13,22 @@
13
13
  * @param {string} $type - The media query type (e.g. 'lg', 'md').
14
14
  */
15
15
  @mixin media-up($breakpoint) {
16
- @media screen and (min-width: #{FN.get-breakpoint-value($breakpoint)}) {
16
+ @media screen and (min-width: FN.get-breakpoint-value($breakpoint)) {
17
17
  @content;
18
18
  }
19
19
  }
20
20
 
21
21
  @mixin media-down($breakpoint) {
22
- @media screen and (max-width: (#{FN.get-breakpoint-value($breakpoint)} - 0.02px)) {
22
+ $val: FN.get-breakpoint-value($breakpoint) - 0.02px;
23
+ @media screen and (max-width: #{$val}) {
23
24
  @content;
24
25
  }
25
26
  }
26
27
 
27
28
  @mixin media-between($lower, $upper) {
28
29
  $lower-val: FN.get-breakpoint-value($lower);
29
- $upper-val: FN.get-breakpoint-value($upper);
30
- @media screen and (min-width: #{$lower-val}) and (max-width: (#{ $upper-val } - 0.02px)) {
30
+ $upper-val: FN.get-breakpoint-value($upper) - 0.02px;
31
+ @media screen and (min-width: #{$lower-val}) and (max-width: #{$upper-val}) {
31
32
  @content;
32
33
  }
33
34
  }
@@ -38,13 +39,13 @@
38
39
  $next-breakpoint: null;
39
40
 
40
41
  @each $name, $width in $breakpoints {
41
- @if $width > $min and (not $next-breakpoint or $width < $next-breakpoint) {
42
- $next-breakpoint: #{$width};
42
+ @if $width > $min and (meta.type-of($next-breakpoint) == 'null' or $width < $next-breakpoint) {
43
+ $next-breakpoint: $width;
43
44
  }
44
45
  }
45
46
 
46
47
  @if $next-breakpoint {
47
- @media (min-width: #{$min}) and (max-width: (#{ $next-breakpoint } - 1)) {
48
+ @media (min-width: #{$min}) and (max-width: #{$next-breakpoint - 0.02px}) {
48
49
  @content;
49
50
  }
50
51
  } @else {
@@ -106,7 +107,7 @@
106
107
  @supports (height: 100dvh) {
107
108
  height: 100dvh;
108
109
  }
109
-
110
+
110
111
  @supports not (height: 100dvh) {
111
112
  height: 100vh;
112
113
  }
@@ -128,4 +129,4 @@
128
129
  @media (forced-colors: active) {
129
130
  @content;
130
131
  }
131
- }
132
+ }