@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
@@ -7,28 +7,81 @@
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 inset property, create a utility class.
16
19
  @each $type, $property in defaults.$inset-properties {
17
20
  @each $name, $value in defaults.$inset-values {
18
- @include utility.create(".#{$type}-#{$name}", $property, $value);
21
+ $selector: "#{$selector-prefix}#{$type}-#{$name}";
22
+
23
+ @include utility.create($selector, $property, $value);
19
24
  }
20
25
  }
21
26
 
22
- @if defaults.$responsive and root-defaults.$responsive-utilities {
23
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
27
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
28
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
29
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
30
+
24
31
  // For each inset property, create a utility class.
25
32
  @each $type, $property in defaults.$inset-properties {
26
33
  @each $name, $value in defaults.$inset-values {
34
+ $selector: "#{$selector-prefix}#{$type}-#{$name}";
35
+
36
+ @include utility.create(
37
+ $selector,
38
+ $property,
39
+ $value,
40
+ $screen: $screen-name
41
+ );
42
+ }
43
+ }
44
+ }
45
+ }
46
+
47
+ // Generate theme-aware utilities.
48
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
49
+ @each $theme-name, $colors in color.$themes {
50
+ @if $theme-name != active {
51
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
52
+
53
+ // For each inset property, create a utility class.
54
+ @each $type, $property in defaults.$inset-properties {
55
+ @each $name, $value in defaults.$inset-values {
56
+ $selector: "#{$selector-prefix}#{$type}-#{$name}";
57
+
58
+ @include utility.create(
59
+ $selector,
60
+ $property,
61
+ $value,
62
+ $theme: $theme-name
63
+ );
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+
70
+ // Generate state-aware utilities.
71
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
72
+ @each $state-name, $value in root-defaults.$state-selectors {
73
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
74
+
75
+ // For each inset property, create a utility class.
76
+ @each $type, $property in defaults.$inset-properties {
77
+ @each $name, $value in defaults.$inset-values {
78
+ $selector: "#{$selector-prefix}#{$type}-#{$name}";
79
+
27
80
  @include utility.create(
28
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{$type}-#{$name}",
81
+ $selector,
29
82
  $property,
30
83
  $value,
31
- $screen-size
84
+ $state: $state-name
32
85
  );
33
86
  }
34
87
  }
@@ -9,7 +9,7 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // Justify content properties.
12
- $justify-content-class-prefix: "justify-content-" !default;
12
+ $justify-content-selector-prefix: "justify-content-" !default;
13
13
  $base-justify-content-properties: (
14
14
  normal: normal,
15
15
  start: flex-start,
@@ -27,7 +27,7 @@ $justify-content-properties: map.merge(
27
27
  );
28
28
 
29
29
  // Justify items properties.
30
- $justify-items-class-prefix: "justify-items-" !default;
30
+ $justify-items-selector-prefix: "justify-items-" !default;
31
31
  $base-justify-items-properties: (
32
32
  start: start,
33
33
  end: end,
@@ -41,7 +41,7 @@ $justify-items-properties: map.merge(
41
41
  );
42
42
 
43
43
  // Justify self properties.
44
- $justify-self-class-prefix: "justify-self-" !default;
44
+ $justify-self-selector-prefix: "justify-self-" !default;
45
45
  $base-justify-self-properties: (
46
46
  auto: auto,
47
47
  start: start,
@@ -55,5 +55,7 @@ $justify-self-properties: map.merge(
55
55
  $custom-justify-self-properties
56
56
  );
57
57
 
58
- // Responsive utility flag.
59
- $responsive: false !default;
58
+ // Utility modifier flags.
59
+ $screen-aware: false !default;
60
+ $theme-aware: false !default;
61
+ $state-aware: false !default;
@@ -6,68 +6,161 @@
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 justify content property, create a utility class.
15
18
  @each $name, $value in defaults.$justify-content-properties {
16
- @include utility.create(
17
- ".#{defaults.$justify-content-class-prefix}#{$name}",
18
- justify-content,
19
- $value
20
- );
19
+ $selector: "#{$selector-prefix}#{defaults.$justify-content-selector-prefix}#{$name}";
20
+
21
+ @include utility.create($selector, justify-content, $value);
21
22
  }
22
23
 
23
24
  // For each justify items property, create a utility class.
24
25
  @each $name, $value in defaults.$justify-items-properties {
25
- @include utility.create(
26
- ".#{defaults.$justify-items-class-prefix}#{$name}",
27
- justify-items,
28
- $value
29
- );
26
+ $selector: "#{$selector-prefix}#{defaults.$justify-items-selector-prefix}#{$name}";
27
+
28
+ @include utility.create($selector, justify-items, $value);
30
29
  }
31
30
 
32
31
  // For each justify self property, create a utility class.
33
32
  @each $name, $value in defaults.$justify-self-properties {
34
- @include utility.create(
35
- ".#{defaults.$justify-self-class-prefix}#{$name}",
36
- justify-self,
37
- $value
38
- );
33
+ $selector: "#{$selector-prefix}#{defaults.$justify-self-selector-prefix}#{$name}";
34
+
35
+ @include utility.create($selector, justify-self, $value);
36
+ }
37
+
38
+ // Generate screen-aware utilities.
39
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
40
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
41
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
42
+
43
+ // For each justify content property, create a utility class.
44
+ @each $name, $value in defaults.$justify-content-properties {
45
+ $selector: "#{$selector-prefix}#{defaults.$justify-content-selector-prefix}#{$name}";
46
+
47
+ @include utility.create(
48
+ $selector,
49
+ justify-content,
50
+ $value,
51
+ $screen: $screen-name
52
+ );
53
+ }
54
+
55
+ // For each justify items property, create a utility class.
56
+ @each $name, $value in defaults.$justify-items-properties {
57
+ $selector: "#{$selector-prefix}#{defaults.$justify-items-selector-prefix}#{$name}";
58
+
59
+ @include utility.create(
60
+ $selector,
61
+ justify-items,
62
+ $value,
63
+ $screen: $screen-name
64
+ );
65
+ }
66
+
67
+ // For each justify self property, create a utility class.
68
+ @each $name, $value in defaults.$justify-self-properties {
69
+ $selector: "#{$selector-prefix}#{defaults.$justify-self-selector-prefix}#{$name}";
70
+
71
+ @include utility.create(
72
+ $selector,
73
+ justify-self,
74
+ $value,
75
+ $screen: $screen-name
76
+ );
77
+ }
78
+ }
79
+ }
80
+
81
+ // Generate theme-aware utilities.
82
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
83
+ @each $theme-name, $colors in color.$themes {
84
+ @if $theme-name != active {
85
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
86
+
87
+ // For each justify content property, create a utility class.
88
+ @each $name, $value in defaults.$justify-content-properties {
89
+ $selector: "#{$selector-prefix}#{defaults.$justify-content-selector-prefix}#{$name}";
90
+
91
+ @include utility.create(
92
+ $selector,
93
+ justify-content,
94
+ $value,
95
+ $theme: $theme-name
96
+ );
97
+ }
98
+
99
+ // For each justify items property, create a utility class.
100
+ @each $name, $value in defaults.$justify-items-properties {
101
+ $selector: "#{$selector-prefix}#{defaults.$justify-items-selector-prefix}#{$name}";
102
+
103
+ @include utility.create(
104
+ $selector,
105
+ justify-items,
106
+ $value,
107
+ $theme: $theme-name
108
+ );
109
+ }
110
+
111
+ // For each justify self property, create a utility class.
112
+ @each $name, $value in defaults.$justify-self-properties {
113
+ $selector: "#{$selector-prefix}#{defaults.$justify-self-selector-prefix}#{$name}";
114
+
115
+ @include utility.create(
116
+ $selector,
117
+ justify-self,
118
+ $value,
119
+ $theme: $theme-name
120
+ );
121
+ }
122
+ }
123
+ }
39
124
  }
40
125
 
41
- // Generate responsive utilities.
42
- @if defaults.$responsive and root-defaults.$responsive-utilities {
43
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
126
+ // Generate state-aware utilities.
127
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
128
+ @each $state-name, $value in root-defaults.$state-selectors {
129
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
130
+
44
131
  // For each justify content property, create a utility class.
45
132
  @each $name, $value in defaults.$justify-content-properties {
133
+ $selector: "#{$selector-prefix}#{defaults.$justify-content-selector-prefix}#{$name}";
134
+
46
135
  @include utility.create(
47
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$justify-content-class-prefix}#{$name}",
136
+ $selector,
48
137
  justify-content,
49
138
  $value,
50
- $screen-size
139
+ $state: $state-name
51
140
  );
52
141
  }
53
142
 
54
143
  // For each justify items property, create a utility class.
55
144
  @each $name, $value in defaults.$justify-items-properties {
145
+ $selector: "#{$selector-prefix}#{defaults.$justify-items-selector-prefix}#{$name}";
146
+
56
147
  @include utility.create(
57
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$justify-items-class-prefix}#{$name}",
148
+ $selector,
58
149
  justify-items,
59
150
  $value,
60
- $screen-size
151
+ $state: $state-name
61
152
  );
62
153
  }
63
154
 
64
155
  // For each justify self property, create a utility class.
65
156
  @each $name, $value in defaults.$justify-self-properties {
157
+ $selector: "#{$selector-prefix}#{defaults.$justify-self-selector-prefix}#{$name}";
158
+
66
159
  @include utility.create(
67
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$justify-self-class-prefix}#{$name}",
160
+ $selector,
68
161
  justify-self,
69
162
  $value,
70
- $screen-size
163
+ $state: $state-name
71
164
  );
72
165
  }
73
166
  }
@@ -9,7 +9,7 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // List style type properties.
12
- $list-style-type-class-prefix: "list-style-" !default;
12
+ $list-style-type-selector-prefix: "list-style-" !default;
13
13
  $base-list-style-type-properties: (
14
14
  none: none,
15
15
  disc: disc,
@@ -24,7 +24,7 @@ $list-style-type-properties: map.merge(
24
24
  );
25
25
 
26
26
  // List style position properties.
27
- $list-style-position-class-prefix: "list-style-" !default;
27
+ $list-style-position-selector-prefix: "list-style-" !default;
28
28
  $base-list-style-position-properties: (
29
29
  inside: inside,
30
30
  outside: outside,
@@ -35,5 +35,7 @@ $list-style-position-properties: map.merge(
35
35
  $custom-list-style-position-properties
36
36
  );
37
37
 
38
- // Responsive utility flag.
39
- $responsive: false !default;
38
+ // Utility modifier flags.
39
+ $screen-aware: false !default;
40
+ $theme-aware: false !default;
41
+ $state-aware: false !default;
@@ -6,49 +6,118 @@
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 list style type property, create a utility class.
15
18
  @each $name, $property in defaults.$list-style-type-properties {
16
- @include utility.create(
17
- ".#{defaults.$list-style-type-class-prefix}#{$name}",
18
- list-style-type,
19
- $property
20
- );
19
+ $selector: "#{$selector-prefix}#{defaults.$list-style-type-selector-prefix}#{$name}";
20
+
21
+ @include utility.create($selector, list-style-type, $property);
21
22
  }
22
23
 
23
24
  // For each list style position property, create a utility class.
24
25
  @each $name, $property in defaults.$list-style-position-properties {
25
- @include utility.create(
26
- ".#{defaults.$list-style-position-class-prefix}#{$name}",
27
- list-style-position,
28
- $property
29
- );
26
+ $selector: "#{$selector-prefix}#{defaults.$list-style-position-selector-prefix}#{$name}";
27
+
28
+ @include utility.create($selector, list-style-position, $property);
30
29
  }
31
30
 
32
- // Generate responsive utilities.
33
- @if defaults.$responsive and root-defaults.$responsive-utilities {
34
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
31
+ // Generate screen-aware utilities.
32
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
33
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
34
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
35
+
35
36
  // For each list style type property, create a utility class.
36
37
  @each $name, $property in defaults.$list-style-type-properties {
38
+ $selector: "#{$selector-prefix}#{defaults.$list-style-type-selector-prefix}#{$name}";
39
+
37
40
  @include utility.create(
38
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$list-style-type-class-prefix}#{$name}",
41
+ $selector,
39
42
  list-style-type,
40
43
  $property,
41
- $screen-size
44
+ $screen: $screen-name
42
45
  );
43
46
  }
44
47
 
45
48
  // For each list style position property, create a utility class.
46
49
  @each $name, $property in defaults.$list-style-position-properties {
50
+ $selector: "#{$selector-prefix}#{defaults.$list-style-position-selector-prefix}#{$name}";
51
+
52
+ @include utility.create(
53
+ $selector,
54
+ list-style-position,
55
+ $property,
56
+ $screen: $screen-name
57
+ );
58
+ }
59
+ }
60
+ }
61
+
62
+ // Generate theme-aware utilities.
63
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
64
+ @each $theme-name, $colors in color.$themes {
65
+ @if $theme-name != active {
66
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
67
+
68
+ // For each list style type property, create a utility class.
69
+ @each $name, $property in defaults.$list-style-type-properties {
70
+ $selector: "#{$selector-prefix}#{defaults.$list-style-type-selector-prefix}#{$name}";
71
+
72
+ @include utility.create(
73
+ $selector,
74
+ list-style-type,
75
+ $property,
76
+ $theme: $theme-name
77
+ );
78
+ }
79
+
80
+ // For each list style position property, create a utility class.
81
+ @each $name, $property in defaults.$list-style-position-properties {
82
+ $selector: "#{$selector-prefix}#{defaults.$list-style-position-selector-prefix}#{$name}";
83
+
84
+ @include utility.create(
85
+ $selector,
86
+ list-style-position,
87
+ $property,
88
+ $theme: $theme-name
89
+ );
90
+ }
91
+ }
92
+ }
93
+ }
94
+
95
+ // Generate state-aware utilities.
96
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
97
+ @each $state-name, $value in root-defaults.$state-selectors {
98
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
99
+
100
+ // For each list style type property, create a utility class.
101
+ @each $name, $property in defaults.$list-style-type-properties {
102
+ $selector: "#{$selector-prefix}#{defaults.$list-style-type-selector-prefix}#{$name}";
103
+
104
+ @include utility.create(
105
+ $selector,
106
+ list-style-type,
107
+ $property,
108
+ $state: $state-name
109
+ );
110
+ }
111
+
112
+ // For each list style position property, create a utility class.
113
+ @each $name, $property in defaults.$list-style-position-properties {
114
+ $selector: "#{$selector-prefix}#{defaults.$list-style-position-selector-prefix}#{$name}";
115
+
47
116
  @include utility.create(
48
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$list-style-position-class-prefix}#{$name}",
117
+ $selector,
49
118
  list-style-position,
50
119
  $property,
51
- $screen-size
120
+ $state: $state-name
52
121
  );
53
122
  }
54
123
  }
@@ -9,7 +9,7 @@
9
9
  @use "sass:map";
10
10
 
11
11
  // Order properties.
12
- $order-class-prefix: "order-" !default;
12
+ $order-selector-prefix: "order-" !default;
13
13
  $base-order-properties: (
14
14
  "none": 0,
15
15
  "first": -9999,
@@ -18,5 +18,7 @@ $base-order-properties: (
18
18
  $custom-order-properties: () !default;
19
19
  $order-properties: map.merge($base-order-properties, $custom-order-properties);
20
20
 
21
- // Responsive utility flag.
22
- $responsive: true !default;
21
+ // Utility modifier flags.
22
+ $screen-aware: true !default;
23
+ $theme-aware: false !default;
24
+ $state-aware: false !default;
@@ -8,11 +8,13 @@
8
8
  @use "../../layout/flex-columns/defaults" as flex-columns-defaults;
9
9
  @use "../../mixins/layer" as *;
10
10
  @use "../../mixins/utility";
11
+ @use "../../theme/color/variables" as color;
11
12
  @use "defaults";
12
13
  @use "sass:map";
13
14
  @use "variables" as *;
14
15
 
15
16
  @include layer(utilities) {
17
+ $selector-prefix: root-defaults.$utility-selector-prefix;
16
18
  $order-max-count: 0;
17
19
 
18
20
  /* stylelint-disable scss/operator-no-newline-after -- Prettier wants to format it this way. */
@@ -26,37 +28,83 @@
26
28
  }
27
29
  /* stylelint-enable scss/operator-no-newline-after */
28
30
 
29
- @each $order-property, $order-value in defaults.$order-properties {
30
- @include utility.create(
31
- ".#{defaults.$order-class-prefix}#{$order-property}",
32
- order,
33
- $order-value
34
- );
31
+ @each $property, $value in defaults.$order-properties {
32
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$property}";
33
+
34
+ @include utility.create($selector, order, $value);
35
35
  }
36
36
 
37
37
  @for $i from 1 through $order-max-count {
38
- @include utility.create(".#{defaults.$order-class-prefix}#{$i}", order, $i);
38
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$i}";
39
+
40
+ @include utility.create($selector, order, $i);
39
41
  }
40
42
 
41
- // Generate responsive utilities.
42
- @if defaults.$responsive and root-defaults.$responsive-utilities {
43
- @each $screen-size in map.keys(root-defaults.$screen-sizes) {
44
- @each $order-property, $order-value in defaults.$order-properties {
43
+ // Generate screen-aware utilities.
44
+ @if defaults.$screen-aware and root-defaults.$screen-aware-utilities {
45
+ @each $screen-name in map.keys(root-defaults.$screen-sizes) {
46
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$screen-name}#{root-defaults.$utility-screen-aware-separator}";
47
+
48
+ @each $property, $value in defaults.$order-properties {
49
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$property}";
50
+
45
51
  @include utility.create(
46
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$order-class-prefix}#{$order-property}",
52
+ $selector,
47
53
  order,
48
- $order-value,
49
- $screen-size
54
+ $value,
55
+ $screen: $screen-name
50
56
  );
51
57
  }
52
58
 
53
59
  @for $i from 1 through $order-max-count {
54
- @include utility.create(
55
- ".#{$screen-size}#{root-defaults.$responsive-separator}#{defaults.$order-class-prefix}#{$i}",
56
- order,
57
- $i,
58
- $screen-size
59
- );
60
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$i}";
61
+
62
+ @include utility.create($selector, order, $i, $screen: $screen-name);
63
+ }
64
+ }
65
+ }
66
+
67
+ // Generate theme-aware utilities.
68
+ @if defaults.$theme-aware and root-defaults.$theme-aware-utilities {
69
+ @each $theme-name, $colors in color.$themes {
70
+ @if $theme-name != active {
71
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$theme-name}#{root-defaults.$utility-theme-aware-separator}";
72
+
73
+ @each $property, $value in defaults.$order-properties {
74
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$property}";
75
+
76
+ @include utility.create(
77
+ $selector,
78
+ order,
79
+ $value,
80
+ $theme: $theme-name
81
+ );
82
+ }
83
+
84
+ @for $i from 1 through $order-max-count {
85
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$i}";
86
+
87
+ @include utility.create($selector, order, $i, $theme: $theme-name);
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ // Generate state-aware utilities.
94
+ @if defaults.$state-aware and root-defaults.$state-aware-utilities {
95
+ @each $state-name, $value in root-defaults.$state-selectors {
96
+ $selector-prefix: "#{root-defaults.$utility-selector-prefix}#{$state-name}#{root-defaults.$utility-state-aware-separator}";
97
+
98
+ @each $property, $value in defaults.$order-properties {
99
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$property}";
100
+
101
+ @include utility.create($selector, order, $value, $state: $state-name);
102
+ }
103
+
104
+ @for $i from 1 through $order-max-count {
105
+ $selector: "#{$selector-prefix}#{defaults.$order-selector-prefix}#{$i}";
106
+
107
+ @include utility.create($selector, order, $i, $state: $state-name);
60
108
  }
61
109
  }
62
110
  }
@@ -8,7 +8,7 @@
8
8
 
9
9
  @use "sass:map";
10
10
 
11
- $position-class-prefix: "position-" !default;
11
+ $position-selector-prefix: "position-" !default;
12
12
  $base-position-properties: (
13
13
  static: static,
14
14
  fixed: fixed,
@@ -22,5 +22,7 @@ $position-properties: map.merge(
22
22
  $custom-position-properties
23
23
  );
24
24
 
25
- // Responsive utility flag.
26
- $responsive: false !default;
25
+ // Utility modifier flags.
26
+ $screen-aware: true !default;
27
+ $theme-aware: false !default;
28
+ $state-aware: false !default;