@nuvoui/core 1.3.5 → 1.4.0

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 (64) hide show
  1. package/LICENSE +21 -0
  2. package/dist/nuvoui.css +322 -258
  3. package/dist/nuvoui.css.map +1 -1
  4. package/dist/nuvoui.min.css +23 -1
  5. package/dist/nuvoui.min.css.map +1 -1
  6. package/package.json +1 -1
  7. package/src/styles/base/_base.scss +148 -147
  8. package/src/styles/base/_reset.scss +41 -49
  9. package/src/styles/build.scss +25 -1
  10. package/src/styles/components/_tooltips.scss +271 -0
  11. package/src/styles/config/_borders.scss +15 -0
  12. package/src/styles/config/_breakpoints.scss +11 -0
  13. package/src/styles/config/_colors.scss +192 -0
  14. package/src/styles/config/_constants.scss +1 -0
  15. package/src/styles/config/_container-queries.scss +1 -0
  16. package/src/styles/config/_feature-flags.scss +33 -0
  17. package/src/styles/config/_layouts.scss +13 -0
  18. package/src/styles/config/_shadows.scss +9 -0
  19. package/src/styles/config/_spacing.scss +41 -0
  20. package/src/styles/config/_theme-validation.scss +59 -0
  21. package/src/styles/config/_typography.scss +45 -0
  22. package/src/styles/functions/_breakpoints.scss +15 -0
  23. package/src/styles/functions/_colors.scss +280 -0
  24. package/src/styles/functions/_css-vars.scss +33 -0
  25. package/src/styles/functions/_feature-flags.scss +20 -0
  26. package/src/styles/functions/_math.scss +72 -0
  27. package/src/styles/functions/_strings.scss +68 -0
  28. package/src/styles/functions/_types.scss +104 -0
  29. package/src/styles/functions/_units.scss +83 -0
  30. package/src/styles/index.scss +26 -5
  31. package/src/styles/layouts/_container.scss +28 -27
  32. package/src/styles/layouts/_flex.scss +340 -337
  33. package/src/styles/layouts/_grid.scss +131 -128
  34. package/src/styles/mixins-map.json +484 -479
  35. package/src/styles/mixins-map.scss +1 -1
  36. package/src/styles/themes/_theme.scss +230 -211
  37. package/src/styles/tools/_accessibility.scss +50 -0
  38. package/src/styles/tools/_container-queries.scss +98 -0
  39. package/src/styles/tools/_feature-support.scss +46 -0
  40. package/src/styles/tools/_media-queries.scss +70 -0
  41. package/src/styles/tools/_modern-layout.scss +49 -0
  42. package/src/styles/utilities/_alignment.scss +35 -34
  43. package/src/styles/utilities/_animations.scss +312 -311
  44. package/src/styles/utilities/_backdrop-filters.scss +194 -193
  45. package/src/styles/utilities/_borders.scss +243 -237
  46. package/src/styles/utilities/_colors.scss +16 -136
  47. package/src/styles/utilities/_cursor.scss +10 -10
  48. package/src/styles/utilities/_display.scss +192 -191
  49. package/src/styles/utilities/_helpers.scss +106 -106
  50. package/src/styles/utilities/_opacity.scss +27 -25
  51. package/src/styles/utilities/_position.scss +124 -121
  52. package/src/styles/utilities/_shadows.scss +171 -169
  53. package/src/styles/utilities/_sizing.scss +197 -194
  54. package/src/styles/utilities/_spacing.scss +230 -227
  55. package/src/styles/utilities/_transforms.scss +235 -234
  56. package/src/styles/utilities/_transitions.scss +136 -135
  57. package/src/styles/utilities/_typography.scss +242 -239
  58. package/src/styles/utilities/_z-index.scss +69 -68
  59. package/src/styles/abstracts/_config.scss +0 -254
  60. package/src/styles/abstracts/_functions.scss +0 -626
  61. package/src/styles/themes/refactored_borders.ipynb +0 -37
  62. package/src/styles/utilities/_container-queries.scss +0 -95
  63. package/src/styles/utilities/_media-queries.scss +0 -189
  64. package/src/styles/utilities/_tooltips.scss +0 -258
@@ -4,128 +4,128 @@
4
4
  @use "sass:list";
5
5
  @use "sass:meta";
6
6
 
7
- @use "../abstracts/config" as VAR;
8
- @use "../abstracts/functions" as FN;
9
-
10
- @if VAR.$enable-debugger {
11
- .NuvoUI-Debugger-Wrapper {
12
- color: #fff;
13
- font-family: Arial, sans-serif;
14
- position: fixed;
15
- z-index: 999999;
16
- inset: 10px auto auto 10px;
17
- pointer-events: none;
18
-
19
- &.top-left {
20
- inset: 10px auto auto 10px;
21
- text-align: left;
22
- }
23
-
24
- &.top-right {
25
- inset: 10px 10px auto auto;
26
- text-align: right;
27
- }
28
-
29
- &.bottom-left {
30
- inset: auto auto 10px 10px;
31
- text-align: left;
32
- }
7
+ @use "../config/feature-flags" as config-flags;
8
+ @use "../config/breakpoints" as config-breakpoint;
9
+
10
+ @if config-flags.$enable-debugger {
11
+ .NuvoUI-Debugger-Wrapper {
12
+ color: #fff;
13
+ font-family: Arial, sans-serif;
14
+ position: fixed;
15
+ z-index: 999999;
16
+ inset: 10px auto auto 10px;
17
+ pointer-events: none;
18
+
19
+ &.top-left {
20
+ inset: 10px auto auto 10px;
21
+ text-align: left;
22
+ }
33
23
 
34
- &.bottom-right {
35
- inset: auto 10px 10px auto;
36
- text-align: right;
37
- }
24
+ &.top-right {
25
+ inset: 10px 10px auto auto;
26
+ text-align: right;
27
+ }
38
28
 
39
- .NuvoUI-Debugger-Main,
40
- .NuvoUI-Debugger {
41
- padding: 10px;
42
- background-color: rgb(0 0 0 / 80%);
43
- border-radius: 5px;
44
- border: 1px solid green;
45
- box-shadow: 0 0 2px 0 #fff;
46
- pointer-events: none;
47
- }
29
+ &.bottom-left {
30
+ inset: auto auto 10px 10px;
31
+ text-align: left;
32
+ }
48
33
 
49
- .NuvoUI-Debugger-Main {
50
- $breakpoint-keys: map.keys(VAR.$breakpoints);
51
- $total: list.length($breakpoint-keys);
34
+ &.bottom-right {
35
+ inset: auto 10px 10px auto;
36
+ text-align: right;
37
+ }
52
38
 
53
- &::before,
54
- &::after {
55
- font-family: "Courier New", Courier, monospace;
56
- font-size: 0.8em;
57
- display: block;
58
- }
39
+ .NuvoUI-Debugger-Main,
40
+ .NuvoUI-Debugger {
41
+ padding: 10px;
42
+ background-color: rgb(0 0 0 / 80%);
43
+ border-radius: 5px;
44
+ border: 1px solid green;
45
+ box-shadow: 0 0 2px 0 #fff;
46
+ pointer-events: none;
47
+ }
59
48
 
60
- &::before {
61
- font-weight: bold;
62
- }
49
+ .NuvoUI-Debugger-Main {
50
+ $breakpoint-keys: map.keys(config-breakpoint.$breakpoints);
51
+ $total: list.length($breakpoint-keys);
63
52
 
64
- @for $i from 1 through $total {
65
- $current: list.nth($breakpoint-keys, $i);
66
- $current-width: map.get(VAR.$breakpoints, $current);
53
+ &::before,
54
+ &::after {
55
+ font-family: "Courier New", Courier, monospace;
56
+ font-size: 0.8em;
57
+ display: block;
58
+ }
67
59
 
68
- @if $i == 1 {
69
- @media (max-width: #{$current-width}) {
70
60
  &::before {
71
- content: "Screen: #{$current}";
61
+ font-weight: bold;
72
62
  }
73
- }
74
- } @else {
75
- $prev: list.nth($breakpoint-keys, $i - 1);
76
- $prev-width: map.get(VAR.$breakpoints, $prev);
77
63
 
78
- @media (min-width: #{$prev-width}) and (max-width: (#{$current-width} - 1)) {
79
- &::before {
80
- content: "Screen: #{$current}";
64
+ @for $i from 1 through $total {
65
+ $current: list.nth($breakpoint-keys, $i);
66
+ $current-width: map.get(config-breakpoint.$breakpoints, $current);
67
+
68
+ @if $i == 1 {
69
+ @media (max-width: #{$current-width}) {
70
+ &::before {
71
+ content: "Screen: #{$current}";
72
+ }
73
+ }
74
+ } @else {
75
+ $prev: list.nth($breakpoint-keys, $i - 1);
76
+ $prev-width: map.get(config-breakpoint.$breakpoints, $prev);
77
+
78
+ @media (min-width: #{$prev-width}) and (max-width: (#{$current-width} - 1)) {
79
+ &::before {
80
+ content: "Screen: #{$current}";
81
+ }
82
+ }
83
+ }
81
84
  }
82
- }
83
- }
84
- }
85
85
 
86
- &::after {
87
- content: attr(data-size);
88
- }
89
- }
86
+ &::after {
87
+ content: attr(data-size);
88
+ }
89
+ }
90
90
 
91
- .NuvoUI-Debugger {
92
- margin-top: 10px;
91
+ .NuvoUI-Debugger {
92
+ margin-top: 10px;
93
93
 
94
- &::before,
95
- &::after {
96
- font-family: "Courier New", Courier, monospace;
97
- font-size: 0.8em;
98
- display: block;
99
- }
94
+ &::before,
95
+ &::after {
96
+ font-family: "Courier New", Courier, monospace;
97
+ font-size: 0.8em;
98
+ display: block;
99
+ }
100
100
 
101
- &::before {
102
- font-weight: bold;
103
- content: attr(data-element);
104
- }
101
+ &::before {
102
+ font-weight: bold;
103
+ content: attr(data-element);
104
+ }
105
105
 
106
- &::after {
107
- content: attr(data-size);
108
- }
109
- }
106
+ &::after {
107
+ content: attr(data-size);
108
+ }
109
+ }
110
110
 
111
- .NuvoUI-Debugger-Close {
112
- color: #fff;
113
- cursor: pointer;
114
- font-size: 14px;
115
- pointer-events: auto;
116
- position: absolute;
117
- right: 0;
118
- top: 0;
119
- background: #00800199;
120
- border-radius: 20px;
121
- height: 14px;
122
- width: 14px;
123
- line-height: 14px;
124
- text-align: center;
125
-
126
- &:hover {
127
- background: #008001;
128
- }
111
+ .NuvoUI-Debugger-Close {
112
+ color: #fff;
113
+ cursor: pointer;
114
+ font-size: 14px;
115
+ pointer-events: auto;
116
+ position: absolute;
117
+ right: 0;
118
+ top: 0;
119
+ background: #00800199;
120
+ border-radius: 20px;
121
+ height: 14px;
122
+ width: 14px;
123
+ line-height: 14px;
124
+ text-align: center;
125
+
126
+ &:hover {
127
+ background: #008001;
128
+ }
129
+ }
129
130
  }
130
- }
131
131
  }
@@ -3,8 +3,10 @@
3
3
 
4
4
  @use "sass:math";
5
5
  @use "sass:meta";
6
- @use "../abstracts/config" as VAR;
7
- @use "../abstracts/functions" as FN;
6
+ @use "../config/feature-flags" as config-flags;
7
+ @use "../config/breakpoints" as config-breakpoint;
8
+ @use "../config/spacing" as config-spacing;
9
+ @use "../functions/feature-flags" as fn-flags;
8
10
 
9
11
  // @component Opacity
10
12
  // @description Controls element transparency with customizable opacity values and interactive states
@@ -58,33 +60,33 @@
58
60
  // @see transitions
59
61
 
60
62
  @mixin opacity($value) {
61
- opacity: calc(#{$value} / 100);
63
+ opacity: calc(#{$value} / 100);
62
64
  }
63
65
 
64
- @if FN.feature-enabled("opacity") {
65
- // Opacity Utilities
66
- @each $i in VAR.$percentages {
67
- #{VAR.$parent-selector} .opacity-#{$i},
68
- #{VAR.$parent-selector} .hover\:opacity-#{$i}:hover,
69
- #{VAR.$parent-selector} .focus\:opacity-#{$i}:focus,
70
- #{VAR.$parent-selector} .active\:opacity-#{$i}:active,
71
- #{VAR.$parent-selector} .group:hover .group-hover\:opacity-#{$i} {
72
- @include opacity($i);
66
+ @if fn-flags.feature-enabled("opacity") {
67
+ // Opacity Utilities
68
+ @each $i in config-spacing.$percentages {
69
+ #{config-flags.$parent-selector} .opacity-#{$i},
70
+ #{config-flags.$parent-selector} .hover\:opacity-#{$i}:hover,
71
+ #{config-flags.$parent-selector} .focus\:opacity-#{$i}:focus,
72
+ #{config-flags.$parent-selector} .active\:opacity-#{$i}:active,
73
+ #{config-flags.$parent-selector} .group:hover .group-hover\:opacity-#{$i} {
74
+ @include opacity($i);
75
+ }
73
76
  }
74
- }
75
77
 
76
- // Responsive Variants for Opacity
77
- @each $breakpoint, $width in VAR.$breakpoints {
78
- @media (min-width: #{$width}) {
79
- @each $i in VAR.$percentages {
80
- #{VAR.$parent-selector} .opacity-#{$i}\@#{$breakpoint},
81
- #{VAR.$parent-selector} .hover\:opacity-#{$i}\@#{$breakpoint}:hover,
82
- #{VAR.$parent-selector} .focus\:opacity-#{$i}\@#{$breakpoint}:focus,
83
- #{VAR.$parent-selector} .active\:opacity-#{$i}\@#{$breakpoint}:active,
84
- #{VAR.$parent-selector} .group:hover .group-hover\:opacity-#{$i}\@#{$breakpoint} {
85
- @include opacity($i);
78
+ // Responsive Variants for Opacity
79
+ @each $breakpoint, $width in config-breakpoint.$breakpoints {
80
+ @media (min-width: #{$width}) {
81
+ @each $i in config-spacing.$percentages {
82
+ #{config-flags.$parent-selector} .opacity-#{$i}\@#{$breakpoint},
83
+ #{config-flags.$parent-selector} .hover\:opacity-#{$i}\@#{$breakpoint}:hover,
84
+ #{config-flags.$parent-selector} .focus\:opacity-#{$i}\@#{$breakpoint}:focus,
85
+ #{config-flags.$parent-selector} .active\:opacity-#{$i}\@#{$breakpoint}:active,
86
+ #{config-flags.$parent-selector} .group:hover .group-hover\:opacity-#{$i}\@#{$breakpoint} {
87
+ @include opacity($i);
88
+ }
89
+ }
86
90
  }
87
- }
88
91
  }
89
- }
90
92
  }
@@ -1,5 +1,8 @@
1
- @use "../abstracts/config" as VAR;
2
- @use "../abstracts/functions" as FN;
1
+ @use "../config/feature-flags" as config-flags;
2
+ @use "../config/breakpoints" as config-breakpoint;
3
+ @use "../config/spacing" as config-spacing;
4
+ @use "../functions/feature-flags" as fn-flags;
5
+ @use "../functions/units" as fn-units;
3
6
 
4
7
  // @component Position
5
8
  // @description Controls element positioning and placement within the document flow
@@ -50,7 +53,7 @@
50
53
  // @include static;
51
54
  // }
52
55
  @mixin static {
53
- position: static;
56
+ position: static;
54
57
  }
55
58
 
56
59
  // @mixin relative
@@ -60,7 +63,7 @@
60
63
  // @include relative;
61
64
  // }
62
65
  @mixin relative {
63
- position: relative;
66
+ position: relative;
64
67
  }
65
68
 
66
69
  // @mixin absolute
@@ -72,7 +75,7 @@
72
75
  // left: 0;
73
76
  // }
74
77
  @mixin absolute {
75
- position: absolute;
78
+ position: absolute;
76
79
  }
77
80
 
78
81
  // @mixin absolute
@@ -84,7 +87,7 @@
84
87
  // left: 0;
85
88
  // }
86
89
  @mixin fixed {
87
- position: fixed;
90
+ position: fixed;
88
91
  }
89
92
 
90
93
  // @mixin sticky
@@ -94,9 +97,9 @@
94
97
  // @include sticky;
95
98
  // }
96
99
  @mixin sticky {
97
- position: sticky;
98
- z-index: 999;
99
- top: 0;
100
+ position: sticky;
101
+ z-index: 999;
102
+ top: 0;
100
103
  }
101
104
 
102
105
  // @mixin top
@@ -108,7 +111,7 @@
108
111
  // @include top(1rem);
109
112
  // }
110
113
  @mixin top($value) {
111
- top: FN.fix-units($value);
114
+ top: fn-units.fix-units($value);
112
115
  }
113
116
 
114
117
  // @mixin right
@@ -120,7 +123,7 @@
120
123
  // @include right(0);
121
124
  // }
122
125
  @mixin right($value) {
123
- right: FN.fix-units($value);
126
+ right: fn-units.fix-units($value);
124
127
  }
125
128
 
126
129
  // @mixin bottom
@@ -132,7 +135,7 @@
132
135
  // @include bottom(0);
133
136
  // }
134
137
  @mixin bottom($value) {
135
- bottom: FN.fix-units($value);
138
+ bottom: fn-units.fix-units($value);
136
139
  }
137
140
 
138
141
  // @mixin left
@@ -144,148 +147,148 @@
144
147
  // @include left(0);
145
148
  // }
146
149
  @mixin left($value) {
147
- left: $value;
150
+ left: $value;
148
151
  }
149
152
 
150
153
  // todo: Documentation
151
154
  @mixin absolute-center {
152
- position: absolute;
153
- left: 50%;
154
- top: 50%;
155
+ position: absolute;
156
+ left: 50%;
157
+ top: 50%;
155
158
 
156
- --translate-x: -50%;
157
- --translate-y: -50%;
159
+ --translate-x: -50%;
160
+ --translate-y: -50%;
158
161
 
159
- transform: translateX(var(--translate-x)) translateY(var(--translate-y)) translateZ(var(--translate-z, 0)) rotate(var(--rotate, 0)) skewX(var(--skew-x, 0)) skewY(var(--skew-y, 0)) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1));
162
+ transform: translateX(var(--translate-x)) translateY(var(--translate-y)) translateZ(var(--translate-z, 0)) rotate(var(--rotate, 0)) skewX(var(--skew-x, 0)) skewY(var(--skew-y, 0)) scaleX(var(--scale-x, 1)) scaleY(var(--scale-y, 1));
160
163
  }
161
164
 
162
165
  // todo: Documentation
163
166
  // Fractional and percentage placements
164
167
  $position-fractions: (
165
- "25p": 25%,
166
- "33p": 33.333%,
167
- "50p": 50%,
168
- "66p": 66.667%,
169
- "75p": 75%,
170
- "100p": 100%,
168
+ "25p": 25%,
169
+ "33p": 33.333%,
170
+ "50p": 50%,
171
+ "66p": 66.667%,
172
+ "75p": 75%,
173
+ "100p": 100%,
171
174
  );
172
175
 
173
176
  // -----------------------------------------------
174
177
  // UTILITY CLASSES
175
178
  // -----------------------------------------------
176
- @if FN.feature-enabled("position") {
177
- // Position Classes
178
- #{VAR.$parent-selector} .static {
179
- @include static;
180
- }
181
-
182
- #{VAR.$parent-selector} .relative {
183
- @include relative;
184
- }
185
-
186
- #{VAR.$parent-selector} .absolute {
187
- @include absolute;
188
- }
189
-
190
- #{VAR.$parent-selector} .fixed {
191
- @include fixed;
192
- }
193
-
194
- #{VAR.$parent-selector} .sticky {
195
- @include sticky;
196
- }
197
-
198
- #{VAR.$parent-selector} .absolute-center {
199
- @include absolute-center;
200
- }
201
-
202
- @each $key, $value in $position-fractions {
203
- #{VAR.$parent-selector} .top-#{$key} {
204
- @include top($value);
205
- }
206
- #{VAR.$parent-selector} .right-#{$key} {
207
- @include right($value);
208
- }
209
- #{VAR.$parent-selector} .bottom-#{$key} {
210
- @include bottom($value);
211
- }
212
- #{VAR.$parent-selector} .left-#{$key} {
213
- @include left($value);
179
+ @if fn-flags.feature-enabled("position") {
180
+ // Position Classes
181
+ #{config-flags.$parent-selector} .static {
182
+ @include static;
214
183
  }
215
- }
216
184
 
217
- // Placement Classes
218
- @each $key, $value in VAR.$spacings {
219
- #{VAR.$parent-selector} .top-#{$key} {
220
- @include top($value);
221
- }
222
- #{VAR.$parent-selector} .right-#{$key} {
223
- @include right($value);
224
- }
225
- #{VAR.$parent-selector} .bottom-#{$key} {
226
- @include bottom($value);
227
- }
228
- #{VAR.$parent-selector} .left-#{$key} {
229
- @include left($value);
185
+ #{config-flags.$parent-selector} .relative {
186
+ @include relative;
230
187
  }
231
- }
232
188
 
233
- // -----------------------------------------------
234
- // RESPONSIVE CLASSES
235
- // -----------------------------------------------
236
-
237
- // Responsive Position Classes
238
- @each $breakpoint, $width in VAR.$breakpoints {
239
- @media (min-width: #{$width}) {
240
- #{VAR.$parent-selector} .static\@#{$breakpoint} {
241
- @include static;
242
- }
243
- #{VAR.$parent-selector} .relative\@#{$breakpoint} {
244
- @include relative;
245
- }
246
- #{VAR.$parent-selector} .absolute\@#{$breakpoint} {
189
+ #{config-flags.$parent-selector} .absolute {
247
190
  @include absolute;
248
- }
249
- #{VAR.$parent-selector} .fixed\@#{$breakpoint} {
191
+ }
192
+
193
+ #{config-flags.$parent-selector} .fixed {
250
194
  @include fixed;
251
- }
252
- #{VAR.$parent-selector} .sticky\@#{$breakpoint} {
195
+ }
196
+
197
+ #{config-flags.$parent-selector} .sticky {
253
198
  @include sticky;
254
- }
255
- #{VAR.$parent-selector} .absolute-center\@#{$breakpoint} {
199
+ }
200
+
201
+ #{config-flags.$parent-selector} .absolute-center {
256
202
  @include absolute-center;
257
- }
203
+ }
258
204
 
259
- // Fractional responsive placements
260
- @each $key, $value in $position-fractions {
261
- #{VAR.$parent-selector} .top-#{$key}\@#{$breakpoint} {
262
- @include top($value);
205
+ @each $key, $value in $position-fractions {
206
+ #{config-flags.$parent-selector} .top-#{$key} {
207
+ @include top($value);
263
208
  }
264
- #{VAR.$parent-selector} .right-#{$key}\@#{$breakpoint} {
265
- @include right($value);
209
+ #{config-flags.$parent-selector} .right-#{$key} {
210
+ @include right($value);
266
211
  }
267
- #{VAR.$parent-selector} .bottom-#{$key}\@#{$breakpoint} {
268
- @include bottom($value);
212
+ #{config-flags.$parent-selector} .bottom-#{$key} {
213
+ @include bottom($value);
269
214
  }
270
- #{VAR.$parent-selector} .left-#{$key}\@#{$breakpoint} {
271
- @include left($value);
215
+ #{config-flags.$parent-selector} .left-#{$key} {
216
+ @include left($value);
272
217
  }
273
- }
218
+ }
274
219
 
275
- @each $key, $value in VAR.$spacings {
276
- #{VAR.$parent-selector} .top-#{$key}\@#{$breakpoint} {
277
- @include top($value);
220
+ // Placement Classes
221
+ @each $key, $value in config-spacing.$spacings {
222
+ #{config-flags.$parent-selector} .top-#{$key} {
223
+ @include top($value);
224
+ }
225
+ #{config-flags.$parent-selector} .right-#{$key} {
226
+ @include right($value);
278
227
  }
279
- #{VAR.$parent-selector} .right-#{$key}\@#{$breakpoint} {
280
- @include right($value);
228
+ #{config-flags.$parent-selector} .bottom-#{$key} {
229
+ @include bottom($value);
281
230
  }
282
- #{VAR.$parent-selector} .bottom-#{$key}\@#{$breakpoint} {
283
- @include bottom($value);
231
+ #{config-flags.$parent-selector} .left-#{$key} {
232
+ @include left($value);
284
233
  }
285
- #{VAR.$parent-selector} .left-#{$key}\@#{$breakpoint} {
286
- @include left($value);
234
+ }
235
+
236
+ // -----------------------------------------------
237
+ // RESPONSIVE CLASSES
238
+ // -----------------------------------------------
239
+
240
+ // Responsive Position Classes
241
+ @each $breakpoint, $width in config-breakpoint.$breakpoints {
242
+ @media (min-width: #{$width}) {
243
+ #{config-flags.$parent-selector} .static\@#{$breakpoint} {
244
+ @include static;
245
+ }
246
+ #{config-flags.$parent-selector} .relative\@#{$breakpoint} {
247
+ @include relative;
248
+ }
249
+ #{config-flags.$parent-selector} .absolute\@#{$breakpoint} {
250
+ @include absolute;
251
+ }
252
+ #{config-flags.$parent-selector} .fixed\@#{$breakpoint} {
253
+ @include fixed;
254
+ }
255
+ #{config-flags.$parent-selector} .sticky\@#{$breakpoint} {
256
+ @include sticky;
257
+ }
258
+ #{config-flags.$parent-selector} .absolute-center\@#{$breakpoint} {
259
+ @include absolute-center;
260
+ }
261
+
262
+ // Fractional responsive placements
263
+ @each $key, $value in $position-fractions {
264
+ #{config-flags.$parent-selector} .top-#{$key}\@#{$breakpoint} {
265
+ @include top($value);
266
+ }
267
+ #{config-flags.$parent-selector} .right-#{$key}\@#{$breakpoint} {
268
+ @include right($value);
269
+ }
270
+ #{config-flags.$parent-selector} .bottom-#{$key}\@#{$breakpoint} {
271
+ @include bottom($value);
272
+ }
273
+ #{config-flags.$parent-selector} .left-#{$key}\@#{$breakpoint} {
274
+ @include left($value);
275
+ }
276
+ }
277
+
278
+ @each $key, $value in config-spacing.$spacings {
279
+ #{config-flags.$parent-selector} .top-#{$key}\@#{$breakpoint} {
280
+ @include top($value);
281
+ }
282
+ #{config-flags.$parent-selector} .right-#{$key}\@#{$breakpoint} {
283
+ @include right($value);
284
+ }
285
+ #{config-flags.$parent-selector} .bottom-#{$key}\@#{$breakpoint} {
286
+ @include bottom($value);
287
+ }
288
+ #{config-flags.$parent-selector} .left-#{$key}\@#{$breakpoint} {
289
+ @include left($value);
290
+ }
291
+ }
287
292
  }
288
- }
289
293
  }
290
- }
291
294
  }