@volverjs/style 0.1.2-beta.3 → 0.1.2-beta.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +40 -40
  2. package/dist/components/vv-accordion.css +1 -0
  3. package/dist/components/vv-alert.css +1 -0
  4. package/dist/components/vv-avatar.css +1 -0
  5. package/dist/components/vv-badge.css +1 -1
  6. package/dist/components/vv-breadcrumb.css +1 -0
  7. package/dist/components/vv-button-group.css +1 -1
  8. package/dist/components/vv-button.css +1 -1
  9. package/dist/components/vv-card.css +1 -1
  10. package/dist/components/vv-checkbox-group.css +1 -0
  11. package/dist/components/vv-checkbox.css +1 -0
  12. package/dist/components/vv-dialog.css +1 -1
  13. package/dist/components/vv-dropdown.css +1 -1
  14. package/dist/components/vv-input-text.css +1 -1
  15. package/dist/components/vv-nav.css +1 -0
  16. package/dist/components/vv-progress.css +1 -1
  17. package/dist/components/vv-radio-group.css +1 -0
  18. package/dist/components/vv-radio.css +1 -0
  19. package/dist/components/vv-select.css +1 -1
  20. package/dist/components/vv-skeleton.css +1 -0
  21. package/dist/components/vv-tab.css +1 -0
  22. package/dist/components/vv-table.css +1 -1
  23. package/dist/components/vv-text.css +1 -1
  24. package/dist/components/vv-textarea.css +1 -1
  25. package/dist/components/vv-toast.css +1 -0
  26. package/dist/components/vv-tooltip.css +1 -0
  27. package/dist/components.css +1 -1
  28. package/dist/export.css +1 -1
  29. package/dist/props/background.css +1 -1
  30. package/dist/props/colors.css +1 -1
  31. package/dist/props/filters.css +1 -1
  32. package/dist/props/input.css +1 -1
  33. package/dist/props/layout.css +1 -1
  34. package/dist/props/spacing.css +1 -1
  35. package/dist/props/transitions.css +1 -0
  36. package/dist/props.css +1 -1
  37. package/dist/reset.css +1 -1
  38. package/dist/themes/dark/components.css +1 -1
  39. package/dist/themes/dark/props.css +1 -1
  40. package/dist/themes/dark/volver.css +1 -0
  41. package/dist/utilities/backgrounds.css +1 -1
  42. package/dist/utilities/borders.css +1 -1
  43. package/dist/utilities/colors.css +1 -1
  44. package/dist/utilities/effects.css +1 -1
  45. package/dist/utilities/filters.css +1 -1
  46. package/dist/utilities/flexbox.css +1 -1
  47. package/dist/utilities/grid.css +1 -1
  48. package/dist/utilities/interactivity.css +1 -0
  49. package/dist/utilities/layout.css +1 -1
  50. package/dist/utilities/sizing.css +1 -1
  51. package/dist/utilities/spacing.css +1 -1
  52. package/dist/utilities/transitions.css +1 -0
  53. package/dist/utilities/typography.css +1 -1
  54. package/dist/utilities.css +1 -1
  55. package/dist/volver.css +1 -0
  56. package/package.json +163 -118
  57. package/src/_config.scss +19 -11
  58. package/src/_context.scss +3 -3
  59. package/src/_preflight.scss +412 -0
  60. package/src/components/index.scss +25 -17
  61. package/src/components/vv-accordion.scss +13 -0
  62. package/src/components/vv-alert.scss +13 -0
  63. package/src/components/vv-avatar.scss +13 -0
  64. package/src/components/vv-badge.scss +3 -2
  65. package/src/components/vv-breadcrumb.scss +13 -0
  66. package/src/components/vv-button-group.scss +15 -18
  67. package/src/components/vv-button.scss +5 -8
  68. package/src/components/vv-card.scss +3 -2
  69. package/src/components/vv-checkbox-group.scss +13 -0
  70. package/src/components/{vv-input-checkbox.scss → vv-checkbox.scss} +7 -6
  71. package/src/components/vv-dialog.scss +3 -2
  72. package/src/components/vv-dropdown.scss +3 -2
  73. package/src/components/vv-input-text.scss +6 -5
  74. package/src/components/vv-nav.scss +13 -0
  75. package/src/components/vv-progress.scss +3 -2
  76. package/src/components/vv-radio-group.scss +13 -0
  77. package/src/components/{vv-input-radio.scss → vv-radio.scss} +6 -5
  78. package/src/components/vv-select.scss +6 -5
  79. package/src/components/vv-skeleton.scss +14 -0
  80. package/src/components/vv-tab.scss +13 -0
  81. package/src/components/vv-table.scss +3 -2
  82. package/src/components/vv-text.scss +3 -2
  83. package/src/components/vv-textarea.scss +6 -5
  84. package/src/components/vv-toast.scss +13 -0
  85. package/src/components/vv-tooltip.scss +33 -0
  86. package/src/export.scss +73 -12
  87. package/src/props/background.scss +1 -1
  88. package/src/props/borders.scss +1 -1
  89. package/src/props/colors.scss +1 -1
  90. package/src/props/effects.scss +1 -1
  91. package/src/props/filters.scss +2 -1
  92. package/src/props/index.scss +12 -12
  93. package/src/props/input.scss +1 -1
  94. package/src/props/layout.scss +6 -1
  95. package/src/props/media.scss +1 -1
  96. package/src/props/sizing.scss +1 -1
  97. package/src/props/spacing.scss +2 -2
  98. package/src/props/{animation.scss → transitions.scss} +53 -2
  99. package/src/props/typography.scss +2 -2
  100. package/src/reset.scss +1 -1
  101. package/src/settings/_background.scss +6 -1
  102. package/src/settings/_breakpoints.scss +2 -0
  103. package/src/settings/_colors.scss +16 -2
  104. package/src/settings/_effects.scss +47 -2
  105. package/src/settings/_filters.scss +9 -0
  106. package/src/settings/_index.scss +40 -31
  107. package/src/settings/_input.scss +8 -6
  108. package/src/settings/_interactivity.scss +39 -0
  109. package/src/settings/_layout.scss +18 -10
  110. package/src/settings/_spacing.scss +1 -0
  111. package/src/settings/_transitions.scss +44 -0
  112. package/src/settings/components/_vv-accordion.scss +134 -0
  113. package/src/settings/components/_vv-alert.scss +161 -0
  114. package/src/settings/components/_vv-avatar.scss +55 -0
  115. package/src/settings/components/_vv-badge.scss +59 -18
  116. package/src/settings/components/_vv-breadcrumb.scss +95 -0
  117. package/src/settings/components/_vv-button-group.scss +4 -0
  118. package/src/settings/components/_vv-button.scss +120 -15
  119. package/src/settings/components/_vv-card.scss +4 -3
  120. package/src/settings/components/{_vv-input-checkbox-group.scss → _vv-checkbox-group.scss} +2 -1
  121. package/src/settings/components/{_vv-input-checkbox.scss → _vv-checkbox.scss} +46 -10
  122. package/src/settings/components/_vv-dialog.scss +71 -89
  123. package/src/settings/components/_vv-input-text.scss +83 -37
  124. package/src/settings/components/_vv-nav.scss +142 -0
  125. package/src/settings/components/_vv-progress.scss +1 -1
  126. package/src/settings/components/_vv-radio-group.scss +3 -0
  127. package/src/settings/components/{_vv-input-radio.scss → _vv-radio.scss} +34 -4
  128. package/src/settings/components/_vv-select.scss +77 -12
  129. package/src/settings/components/_vv-skeleton.scss +22 -0
  130. package/src/settings/components/_vv-tab.scss +16 -0
  131. package/src/settings/components/_vv-table.scss +22 -3
  132. package/src/settings/components/_vv-text.scss +20 -1
  133. package/src/settings/components/_vv-textarea.scss +49 -24
  134. package/src/settings/components/_vv-toast.scss +259 -0
  135. package/src/settings/components/_vv-tooltip.scss +74 -0
  136. package/src/themes/dark/_context.scss +7 -4
  137. package/src/themes/dark/components/_vv-button.scss +3 -5
  138. package/src/themes/dark/components/index.scss +1 -2
  139. package/src/themes/dark/props/_background.scss +2 -2
  140. package/src/themes/dark/props/_colors.scss +2 -2
  141. package/src/themes/dark/props/_input.scss +15 -0
  142. package/src/themes/dark/props/index.scss +3 -2
  143. package/src/themes/dark/settings/_background.scss +9 -4
  144. package/src/themes/dark/settings/_colors.scss +25 -10
  145. package/src/themes/dark/settings/_index.scss +4 -4
  146. package/src/themes/dark/settings/_input.scss +8 -0
  147. package/src/themes/dark/settings/components/_vv-button.scss +10 -10
  148. package/src/themes/dark/volver.scss +5 -0
  149. package/src/tools/_breakpoints.scss +7 -7
  150. package/src/tools/_index.scss +3 -3
  151. package/src/tools/_mixins.scss +200 -37
  152. package/src/utilities/backgrounds.scss +15 -8
  153. package/src/utilities/borders.scss +22 -9
  154. package/src/utilities/colors.scss +9 -5
  155. package/src/utilities/effects.scss +23 -5
  156. package/src/utilities/filters.scss +15 -4
  157. package/src/utilities/flexbox.scss +26 -8
  158. package/src/utilities/grid.scss +25 -9
  159. package/src/utilities/index.scss +13 -12
  160. package/src/utilities/interactivity.scss +10 -0
  161. package/src/utilities/layout.scss +36 -23
  162. package/src/utilities/sizing.scss +23 -26
  163. package/src/utilities/spacing.scss +1 -1
  164. package/src/utilities/transitions.scss +47 -0
  165. package/src/utilities/typography.scss +34 -17
  166. package/src/volver.scss +14 -0
  167. package/dist/components/vv-collapse.css +0 -1
  168. package/dist/components/vv-input-checkbox-group.css +0 -1
  169. package/dist/components/vv-input-checkbox.css +0 -1
  170. package/dist/components/vv-input-radio-group.css +0 -1
  171. package/dist/components/vv-input-radio.css +0 -1
  172. package/dist/preflight.css +0 -1
  173. package/dist/props/animation.css +0 -1
  174. package/dist/style.css +0 -1
  175. package/dist/themes/dark/style.css +0 -1
  176. package/dist/utilities/animation.css +0 -1
  177. package/src/assets/24consulting.svg +0 -63
  178. package/src/assets/volverjs.svg +0 -15
  179. package/src/components/vv-collapse.scss +0 -12
  180. package/src/components/vv-input-checkbox-group.scss +0 -12
  181. package/src/components/vv-input-radio-group.scss +0 -12
  182. package/src/preflight.scss +0 -281
  183. package/src/settings/_animation.scss +0 -9
  184. package/src/settings/components/_vv-collapse.scss +0 -111
  185. package/src/settings/components/_vv-input-radio-group.scss +0 -1
  186. package/src/style.scss +0 -14
  187. package/src/themes/dark/components/_vv-input-checkbox.scss +0 -24
  188. package/src/themes/dark/settings/components/_vv-input-checkbox.scss +0 -26
  189. package/src/themes/dark/style.scss +0 -5
  190. package/src/utilities/animation.scss +0 -8
@@ -3,6 +3,8 @@
3
3
  @use 'sass:string';
4
4
  @use 'sass:meta';
5
5
  @use 'sass:selector';
6
+ @use 'functions' as *;
7
+ @use 'breakpoints' as *;
6
8
 
7
9
  // Check ascending order
8
10
  // Used to ensure the breakpoints are ordered ascending.
@@ -77,7 +79,7 @@
77
79
  xxs: 0,
78
80
  ),
79
81
  $prefix: '',
80
- $zero-specificity: $zero-specificity-for-utilities
82
+ $zero-specificity: false
81
83
  ) {
82
84
  @if (type-of($map) == 'map' or type-of($map) == 'list') and $attribute != ''
83
85
  {
@@ -91,12 +93,14 @@
91
93
  }
92
94
  @if type-of($value) == 'map' and $deep {
93
95
  @include spread-map-into-utilities(
94
- $value,
95
- $class,
96
- $attribute,
97
- $prop,
98
- $key,
99
- $prefix
96
+ $map: $value,
97
+ $class: $class,
98
+ $attribute: $attribute,
99
+ $prop: $prop,
100
+ $name: $key,
101
+ $bps: $bps,
102
+ $prefix: $prefix,
103
+ $zero-specificity: $zero-specificity
100
104
  );
101
105
  } @else {
102
106
  $default: null;
@@ -133,8 +137,12 @@
133
137
  $default: $key;
134
138
  }
135
139
 
140
+ @if type-of($default) == 'string' {
141
+ $default: string.unquote($default);
142
+ }
143
+
136
144
  %#{$prefix}#{$class-name} {
137
- @include media-breakpoint-up($breakpoint) {
145
+ @include media-breakpoint-up($breakpoint, $bps) {
138
146
  @if type-of($attribute) != 'list' {
139
147
  $attribute: ($attribute);
140
148
  }
@@ -170,7 +178,10 @@
170
178
  $key: 'modifier',
171
179
  $block: null,
172
180
  $props: true,
173
- $zero-specificity: true
181
+ $zero-specificity: true,
182
+ $bps: (
183
+ xxs: 0,
184
+ )
174
185
  ) {
175
186
  @if not $block {
176
187
  $block: &;
@@ -255,7 +266,10 @@
255
266
  $block: null,
256
267
  $modifier: null,
257
268
  $props: true,
258
- $zero-specificity: true
269
+ $zero-specificity: true,
270
+ $bps: (
271
+ xxs: 0,
272
+ )
259
273
  ) {
260
274
  @if not $block {
261
275
  $block: &;
@@ -360,7 +374,10 @@
360
374
  $modifier: '',
361
375
  $alias: null,
362
376
  $props: true,
363
- $zero-specificity: true
377
+ $zero-specificity: true,
378
+ $bps: (
379
+ xxs: 0,
380
+ )
364
381
  ) {
365
382
  @if not $original {
366
383
  $original: $map;
@@ -396,7 +413,9 @@
396
413
  open,
397
414
  close,
398
415
  determinate,
399
- indeterminate
416
+ indeterminate,
417
+ pressed,
418
+ current
400
419
  ),
401
420
  $state
402
421
  )
@@ -479,16 +498,30 @@
479
498
  '#{$modifier}#{$alias}[#{$state}]'
480
499
  );
481
500
  }
501
+
502
+ @if $state == 'disabled' {
503
+ $selectors: list.join(
504
+ $selectors,
505
+ '#{$modifier}#{$block-item}[aria-disabled="true"]'
506
+ );
507
+
508
+ @if $alias {
509
+ $selectors: list.join(
510
+ $selectors,
511
+ '#{$modifier}#{$alias}[aria-disabled="true"]'
512
+ );
513
+ }
514
+ }
482
515
  } @else if $state == 'focus-visible' {
483
516
  $selectors: list.join(
484
517
  $selectors,
485
- '#{$modifier}#{$block-item}:not(:active):not([disabled]):not([tabindex="-1"]):#{$state}'
518
+ '#{$modifier}#{$block-item}:not(:active):not([disabled]):not([tabindex="-1"]:not([aria-disabled="true"])):#{$state}'
486
519
  );
487
520
 
488
521
  @if $alias {
489
522
  $selectors: list.join(
490
523
  $selectors,
491
- '#{$modifier}#{$alias}:not(:active):not([disabled]):not([tabindex="-1"]):#{$state}'
524
+ '#{$modifier}#{$alias}:not(:active):not([disabled]):not([tabindex="-1"]:not([aria-disabled="true"])):#{$state}'
492
525
  );
493
526
  }
494
527
  } @else if $state == 'checked' {
@@ -503,7 +536,19 @@
503
536
  '#{$modifier}#{$alias}:#{$state}'
504
537
  );
505
538
  }
506
- } @else {
539
+ } @else if $state == 'pressed' {
540
+ $selectors: list.join(
541
+ $selectors,
542
+ '#{$modifier}#{$block-item}[aria-pressed="true"]'
543
+ );
544
+
545
+ @if $alias {
546
+ $selectors: list.join(
547
+ $selectors,
548
+ '#{$modifier}#{$alias}[aria-pressed="true"]'
549
+ );
550
+ }
551
+ } @else if $state != 'current' {
507
552
  $selectors: list.join(
508
553
  $selectors,
509
554
  '#{$modifier}#{$block-item}:not([disabled]):#{$state}'
@@ -533,6 +578,7 @@
533
578
  $props: $props
534
579
  );
535
580
  }
581
+
536
582
  @include wrap-with-where(
537
583
  $selector: $selector,
538
584
  $enabled: $zero-specificity
@@ -565,7 +611,9 @@
565
611
  $key: 'breakpoint',
566
612
  $block: null,
567
613
  $props: true,
568
- $bps: $breakpoints,
614
+ $bps: (
615
+ xxs: 0,
616
+ ),
569
617
  $zero-specificity: true
570
618
  ) {
571
619
  @if not $block {
@@ -605,7 +653,9 @@
605
653
  outer-spin-button,
606
654
  progress-bar,
607
655
  progress-value,
608
- progress-inner-element
656
+ progress-inner-element,
657
+ datetime-edit-fields-wrapper,
658
+ datetime-edit-day-field
609
659
  ),
610
660
  $pseudo-element
611
661
  )
@@ -632,7 +682,10 @@
632
682
  $postfix: '',
633
683
  $deep: false,
634
684
  $ignore: (),
635
- $props: true
685
+ $props: true,
686
+ $bps: (
687
+ xxs: 0,
688
+ )
636
689
  ) {
637
690
  @if type-of($map) == 'map' and $prefix != '' {
638
691
  @each $key, $value in $map {
@@ -664,12 +717,17 @@
664
717
  progress-bar,
665
718
  progress-value,
666
719
  inner-element,
720
+ marker,
721
+ datetime-edit-fields-wrapper,
722
+ datetime-edit-day-field,
667
723
  -webkit-progress-bar,
668
724
  -webkit-progress-value,
669
725
  -webkit-inner-element,
670
726
  -moz-progress-bar,
671
727
  -moz-progress-value,
672
- -moz-inner-element
728
+ -moz-inner-element,
729
+ -webkit-details-marker,
730
+ -webkit-scrollbar
673
731
  ),
674
732
  $pseudo-element
675
733
  )
@@ -684,11 +742,12 @@
684
742
  $pseudo-element
685
743
  ) {
686
744
  @if not $original {
687
- @if not
745
+ @if not(
688
746
  map.has-key(
689
747
  $pseudo-map,
690
748
  'content'
691
749
  )
750
+ )
692
751
  {
693
752
  content: '';
694
753
  }
@@ -763,7 +822,7 @@
763
822
  );
764
823
  }
765
824
 
766
- #{$key}: #{$value};
825
+ #{$key}: $value;
767
826
  }
768
827
  }
769
828
  }
@@ -773,18 +832,19 @@
773
832
 
774
833
  // Wrap selector with :where()
775
834
  @mixin wrap-with-where($selector, $enabled: true) {
776
- @if type-of($selector) == 'map' {
835
+ @if type-of($selector) == 'map' or type-of($selector) == 'list' {
777
836
  $merged: '';
778
837
  @each $element in $selector {
779
838
  @if $enabled {
780
- $merged: '#{$merged}, :where(#{$element})';
839
+ $merged: '#{$merged}, :where(#{unquote($element)})';
781
840
  } @else {
782
- $merged: '#{$merged}, #{$element}';
841
+ $merged: '#{$merged}, #{unquote($element)}';
783
842
  }
784
843
  }
785
844
  } @else if $enabled {
786
- $selector: ':where(#{$selector})';
845
+ $selector: ':where(#{unquote($selector)})';
787
846
  }
847
+
788
848
  #{$selector} {
789
849
  @content;
790
850
  }
@@ -798,25 +858,31 @@
798
858
  $modifiers-key: 'modifier',
799
859
  $states-key: 'state',
800
860
  $breakpoints-key: 'breakpoint',
861
+ $transitions-key: 'transition',
801
862
  $props: true,
802
863
  $zero-specificity: true,
864
+ $custom-props: false,
803
865
  $custom-block: false,
804
866
  $custom-elements: false,
805
867
  $custom-modifiers: false,
806
868
  $custom-states: false,
807
- $custom-breakpoints: false
869
+ $custom-breakpoints: false,
870
+ $custom-transitions: false,
871
+ $bps: (xxs: 0)
808
872
  ) {
809
873
  @if type-of($map) == 'map' and $block != '' {
810
874
  $selector: '.' + $block;
811
875
 
812
876
  // custom props
813
- @if $props {
814
- :where(:host, :root, .theme) {
815
- @include spread-map-into-props(
816
- $map: $map,
817
- $prefix: $block,
818
- $deep: true
819
- );
877
+ @if not $custom-props {
878
+ @if $props {
879
+ :where(:host, :root, .theme) {
880
+ @include spread-map-into-props(
881
+ $map: $map,
882
+ $prefix: $block,
883
+ $deep: true
884
+ );
885
+ }
820
886
  }
821
887
  }
822
888
 
@@ -852,7 +918,8 @@
852
918
  $key: $elements-key,
853
919
  $block: $selector,
854
920
  $props: $props,
855
- $zero-specificity: $zero-specificity
921
+ $zero-specificity: $zero-specificity,
922
+ $bps: $bps
856
923
  );
857
924
  }
858
925
  }
@@ -866,7 +933,8 @@
866
933
  $key: $states-key,
867
934
  $block: $selector,
868
935
  $props: $props,
869
- $zero-specificity: $zero-specificity
936
+ $zero-specificity: $zero-specificity,
937
+ $bps: $bps
870
938
  );
871
939
  }
872
940
  }
@@ -880,7 +948,23 @@
880
948
  $key: $modifiers-key,
881
949
  $block: $selector,
882
950
  $props: $props,
883
- $zero-specificity: $zero-specificity
951
+ $zero-specificity: $zero-specificity,
952
+ $bps: $bps
953
+ );
954
+ }
955
+ }
956
+
957
+ // transition
958
+ @if not $custom-transitions {
959
+ @if map.has-key($map, $transitions-key) {
960
+ @include spread-map-into-transitions(
961
+ $map: $map,
962
+ $prefix: $block,
963
+ $key: $transitions-key,
964
+ $block: $selector,
965
+ $props: $props,
966
+ $zero-specificity: $zero-specificity,
967
+ $bps: $bps
884
968
  );
885
969
  }
886
970
  }
@@ -894,9 +978,88 @@
894
978
  $key: $breakpoints-key,
895
979
  $block: $selector,
896
980
  $props: $props,
897
- $zero-specificity: $zero-specificity
981
+ $zero-specificity: $zero-specificity,
982
+ $bps: $bps
898
983
  );
899
984
  }
900
985
  }
901
986
  }
902
987
  }
988
+
989
+ // Transform a map into a list of transitions
990
+ @mixin spread-map-into-transitions(
991
+ $map: (),
992
+ $prefix: '',
993
+ $key: 'transition',
994
+ $block: null,
995
+ $props: true,
996
+ $zero-specificity: true,
997
+ $bps: (
998
+ xxs: 0,
999
+ )
1000
+ ) {
1001
+ @if not $block {
1002
+ $block: &;
1003
+ }
1004
+ @if type-of(map.get($map, $key)) == 'map' {
1005
+ @each $transition, $states in map.get($map, $key) {
1006
+ @each $state, $value in $states {
1007
+ @if $state in [ 'enter-from', 'enter-active', 'enter-to',
1008
+ 'leave-from', 'leave-active', 'leave-to', 'active',
1009
+ 'inert' ] and type-of($value) == 'map'
1010
+ {
1011
+ $selector: '.#{$transition}';
1012
+
1013
+ @if $prefix != '' {
1014
+ $selector: '.#{$prefix}--#{$transition}';
1015
+ }
1016
+
1017
+ @if $state == 'active' {
1018
+ $selector: (
1019
+ '#{$selector}-enter-active',
1020
+ '#{$selector}-leave-active'
1021
+ );
1022
+ } @else if $state == 'inert' {
1023
+ $selector: (
1024
+ '#{$selector}-enter-from',
1025
+ '#{$selector}-leave-to'
1026
+ );
1027
+ } @else {
1028
+ $selector: '#{$selector}-#{$state}';
1029
+ }
1030
+
1031
+ // map props and attributes
1032
+ @include wrap-with-where(
1033
+ $selector,
1034
+ $enabled: $zero-specificity
1035
+ ) {
1036
+ @include spread-map-into-attrs(
1037
+ $map: $value,
1038
+ $prefix: $prefix,
1039
+ $variant: #{$key}-#{$transition}-#{$state},
1040
+ $deep: true,
1041
+ $ignore: (
1042
+ 'element',
1043
+ ),
1044
+ $props: $props
1045
+ );
1046
+ }
1047
+
1048
+ // map elements
1049
+ @if map.get($value, 'element') {
1050
+ @include spread-map-into-elements(
1051
+ $original: $map,
1052
+ $map: $value,
1053
+ $prefix: #{$prefix}-#{$key}-#{$transition}-#{$state},
1054
+ $key: 'element',
1055
+ $block: $block,
1056
+ $modifier: $selector,
1057
+ $props: $props,
1058
+ $zero-specificity: $zero-specificity
1059
+ );
1060
+ }
1061
+ }
1062
+ }
1063
+ }
1064
+ }
1065
+ }
@@ -1,50 +1,57 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  // background-attachment
4
4
  @include spread-map-into-utilities(
5
5
  $map: $background-attachment,
6
6
  $class: 'bg',
7
- $attribute: 'background-attachment'
7
+ $attribute: 'background-attachment',
8
+ $zero-specificity: $zero-specificity-for-utilities
8
9
  );
9
10
 
10
11
  // background-clip
11
12
  @include spread-map-into-utilities(
12
13
  $map: $background-clip,
13
14
  $class: 'bg-clip',
14
- $attribute: 'background-clip'
15
+ $attribute: 'background-clip',
16
+ $zero-specificity: $zero-specificity-for-utilities
15
17
  );
16
18
 
17
19
  // background-origin
18
20
  @include spread-map-into-utilities(
19
21
  $map: $background-origin,
20
22
  $class: 'bg-origin',
21
- $attribute: 'background-origin'
23
+ $attribute: 'background-origin',
24
+ $zero-specificity: $zero-specificity-for-utilities
22
25
  );
23
26
 
24
27
  // background-position
25
28
  @include spread-map-into-utilities(
26
29
  $map: $background-position,
27
30
  $class: 'bg',
28
- $attribute: 'background-position'
31
+ $attribute: 'background-position',
32
+ $zero-specificity: $zero-specificity-for-utilities
29
33
  );
30
34
 
31
35
  // background-repeat
32
36
  @include spread-map-into-utilities(
33
37
  $map: $background-repeat,
34
38
  $class: bg,
35
- $attribute: background-repeat
39
+ $attribute: background-repeat,
40
+ $zero-specificity: $zero-specificity-for-utilities
36
41
  );
37
42
 
38
43
  // background-size
39
44
  @include spread-map-into-utilities(
40
45
  $map: $background-size,
41
46
  $class: bg,
42
- $attribute: background-size
47
+ $attribute: background-size,
48
+ $zero-specificity: $zero-specificity-for-utilities
43
49
  );
44
50
 
45
51
  // background-image
46
52
  @include spread-map-into-utilities(
47
53
  $map: $background-image,
48
54
  $class: bg,
49
- $attribute: background-image
55
+ $attribute: background-image,
56
+ $zero-specificity: $zero-specificity-for-utilities
50
57
  );
@@ -1,12 +1,13 @@
1
1
  @use 'sass:map';
2
- @import '../context';
2
+ @use '../context' as *;
3
3
 
4
4
  // border-radius
5
5
  @include spread-map-into-utilities(
6
6
  $map: $border-radius,
7
7
  $class: rounded,
8
8
  $attribute: border-radius,
9
- $prop: rounded
9
+ $prop: rounded,
10
+ $zero-specificity: $zero-specificity-for-utilities
10
11
  );
11
12
 
12
13
  @each $x-key, $x-value in (t: top, b: bottom) {
@@ -17,7 +18,8 @@
17
18
  border- + $x-value + -left-radius,
18
19
  border- + $x-value + -right-radius,
19
20
  ),
20
- $prop: rounded
21
+ $prop: rounded,
22
+ $zero-specificity: $zero-specificity-for-utilities
21
23
  );
22
24
 
23
25
  @each $y-key, $y-value in (r: right, l: left) {
@@ -27,7 +29,8 @@
27
29
  $attribute: (
28
30
  border- + $x-value + '-' + $y-value + -radius,
29
31
  ),
30
- $prop: rounded
32
+ $prop: rounded,
33
+ $zero-specificity: $zero-specificity-for-utilities
31
34
  );
32
35
  }
33
36
  }
@@ -37,7 +40,9 @@
37
40
  $map: $border-width,
38
41
  $class: border,
39
42
  $attribute: border-width,
40
- $prop: border
43
+ $prop: border,
44
+ $bps: $breakpoints,
45
+ $zero-specificity: $zero-specificity-for-utilities
41
46
  );
42
47
 
43
48
  @include spread-map-into-utilities(
@@ -47,7 +52,9 @@
47
52
  border-right-width,
48
53
  border-left-width,
49
54
  ),
50
- $prop: border
55
+ $bps: $breakpoints,
56
+ $prop: border,
57
+ $zero-specificity: $zero-specificity-for-utilities
51
58
  );
52
59
 
53
60
  @include spread-map-into-utilities(
@@ -57,7 +64,9 @@
57
64
  border-top-width,
58
65
  border-bottom-width,
59
66
  ),
60
- $prop: border
67
+ $bps: $breakpoints,
68
+ $prop: border,
69
+ $zero-specificity: $zero-specificity-for-utilities
61
70
  );
62
71
 
63
72
  @each $key, $value in (t: top, r: right, b: bottom, l: left) {
@@ -67,7 +76,9 @@
67
76
  $attribute: (
68
77
  border- + $value + -width,
69
78
  ),
70
- $prop: border
79
+ $bps: $breakpoints,
80
+ $prop: border,
81
+ $zero-specificity: $zero-specificity-for-utilities
71
82
  );
72
83
  }
73
84
 
@@ -75,5 +86,7 @@
75
86
  @include spread-map-into-utilities(
76
87
  $map: $border-style,
77
88
  $class: border,
78
- $attribute: border-style
89
+ $attribute: border-style,
90
+ $bps: $breakpoints,
91
+ $zero-specificity: $zero-specificity-for-utilities
79
92
  );
@@ -1,11 +1,12 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  // background-color
4
4
  @include spread-map-into-utilities(
5
5
  $map: $colors,
6
6
  $class: bg,
7
7
  $attribute: background-color,
8
- $prop: color
8
+ $prop: color,
9
+ $zero-specificity: $zero-specificity-for-utilities
9
10
  );
10
11
 
11
12
  // color
@@ -13,7 +14,8 @@
13
14
  $map: $colors,
14
15
  $class: text,
15
16
  $attribute: color,
16
- $prop: color
17
+ $prop: color,
18
+ $zero-specificity: $zero-specificity-for-utilities
17
19
  );
18
20
 
19
21
  // text-decoration-color
@@ -21,7 +23,8 @@
21
23
  $map: $colors,
22
24
  $class: decoration,
23
25
  $attribute: text-decoration-color,
24
- $prop: color
26
+ $prop: color,
27
+ $zero-specificity: $zero-specificity-for-utilities
25
28
  );
26
29
 
27
30
  // border-color
@@ -29,5 +32,6 @@
29
32
  $map: $colors,
30
33
  $class: border,
31
34
  $attribute: border-color,
32
- $prop: color
35
+ $prop: color,
36
+ $zero-specificity: $zero-specificity-for-utilities
33
37
  );
@@ -1,15 +1,33 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  // box shadow
4
4
  @include spread-map-into-utilities(
5
5
  $map: $box-shadow,
6
6
  $class: shadow,
7
- $attribute: box-shadow
7
+ $attribute: box-shadow,
8
+ $zero-specificity: $zero-specificity-for-utilities
8
9
  );
9
10
 
10
- // blend mode
11
+ // opacity
11
12
  @include spread-map-into-utilities(
12
- $map: $blend-mode,
13
+ $map: $opacity,
14
+ $class: opacity,
15
+ $attribute: opacity,
16
+ $zero-specificity: $zero-specificity-for-utilities
17
+ );
18
+
19
+ // mix blend mode
20
+ @include spread-map-into-utilities(
21
+ $map: $mix-blend-mode,
13
22
  $class: mix-blend,
14
- $attribute: mix-blend-mode
23
+ $attribute: mix-blend-mode,
24
+ $zero-specificity: $zero-specificity-for-utilities
25
+ );
26
+
27
+ // background blend mode
28
+ @include spread-map-into-utilities(
29
+ $map: $background-blend-mode,
30
+ $class: bg-blend,
31
+ $attribute: background-blend-mode,
32
+ $zero-specificity: $zero-specificity-for-utilities
15
33
  );
@@ -1,22 +1,33 @@
1
- @import '../context';
1
+ @use '../context' as *;
2
2
 
3
3
  // blur
4
4
  @include spread-map-into-utilities(
5
5
  $map: $blur,
6
6
  $class: blur,
7
- $attribute: filter
7
+ $attribute: filter,
8
+ $zero-specificity: $zero-specificity-for-utilities
8
9
  );
9
10
 
10
11
  // brightness
11
12
  @include spread-map-into-utilities(
12
13
  $map: $brightness,
13
14
  $class: brightness,
14
- $attribute: filter
15
+ $attribute: filter,
16
+ $zero-specificity: $zero-specificity-for-utilities
17
+ );
18
+
19
+ // saturation
20
+ @include spread-map-into-utilities(
21
+ $map: $saturation,
22
+ $class: saturate,
23
+ $attribute: filter,
24
+ $zero-specificity: $zero-specificity-for-utilities
15
25
  );
16
26
 
17
27
  // backdrop blur
18
28
  @include spread-map-into-utilities(
19
29
  $map: $blur,
20
30
  $class: backdrop-blur,
21
- $attribute: backdrop-filter
31
+ $attribute: backdrop-filter,
32
+ $zero-specificity: $zero-specificity-for-utilities
22
33
  );