@nuvoui/core 1.1.8 → 1.2.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 (39) hide show
  1. package/README.md +90 -35
  2. package/dist/nuvoui.css +28531 -0
  3. package/dist/nuvoui.css.map +1 -0
  4. package/dist/nuvoui.min.css +2 -1
  5. package/dist/nuvoui.min.css.map +1 -0
  6. package/package.json +48 -27
  7. package/src/styles/abstracts/_config.scss +157 -0
  8. package/src/styles/abstracts/_functions.scss +81 -0
  9. package/src/styles/abstracts/_index.scss +2 -0
  10. package/src/styles/base/_base.scss +2 -2
  11. package/src/styles/base/_index.scss +2 -0
  12. package/src/styles/base/_reset.scss +8 -6
  13. package/src/styles/index.scss +11 -30
  14. package/src/styles/layouts/_container.scss +2 -21
  15. package/src/styles/layouts/_flex.scss +4 -3
  16. package/src/styles/layouts/_grid.scss +3 -35
  17. package/src/styles/layouts/_index.scss +3 -0
  18. package/src/styles/mixins-map.scss +875 -1477
  19. package/src/styles/themes/_index.scss +1 -0
  20. package/src/styles/themes/_theme.scss +175 -57
  21. package/src/styles/utilities/_alignment.scss +1 -1
  22. package/src/styles/utilities/_animations.scss +65 -61
  23. package/src/styles/utilities/_borders.scss +280 -16
  24. package/src/styles/utilities/_colors.scss +68 -49
  25. package/src/styles/utilities/_container-queries.scss +9 -10
  26. package/src/styles/utilities/_display.scss +2 -2
  27. package/src/styles/utilities/_helpers.scss +110 -108
  28. package/src/styles/utilities/_index.scss +19 -0
  29. package/src/styles/utilities/_media-queries.scss +48 -14
  30. package/src/styles/utilities/_opacity.scss +33 -15
  31. package/src/styles/utilities/_position.scss +7 -7
  32. package/src/styles/utilities/_shadows.scss +147 -95
  33. package/src/styles/utilities/_sizing.scss +22 -21
  34. package/src/styles/utilities/_spacing.scss +38 -22
  35. package/src/styles/utilities/_tooltips.scss +153 -105
  36. package/src/styles/utilities/_transitions.scss +1 -1
  37. package/src/styles/utilities/_typography.scss +4 -4
  38. package/src/styles/utilities/_functions.scss +0 -84
  39. package/src/styles/utilities/_variables.scss +0 -126
@@ -1,90 +1,93 @@
1
1
  // _shadows.scss
2
- @use 'sass:map';
3
- @use 'sass:math';
4
- @use 'sass:string';
5
- @use './variables' as VAR;
6
-
7
- // Shadow Variables
8
- $shadow-colors: (
9
- 'default': rgb(0 0 0 / 10%),
10
- 'dark': rgb(0 0 0 / 20%),
11
- 'darker': rgb(0 0 0 / 35%),
12
- 'darkest': rgb(0 0 0 / 50%),
13
- );
2
+ @use "sass:map";
3
+ @use "sass:math";
4
+ @use "sass:string";
5
+ @use "../abstracts" as VAR;
14
6
 
15
7
  $shadow-sizes: (
16
- 'sm': (
17
- 'x': 0,
18
- 'y': 1px,
19
- 'blur': 2px,
20
- 'spread': 0
8
+ "sm": (
9
+ "x": 0,
10
+ "y": 1px,
11
+ "blur": 2px,
12
+ "spread": 0,
13
+ ),
14
+ "md": (
15
+ "x": 0,
16
+ "y": 4px,
17
+ "blur": 6px,
18
+ "spread": -1px,
21
19
  ),
22
- 'md': (
23
- 'x': 0,
24
- 'y': 4px,
25
- 'blur': 6px,
26
- 'spread': -1px
20
+ "lg": (
21
+ "x": 0,
22
+ "y": 10px,
23
+ "blur": 15px,
24
+ "spread": -3px,
27
25
  ),
28
- 'lg': (
29
- 'x': 0,
30
- 'y': 10px,
31
- 'blur': 15px,
32
- 'spread': -3px
26
+ "xl": (
27
+ "x": 0,
28
+ "y": 20px,
29
+ "blur": 25px,
30
+ "spread": -5px,
33
31
  ),
34
- 'xl': (
35
- 'x': 0,
36
- 'y': 20px,
37
- 'blur': 25px,
38
- 'spread': -5px
32
+ "hero": (
33
+ "x": 0,
34
+ "y": 20px,
35
+ "blur": 25px,
36
+ "spread": 5px,
39
37
  ),
40
- 'hero': (
41
- 'x': 0,
42
- 'y': 20px,
43
- 'blur': 25px,
44
- 'spread': 5px
38
+ "monster": (
39
+ "x": 0,
40
+ "y": 20px,
41
+ "blur": 55px,
42
+ "spread": 20px,
45
43
  ),
46
- 'monster': (
47
- 'x': 0,
48
- 'y': 20px,
49
- 'blur': 55px,
50
- 'spread': 20px
51
- )
52
44
  );
53
45
 
54
- // Shadow Mixins
46
+ /**
47
+ * Generates a CSS shadow string from a given size.
48
+ *
49
+ * @param {String} $size - The shadow size.
50
+ * @param {String} $color - The shadow color.
51
+ * @return {String} - The CSS shadow string.
52
+ */
53
+
55
54
  @mixin shadow-base($x, $y, $blur, $spread, $color) {
56
- transition: box-shadow 0.2s ease-in-out;
57
55
  box-shadow: $x $y $blur $spread $color;
58
56
  }
59
57
 
60
- @mixin shadow($size: 'md', $color: 'default') {
58
+ /**
59
+ * Generates a CSS shadow string from a given size.
60
+ *
61
+ * @param {String} $size - The shadow size.
62
+ * @param {String} $color - The shadow color.
63
+ */
64
+ @mixin shadow($size: "md", $color: "default") {
61
65
  @if not map.has-key($shadow-sizes, $size) {
62
66
  @warn "Shadow size '#{$size}' not found in $shadow-sizes map";
63
- $size: 'md'; // Fallback to default
67
+ $size: "md"; // Fallback to default
64
68
  }
65
- @if not map.has-key($shadow-colors, $color) {
66
- @warn "Shadow color '#{$color}' not found in $shadow-colors map";
67
- $color: 'default'; // Fallback to default
69
+ @if not map.has-key(VAR.$shadow-colors, $color) {
70
+ @warn "Shadow color '#{$color}' not found in VAR.$shadow-colors map";
71
+ $color: "default"; // Fallback to default
68
72
  }
69
73
 
70
74
  $shadow: map.get($shadow-sizes, $size);
71
- $shadow-color: map.get($shadow-colors, $color);
75
+ $shadow-color: map.get(VAR.$shadow-colors, $color);
72
76
  @include shadow-base(
73
- map.get($shadow, 'x'),
74
- map.get($shadow, 'y'),
75
- map.get($shadow, 'blur'),
76
- map.get($shadow, 'spread'),
77
+ map.get($shadow, "x"),
78
+ map.get($shadow, "y"),
79
+ map.get($shadow, "blur"),
80
+ map.get($shadow, "spread"),
77
81
  $shadow-color
78
82
  );
79
83
  }
80
84
 
81
- @mixin shadow-inset($size: 'md', $color: 'default') {
85
+ @mixin shadow-inset($size: "md", $color: "default") {
82
86
  $shadow: map.get($shadow-sizes, $size);
83
- $shadow-color: map.get($shadow-colors, $color);
84
-
85
- box-shadow: inset map.get($shadow, 'x') map.get($shadow, 'y')
86
- map.get($shadow, 'blur') map.get($shadow, 'spread')
87
- $shadow-color;
87
+ $shadow-color: map.get(VAR.$shadow-colors, $color);
88
+
89
+ box-shadow: inset map.get($shadow, "x") map.get($shadow, "y") map.get($shadow, "blur") map.get($shadow, "spread")
90
+ $shadow-color;
88
91
  }
89
92
 
90
93
  // Utility Classes
@@ -96,69 +99,117 @@ $shadow-sizes: (
96
99
  .shadow-#{$size} {
97
100
  @include shadow($size);
98
101
  }
99
-
100
- .shadow-#{$size}-dark {
101
- @include shadow($size, 'dark');
102
+
103
+ // Shadow with color variants
104
+ @each $color-name, $color-value in VAR.$shadow-colors {
105
+ @if $color-name != "default" {
106
+ .shadow-#{$size}-#{$color-name} {
107
+ @include shadow($size, $color-name);
108
+ }
109
+ }
102
110
  }
103
-
111
+
104
112
  .shadow-inset-#{$size} {
105
113
  @include shadow-inset($size);
106
114
  }
107
115
 
116
+ // Inset shadows with color variants
117
+ @each $color-name, $color-value in VAR.$shadow-colors {
118
+ @if $color-name != "default" {
119
+ .shadow-inset-#{$size}-#{$color-name} {
120
+ @include shadow-inset($size, $color-name);
121
+ }
122
+ }
123
+ }
108
124
 
109
- // hover shadows
125
+ // Hover shadows
110
126
  .hover\:shadow-#{$size}:hover {
111
127
  @include shadow($size);
112
128
  }
113
-
114
- .hover\:shadow-#{$size}-dark:hover {
115
- @include shadow($size, 'dark');
116
- }
117
-
118
- .hover\:shadow-inset-#{$size}:hover {
119
- @include shadow-inset($size);
129
+
130
+ // Hover shadows with color variants
131
+ @each $color-name, $color-value in VAR.$shadow-colors {
132
+ @if $color-name != "default" {
133
+ .hover\:shadow-#{$size}-#{$color-name}:hover {
134
+ @include shadow($size, $color-name);
135
+ }
136
+ }
120
137
  }
121
-
122
138
 
123
- // focus shadows
124
- .focus\:shadow-#{$size}:hover {
139
+ // Focus shadows
140
+ .focus\:shadow-#{$size}:focus {
125
141
  @include shadow($size);
126
142
  }
127
-
128
- .focus\:shadow-#{$size}-dark:hover {
129
- @include shadow($size, 'dark');
130
- }
131
-
132
- .focus\:shadow-inset-#{$size}:hover {
133
- @include shadow-inset($size);
143
+
144
+ // Focus shadows with color variants
145
+ @each $color-name, $color-value in VAR.$shadow-colors {
146
+ @if $color-name != "default" {
147
+ .focus\:shadow-#{$size}-#{$color-name}:focus {
148
+ @include shadow($size, $color-name);
149
+ }
150
+ }
134
151
  }
135
- }
136
152
 
137
- // Active variants
138
- @each $size, $values in $shadow-sizes {
153
+ // Active shadows
139
154
  .active\:shadow-#{$size}:active {
140
155
  @include shadow($size);
141
156
  }
157
+
158
+ // Active shadows with color variants
159
+ @each $color-name, $color-value in VAR.$shadow-colors {
160
+ @if $color-name != "default" {
161
+ .active\:shadow-#{$size}-#{$color-name}:active {
162
+ @include shadow($size, $color-name);
163
+ }
164
+ }
165
+ }
142
166
  }
143
167
 
144
168
  // Responsive variants
145
169
  @each $breakpoint, $width in VAR.$breakpoints {
146
170
  @media (min-width: #{$width}) {
147
- // Regular shadows with breakpoints
148
171
  @each $size, $values in $shadow-sizes {
172
+ // Regular shadows with breakpoints
149
173
  .shadow-#{$size}\@#{$breakpoint} {
150
174
  @include shadow($size);
151
175
  }
152
-
176
+
177
+ // Shadows with color variants at breakpoints
178
+ @each $color-name, $color-value in VAR.$shadow-colors {
179
+ @if $color-name != "default" {
180
+ .shadow-#{$size}-#{$color-name}\@#{$breakpoint} {
181
+ @include shadow($size, $color-name);
182
+ }
183
+ }
184
+ }
185
+
153
186
  // Hover shadows with breakpoints
154
187
  .hover\:shadow-#{$size}\@#{$breakpoint}:hover {
155
188
  @include shadow($size);
156
189
  }
157
-
190
+
191
+ // Hover shadows with color variants at breakpoints
192
+ @each $color-name, $color-value in VAR.$shadow-colors {
193
+ @if $color-name != "default" {
194
+ .hover\:shadow-#{$size}-#{$color-name}\@#{$breakpoint}:hover {
195
+ @include shadow($size, $color-name);
196
+ }
197
+ }
198
+ }
199
+
158
200
  // Focus shadows with breakpoints
159
201
  .focus\:shadow-#{$size}\@#{$breakpoint}:focus {
160
202
  @include shadow($size);
161
203
  }
204
+
205
+ // Focus shadows with color variants at breakpoints
206
+ @each $color-name, $color-value in VAR.$shadow-colors {
207
+ @if $color-name != "default" {
208
+ .focus\:shadow-#{$size}-#{$color-name}\@#{$breakpoint}:focus {
209
+ @include shadow($size, $color-name);
210
+ }
211
+ }
212
+ }
162
213
  }
163
214
  }
164
215
  }
@@ -166,16 +217,17 @@ $shadow-sizes: (
166
217
  @for $i from 1 through 5 {
167
218
  .elevation-#{$i} {
168
219
  @if $i == 1 {
169
- @include shadow('sm');
220
+ @include shadow("sm");
170
221
  } @else if $i == 2 {
171
- @include shadow('md');
222
+ @include shadow("md");
172
223
  } @else if $i == 3 {
173
- @include shadow('lg');
224
+ @include shadow("lg");
174
225
  } @else if $i == 4 {
175
- @include shadow('xl');
226
+ @include shadow("xl");
176
227
  } @else if $i == 5 {
177
- @include shadow('monster');
228
+ @include shadow("monster");
178
229
  }
230
+
179
231
  z-index: $i;
180
232
  }
181
- }
233
+ }
@@ -1,35 +1,36 @@
1
1
  // _spacing.scss
2
2
 
3
3
  @use 'sass:math';
4
- @use './variables' as VAR;
4
+ @use 'sass:string' as str;
5
+ @use '../abstracts' as VAR;
5
6
  @use './container-queries' as Q;
6
- @use './media-queries' as MC;
7
+ @use './media-queries' as MQ;
7
8
 
8
- @mixin width($value) { width: $value; }
9
- @mixin height($value) { height: $value; }
9
+ @mixin width($value) { & { width: $value; } }
10
+ @mixin height($value) { & { height: $value; } }
10
11
  @mixin min-width($value) { min-width: $value; }
11
12
  @mixin min-height($value) { min-height: $value; }
12
13
  @mixin max-width($value) { max-width: $value; }
13
14
  @mixin max-height($value) { max-height: $value; }
14
15
 
15
- @mixin width-percent($i) { width: $i + '%'; }
16
- @mixin height-percent($i) { height: $i + '%'; }
17
- @mixin min-width-percent($i) { min-width: $i + '%'; }
18
- @mixin min-height-percent($i) { min-height: $i + '%'; }
19
- @mixin max-width-percent($i) { max-width: $i + '%'; }
20
- @mixin max-height-percent($i) { max-height: $i + '%'; }
16
+ @mixin width-percent($i) { & { width: str.unquote($i + '%'); } }
17
+ @mixin height-percent($i) { & { height: str.unquote($i + '%'); } }
18
+ @mixin min-width-percent($i) { & { min-width: str.unquote($i + '%'); } }
19
+ @mixin min-height-percent($i) { & { min-height: str.unquote($i + '%'); } }
20
+ @mixin max-width-percent($i) { & { max-width: str.unquote($i + '%'); } }
21
+ @mixin max-height-percent($i) { & { max-height: str.unquote($i + '%'); } }
21
22
 
22
- @mixin w-auto { width: auto; }
23
- @mixin w-full { width: 100%; }
24
- @mixin h-auto { height: auto; }
25
- @mixin h-full { height: 100%; }
26
- @mixin min-w-full { min-width: 100%; }
27
- @mixin max-w-full { max-width: 100%; }
28
- @mixin min-h-full { min-height: 100%; }
29
- @mixin max-h-full { max-height: 100%; }
23
+ @mixin w-auto { & { width: auto; } }
24
+ @mixin w-full { & { width: 100%; } }
25
+ @mixin h-auto { & { height: auto; } }
26
+ @mixin h-full { & { height: 100%; } }
27
+ @mixin min-w-full { & { min-width: 100%; } }
28
+ @mixin max-w-full { & { max-width: 100%; } }
29
+ @mixin min-h-full { & { min-height: 100%; } }
30
+ @mixin max-h-full { & { max-height: 100%; } }
30
31
 
31
- @mixin w-screen { width: 100vw; }
32
- @mixin h-screen { height: 100dvh; }
32
+ @mixin w-screen { & { width: 100vw; } }
33
+ @mixin h-screen { & { height: 100dvh; } }
33
34
 
34
35
  .w-screen { @include w-screen; }
35
36
  .h-screen { @include h-screen; }
@@ -72,7 +73,7 @@
72
73
  .min-w-#{$breakpoint} { @include min-width($width); }
73
74
  .max-w-#{$breakpoint} { @include max-width($width); }
74
75
 
75
- @include MC.media-up ($breakpoint) {
76
+ @include MQ.media-up ($breakpoint) {
76
77
  // Generate utilities from spacing map
77
78
  @each $i in VAR.$percentages {
78
79
  .w-#{$i}p\@#{$breakpoint} { @include width-percent($i); }
@@ -1,7 +1,7 @@
1
1
  @use 'sass:math';
2
2
  @use 'sass:string';
3
3
  @use 'sass:meta';
4
- @use './variables' as *;
4
+ @use '../abstracts' as *;
5
5
 
6
6
 
7
7
  /**
@@ -73,9 +73,9 @@
73
73
  * @see flex, grid, display
74
74
  */
75
75
 
76
- //-----------------------------------------------
76
+ // -----------------------------------------------
77
77
  // HELPER FUNCTIONS
78
- //-----------------------------------------------
78
+ // -----------------------------------------------
79
79
 
80
80
  /**
81
81
  * @function format-unit-value
@@ -108,16 +108,16 @@
108
108
  }
109
109
 
110
110
 
111
- //-----------------------------------------------
111
+ // -----------------------------------------------
112
112
  // PADDING MIXINS
113
- //-----------------------------------------------
113
+ // -----------------------------------------------
114
114
 
115
115
  /**
116
116
  * @mixin p
117
117
  * @description Sets padding on all sides
118
118
  * @param {Number|String} $val - Padding value
119
119
  */
120
- @mixin p($val) { padding: format-unit-value($val); }
120
+ @mixin p($val) { & { padding: format-unit-value($val); }}
121
121
 
122
122
  /**
123
123
  * @mixin px
@@ -126,6 +126,7 @@
126
126
  */
127
127
  @mixin px($val) {
128
128
  $val: format-unit-value($val);
129
+
129
130
  padding-left: $val;
130
131
  padding-right: $val;
131
132
  }
@@ -137,6 +138,7 @@
137
138
  */
138
139
  @mixin py($val) {
139
140
  $val: format-unit-value($val);
141
+
140
142
  padding-top: $val;
141
143
  padding-bottom: $val;
142
144
  }
@@ -169,9 +171,9 @@
169
171
  */
170
172
  @mixin pl($val) { $val: format-unit-value($val); padding-left: $val; }
171
173
 
172
- //-----------------------------------------------
174
+ // -----------------------------------------------
173
175
  // MARGIN MIXINS
174
- //-----------------------------------------------
176
+ // -----------------------------------------------
175
177
 
176
178
  /**
177
179
  * @mixin m
@@ -187,6 +189,7 @@
187
189
  */
188
190
  @mixin mx($val) {
189
191
  $val: format-unit-value($val);
192
+
190
193
  margin-left: $val;
191
194
  margin-right: $val;
192
195
  }
@@ -198,6 +201,7 @@
198
201
  */
199
202
  @mixin my($val) {
200
203
  $val: format-unit-value($val);
204
+
201
205
  margin-top: $val;
202
206
  margin-bottom: $val;
203
207
  }
@@ -249,27 +253,39 @@
249
253
  @mixin mx-auto { @include ml-auto; @include mr-auto; }
250
254
 
251
255
 
252
- //-----------------------------------------------
256
+ // -----------------------------------------------
253
257
  // SPACING MIXINS
254
- //-----------------------------------------------
258
+ // -----------------------------------------------
255
259
 
256
260
  /**
257
261
  * @mixin space-y
258
262
  * @description Adds vertical spacing between direct children
259
263
  * @param {Number|String} $i - Space amount
260
264
  */
261
- @mixin space-y($i) { & > * + * { $i: format-unit-value($i); margin-top: $i; } }
265
+ @mixin space-y($i) {
266
+ & > * + * {
267
+ $i: format-unit-value($i);
268
+
269
+ margin-top: $i;
270
+ }
271
+ }
262
272
 
263
273
  /**
264
274
  * @mixin space-x
265
275
  * @description Adds horizontal spacing between direct children
266
276
  * @param {Number|String} $i - Space amount
267
277
  */
268
- @mixin space-x($i) { & > * + * { $i: format-unit-value($i); margin-left: $i; } }
278
+ @mixin space-x($i) {
279
+ & > * + * {
280
+ $i: format-unit-value($i);
281
+
282
+ margin-left: $i;
283
+ }
284
+ }
269
285
 
270
- //-----------------------------------------------
286
+ // -----------------------------------------------
271
287
  // GAP MIXINS
272
- //-----------------------------------------------
288
+ // -----------------------------------------------
273
289
 
274
290
  /**
275
291
  * @mixin gap
@@ -292,23 +308,23 @@
292
308
  */
293
309
  @mixin gap-y($val) { $val: format-unit-value($val); row-gap: $val; }
294
310
 
295
- //-----------------------------------------------
311
+ // -----------------------------------------------
296
312
  // AUTO MARGIN UTILITY CLASSES
297
- //-----------------------------------------------
313
+ // -----------------------------------------------
298
314
 
299
315
  .mx-auto { @include mx-auto; }
300
316
  .ml-auto { @include ml-auto; }
301
317
  .mr-auto { @include mr-auto; }
302
318
 
303
- //-----------------------------------------------
319
+ // -----------------------------------------------
304
320
  // GAP AUTO CLASS
305
- //-----------------------------------------------
321
+ // -----------------------------------------------
306
322
 
307
323
  .gap-auto { gap: auto; }
308
324
 
309
- //-----------------------------------------------
325
+ // -----------------------------------------------
310
326
  // SPACING CLASSES
311
- //-----------------------------------------------
327
+ // -----------------------------------------------
312
328
 
313
329
  @each $key, $value in $spacings {
314
330
  // Padding classes
@@ -340,9 +356,9 @@
340
356
  }
341
357
 
342
358
 
343
- //-----------------------------------------------
359
+ // -----------------------------------------------
344
360
  // RESPONSIVE SPACING CLASSES
345
- //-----------------------------------------------
361
+ // -----------------------------------------------
346
362
 
347
363
  @each $breakpoint, $width in $breakpoints {
348
364
  @media (min-width: #{$width}) {