@nuvoui/core 1.3.0 → 1.3.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 (34) hide show
  1. package/dist/nuvoui.css +775 -1406
  2. package/dist/nuvoui.css.map +1 -1
  3. package/dist/nuvoui.min.css +1 -1
  4. package/dist/nuvoui.min.css.map +1 -1
  5. package/package.json +2 -2
  6. package/src/styles/abstracts/_config.scss +30 -2
  7. package/src/styles/abstracts/_functions.scss +16 -5
  8. package/src/styles/base/_base.scss +6 -6
  9. package/src/styles/base/_reset.scss +0 -2
  10. package/src/styles/build.scss +3 -0
  11. package/src/styles/layouts/_container.scss +8 -1
  12. package/src/styles/layouts/_flex.scss +124 -228
  13. package/src/styles/layouts/_grid.scss +14 -43
  14. package/src/styles/themes/_theme.scss +10 -10
  15. package/src/styles/themes/refactored_borders.ipynb +37 -0
  16. package/src/styles/utilities/_alignment.scss +2 -1
  17. package/src/styles/utilities/_animations.scss +20 -32
  18. package/src/styles/utilities/_backdrop-filters.scss +7 -11
  19. package/src/styles/utilities/_borders.scss +80 -270
  20. package/src/styles/utilities/_container-queries.scss +17 -21
  21. package/src/styles/utilities/_cursor.scss +2 -1
  22. package/src/styles/utilities/_display.scss +73 -44
  23. package/src/styles/utilities/_helpers.scss +1 -0
  24. package/src/styles/utilities/_media-queries.scss +3 -5
  25. package/src/styles/utilities/_opacity.scss +52 -67
  26. package/src/styles/utilities/_position.scss +104 -132
  27. package/src/styles/utilities/_shadows.scss +9 -14
  28. package/src/styles/utilities/_sizing.scss +1 -1
  29. package/src/styles/utilities/_spacing.scss +143 -205
  30. package/src/styles/utilities/_tooltips.scss +203 -200
  31. package/src/styles/utilities/_transforms.scss +9 -11
  32. package/src/styles/utilities/_transitions.scss +8 -10
  33. package/src/styles/utilities/_typography.scss +17 -22
  34. package/src/styles/utilities/_z-index.scss +12 -19
@@ -5,6 +5,8 @@
5
5
  @use "sass:map";
6
6
  @use "sass:meta";
7
7
  @use "sass:string" as str;
8
+ @use "sass:list";
9
+
8
10
  @use "../abstracts/config" as VAR;
9
11
  @use "../abstracts/functions" as FN;
10
12
 
@@ -38,13 +40,18 @@ $border-styles: (solid, dashed, dotted, double, none);
38
40
 
39
41
  // Core Border Mixins - improved to include style and color by default
40
42
  // SKIP Documentation
41
- @mixin border($val, $style: solid, $color: var(--border-base)) {
43
+ @mixin border($val, $style: solid, $color: var(--border-color)) {
42
44
  $val: FN.fix-units($val);
43
45
 
46
+ --border-size: #{$val};
47
+
44
48
  border-width: $val;
45
49
  @if $val != 0 {
46
50
  border-style: $style;
47
51
  border-color: $color;
52
+
53
+ --border-style: #{$style};
54
+ --border-color: #{$color};
48
55
  }
49
56
  }
50
57
 
@@ -53,8 +60,8 @@ $border-styles: (solid, dashed, dotted, double, none);
53
60
 
54
61
  border-top-width: $val;
55
62
  @if $val != 0 {
56
- border-top-style: solid;
57
- border-top-color: var(--border);
63
+ border-top-style: var(--border-style, solid);
64
+ border-top-color: var(--border-color);
58
65
  }
59
66
  }
60
67
 
@@ -63,8 +70,8 @@ $border-styles: (solid, dashed, dotted, double, none);
63
70
 
64
71
  border-right-width: $val;
65
72
  @if $val != 0 {
66
- border-right-style: solid;
67
- border-right-color: var(--border);
73
+ border-right-style: var(--border-style, solid);
74
+ border-right-color: var(--border-color);
68
75
  }
69
76
  }
70
77
 
@@ -73,8 +80,8 @@ $border-styles: (solid, dashed, dotted, double, none);
73
80
 
74
81
  border-bottom-width: $val;
75
82
  @if $val != 0 {
76
- border-bottom-style: solid;
77
- border-bottom-color: var(--border);
83
+ border-bottom-style: var(--border-style, solid);
84
+ border-bottom-color: var(--border-color);
78
85
  }
79
86
  }
80
87
 
@@ -83,15 +90,13 @@ $border-styles: (solid, dashed, dotted, double, none);
83
90
 
84
91
  border-left-width: $val;
85
92
  @if $val != 0 {
86
- border-left-style: solid;
87
- border-left-color: var(--border);
93
+ border-left-style: var(--border-style, solid);
94
+ border-left-color: var(--border-color);
88
95
  }
89
96
  }
90
97
 
91
- /**
92
- * @description Applies border radius to all corners
93
- * @param {String} $val - The border radius value
94
- */
98
+ // @description Applies border radius to all corners
99
+ // @param {String} $val - The border radius value
95
100
  @mixin rounded($val: null) {
96
101
  border-radius: get-rounded-value($val);
97
102
  }
@@ -162,319 +167,124 @@ $border-styles: (solid, dashed, dotted, double, none);
162
167
 
163
168
  @mixin pill {
164
169
  @include rounded(9999px);
165
- } // todo: doc missing
170
+ }
166
171
 
167
- // -----------------------------------------------
168
- // UTILITY CLASSES
169
- // -----------------------------------------------
170
- @if VAR.$generate-utility-classes {
172
+ @if FN.feature-enabled("borders") {
171
173
  // Basic border classes (all sides)
172
- .border {
174
+ #{VAR.$parent-selector} .border {
173
175
  @include border(1);
174
176
  }
175
177
 
176
- .border-0 {
178
+ // Common shortcuts for single-side borders
179
+ #{VAR.$parent-selector} .border-0 {
177
180
  @include border(0);
178
181
  }
179
182
 
180
- // All sides border width
181
- @each $width in VAR.$border-widths {
182
- .border-#{$width} {
183
- @include border($width);
184
- }
183
+ #{VAR.$parent-selector} .border-t {
184
+ @include border-top(1);
185
+ }
186
+
187
+ #{VAR.$parent-selector} .border-r {
188
+ @include border-right(1);
189
+ }
190
+
191
+ #{VAR.$parent-selector} .border-b {
192
+ @include border-bottom(1);
193
+ }
194
+
195
+ #{VAR.$parent-selector} .border-l {
196
+ @include border-left(1);
185
197
  }
186
198
 
187
199
  // Directional border width
188
200
  @each $width in VAR.$border-widths {
189
- .border-t-#{$width} {
201
+ #{VAR.$parent-selector} .border-#{$width},
202
+ #{VAR.$parent-selector} .hover\:border-#{$width}:hover,
203
+ #{VAR.$parent-selector} .active\:border-#{$width}:active,
204
+ #{VAR.$parent-selector} .focus\:border-#{$width}:focus,
205
+ #{VAR.$parent-selector} .group:hover .group-hover\:border-#{$width} {
206
+ @include border($width);
207
+ }
208
+ #{VAR.$parent-selector} .border-t-#{$width} {
190
209
  @include border-top($width);
191
210
  }
192
- .border-r-#{$width} {
211
+ #{VAR.$parent-selector} .border-r-#{$width} {
193
212
  @include border-right($width);
194
213
  }
195
- .border-b-#{$width} {
214
+ #{VAR.$parent-selector} .border-b-#{$width} {
196
215
  @include border-bottom($width);
197
216
  }
198
- .border-l-#{$width} {
217
+ #{VAR.$parent-selector} .border-l-#{$width} {
199
218
  @include border-left($width);
200
219
  }
201
220
  }
202
221
 
203
- // Common shortcuts for single-side borders
204
- .border-t {
205
- @include border-top(1);
206
- }
207
-
208
- .border-r {
209
- @include border-right(1);
210
- }
211
-
212
- .border-b {
213
- @include border-bottom(1);
214
- }
215
-
216
- .border-l {
217
- @include border-left(1);
218
- }
219
-
220
222
  // Border radius classes
221
- .rounded {
223
+ #{VAR.$parent-selector} .rounded {
222
224
  @include rounded;
223
- } // Default rounded
224
- .square {
225
+ }
226
+ #{VAR.$parent-selector} .square {
225
227
  @include rounded(0);
226
228
  } // Alias for no radius
227
229
 
228
230
  @each $name, $value in VAR.$border-radii {
229
- .rounded-#{$name} {
231
+ #{VAR.$parent-selector} .rounded-#{$name} {
230
232
  @include rounded($value);
231
233
  }
232
- }
233
-
234
- // Directional border radius
235
- @each $name, $value in VAR.$border-radii {
236
- .rounded-t-#{$name} {
234
+ #{VAR.$parent-selector} .rounded-t-#{$name} {
237
235
  @include rounded-t($value);
238
236
  }
239
- .rounded-r-#{$name} {
237
+ #{VAR.$parent-selector} .rounded-r-#{$name} {
240
238
  @include rounded-r($value);
241
239
  }
242
- .rounded-b-#{$name} {
240
+ #{VAR.$parent-selector} .rounded-b-#{$name} {
243
241
  @include rounded-b($value);
244
242
  }
245
- .rounded-l-#{$name} {
243
+ #{VAR.$parent-selector} .rounded-l-#{$name} {
246
244
  @include rounded-l($value);
247
245
  }
248
246
 
249
247
  // Individual corners
250
- .rounded-tl-#{$name} {
248
+ #{VAR.$parent-selector} .rounded-tl-#{$name} {
251
249
  @include rounded-tl($value);
252
250
  }
253
- .rounded-tr-#{$name} {
251
+ #{VAR.$parent-selector} .rounded-tr-#{$name} {
254
252
  @include rounded-tr($value);
255
253
  }
256
- .rounded-br-#{$name} {
254
+ #{VAR.$parent-selector} .rounded-br-#{$name} {
257
255
  @include rounded-br($value);
258
256
  }
259
- .rounded-bl-#{$name} {
257
+ #{VAR.$parent-selector} .rounded-bl-#{$name} {
260
258
  @include rounded-bl($value);
261
259
  }
262
260
  }
263
261
 
264
262
  // Pill shape (alias for full radius)
265
- .pill {
263
+ #{VAR.$parent-selector} .pill {
266
264
  @include pill;
267
265
  }
268
266
 
269
267
  // Border styles - these override the default solid style if needed
270
268
  @each $style in $border-styles {
271
- .border-#{$style} {
269
+ #{VAR.$parent-selector} .border-#{$style},
270
+ #{VAR.$parent-selector} .hover\:border-#{$style}:hover,
271
+ #{VAR.$parent-selector} .active\:border-#{$style}:active,
272
+ #{VAR.$parent-selector} .focus\:border-#{$style}:focus,
273
+ #{VAR.$parent-selector} .group:hover .group-hover\:border-#{$style} {
272
274
  @include border-style($style);
273
275
  }
274
276
  }
275
277
 
276
- // Border colors - these override the default color if needed
277
- .border-default {
278
- @include border-color(var(--border));
279
- }
280
-
281
- .border-light {
282
- @include border-color(var(--border-light-color));
283
- }
284
-
285
- .border-dark {
286
- @include border-color(var(--border-dark-color));
287
- }
288
-
289
- .border-primary {
290
- @include border-color(var(--primary));
291
- }
292
-
293
- .border-secondary {
294
- @include border-color(var(--secondary));
295
- }
296
-
297
- .border-success {
298
- @include border-color(var(--success));
299
- }
300
-
301
- .border-danger {
302
- @include border-color(var(--danger));
303
- }
304
-
305
- .border-warning {
306
- @include border-color(var(--warning));
307
- }
308
-
309
- .border-info {
310
- @include border-color(var(--info));
311
- }
312
-
313
- // Common combined border utilities (style + color)
314
- .border-primary-solid {
315
- @include border-style(solid);
316
- @include border-color(var(--primary));
317
- }
318
-
319
- .border-danger-dashed {
320
- @include border-style(dashed);
321
- @include border-color(var(--danger));
322
- }
323
-
324
- // -----------------------------------------------
325
- // HOVER, ACTIVE, AND FOCUS STATES
326
- // -----------------------------------------------
327
-
328
- // Hover state border classes
329
- @each $width in VAR.$border-widths {
330
- .hover\:border-#{$width}:hover {
331
- @include border($width);
332
- }
333
- }
334
-
335
- @each $style in $border-styles {
336
- .hover\:border-#{$style}:hover {
337
- @include border-style($style);
278
+ @each $color-name in VAR.$color-names {
279
+ #{VAR.$parent-selector} .border-#{$color-name},
280
+ #{VAR.$parent-selector} .hover\:border-#{$color-name}:hover,
281
+ #{VAR.$parent-selector} .active\:border-#{$color-name}:active,
282
+ #{VAR.$parent-selector} .focus\:border-#{$color-name}:focus,
283
+ #{VAR.$parent-selector} .group:hover .group-hover\:border-#{$color-name} {
284
+ @include border-color(var(--#{$color-name}));
338
285
  }
339
286
  }
340
287
 
341
- // Border colors on hover
342
- .hover\:border-default:hover {
343
- @include border-color(var(--border));
344
- }
345
-
346
- .hover\:border-light:hover {
347
- @include border-color(var(--border-light-color));
348
- }
349
-
350
- .hover\:border-dark:hover {
351
- @include border-color(var(--border-dark-color));
352
- }
353
-
354
- .hover\:border-primary:hover {
355
- @include border-color(var(--primary));
356
- }
357
-
358
- .hover\:border-secondary:hover {
359
- @include border-color(var(--secondary));
360
- }
361
-
362
- .hover\:border-success:hover {
363
- @include border-color(var(--success));
364
- }
365
-
366
- .hover\:border-danger:hover {
367
- @include border-color(var(--danger));
368
- }
369
-
370
- .hover\:border-warning:hover {
371
- @include border-color(var(--warning));
372
- }
373
-
374
- .hover\:border-info:hover {
375
- @include border-color(var(--info));
376
- }
377
-
378
- // Active state border classes
379
- @each $width in VAR.$border-widths {
380
- .active\:border-#{$width}:active {
381
- @include border($width);
382
- }
383
- }
384
-
385
- @each $style in $border-styles {
386
- .active\:border-#{$style}:active {
387
- @include border-style($style);
388
- }
389
- }
390
-
391
- // Border colors on active state
392
- .active\:border-default:active {
393
- @include border-color(var(--border));
394
- }
395
-
396
- .active\:border-light:active {
397
- @include border-color(var(--border-light-color));
398
- }
399
-
400
- .active\:border-dark:active {
401
- @include border-color(var(--border-dark-color));
402
- }
403
-
404
- .active\:border-primary:active {
405
- @include border-color(var(--primary));
406
- }
407
-
408
- .active\:border-secondary:active {
409
- @include border-color(var(--secondary));
410
- }
411
-
412
- .active\:border-success:active {
413
- @include border-color(var(--success));
414
- }
415
-
416
- .active\:border-danger:active {
417
- @include border-color(var(--danger));
418
- }
419
-
420
- .active\:border-warning:active {
421
- @include border-color(var(--warning));
422
- }
423
-
424
- .active\:border-info:active {
425
- @include border-color(var(--info));
426
- }
427
-
428
- // Focus state border classes
429
- @each $width in VAR.$border-widths {
430
- .focus\:border-#{$width}:focus {
431
- @include border($width);
432
- }
433
- }
434
-
435
- @each $style in $border-styles {
436
- .focus\:border-#{$style}:focus {
437
- @include border-style($style);
438
- }
439
- }
440
-
441
- // Border colors on focus
442
- .focus\:border-default:focus {
443
- @include border-color(var(--border));
444
- }
445
-
446
- .focus\:border-light:focus {
447
- @include border-color(var(--border-light-color));
448
- }
449
-
450
- .focus\:border-dark:focus {
451
- @include border-color(var(--border-dark-color));
452
- }
453
-
454
- .focus\:border-primary:focus {
455
- @include border-color(var(--primary));
456
- }
457
-
458
- .focus\:border-secondary:focus {
459
- @include border-color(var(--secondary));
460
- }
461
-
462
- .focus\:border-success:focus {
463
- @include border-color(var(--success));
464
- }
465
-
466
- .focus\:border-danger:focus {
467
- @include border-color(var(--danger));
468
- }
469
-
470
- .focus\:border-warning:focus {
471
- @include border-color(var(--warning));
472
- }
473
-
474
- .focus\:border-info:focus {
475
- @include border-color(var(--info));
476
- }
477
-
478
288
  // -----------------------------------------------
479
289
  // RESPONSIVE CLASSES
480
290
  // -----------------------------------------------
@@ -483,33 +293,33 @@ $border-styles: (solid, dashed, dotted, double, none);
483
293
  @media (min-width: #{$width}) {
484
294
  // Border width responsive
485
295
  @each $val in VAR.$border-widths {
486
- .border-#{$val}\@#{$breakpoint} {
296
+ #{VAR.$parent-selector} .border-#{$val}\@#{$breakpoint} {
487
297
  @include border($val);
488
298
  }
489
299
  }
490
300
 
491
301
  // Common shortcuts for responsive
492
- .border\@#{$breakpoint} {
302
+ #{VAR.$parent-selector} .border\@#{$breakpoint} {
493
303
  @include border(1);
494
304
  }
495
- .border-0\@#{$breakpoint} {
305
+ #{VAR.$parent-selector} .border-0\@#{$breakpoint} {
496
306
  @include border(0);
497
307
  }
498
308
 
499
309
  // Border radius responsive
500
310
  @each $name, $value in VAR.$border-radii {
501
- .rounded-#{$name}\@#{$breakpoint} {
311
+ #{VAR.$parent-selector} .rounded-#{$name}\@#{$breakpoint} {
502
312
  @include rounded($value);
503
313
  }
504
314
  }
505
315
 
506
- .rounded\@#{$breakpoint} {
316
+ #{VAR.$parent-selector} .rounded\@#{$breakpoint} {
507
317
  @include rounded;
508
318
  }
509
- .square\@#{$breakpoint} {
319
+ #{VAR.$parent-selector} .square\@#{$breakpoint} {
510
320
  @include rounded(0);
511
321
  }
512
- .pill\@#{$breakpoint} {
322
+ #{VAR.$parent-selector} .pill\@#{$breakpoint} {
513
323
  @include pill;
514
324
  }
515
325
  }
@@ -3,23 +3,19 @@
3
3
  @use "../abstracts/config" as VAR;
4
4
  @use "../abstracts/functions" as FN;
5
5
 
6
- /**
7
- * Container Query Mixins
8
- *
9
- * Usage:
10
- * .container {
11
- * container-type: inline-size;
12
- * container-name: sidebar;
13
- * }
14
- *
15
- * .item {
16
- * @include container-up('md', 'sidebar') {
17
- * // Styles for 'md' and up within 'sidebar' container
18
- * }
19
- * }
20
- */
6
+ // Container Query Mixins
7
+ // Usage:
8
+ // .container {
9
+ // container-type: inline-size;
10
+ // container-name: sidebar;
11
+ // }
12
+ // .item {
13
+ // @include container-up('md', 'sidebar') {
14
+ // // Styles for 'md' and up within 'sidebar' container
15
+ // }
16
+ // }
21
17
 
22
- /// Container Query: Up
18
+ // /Container Query: Up
23
19
  @mixin container-up($breakpoint, $containerName: null) {
24
20
  $bp-val: FN.get-breakpoint-value($breakpoint);
25
21
  @container #{$containerName} (min-width: #{$bp-val}) {
@@ -27,7 +23,7 @@
27
23
  }
28
24
  }
29
25
 
30
- /// Container Query: Down
26
+ // /Container Query: Down
31
27
  @mixin container-down($breakpoint, $containerName: null) {
32
28
  $bp-val: FN.get-breakpoint-value($breakpoint);
33
29
  @container #{$containerName} (max-width: (#{ $bp-val } - 0.02px)) {
@@ -35,7 +31,7 @@
35
31
  }
36
32
  }
37
33
 
38
- /// Container Query: Between
34
+ // /Container Query: Between
39
35
  @mixin container-between($lower, $upper, $containerName: null) {
40
36
  $min: FN.get-breakpoint-value($lower);
41
37
  $max: FN.get-breakpoint-value($upper);
@@ -44,7 +40,7 @@
44
40
  }
45
41
  }
46
42
 
47
- /// Container Query: Only
43
+ // /Container Query: Only
48
44
  @mixin container-only($breakpoint, $containerName: null) {
49
45
  $min: FN.get-breakpoint-value($breakpoint);
50
46
  $next-breakpoint: null;
@@ -66,7 +62,7 @@
66
62
  }
67
63
  }
68
64
 
69
- /// Container Query: Query by Size
65
+ // /Container Query: Query by Size
70
66
  @mixin container-query($size, $containerName: null) {
71
67
  @container #{$containerName} (min-width: $size) {
72
68
  @content;
@@ -81,7 +77,7 @@
81
77
  container-name: $name;
82
78
  }
83
79
 
84
- @if VAR.$generate-utility-classes {
80
+ @if FN.feature-enabled("container-queries") {
85
81
  // Utility classes
86
82
  #{VAR.$parent-selector} .container-inline-size {
87
83
  container-type: inline-size;
@@ -1,10 +1,11 @@
1
1
  @use "../abstracts/config" as VAR;
2
+ @use "../abstracts/functions" as FN;
2
3
 
3
4
  @mixin cursor($cursor-value) {
4
5
  cursor: #{$cursor-value};
5
6
  }
6
7
 
7
- @if VAR.$generate-utility-classes {
8
+ @if FN.feature-enabled("cursors") {
8
9
  $cursor-values: ("auto", "pointer", "default", "move", "not-allowed", "wait", "help", "text", "cell", "crosshair", "grabbing", "grab", "zoom-in", "zoom-out", "none", "progress", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nesw-resize", "nwse-resize", "context-menu", "all-scroll");
9
10
 
10
11
  // Generate classes for each cursor value