@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
@@ -9,7 +9,7 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // Flex direction properties.
12
- $flex-direction-class-prefix: "flex-" !default;
12
+ $flex-direction-selector-prefix: "flex-" !default;
13
13
  $base-flex-direction-properties: (
14
14
  row: row,
15
15
  row-reverse: row-reverse,
@@ -23,7 +23,7 @@ $flex-direction-properties: map.merge(
23
23
  );
24
24
 
25
25
  // Flex wrap properties.
26
- $flex-wrap-class-prefix: "flex-" !default;
26
+ $flex-wrap-selector-prefix: "flex-" !default;
27
27
  $base-flex-wrap-properties: (
28
28
  wrap: wrap,
29
29
  wrap-reverse: wrap-reverse,
@@ -36,7 +36,7 @@ $flex-wrap-properties: map.merge(
36
36
  );
37
37
 
38
38
  // Flex grow properties.
39
- $flex-grow-class-prefix: "flex-" !default;
39
+ $flex-grow-selector-prefix: "flex-" !default;
40
40
  $base-flex-grow-properties: (
41
41
  grow: 1,
42
42
  no-grow: 0,
@@ -48,7 +48,7 @@ $flex-grow-properties: map.merge(
48
48
  );
49
49
 
50
50
  // Flex shrink properties.
51
- $flex-shrink-class-prefix: "flex-" !default;
51
+ $flex-shrink-selector-prefix: "flex-" !default;
52
52
  $base-flex-shrink-properties: (
53
53
  shrink: 1,
54
54
  no-shrink: 0,
@@ -59,5 +59,29 @@ $flex-shrink-properties: map.merge(
59
59
  $custom-flex-shrink-properties
60
60
  );
61
61
 
62
- // Responsive utility flag.
63
- $responsive: false !default;
62
+ // Flex basis properties.
63
+ $flex-basis-selector-prefix: "flex-" !default;
64
+ $base-flex-basis-properties: (
65
+ auto: auto,
66
+ fit-content: fit-content,
67
+ max-content: max-content,
68
+ min-content: min-content,
69
+ content: content,
70
+ 0: 0,
71
+ full: 100%,
72
+ quarter: 25%,
73
+ half: 50%,
74
+ three-quarters: 75%,
75
+ third: calc(100% / 3),
76
+ two-thirds: calc(100% / 1.5),
77
+ );
78
+ $custom-flex-basis-properties: () !default;
79
+ $flex-basis-properties: map.merge(
80
+ $base-flex-basis-properties,
81
+ $custom-flex-basis-properties
82
+ );
83
+
84
+ // Utility modifier flags.
85
+ $screen-aware: false !default;
86
+ $theme-aware: false !default;
87
+ $state-aware: false !default;
@@ -7,63 +7,247 @@
7
7
  @use "../../functions/important";
8
8
  @use "../../mixins/layer" as *;
9
9
  @use "../../mixins/utility";
10
+ @use "../../theme/color/variables" as color;
10
11
  @use "defaults";
11
12
  @use "sass:map";
12
13
  @use "variables" as *;
13
14
 
14
15
  @include layer(utilities) {
16
+ $selector-prefix: root-defaults.$utility-selector-prefix;
17
+
15
18
  // For each flex direction property, create a utility class.
16
19
  @each $name, $property in defaults.$flex-direction-properties {
17
- @include utility.create(
18
- ".#{defaults.$flex-direction-class-prefix}#{$name}",
19
- flex-direction,
20
- $property
21
- );
22
- @include utility.create(
23
- ".#{defaults.$flex-wrap-class-prefix}#{$name}",
24
- flex-wrap,
25
- $property
26
- );
27
- @include utility.create(
28
- ".#{defaults.$flex-grow-class-prefix}#{$name}",
29
- flex-grow,
30
- $property
31
- );
32
- @include utility.create(
33
- ".#{defaults.$flex-shrink-class-prefix}#{$name}",
34
- flex-shrink,
35
- $property
36
- );
20
+ $selector: "#{$selector-prefix}#{defaults.$flex-direction-selector-prefix}#{$name}";
21
+
22
+ @include utility.create($selector, flex-direction, $property);
23
+ }
24
+
25
+ // For each flex wrap property, create a utility class.
26
+ @each $name, $property in defaults.$flex-wrap-properties {
27
+ $selector: "#{$selector-prefix}#{defaults.$flex-wrap-selector-prefix}#{$name}";
28
+
29
+ @include utility.create($selector, flex-wrap, $property);
30
+ }
31
+
32
+ // For each flex grow property, create a utility class.
33
+ @each $name, $property in defaults.$flex-grow-properties {
34
+ $selector: "#{$selector-prefix}#{defaults.$flex-grow-selector-prefix}#{$name}";
35
+
36
+ @include utility.create($selector, flex-grow, $property);
37
+ }
38
+
39
+ // For each flex shrink property, create a utility class.
40
+ @each $name, $property in defaults.$flex-shrink-properties {
41
+ $selector: "#{$selector-prefix}#{defaults.$flex-shrink-selector-prefix}#{$name}";
42
+
43
+ @include utility.create($selector, flex-shrink, $property);
44
+ }
45
+
46
+ // For each flex basis property, create a utility class.
47
+ @each $name, $property in defaults.$flex-basis-properties {
48
+ $selector: "#{$selector-prefix}#{defaults.$flex-basis-selector-prefix}#{$name}";
49
+
50
+ @include utility.create($selector, flex-basis, $property);
51
+ }
52
+
53
+ // Generate screen-aware utilities.
54
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
55
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
56
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
57
+
58
+ // For each flex direction property, create a utility class.
59
+ @each $name, $property in defaults.$flex-direction-properties {
60
+ $selector: "#{$selector-prefix}#{defaults.$flex-direction-selector-prefix}#{$name}";
61
+
62
+ @include utility.create(
63
+ $selector,
64
+ flex-direction,
65
+ $property,
66
+ $screen: $screen-name
67
+ );
68
+ }
69
+
70
+ // For each flex wrap property, create a utility class.
71
+ @each $name, $property in defaults.$flex-wrap-properties {
72
+ $selector: "#{$selector-prefix}#{defaults.$flex-wrap-selector-prefix}#{$name}";
73
+
74
+ @include utility.create(
75
+ $selector,
76
+ flex-wrap,
77
+ $property,
78
+ $screen: $screen-name
79
+ );
80
+ }
81
+
82
+ // For each flex grow property, create a utility class.
83
+ @each $name, $property in defaults.$flex-grow-properties {
84
+ $selector: "#{$selector-prefix}#{defaults.$flex-grow-selector-prefix}#{$name}";
85
+
86
+ @include utility.create(
87
+ $selector,
88
+ flex-grow,
89
+ $property,
90
+ $screen: $screen-name
91
+ );
92
+ }
93
+
94
+ // For each flex shrink property, create a utility class.
95
+ @each $name, $property in defaults.$flex-shrink-properties {
96
+ $selector: "#{$selector-prefix}#{defaults.$flex-shrink-selector-prefix}#{$name}";
97
+
98
+ @include utility.create(
99
+ $selector,
100
+ flex-shrink,
101
+ $property,
102
+ $screen: $screen-name
103
+ );
104
+ }
105
+
106
+ // For each flex basis property, create a utility class.
107
+ @each $name, $property in defaults.$flex-basis-properties {
108
+ $selector: "#{$selector-prefix}#{defaults.$flex-basis-selector-prefix}#{$name}";
109
+
110
+ @include utility.create(
111
+ $selector,
112
+ flex-basis,
113
+ $property,
114
+ $screen: $screen-name
115
+ );
116
+ }
117
+ }
118
+ }
119
+
120
+ // Generate theme-aware utilities.
121
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
122
+ @each $theme-name, $colors in color.$themes {
123
+ @if $theme-name != active {
124
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
125
+
126
+ // For each flex direction property, create a utility class.
127
+ @each $name, $property in defaults.$flex-direction-properties {
128
+ $selector: "#{$selector-prefix}#{defaults.$flex-direction-selector-prefix}#{$name}";
129
+
130
+ @include utility.create(
131
+ $selector,
132
+ flex-direction,
133
+ $property,
134
+ $theme: $theme-name
135
+ );
136
+ }
137
+
138
+ // For each flex wrap property, create a utility class.
139
+ @each $name, $property in defaults.$flex-wrap-properties {
140
+ $selector: "#{$selector-prefix}#{defaults.$flex-wrap-selector-prefix}#{$name}";
141
+
142
+ @include utility.create(
143
+ $selector,
144
+ flex-wrap,
145
+ $property,
146
+ $theme: $theme-name
147
+ );
148
+ }
149
+
150
+ // For each flex grow property, create a utility class.
151
+ @each $name, $property in defaults.$flex-grow-properties {
152
+ $selector: "#{$selector-prefix}#{defaults.$flex-grow-selector-prefix}#{$name}";
153
+
154
+ @include utility.create(
155
+ $selector,
156
+ flex-grow,
157
+ $property,
158
+ $theme: $theme-name
159
+ );
160
+ }
161
+
162
+ // For each flex shrink property, create a utility class.
163
+ @each $name, $property in defaults.$flex-shrink-properties {
164
+ $selector: "#{$selector-prefix}#{defaults.$flex-shrink-selector-prefix}#{$name}";
165
+
166
+ @include utility.create(
167
+ $selector,
168
+ flex-shrink,
169
+ $property,
170
+ $theme: $theme-name
171
+ );
172
+ }
173
+
174
+ // For each flex basis property, create a utility class.
175
+ @each $name, $property in defaults.$flex-basis-properties {
176
+ $selector: "#{$selector-prefix}#{defaults.$flex-basis-selector-prefix}#{$name}";
177
+
178
+ @include utility.create(
179
+ $selector,
180
+ flex-basis,
181
+ $property,
182
+ $theme: $theme-name
183
+ );
184
+ }
185
+ }
186
+ }
37
187
  }
38
188
 
39
- // Create responsive utilities.
40
- @if defaults.$responsive and root-defaults.$responsive-utilities {
41
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
189
+ // Generate state-aware utilities.
190
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
191
+ @each $state-name, $value in root-defaults.$state-selectors {
192
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
193
+
42
194
  // For each flex direction property, create a utility class.
43
195
  @each $name, $property in defaults.$flex-direction-properties {
196
+ $selector: "#{$selector-prefix}#{defaults.$flex-direction-selector-prefix}#{$name}";
197
+
44
198
  @include utility.create(
45
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$flex-direction-class-prefix}#{$name}",
199
+ $selector,
46
200
  flex-direction,
47
201
  $property,
48
- $screen-size
202
+ $state: $state-name
49
203
  );
204
+ }
205
+
206
+ // For each flex wrap property, create a utility class.
207
+ @each $name, $property in defaults.$flex-wrap-properties {
208
+ $selector: "#{$selector-prefix}#{defaults.$flex-wrap-selector-prefix}#{$name}";
209
+
50
210
  @include utility.create(
51
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$flex-wrap-class-prefix}#{$name}",
211
+ $selector,
52
212
  flex-wrap,
53
213
  $property,
54
- $screen-size
214
+ $state: $state-name
55
215
  );
216
+ }
217
+
218
+ // For each flex grow property, create a utility class.
219
+ @each $name, $property in defaults.$flex-grow-properties {
220
+ $selector: "#{$selector-prefix}#{defaults.$flex-grow-selector-prefix}#{$name}";
221
+
56
222
  @include utility.create(
57
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$flex-grow-class-prefix}#{$name}",
223
+ $selector,
58
224
  flex-grow,
59
225
  $property,
60
- $screen-size
226
+ $state: $state-name
61
227
  );
228
+ }
229
+
230
+ // For each flex shrink property, create a utility class.
231
+ @each $name, $property in defaults.$flex-shrink-properties {
232
+ $selector: "#{$selector-prefix}#{defaults.$flex-shrink-selector-prefix}#{$name}";
233
+
62
234
  @include utility.create(
63
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$flex-shrink-class-prefix}#{$name}",
235
+ $selector,
64
236
  flex-shrink,
65
237
  $property,
66
- $screen-size
238
+ $state: $state-name
239
+ );
240
+ }
241
+
242
+ // For each flex basis property, create a utility class.
243
+ @each $name, $property in defaults.$flex-basis-properties {
244
+ $selector: "#{$selector-prefix}#{defaults.$flex-basis-selector-prefix}#{$name}";
245
+
246
+ @include utility.create(
247
+ $selector,
248
+ flex-basis,
249
+ $property,
250
+ $state: $state-name
67
251
  );
68
252
  }
69
253
  }
@@ -9,9 +9,9 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // Height properties.
12
- $height-class-prefix: "h-" !default;
13
- $max-height-class-prefix: "max-h-" !default;
14
- $min-height-class-prefix: "min-h-" !default;
12
+ $height-selector-prefix: "h-" !default;
13
+ $max-height-selector-prefix: "max-h-" !default;
14
+ $min-height-selector-prefix: "min-h-" !default;
15
15
 
16
16
  // Height values.
17
17
  $base-height-values: (
@@ -37,5 +37,7 @@ $base-height-values: (
37
37
  $custom-height-values: () !default;
38
38
  $height-values: map.merge($base-height-values, $custom-height-values);
39
39
 
40
- // Responsive utility flag.
41
- $responsive: false !default;
40
+ // Utility modifier flags.
41
+ $screen-aware: false !default;
42
+ $theme-aware: false !default;
43
+ $state-aware: false !default;
@@ -6,91 +6,229 @@
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 "../../variables" as root-variables;
10
11
  @use "defaults";
11
12
  @use "sass:map";
12
13
  @use "variables" as *;
13
14
 
14
15
  @include layer(utilities) {
16
+ $selector-prefix: root-defaults.$utility-selector-prefix;
17
+
15
18
  // For each height property, create a utility class.
16
19
  @each $height, $value in defaults.$height-values {
17
- @include utility.create(
18
- ".#{defaults.$height-class-prefix}#{$height}",
19
- height,
20
- $value
21
- );
22
- @include utility.create(
23
- ".#{defaults.$max-height-class-prefix}#{$height}",
24
- max-height,
25
- $value
26
- );
27
- @include utility.create(
28
- ".#{defaults.$min-height-class-prefix}#{$height}",
29
- min-height,
30
- $value
31
- );
20
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$height}";
21
+
22
+ @include utility.create($selector, height, $value);
23
+
24
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$height}";
25
+
26
+ @include utility.create($selector, max-height, $value);
27
+
28
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$height}";
29
+
30
+ @include utility.create($selector, min-height, $value);
32
31
  }
33
32
 
34
33
  @each $spacer, $value in root-variables.$spacers {
35
- @include utility.create(
36
- ".#{defaults.$height-class-prefix}#{$spacer}",
37
- height,
38
- $value
39
- );
40
- @include utility.create(
41
- ".#{defaults.$max-height-class-prefix}#{$spacer}",
42
- max-height,
43
- $value
44
- );
45
- @include utility.create(
46
- ".#{defaults.$min-height-class-prefix}#{$spacer}",
47
- min-height,
48
- $value
49
- );
34
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$spacer}";
35
+
36
+ @include utility.create($selector, height, $value);
37
+
38
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$spacer}";
39
+
40
+ @include utility.create($selector, max-height, $value);
41
+
42
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$spacer}";
43
+
44
+ @include utility.create($selector, min-height, $value);
50
45
  }
51
46
 
52
- // Create responsive utilities.
53
- @if defaults.$responsive and root-defaults.$responsive-utilities {
54
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
47
+ // Generate screen-aware utilities.
48
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
49
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
50
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
51
+
52
+ // For each height property, create a utility class.
55
53
  @each $height, $value in defaults.$height-values {
54
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$height}";
55
+
56
56
  @include utility.create(
57
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$height-class-prefix}#{$height}",
57
+ $selector,
58
58
  height,
59
59
  $value,
60
- $screen-size
60
+ $screen: $screen-name
61
61
  );
62
+
63
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$height}";
64
+
62
65
  @include utility.create(
63
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$max-height-class-prefix}#{$height}",
66
+ $selector,
64
67
  max-height,
65
68
  $value,
66
- $screen-size
69
+ $screen: $screen-name
67
70
  );
71
+
72
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$height}";
73
+
68
74
  @include utility.create(
69
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$min-height-class-prefix}#{$height}",
75
+ $selector,
70
76
  min-height,
71
77
  $value,
72
- $screen-size
78
+ $screen: $screen-name
73
79
  );
74
80
  }
75
81
 
76
82
  @each $spacer, $value in root-variables.$spacers {
83
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$spacer}";
84
+
77
85
  @include utility.create(
78
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$height-class-prefix}#{$spacer}",
86
+ $selector,
79
87
  height,
80
88
  $value,
81
- $screen-size
89
+ $screen: $screen-name
82
90
  );
91
+
92
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$spacer}";
93
+
83
94
  @include utility.create(
84
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$max-height-class-prefix}#{$spacer}",
95
+ $selector,
85
96
  max-height,
86
97
  $value,
87
- $screen-size
98
+ $screen: $screen-name
88
99
  );
100
+
101
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$spacer}";
102
+
103
+ @include utility.create(
104
+ $selector,
105
+ min-height,
106
+ $value,
107
+ $screen: $screen-name
108
+ );
109
+ }
110
+ }
111
+ }
112
+
113
+ // Generate theme-aware utilities.
114
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
115
+ @each $theme-name, $colors in color.$themes {
116
+ @if $theme-name != active {
117
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
118
+
119
+ // For each height property, create a utility class.
120
+ @each $height, $value in defaults.$height-values {
121
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$height}";
122
+
123
+ @include utility.create(
124
+ $selector,
125
+ height,
126
+ $value,
127
+ $theme: $theme-name
128
+ );
129
+
130
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$height}";
131
+
132
+ @include utility.create(
133
+ $selector,
134
+ max-height,
135
+ $value,
136
+ $theme: $theme-name
137
+ );
138
+
139
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$height}";
140
+
141
+ @include utility.create(
142
+ $selector,
143
+ min-height,
144
+ $value,
145
+ $theme: $theme-name
146
+ );
147
+ }
148
+
149
+ @each $spacer, $value in root-variables.$spacers {
150
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$spacer}";
151
+
152
+ @include utility.create(
153
+ $selector,
154
+ height,
155
+ $value,
156
+ $theme: $theme-name
157
+ );
158
+
159
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$spacer}";
160
+
161
+ @include utility.create(
162
+ $selector,
163
+ max-height,
164
+ $value,
165
+ $theme: $theme-name
166
+ );
167
+
168
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$spacer}";
169
+
170
+ @include utility.create(
171
+ $selector,
172
+ min-height,
173
+ $value,
174
+ $theme: $theme-name
175
+ );
176
+ }
177
+ }
178
+ }
179
+ }
180
+
181
+ // Generate state-aware utilities.
182
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
183
+ @each $state-name, $value in root-defaults.$state-selectors {
184
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
185
+
186
+ // For each height property, create a utility class.
187
+ @each $height, $value in defaults.$height-values {
188
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$height}";
189
+
190
+ @include utility.create($selector, height, $value, $state: $state-name);
191
+
192
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$height}";
193
+
194
+ @include utility.create(
195
+ $selector,
196
+ max-height,
197
+ $value,
198
+ $state: $state-name
199
+ );
200
+
201
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$height}";
202
+
203
+ @include utility.create(
204
+ $selector,
205
+ min-height,
206
+ $value,
207
+ $state: $state-name
208
+ );
209
+ }
210
+
211
+ @each $spacer, $value in root-variables.$spacers {
212
+ $selector: "#{$selector-prefix}#{defaults.$height-selector-prefix}#{$spacer}";
213
+
214
+ @include utility.create($selector, height, $value, $state: $state-name);
215
+
216
+ $selector: "#{$selector-prefix}#{defaults.$max-height-selector-prefix}#{$spacer}";
217
+
218
+ @include utility.create(
219
+ $selector,
220
+ max-height,
221
+ $value,
222
+ $state: $state-name
223
+ );
224
+
225
+ $selector: "#{$selector-prefix}#{defaults.$min-height-selector-prefix}#{$spacer}";
226
+
89
227
  @include utility.create(
90
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$min-height-class-prefix}#{$spacer}",
228
+ $selector,
91
229
  min-height,
92
230
  $value,
93
- $screen-size
231
+ $state: $state-name
94
232
  );
95
233
  }
96
234
  }
@@ -37,5 +37,7 @@ $base-inset-values: (
37
37
  $custom-inset-values: () !default;
38
38
  $inset-values: map.merge($base-inset-values, $custom-inset-values);
39
39
 
40
- // Responsive utility flag.
41
- $responsive: false !default;
40
+ // Utility modifier flags.
41
+ $screen-aware: true !default;
42
+ $theme-aware: false !default;
43
+ $state-aware: false !default;