@graupl/graupl 1.0.0-beta.0 → 1.0.0-beta.2

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 (170) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/css/base/button.css +1 -1
  3. package/dist/css/base/button.css.map +1 -1
  4. package/dist/css/base/form.css +1 -1
  5. package/dist/css/base/form.css.map +1 -1
  6. package/dist/css/base/link.css +1 -1
  7. package/dist/css/base/link.css.map +1 -1
  8. package/dist/css/base/table.css +1 -1
  9. package/dist/css/base/table.css.map +1 -1
  10. package/dist/css/base.css +1 -1
  11. package/dist/css/base.css.map +1 -1
  12. package/dist/css/component/accordion.css +1 -1
  13. package/dist/css/component/accordion.css.map +1 -1
  14. package/dist/css/component/alert.css +1 -1
  15. package/dist/css/component/alert.css.map +1 -1
  16. package/dist/css/component/card.css +1 -1
  17. package/dist/css/component/card.css.map +1 -1
  18. package/dist/css/component/carousel.css +1 -1
  19. package/dist/css/component/carousel.css.map +1 -1
  20. package/dist/css/component/input-group.css +1 -1
  21. package/dist/css/component/input-group.css.map +1 -1
  22. package/dist/css/component/list.css +2 -0
  23. package/dist/css/component/list.css.map +1 -0
  24. package/dist/css/component/menu.css +1 -1
  25. package/dist/css/component/menu.css.map +1 -1
  26. package/dist/css/component/navigation.css +1 -1
  27. package/dist/css/component/navigation.css.map +1 -1
  28. package/dist/css/component.css +1 -1
  29. package/dist/css/component.css.map +1 -1
  30. package/dist/css/graupl.css +1 -1
  31. package/dist/css/graupl.css.map +1 -1
  32. package/dist/css/layout/columns.css.map +1 -1
  33. package/dist/css/layout/container.css.map +1 -1
  34. package/dist/css/layout/flex-columns.css.map +1 -1
  35. package/dist/css/layout.css +1 -1
  36. package/dist/css/layout.css.map +1 -1
  37. package/dist/css/normalize.css.map +1 -1
  38. package/dist/css/state/focus.css +1 -1
  39. package/dist/css/state/focus.css.map +1 -1
  40. package/dist/css/state.css +1 -1
  41. package/dist/css/state.css.map +1 -1
  42. package/dist/css/theme/color.css.map +1 -1
  43. package/dist/css/theme/typography.css.map +1 -1
  44. package/dist/css/theme.css.map +1 -1
  45. package/dist/css/utilities/alignment.css.map +1 -1
  46. package/dist/css/utilities/border.css +2 -0
  47. package/dist/css/utilities/border.css.map +1 -0
  48. package/dist/css/utilities/color.css +1 -1
  49. package/dist/css/utilities/color.css.map +1 -1
  50. package/dist/css/utilities/display.css +1 -1
  51. package/dist/css/utilities/display.css.map +1 -1
  52. package/dist/css/utilities/flex.css +1 -1
  53. package/dist/css/utilities/flex.css.map +1 -1
  54. package/dist/css/utilities/height.css +1 -1
  55. package/dist/css/utilities/height.css.map +1 -1
  56. package/dist/css/utilities/inset.css +1 -1
  57. package/dist/css/utilities/inset.css.map +1 -1
  58. package/dist/css/utilities/justification.css.map +1 -1
  59. package/dist/css/utilities/list.css.map +1 -1
  60. package/dist/css/utilities/order.css.map +1 -1
  61. package/dist/css/utilities/postion.css +1 -1
  62. package/dist/css/utilities/postion.css.map +1 -1
  63. package/dist/css/utilities/ratio.css +1 -1
  64. package/dist/css/utilities/ratio.css.map +1 -1
  65. package/dist/css/utilities/spacing.css +1 -1
  66. package/dist/css/utilities/spacing.css.map +1 -1
  67. package/dist/css/utilities/typography.css +1 -1
  68. package/dist/css/utilities/typography.css.map +1 -1
  69. package/dist/css/utilities/visibility.css.map +1 -1
  70. package/dist/css/utilities/width.css +1 -1
  71. package/dist/css/utilities/width.css.map +1 -1
  72. package/dist/css/utilities.css +1 -1
  73. package/dist/css/utilities.css.map +1 -1
  74. package/docs/components/alert.md +28 -28
  75. package/docs/components/button.md +36 -36
  76. package/docs/components/card.md +39 -39
  77. package/docs/components/inputgroup.md +12 -12
  78. package/docs/components/menu.md +112 -112
  79. package/docs/components/navigation.md +52 -52
  80. package/docs/content.md +86 -86
  81. package/docs/defaults.md +10 -10
  82. package/docs/forms.md +34 -34
  83. package/docs/layout.md +21 -21
  84. package/docs/state.md +8 -8
  85. package/docs/theme.md +58 -58
  86. package/docs/utilities.md +1 -1
  87. package/index.html +84 -12
  88. package/package.json +1 -1
  89. package/scss/component/list.scss +3 -0
  90. package/scss/utilities/border.scss +3 -0
  91. package/src/scss/_defaults.scss +14 -5
  92. package/src/scss/_variables.scss +10 -10
  93. package/src/scss/base/button/_index.scss +70 -70
  94. package/src/scss/base/button/_mixins.scss +22 -22
  95. package/src/scss/base/button/_variables.scss +36 -36
  96. package/src/scss/base/form/_variables.scss +34 -37
  97. package/src/scss/base/link/_index.scss +41 -41
  98. package/src/scss/base/link/_variables.scss +60 -60
  99. package/src/scss/base/table/_index.scss +7 -7
  100. package/src/scss/base/table/_variables.scss +26 -26
  101. package/src/scss/component/_index.scss +1 -0
  102. package/src/scss/component/accordion/_index.scss +6 -6
  103. package/src/scss/component/accordion/_variables.scss +65 -65
  104. package/src/scss/component/alert/_index.scss +11 -11
  105. package/src/scss/component/alert/_variables.scss +40 -43
  106. package/src/scss/component/card/_index.scss +6 -6
  107. package/src/scss/component/card/_variables.scss +39 -39
  108. package/src/scss/component/carousel/_index.scss +3 -3
  109. package/src/scss/component/carousel/_variables.scss +21 -21
  110. package/src/scss/component/input-group/_index.scss +1 -1
  111. package/src/scss/component/input-group/_variables.scss +12 -12
  112. package/src/scss/component/list/_defaults.scss +15 -0
  113. package/src/scss/component/list/_index.scss +50 -0
  114. package/src/scss/component/list/_variables.scss +176 -0
  115. package/src/scss/component/menu/_index.scss +135 -135
  116. package/src/scss/component/menu/_variables.scss +112 -112
  117. package/src/scss/component/navigation/_index.scss +38 -38
  118. package/src/scss/component/navigation/_variables.scss +52 -52
  119. package/src/scss/functions/_screen.scss +8 -0
  120. package/src/scss/functions/_utility.scss +28 -0
  121. package/src/scss/layout/columns/_index.scss +6 -6
  122. package/src/scss/layout/columns/_variables.scss +7 -7
  123. package/src/scss/layout/container/_variables.scss +10 -10
  124. package/src/scss/layout/flex-columns/_index.scss +8 -8
  125. package/src/scss/layout/flex-columns/_variables.scss +4 -4
  126. package/src/scss/mixins/_layer.scss +5 -1
  127. package/src/scss/mixins/_screen.scss +24 -3
  128. package/src/scss/mixins/_state.scss +18 -0
  129. package/src/scss/mixins/_theme.scss +15 -0
  130. package/src/scss/mixins/_utility.scss +119 -17
  131. package/src/scss/state/focus/_variables.scss +8 -8
  132. package/src/scss/theme/color/_index.scss +7 -7
  133. package/src/scss/theme/color/_variables.scss +7 -7
  134. package/src/scss/theme/typography/_variables.scss +52 -52
  135. package/src/scss/utilities/_index.scss +1 -0
  136. package/src/scss/utilities/alignment/_defaults.scss +7 -5
  137. package/src/scss/utilities/alignment/_index.scss +117 -24
  138. package/src/scss/utilities/border/_defaults.scss +61 -0
  139. package/src/scss/utilities/border/_index.scss +269 -0
  140. package/src/scss/utilities/border/_variables.scss +6 -0
  141. package/src/scss/utilities/color/_defaults.scss +6 -4
  142. package/src/scss/utilities/color/_index.scss +137 -26
  143. package/src/scss/utilities/display/_defaults.scss +8 -4
  144. package/src/scss/utilities/display/_index.scss +88 -15
  145. package/src/scss/utilities/flex/_defaults.scss +30 -6
  146. package/src/scss/utilities/flex/_index.scss +215 -31
  147. package/src/scss/utilities/height/_defaults.scss +7 -5
  148. package/src/scss/utilities/height/_index.scss +183 -45
  149. package/src/scss/utilities/inset/_defaults.scss +4 -2
  150. package/src/scss/utilities/inset/_index.scss +58 -5
  151. package/src/scss/utilities/justification/_defaults.scss +7 -5
  152. package/src/scss/utilities/justification/_index.scss +117 -24
  153. package/src/scss/utilities/list/_defaults.scss +6 -4
  154. package/src/scss/utilities/list/_index.scss +86 -17
  155. package/src/scss/utilities/order/_defaults.scss +5 -3
  156. package/src/scss/utilities/order/_index.scss +68 -20
  157. package/src/scss/utilities/position/_defaults.scss +5 -3
  158. package/src/scss/utilities/position/_index.scss +55 -10
  159. package/src/scss/utilities/ratio/_defaults.scss +7 -5
  160. package/src/scss/utilities/ratio/_index.scss +51 -12
  161. package/src/scss/utilities/ratio/_variables.scss +1 -1
  162. package/src/scss/utilities/spacing/_defaults.scss +4 -2
  163. package/src/scss/utilities/spacing/_index.scss +241 -28
  164. package/src/scss/utilities/typography/_defaults.scss +21 -5
  165. package/src/scss/utilities/typography/_index.scss +577 -143
  166. package/src/scss/utilities/visibility/_defaults.scss +5 -3
  167. package/src/scss/utilities/visibility/_index.scss +56 -10
  168. package/src/scss/utilities/width/_defaults.scss +7 -5
  169. package/src/scss/utilities/width/_index.scss +183 -45
  170. package/stylelint.config.js +1 -0
@@ -6,30 +6,75 @@
6
6
  @use "../../defaults" as root-defaults;
7
7
  @use "../../mixins/layer" as *;
8
8
  @use "../../mixins/utility";
9
+ @use "../../theme/color/variables" as color;
9
10
  @use "defaults";
10
11
  @use "sass:map";
11
12
  @use "variables" as *;
12
13
 
13
14
  @include layer(utilities) {
15
+ $selector-prefix: root-defaults.$utility-selector-prefix;
16
+
14
17
  // For each position property, create a utility class.
15
18
  @each $name, $property in defaults.$position-properties {
16
- @include utility.create(
17
- ".#{defaults.$position-class-prefix}#{$name}",
18
- position,
19
- $property
20
- );
19
+ $selector: "#{$selector-prefix}#{defaults.$position-selector-prefix}#{$name}";
20
+
21
+ @include utility.create($selector, position, $property);
22
+ }
23
+
24
+ // Generate screen-aware utilities.
25
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
26
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
27
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
28
+
29
+ // For each position property, create a utility class.
30
+ @each $name, $property in defaults.$position-properties {
31
+ $selector: "#{$selector-prefix}#{defaults.$position-selector-prefix}#{$name}";
32
+
33
+ @include utility.create(
34
+ $selector,
35
+ position,
36
+ $property,
37
+ $screen: $screen-name
38
+ );
39
+ }
40
+ }
21
41
  }
22
42
 
23
- // Generate responsive utilities.
24
- @if defaults.$responsive and root-defaults.$responsive-utilities {
25
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
43
+ // Generate theme-aware utilities.
44
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
45
+ @each $theme-name, $colors in color.$themes {
46
+ @if $theme-name != active {
47
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
48
+
49
+ // For each position property, create a utility class.
50
+ @each $name, $property in defaults.$position-properties {
51
+ $selector: "#{$selector-prefix}#{defaults.$position-selector-prefix}#{$name}";
52
+
53
+ @include utility.create(
54
+ $selector,
55
+ position,
56
+ $property,
57
+ $theme: $theme-name
58
+ );
59
+ }
60
+ }
61
+ }
62
+ }
63
+
64
+ // Generate state-aware utilities.
65
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
66
+ @each $state-name, $value in root-defaults.$state-selectors {
67
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
68
+
26
69
  // For each position property, create a utility class.
27
70
  @each $name, $property in defaults.$position-properties {
71
+ $selector: "#{$selector-prefix}#{defaults.$position-selector-prefix}#{$name}";
72
+
28
73
  @include utility.create(
29
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$position-class-prefix}#{$name}",
74
+ $selector,
30
75
  position,
31
76
  $property,
32
- $screen-size
77
+ $state: $state-name
33
78
  );
34
79
  }
35
80
  }
@@ -9,9 +9,9 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // Ratio utilities.
12
- $ratio-class: "ratio" !default;
13
- $ratio-variant-class-prefix: "" !default;
14
- $force-ratio-class: "force-ratio" !default;
12
+ $ratio-selector: "ratio" !default;
13
+ $ratio-variant-selector-prefix: "" !default;
14
+ $force-ratio-selector: "force-ratio" !default;
15
15
  $base-ratios: (
16
16
  "one-by-one": 100%,
17
17
  "two-by-one": 50%,
@@ -24,5 +24,7 @@ $base-ratios: (
24
24
  $custom-ratios: () !default;
25
25
  $ratios: map.merge($base-ratios, $custom-ratios);
26
26
 
27
- // Responsive utility flag.
28
- $responsive: false !default;
27
+ // Utility modifier flags.
28
+ $screen-aware: true !default;
29
+ $theme-aware: false !default;
30
+ $state-aware: false !default;
@@ -6,13 +6,18 @@
6
6
  @use "../../defaults" as root-defaults;
7
7
  @use "../../mixins/layer" as *;
8
8
  @use "../../mixins/screen";
9
+ @use "../../mixins/theme";
10
+ @use "../../mixins/state";
9
11
  @use "../../mixins/utility";
12
+ @use "../../theme/color/variables" as color;
10
13
  @use "defaults";
11
14
  @use "sass:map";
12
15
  @use "variables" as *;
13
16
 
14
17
  @include layer(utilities) {
15
- .#{defaults.$ratio-class} {
18
+ $selector-prefix: root-defaults.$utility-selector-prefix;
19
+
20
+ #{$selector-prefix}#{defaults.$ratio-selector} {
16
21
  position: relative;
17
22
  width: 100%;
18
23
 
@@ -22,7 +27,7 @@
22
27
  padding-top: $ratio;
23
28
  }
24
29
 
25
- .#{defaults.$force-ratio-class} {
30
+ .#{defaults.$force-ratio-selector} {
26
31
  position: absolute;
27
32
  inset: 0;
28
33
  width: 100%;
@@ -31,19 +36,53 @@
31
36
  }
32
37
  }
33
38
 
34
- @each $ratio-class, $value in defaults.$ratios {
35
- .#{defaults.$ratio-variant-class-prefix}#{$ratio-class} {
36
- --#{root-defaults.$prefix}-ratio: #{$value};
39
+ @each $ratio-selector, $value in defaults.$ratios {
40
+ #{$selector-prefix}#{defaults.$ratio-variant-selector-prefix}#{$ratio-selector} {
41
+ --#{root-defaults.$prefix}ratio: #{$value};
42
+ }
43
+ }
44
+
45
+ // Generate screen-aware utilities.
46
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
47
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
48
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
49
+
50
+ @each $ratio-selector, $value in defaults.$ratios {
51
+ @include screen.up($screen-name) {
52
+ #{$selector-prefix}#{defaults.$ratio-variant-selector-prefix}#{$ratio-selector} {
53
+ --#{root-defaults.$prefix}ratio: #{$value};
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ // Generate theme-aware utilities.
61
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
62
+ @each $theme-name, $colors in color.$themes {
63
+ @if $theme-name != active {
64
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
65
+
66
+ @each $ratio-selector, $value in defaults.$ratios {
67
+ @include theme.theme($theme-name) {
68
+ #{$selector-prefix}#{defaults.$ratio-variant-selector-prefix}#{$ratio-selector} {
69
+ --#{root-defaults.$prefix}ratio: #{$value};
70
+ }
71
+ }
72
+ }
73
+ }
37
74
  }
38
75
  }
39
76
 
40
- // Generate responsive utilities.
41
- @if defaults.$responsive and root-defaults.$responsive-utilities {
42
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
43
- @each $ratio-class, $value in defaults.$ratios {
44
- .#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$ratio-variant-class-prefix}#{$ratio-class} {
45
- @include screen.up($screen-size) {
46
- --#{root-defaults.$prefix}-ratio: #{$value};
77
+ // Generate state-aware utilities.
78
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
79
+ @each $state-name, $value in root-defaults.$state-selectors {
80
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
81
+
82
+ @each $ratio-selector, $ratio-value in defaults.$ratios {
83
+ #{$selector-prefix}#{defaults.$ratio-variant-selector-prefix}#{$ratio-selector} {
84
+ @include state.state($state-name) {
85
+ --#{root-defaults.$prefix}ratio: #{$ratio-value};
47
86
  }
48
87
  }
49
88
  }
@@ -6,4 +6,4 @@
6
6
  @use "defaults";
7
7
  @use "../../defaults" as root-defaults;
8
8
 
9
- $ratio: var(--#{root-defaults.$prefix}-ratio);
9
+ $ratio: var(--#{root-defaults.$prefix}ratio);
@@ -45,5 +45,7 @@ $spacing-properties: map.merge(
45
45
  $custom-spacing-properties
46
46
  );
47
47
 
48
- // Responsive utility flag.
49
- $responsive: true !default;
48
+ // Utility modifier flags.
49
+ $screen-aware: true !default;
50
+ $theme-aware: false !default;
51
+ $state-aware: false !default;
@@ -9,35 +9,38 @@
9
9
  @use "../../layout/flex-columns/defaults" as flex-columns-defaults;
10
10
  @use "../../mixins/layer" as *;
11
11
  @use "../../mixins/utility";
12
+ @use "../../theme/color/variables" as color;
12
13
  @use "../../variables" as root-variables;
13
14
  @use "defaults";
14
15
  @use "sass:map";
15
16
  @use "variables" as *;
16
17
 
17
18
  @include layer(utilities) {
19
+ $selector-prefix: root-defaults.$utility-selector-prefix;
20
+
18
21
  // For each spacing property, create a utility class.
19
22
  @each $name, $property in defaults.$spacing-properties {
20
23
  @each $key, $value in root-variables.$spacers {
21
- $selector: ".#{$name}-#{$key}";
24
+ $selector: "#{$selector-prefix}#{$name}-#{$key}";
22
25
 
23
26
  // If we're dealing with gap, column-gap, or row-gap inside of #{columns-defaults.$columns-selector}, we should update
24
27
  // the columns-column-gap property instead of the raw property.
25
28
  @if $name == "g" {
26
29
  @include utility.create($selector, $property, $value) {
27
30
  &#{columns-defaults.$columns-selector} {
28
- --#{root-defaults.$prefix}-columns-column-gap: #{important.insert(
31
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
29
32
  $value
30
33
  )};
31
- --#{root-defaults.$prefix}-columns-row-gap: #{important.insert(
34
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
32
35
  $value
33
36
  )};
34
37
  }
35
38
 
36
39
  &#{flex-columns-defaults.$flex-columns-selector} {
37
- --#{root-defaults.$prefix}-flex-columns-column-gap: #{important.insert(
40
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
38
41
  $value
39
42
  )};
40
- --#{root-defaults.$prefix}-flex-columns-row-gap: #{important.insert(
43
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
41
44
  $value
42
45
  )};
43
46
  }
@@ -45,13 +48,13 @@
45
48
  } @else if $name == "cg" {
46
49
  @include utility.create($selector, $property, $value) {
47
50
  &#{columns-defaults.$columns-selector} {
48
- --#{root-defaults.$prefix}-columns-column-gap: #{important.insert(
51
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
49
52
  $value
50
53
  )};
51
54
  }
52
55
 
53
56
  &#{flex-columns-defaults.$flex-columns-selector} {
54
- --#{root-defaults.$prefix}-flex-columns-column-gap: #{important.insert(
57
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
55
58
  $value
56
59
  )};
57
60
  }
@@ -59,13 +62,13 @@
59
62
  } @else if $name == "rg" {
60
63
  @include utility.create($selector, $property, $value) {
61
64
  &#{columns-defaults.$columns-selector} {
62
- --#{root-defaults.$prefix}-columns-row-gap: #{important.insert(
65
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
63
66
  $value
64
67
  )};
65
68
  }
66
69
 
67
70
  &#{flex-columns-defaults.$flex-columns-selector} {
68
- --#{root-defaults.$prefix}-flex-columns-row-gap: #{important.insert(
71
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
69
72
  $value
70
73
  )};
71
74
  }
@@ -75,16 +78,21 @@
75
78
  }
76
79
  }
77
80
 
81
+ $selector: "#{$selector-prefix}#{$name}-auto";
82
+
78
83
  // Create the "auto" utility class.
79
- @include utility.create("#{$name}-auto", $property, auto);
84
+ @include utility.create($selector, $property, auto);
80
85
  }
81
86
 
82
- // Generate responsive utilities.
83
- @if defaults.$responsive and root-defaults.$responsive-utilities {
84
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
87
+ // Generate screen-aware utilities.
88
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
89
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
90
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
91
+
92
+ // For each spacing property, create a utility class.
85
93
  @each $name, $property in defaults.$spacing-properties {
86
94
  @each $key, $value in root-variables.$spacers {
87
- $selector: ".#{$screen-size}#{root-defaults.$responsive-separator}#{$name}-#{$key}";
95
+ $selector: "#{$selector-prefix}#{$name}-#{$key}";
88
96
 
89
97
  // If we're dealing with gap, column-gap, or row-gap inside of #{columns-defaults.$columns-selector}, we should update
90
98
  // the columns-column-gap property instead of the raw property.
@@ -93,22 +101,22 @@
93
101
  $selector,
94
102
  $property,
95
103
  $value,
96
- $screen-size
104
+ $screen: $screen-name
97
105
  ) {
98
106
  &#{columns-defaults.$columns-selector} {
99
- --#{root-defaults.$prefix}-columns-column-gap: #{important.insert(
107
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
100
108
  $value
101
109
  )};
102
- --#{root-defaults.$prefix}-columns-row-gap: #{important.insert(
110
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
103
111
  $value
104
112
  )};
105
113
  }
106
114
 
107
115
  &#{flex-columns-defaults.$flex-columns-selector} {
108
- --#{root-defaults.$prefix}-flex-columns-column-gap: #{important.insert(
116
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
109
117
  $value
110
118
  )};
111
- --#{root-defaults.$prefix}-flex-columns-row-gap: #{important.insert(
119
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
112
120
  $value
113
121
  )};
114
122
  }
@@ -118,16 +126,16 @@
118
126
  $selector,
119
127
  $property,
120
128
  $value,
121
- $screen-size
129
+ $screen: $screen-name
122
130
  ) {
123
131
  &#{columns-defaults.$columns-selector} {
124
- --#{root-defaults.$prefix}-columns-column-gap: #{important.insert(
132
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
125
133
  $value
126
134
  )};
127
135
  }
128
136
 
129
137
  &#{flex-columns-defaults.$flex-columns-selector} {
130
- --#{root-defaults.$prefix}-flex-columns-column-gap: #{important.insert(
138
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
131
139
  $value
132
140
  )};
133
141
  }
@@ -137,31 +145,236 @@
137
145
  $selector,
138
146
  $property,
139
147
  $value,
140
- $screen-size
148
+ $screen: $screen-name
141
149
  ) {
142
150
  &#{columns-defaults.$columns-selector} {
143
- --#{root-defaults.$prefix}-columns-row-gap: #{important.insert(
151
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
144
152
  $value
145
153
  )};
146
154
  }
147
155
 
148
156
  &#{flex-columns-defaults.$flex-columns-selector} {
149
- --#{root-defaults.$prefix}-flex-columns-row-gap: #{important.insert(
157
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
150
158
  $value
151
159
  )};
152
160
  }
153
161
  }
154
162
  } @else {
155
- @include utility.create($selector, $property, $value, $screen-size);
163
+ @include utility.create(
164
+ $selector,
165
+ $property,
166
+ $value,
167
+ $screen: $screen-name
168
+ );
156
169
  }
157
170
  }
158
171
 
172
+ $selector: "#{$selector-prefix}#{$name}-auto";
173
+
174
+ // Create the "auto" utility class.
175
+ @include utility.create(
176
+ $selector,
177
+ $property,
178
+ auto,
179
+ $screen: $screen-name
180
+ );
181
+ }
182
+ }
183
+ }
184
+
185
+ // Generate theme-aware utilities.
186
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
187
+ @each $theme-name, $colors in color.$themes {
188
+ @if $theme-name != active {
189
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
190
+
191
+ // For each spacing property, create a utility class.
192
+ @each $name, $property in defaults.$spacing-properties {
193
+ @each $key, $value in root-variables.$spacers {
194
+ $selector: "#{$selector-prefix}#{$name}-#{$key}";
195
+
196
+ // If we're dealing with gap, column-gap, or row-gap inside of #{columns-defaults.$columns-selector}, we should update
197
+ // the columns-column-gap property instead of the raw property.
198
+ @if $name == "g" {
199
+ @include utility.create(
200
+ $selector,
201
+ $property,
202
+ $value,
203
+ $theme: $theme-name
204
+ ) {
205
+ &#{columns-defaults.$columns-selector} {
206
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
207
+ $value
208
+ )};
209
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
210
+ $value
211
+ )};
212
+ }
213
+
214
+ &#{flex-columns-defaults.$flex-columns-selector} {
215
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
216
+ $value
217
+ )};
218
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
219
+ $value
220
+ )};
221
+ }
222
+ }
223
+ } @else if $name == "cg" {
224
+ @include utility.create(
225
+ $selector,
226
+ $property,
227
+ $value,
228
+ $theme: $theme-name
229
+ ) {
230
+ &#{columns-defaults.$columns-selector} {
231
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
232
+ $value
233
+ )};
234
+ }
235
+
236
+ &#{flex-columns-defaults.$flex-columns-selector} {
237
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
238
+ $value
239
+ )};
240
+ }
241
+ }
242
+ } @else if $name == "rg" {
243
+ @include utility.create(
244
+ $selector,
245
+ $property,
246
+ $value,
247
+ $theme: $theme-name
248
+ ) {
249
+ &#{columns-defaults.$columns-selector} {
250
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
251
+ $value
252
+ )};
253
+ }
254
+
255
+ &#{flex-columns-defaults.$flex-columns-selector} {
256
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
257
+ $value
258
+ )};
259
+ }
260
+ }
261
+ } @else {
262
+ @include utility.create(
263
+ $selector,
264
+ $property,
265
+ $value,
266
+ $theme: $theme-name
267
+ );
268
+ }
269
+ }
270
+
271
+ $selector: "#{$selector-prefix}#{$name}-auto";
272
+
273
+ // Create the "auto" utility class.
274
+ @include utility.create(
275
+ $selector,
276
+ $property,
277
+ auto,
278
+ $theme: $theme-name
279
+ );
280
+ }
281
+ }
282
+ }
283
+ }
284
+
285
+ // Generate state-aware utilities.
286
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
287
+ @each $state-name, $value in root-defaults.$state-selectors {
288
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
289
+
290
+ // For each spacing property, create a utility class.
291
+ @each $name, $property in defaults.$spacing-properties {
292
+ @each $key, $value in root-variables.$spacers {
293
+ $selector: "#{$selector-prefix}#{$name}-#{$key}";
294
+
295
+ // If we're dealing with gap, column-gap, or row-gap inside of #{columns-defaults.$columns-selector}, we should update
296
+ // the columns-column-gap property instead of the raw property.
297
+ @if $name == "g" {
298
+ @include utility.create(
299
+ $selector,
300
+ $property,
301
+ $value,
302
+ $state: $state-name
303
+ ) {
304
+ &#{columns-defaults.$columns-selector} {
305
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
306
+ $value
307
+ )};
308
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
309
+ $value
310
+ )};
311
+ }
312
+
313
+ &#{flex-columns-defaults.$flex-columns-selector} {
314
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
315
+ $value
316
+ )};
317
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
318
+ $value
319
+ )};
320
+ }
321
+ }
322
+ } @else if $name == "cg" {
323
+ @include utility.create(
324
+ $selector,
325
+ $property,
326
+ $value,
327
+ $state: $state-name
328
+ ) {
329
+ &#{columns-defaults.$columns-selector} {
330
+ --#{root-defaults.$prefix}columns-column-gap: #{important.insert(
331
+ $value
332
+ )};
333
+ }
334
+
335
+ &#{flex-columns-defaults.$flex-columns-selector} {
336
+ --#{root-defaults.$prefix}flex-columns-column-gap: #{important.insert(
337
+ $value
338
+ )};
339
+ }
340
+ }
341
+ } @else if $name == "rg" {
342
+ @include utility.create(
343
+ $selector,
344
+ $property,
345
+ $value,
346
+ $state: $state-name
347
+ ) {
348
+ &#{columns-defaults.$columns-selector} {
349
+ --#{root-defaults.$prefix}columns-row-gap: #{important.insert(
350
+ $value
351
+ )};
352
+ }
353
+
354
+ &#{flex-columns-defaults.$flex-columns-selector} {
355
+ --#{root-defaults.$prefix}flex-columns-row-gap: #{important.insert(
356
+ $value
357
+ )};
358
+ }
359
+ }
360
+ } @else {
361
+ @include utility.create(
362
+ $selector,
363
+ $property,
364
+ $value,
365
+ $state: $state-name
366
+ );
367
+ }
368
+ }
369
+
370
+ $selector: "#{$selector-prefix}#{$name}-auto";
371
+
159
372
  // Create the "auto" utility class.
160
373
  @include utility.create(
161
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{$name}-auto",
374
+ $selector,
162
375
  $property,
163
376
  auto,
164
- $screen-size
377
+ $state: $state-name
165
378
  );
166
379
  }
167
380
  }
@@ -9,13 +9,13 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // Text size properties.
12
- $text-class-prefix: "text-" !default;
12
+ $text-selector-prefix: "text-" !default;
13
13
 
14
14
  // Font weight properties.
15
- $font-weight-class-prefix: "font-" !default;
15
+ $font-weight-selector-prefix: "font-" !default;
16
16
 
17
17
  // Font style properties.
18
- $font-style-class-prefix: "font-" !default;
18
+ $font-style-selector-prefix: "font-" !default;
19
19
  $base-font-style-properties: (
20
20
  normal: normal,
21
21
  italic: italic,
@@ -26,5 +26,21 @@ $font-style-properties: map.merge(
26
26
  $custom-font-style-properties
27
27
  );
28
28
 
29
- // Responsive utility flag.
30
- $responsive: false !default;
29
+ // Text transform properties.
30
+ $text-transform-selector-prefix: "text-" !default;
31
+ $base-text-transform-properties: (
32
+ uppercase: uppercase,
33
+ lowercase: lowercase,
34
+ capitalize: capitalize,
35
+ none: none,
36
+ );
37
+ $custom-text-transform-properties: () !default;
38
+ $text-transform-properties: map.merge(
39
+ $base-text-transform-properties,
40
+ $custom-text-transform-properties
41
+ );
42
+
43
+ // Utility modifier flags.
44
+ $screen-aware: false !default;
45
+ $theme-aware: false !default;
46
+ $state-aware: false !default;