@nuvoui/core 1.2.7 → 1.3.1

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 (35) hide show
  1. package/dist/nuvoui.css +3252 -2709
  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 +3 -3
  6. package/src/styles/abstracts/_config.scss +36 -8
  7. package/src/styles/abstracts/_functions.scss +16 -5
  8. package/src/styles/base/_base.scss +2 -2
  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 +230 -292
  13. package/src/styles/layouts/_grid.scss +66 -73
  14. package/src/styles/mixins-map.json +1 -0
  15. package/src/styles/mixins-map.scss +1 -1
  16. package/src/styles/themes/_theme.scss +10 -10
  17. package/src/styles/utilities/_alignment.scss +2 -1
  18. package/src/styles/utilities/_animations.scss +20 -32
  19. package/src/styles/utilities/_backdrop-filters.scss +12 -16
  20. package/src/styles/utilities/_borders.scss +3 -5
  21. package/src/styles/utilities/_container-queries.scss +17 -21
  22. package/src/styles/utilities/_cursor.scss +2 -1
  23. package/src/styles/utilities/_display.scss +18 -39
  24. package/src/styles/utilities/_helpers.scss +1 -0
  25. package/src/styles/utilities/_media-queries.scss +3 -5
  26. package/src/styles/utilities/_opacity.scss +52 -67
  27. package/src/styles/utilities/_position.scss +104 -132
  28. package/src/styles/utilities/_shadows.scss +9 -14
  29. package/src/styles/utilities/_sizing.scss +1 -1
  30. package/src/styles/utilities/_spacing.scss +143 -205
  31. package/src/styles/utilities/_tooltips.scss +203 -200
  32. package/src/styles/utilities/_transforms.scss +32 -13
  33. package/src/styles/utilities/_transitions.scss +8 -10
  34. package/src/styles/utilities/_typography.scss +17 -22
  35. package/src/styles/utilities/_z-index.scss +12 -19
@@ -88,10 +88,8 @@ $border-styles: (solid, dashed, dotted, double, none);
88
88
  }
89
89
  }
90
90
 
91
- /**
92
- * @description Applies border radius to all corners
93
- * @param {String} $val - The border radius value
94
- */
91
+ // @description Applies border radius to all corners
92
+ // @param {String} $val - The border radius value
95
93
  @mixin rounded($val: null) {
96
94
  border-radius: get-rounded-value($val);
97
95
  }
@@ -167,7 +165,7 @@ $border-styles: (solid, dashed, dotted, double, none);
167
165
  // -----------------------------------------------
168
166
  // UTILITY CLASSES
169
167
  // -----------------------------------------------
170
- @if VAR.$generate-utility-classes {
168
+ @if FN.feature-enabled("borders") {
171
169
  // Basic border classes (all sides)
172
170
  .border {
173
171
  @include border(1);
@@ -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
@@ -4,73 +4,53 @@
4
4
  @use "../abstracts/config" as VAR;
5
5
  @use "../abstracts/functions" as FN;
6
6
 
7
- /**
8
- * Display Utilities
9
- *
10
- * Classes:
11
- * - .hide, .show: Control element visibility
12
- * - .block, .inline, .inline-block: Basic display modes
13
- * - .d-tbl, .d-tbl-row, .d-tbl-cell: Table display modes
14
- * - .overflow-hidden: Control overflow behavior
15
- *
16
- * All utilities support responsive variants with @breakpoint suffix:
17
- * - .hide@md, .block@lg, etc.
18
- */
7
+ // Display Utilities
8
+ // Classes:
9
+ // - .hide, .show: Control element visibility
10
+ // - .block, .inline, .inline-block: Basic display modes
11
+ // - .d-tbl, .d-tbl-row, .d-tbl-cell: Table display modes
12
+ // - .overflow-hidden: Control overflow behavior
13
+ // All utilities support responsive variants with @breakpoint suffix:
14
+ // - .hide@md, .block@lg, etc.
19
15
 
20
16
  // Display Mixins
21
17
 
22
- /**
23
- * @description Set display to none.
24
- */
18
+ // @description Set display to none.
25
19
  @mixin hide {
26
20
  display: none;
27
21
  }
28
22
 
29
- /**
30
- * @description Set display to block.
31
- */
23
+ // @description Set display to block.
32
24
  @mixin block {
33
25
  display: block;
34
26
  }
35
27
 
36
- /**
37
- * @description Set display to inline.
38
- */
28
+ // @description Set display to inline.
39
29
  @mixin inline {
40
30
  display: inline;
41
31
  }
42
32
 
43
- /**
44
- * @description Set display to inline-block.
45
- */
33
+ // @description Set display to inline-block.
46
34
  @mixin inline-block {
47
35
  display: inline-block;
48
36
  }
49
37
 
50
- /**
51
- * @description Set display to initial original state.
52
- */
38
+ // @description Set display to initial original state.
53
39
  @mixin show {
54
- display: revert;
40
+ display: initial;
55
41
  }
56
42
 
57
- /**
58
- * @description Set display to table.
59
- */
43
+ // @description Set display to table.
60
44
  @mixin d-tbl {
61
45
  display: table;
62
46
  }
63
47
 
64
- /**
65
- * @description Set display to table-row.
66
- */
48
+ // @description Set display to table-row.
67
49
  @mixin d-tbl-row {
68
50
  display: table-row;
69
51
  }
70
52
 
71
- /**
72
- * @description Set display to table-cell.
73
- */
53
+ // @description Set display to table-cell.
74
54
  @mixin d-tbl-cell {
75
55
  display: table-cell;
76
56
  }
@@ -119,8 +99,7 @@
119
99
  overflow-y: auto;
120
100
  }
121
101
 
122
- @if VAR.$generate-utility-classes {
123
- // Base Classes
102
+ @if FN.feature-enabled("displays") {
124
103
  #{VAR.$parent-selector} .hide {
125
104
  @include hide;
126
105
  }
@@ -5,6 +5,7 @@
5
5
  @use "sass:meta";
6
6
 
7
7
  @use "../abstracts/config" as VAR;
8
+ @use "../abstracts/functions" as FN;
8
9
 
9
10
  @if VAR.$enable-debugger {
10
11
  .NuvoUI-Debugger-Wrapper {
@@ -8,11 +8,9 @@
8
8
  @use "../abstracts/config" as VAR;
9
9
  @use "../abstracts/functions" as FN;
10
10
 
11
- /**
12
- * @description Media query mixins.
13
- * @param {string|number} $breakpoint - The breakpoint value.
14
- * @param {string} $type - The media query type (e.g. 'lg', 'md').
15
- */
11
+ // @description Media query mixins.
12
+ // @param {string|number} $breakpoint - The breakpoint value.
13
+ // @param {string} $type - The media query type (e.g. 'lg', 'md').
16
14
  @mixin media-up($breakpoint, $debug: null) {
17
15
  $blueprint-value: FN.fix-units(FN.get-breakpoint-value($breakpoint, $debug));
18
16
  $val: $blueprint-value - 0.01;
@@ -4,79 +4,64 @@
4
4
  @use "sass:math";
5
5
  @use "sass:meta";
6
6
  @use "../abstracts/config" as VAR;
7
+ @use "../abstracts/functions" as FN;
7
8
 
8
- /**
9
- * @component Opacity
10
- * @description Controls element transparency with customizable opacity values and interactive states
11
- *
12
- * @example
13
- * <!-- Basic opacity -->
14
- * <div class="opacity-50">This element has 50% opacity</div>
15
- *
16
- * <!-- Responsive opacity -->
17
- * <div class="opacity-100 opacity-50@md">
18
- * 100% opacity by default, 50% on medium screens and up
19
- * </div>
20
- *
21
- * <!-- Interactive states -->
22
- * <div class="opacity-50 hover:opacity-100">
23
- * 50% opacity, becomes fully visible on hover
24
- * </div>
25
- *
26
- * <button class="opacity-70 focus:opacity-100">
27
- * 70% opacity, fully visible when focused
28
- * </button>
29
- *
30
- * <div class="opacity-75 active:opacity-100">
31
- * 75% opacity, fully visible when clicked/active
32
- * </div>
33
- *
34
- * <!-- Group hover effect -->
35
- * <div class="group">
36
- * <h3>Parent element with "group" class</h3>
37
- * <div class="opacity-0 group-hover:opacity-100">
38
- * Hidden by default, visible when parent is hovered
39
- * </div>
40
- * </div>
41
- *
42
- * <!-- With transition -->
43
- * <div class="opacity-50 hover:opacity-100 transition-opacity">
44
- * Smooth opacity transition on hover
45
- * </div>
46
- *
47
- * @classes
48
- * Base:
49
- * - opacity-{value}: Sets element opacity (0-100%)
50
- * Values: 0, 5, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90, 100
51
- *
52
- * Interactive States:
53
- * - hover:opacity-{value}: Changes opacity on mouse hover
54
- * - focus:opacity-{value}: Changes opacity when element receives focus
55
- * - active:opacity-{value}: Changes opacity when element is active/pressed
56
- * - group-hover:opacity-{value}: Changes opacity when parent with .group class is hovered
57
- *
58
- * Animation:
59
- * - transition-opacity: Adds smooth transition when opacity changes
60
- *
61
- * @responsive
62
- * All opacity classes support responsive variants using @breakpoint suffix:
63
- * - opacity-50@sm: 50% opacity on small screens and up
64
- * - hover:opacity-100@md: Full opacity on hover for medium screens and up
65
- *
66
- * Available breakpoints: xs, sm, md, lg, xl, xxl
67
- *
68
- * @customization
69
- * Opacity values are defined in the $percentages variable
70
- * Transition timing can be customized via CSS variables
71
- *
72
- * @see transitions
73
- */
9
+ // @component Opacity
10
+ // @description Controls element transparency with customizable opacity values and interactive states
11
+ // @example
12
+ // <!-- Basic opacity -->
13
+ // <div class="opacity-50">This element has 50% opacity</div>
14
+ // <!-- Responsive opacity -->
15
+ // <div class="opacity-100 opacity-50@md">
16
+ // 100% opacity by default, 50% on medium screens and up
17
+ // </div>
18
+ // <!-- Interactive states -->
19
+ // <div class="opacity-50 hover:opacity-100">
20
+ // 50% opacity, becomes fully visible on hover
21
+ // </div>
22
+ // <button class="opacity-70 focus:opacity-100">
23
+ // 70% opacity, fully visible when focused
24
+ // </button>
25
+ // <div class="opacity-75 active:opacity-100">
26
+ // 75% opacity, fully visible when clicked/active
27
+ // </div>
28
+ // <!-- Group hover effect -->
29
+ // <div class="group">
30
+ // <h3>Parent element with "group" class</h3>
31
+ // <div class="opacity-0 group-hover:opacity-100">
32
+ // Hidden by default, visible when parent is hovered
33
+ // </div>
34
+ // </div>
35
+ // <!-- With transition -->
36
+ // <div class="opacity-50 hover:opacity-100 transition-opacity">
37
+ // Smooth opacity transition on hover
38
+ // </div>
39
+ // @classes
40
+ // Base:
41
+ // - opacity-{value}: Sets element opacity (0-100%)
42
+ // Values: 0, 5, 10, 20, 25, 30, 40, 50, 60, 70, 75, 80, 90, 100
43
+ // Interactive States:
44
+ // - hover:opacity-{value}: Changes opacity on mouse hover
45
+ // - focus:opacity-{value}: Changes opacity when element receives focus
46
+ // - active:opacity-{value}: Changes opacity when element is active/pressed
47
+ // - group-hover:opacity-{value}: Changes opacity when parent with .group class is hovered
48
+ // Animation:
49
+ // - transition-opacity: Adds smooth transition when opacity changes
50
+ // @responsive
51
+ // All opacity classes support responsive variants using @breakpoint suffix:
52
+ // - opacity-50@sm: 50% opacity on small screens and up
53
+ // - hover:opacity-100@md: Full opacity on hover for medium screens and up
54
+ // Available breakpoints: xs, sm, md, lg, xl, xxl
55
+ // @customization
56
+ // Opacity values are defined in the $percentages variable
57
+ // Transition timing can be customized via CSS variables
58
+ // @see transitions
74
59
 
75
60
  @mixin opacity($value) {
76
61
  opacity: calc(#{$value} / 100);
77
62
  }
78
63
 
79
- @if VAR.$generate-utility-classes {
64
+ @if FN.feature-enabled("opacity") {
80
65
  // Opacity Utilities
81
66
  @each $i in VAR.$percentages {
82
67
  #{VAR.$parent-selector} .opacity-#{$i},