@nuvoui/core 1.3.0 → 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 (33) hide show
  1. package/dist/nuvoui.css +230 -922
  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 +25 -2
  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 +125 -207
  13. package/src/styles/layouts/_grid.scss +16 -29
  14. package/src/styles/themes/_theme.scss +10 -10
  15. package/src/styles/utilities/_alignment.scss +2 -1
  16. package/src/styles/utilities/_animations.scss +20 -32
  17. package/src/styles/utilities/_backdrop-filters.scss +7 -11
  18. package/src/styles/utilities/_borders.scss +3 -5
  19. package/src/styles/utilities/_container-queries.scss +17 -21
  20. package/src/styles/utilities/_cursor.scss +2 -1
  21. package/src/styles/utilities/_display.scss +17 -37
  22. package/src/styles/utilities/_helpers.scss +1 -0
  23. package/src/styles/utilities/_media-queries.scss +3 -5
  24. package/src/styles/utilities/_opacity.scss +52 -67
  25. package/src/styles/utilities/_position.scss +104 -132
  26. package/src/styles/utilities/_shadows.scss +9 -14
  27. package/src/styles/utilities/_sizing.scss +1 -1
  28. package/src/styles/utilities/_spacing.scss +143 -205
  29. package/src/styles/utilities/_tooltips.scss +203 -200
  30. package/src/styles/utilities/_transforms.scss +9 -11
  31. package/src/styles/utilities/_transitions.scss +8 -10
  32. package/src/styles/utilities/_typography.scss +17 -22
  33. package/src/styles/utilities/_z-index.scss +12 -19
@@ -6,16 +6,12 @@
6
6
  @use "../abstracts/functions" as FN;
7
7
  @use "../abstracts/config" as VAR;
8
8
 
9
- /**
10
- * @description Establishes a grid container.
11
- */
9
+ // @description Establishes a grid container.
12
10
  @mixin grid {
13
11
  display: grid;
14
12
  }
15
13
 
16
- /**
17
- * @description Establishes a inline-grid container.
18
- */
14
+ // @description Establishes a inline-grid container.
19
15
  @mixin grid-inline {
20
16
  display: inline-grid;
21
17
  }
@@ -28,17 +24,14 @@
28
24
  grid-template-rows: repeat($count, minmax(0, 1fr));
29
25
  }
30
26
 
31
- /**
32
- * @description Establishes a grid container with a specified number of columns.
33
- * @param {number} $count - The number of columns.
27
+ // @description Establishes a grid container with a specified number of columns.
28
+ // @param {number} $count - The number of columns.
34
29
 
35
- /// EXAMPLE USAGE
36
- .custom-grid {
37
- display: grid;
38
- @include cols-custom("1fr_auto_1fr");
39
- }
40
-
41
- */
30
+ // /EXAMPLE USAGE
31
+ // .custom-grid {
32
+ // display: grid;
33
+ // @include cols-custom("1fr_auto_1fr");
34
+ // }
42
35
 
43
36
  @mixin cols-custom($template) {
44
37
  // Convert underscores to spaces so "1fr_auto" becomes "1fr auto"
@@ -76,26 +69,20 @@ $alignments: (
76
69
  "stretch": stretch,
77
70
  );
78
71
 
79
- /**
80
- * @description justify-items container.
81
- * @param {string} $value - The value for the justify-items property.
82
- */
72
+ // @description justify-items container.
73
+ // @param {string} $value - The value for the justify-items property.
83
74
  @mixin justify($value) {
84
75
  justify-items: $value;
85
76
  }
86
77
 
87
- /**
88
- * @description Establishes a align-items container.
89
- * @param {string} $value - The value for the align-items property.
90
- */
78
+ // @description Establishes a align-items container.
79
+ // @param {string} $value - The value for the align-items property.
91
80
  @mixin align($value) {
92
81
  align-items: $value;
93
82
  }
94
83
 
95
- /**
96
- * @description Establishes a place-items container.
97
- * @param {string} $value - The value for the place-items property.
98
- */
84
+ // @description Establishes a place-items container.
85
+ // @param {string} $value - The value for the place-items property.
99
86
  @mixin place($value) {
100
87
  place-items: $value;
101
88
  }
@@ -131,7 +118,7 @@ $alignments: (
131
118
  grid-row: $row;
132
119
  }
133
120
 
134
- @if VAR.$generate-utility-classes {
121
+ @if FN.feature-enabled("grid") {
135
122
  // Build the flat selector list manually with proper escaping
136
123
  $base-grid-selector: #{VAR.$parent-selector} + " .grid";
137
124
  $all-grid-selectors: $base-grid-selector;
@@ -5,8 +5,9 @@
5
5
  @use "sass:list";
6
6
  @use "../utilities/colors" as COL;
7
7
  @use "../abstracts/config" as VAR;
8
+ @use "../abstracts/functions" as FN;
8
9
 
9
- @if VAR.$generate-utility-classes {
10
+ @if FN.feature-enabled("theme") {
10
11
  :root,
11
12
  #{VAR.$parent-selector} [data-theme="light"] {
12
13
  // Theme color CSS variables
@@ -79,19 +80,18 @@
79
80
  @each $color-name, $scale in COL.$colors {
80
81
  @each $shade, $value in $scale {
81
82
  // Automatic text contrast for backgrounds
82
- // todo: documentaton may add karo issay
83
83
  #{VAR.$parent-selector} .text-on-#{$color-name}-#{$shade} {
84
84
  color: COL.find-text-color($value);
85
85
  }
86
86
 
87
87
  #{VAR.$parent-selector} .text-#{$color-name}-#{$shade},
88
- #{VAR.$parent-selector} .hover\:text-#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
88
+ #{VAR.$parent-selector} .hover\:text-#{$color-name}-#{$shade}:hover,
89
89
  #{VAR.$parent-selector} .group:hover .group-hover\:text-#{$color-name}-#{$shade} {
90
90
  color: var(--#{$color-name}-#{$shade});
91
91
  }
92
92
 
93
93
  #{VAR.$parent-selector} .bg-#{$color-name}-#{$shade},
94
- #{VAR.$parent-selector} .hover\:bg-#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
94
+ #{VAR.$parent-selector} .hover\:bg-#{$color-name}-#{$shade}:hover,
95
95
  #{VAR.$parent-selector} .group:hover .group-hover\:bg-#{$color-name}-#{$shade} {
96
96
  background-color: var(--#{$color-name}-#{$shade});
97
97
  }
@@ -105,13 +105,13 @@
105
105
 
106
106
  // Base color classes
107
107
  #{VAR.$parent-selector} .text-#{$color-name},
108
- #{VAR.$parent-selector} .hover\:text-#{$color-name}:hover, // todo: improve these loops to save time
108
+ #{VAR.$parent-selector} .hover\:text-#{$color-name}:hover,
109
109
  #{VAR.$parent-selector} .group:hover .group-hover\:text-#{$color-name} {
110
110
  color: var(--#{$color-name});
111
111
  }
112
112
 
113
113
  #{VAR.$parent-selector} .bg-#{$color-name},
114
- #{VAR.$parent-selector} .hover\:bg-#{$color-name}:hover, // todo: improve these loops to save time
114
+ #{VAR.$parent-selector} .hover\:bg-#{$color-name}:hover,
115
115
  #{VAR.$parent-selector} .group:hover .group-hover\:bg-#{$color-name} {
116
116
  background-color: var(--#{$color-name});
117
117
  }
@@ -132,13 +132,13 @@
132
132
  }
133
133
 
134
134
  #{VAR.$parent-selector} .text-#{$color-name}-#{$shade},
135
- #{VAR.$parent-selector} .hover\:text-#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
135
+ #{VAR.$parent-selector} .hover\:text-#{$color-name}-#{$shade}:hover,
136
136
  #{VAR.$parent-selector} .group:hover .group-hover\:text-#{$color-name}-#{$shade} {
137
137
  color: var(--#{$color-name}-#{$shade});
138
138
  }
139
139
 
140
140
  #{VAR.$parent-selector} .bg-#{$color-name}-#{$shade},
141
- #{VAR.$parent-selector} .hover\:bg-#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
141
+ #{VAR.$parent-selector} .hover\:bg-#{$color-name}-#{$shade}:hover,
142
142
  #{VAR.$parent-selector} .group:hover .group-hover\:bg-#{$color-name}-#{$shade} {
143
143
  background-color: var(--#{$color-name}-#{$shade});
144
144
  }
@@ -152,13 +152,13 @@
152
152
 
153
153
  // Base color classes
154
154
  #{VAR.$parent-selector} .text-#{$color-name},
155
- #{VAR.$parent-selector} .hover\:text-#{$color-name}:hover, // todo: improve these loops to save time
155
+ #{VAR.$parent-selector} .hover\:text-#{$color-name}:hover,
156
156
  #{VAR.$parent-selector} .group:hover .group-hover\:text-#{$color-name} {
157
157
  color: var(--#{$color-name});
158
158
  }
159
159
 
160
160
  #{VAR.$parent-selector} .bg-#{$color-name},
161
- #{VAR.$parent-selector} .hover\:bg-#{$color-name}:hover, // todo: improve these loops to save time
161
+ #{VAR.$parent-selector} .hover\:bg-#{$color-name}:hover,
162
162
  #{VAR.$parent-selector} .group:hover .group-hover\:bg-#{$color-name} {
163
163
  background-color: var(--#{$color-name});
164
164
  }
@@ -1,4 +1,5 @@
1
1
  @use "../abstracts/config" as VAR;
2
+ @use "../abstracts/functions" as FN;
2
3
 
3
4
  @mixin align-baseline {
4
5
  vertical-align: baseline;
@@ -13,7 +14,7 @@
13
14
  vertical-align: bottom;
14
15
  }
15
16
 
16
- @if VAR.$generate-utility-classes {
17
+ @if FN.feature-enabled("alignments") {
17
18
  #{VAR.$parent-selector} .align-baseline {
18
19
  @include align-baseline;
19
20
  }
@@ -2,7 +2,7 @@
2
2
  @use "sass:math";
3
3
  @use "sass:map";
4
4
 
5
- @use "../abstracts/functions" as *;
5
+ @use "../abstracts/functions" as FN;
6
6
  @use "../abstracts/config" as VAR;
7
7
 
8
8
  $generated-keyframes: ();
@@ -17,11 +17,9 @@ $generated-keyframes: ();
17
17
  }
18
18
  }
19
19
 
20
- /**
21
- * @mixin animate-bounce
22
- * @description Creates a bouncing animation
23
- * @param {Map} $props - Animation properties
24
- */
20
+ // @mixin animate-bounce
21
+ // @description Creates a bouncing animation
22
+ // @param {Map} $props - Animation properties
25
23
  @mixin animate-bounce($props: ()) {
26
24
  $defaults: (
27
25
  vertical: 0.5rem,
@@ -73,11 +71,9 @@ $generated-keyframes: ();
73
71
  transition-timing-function: ease-in-out;
74
72
  }
75
73
 
76
- /**
77
- * @mixin animate-pulse
78
- * @description Creates a pulsing opacity animation
79
- * @param {Map} $props - Animation properties
80
- */
74
+ // @mixin animate-pulse
75
+ // @description Creates a pulsing opacity animation
76
+ // @param {Map} $props - Animation properties
81
77
  @mixin animate-pulse($props: ()) {
82
78
  $defaults: (
83
79
  min-opacity: 0.5,
@@ -111,11 +107,9 @@ $generated-keyframes: ();
111
107
  }
112
108
  }
113
109
 
114
- /**
115
- * @mixin animate-spin
116
- * @description Creates a spinning animation
117
- * @param {Map} $props - Animation properties
118
- */
110
+ // @mixin animate-spin
111
+ // @description Creates a spinning animation
112
+ // @param {Map} $props - Animation properties
119
113
  @mixin animate-spin($props: ()) {
120
114
  $defaults: (
121
115
  direction: normal,
@@ -150,11 +144,9 @@ $generated-keyframes: ();
150
144
  }
151
145
  }
152
146
 
153
- /**
154
- * @mixin animate-ping
155
- * @description Creates a ping animation (scale + fade)
156
- * @param {Map} $props - Animation properties
157
- */
147
+ // @mixin animate-ping
148
+ // @description Creates a ping animation (scale + fade)
149
+ // @param {Map} $props - Animation properties
158
150
  @mixin animate-ping($props: ()) {
159
151
  $defaults: (
160
152
  scale: 2,
@@ -183,11 +175,9 @@ $generated-keyframes: ();
183
175
  }
184
176
  }
185
177
 
186
- /**
187
- * @mixin animate-fade
188
- * @description Creates fade in/out animation
189
- * @param {Map} $props - Animation properties
190
- */
178
+ // @mixin animate-fade
179
+ // @description Creates fade in/out animation
180
+ // @param {Map} $props - Animation properties
191
181
  @mixin animate-fade($props: ()) {
192
182
  $defaults: (
193
183
  type: in,
@@ -248,11 +238,9 @@ $generated-keyframes: ();
248
238
  }
249
239
  }
250
240
 
251
- /**
252
- * @mixin animate-shake
253
- * @description Creates a shake animation
254
- * @param {Map} $props - Animation properties
255
- */
241
+ // @mixin animate-shake
242
+ // @description Creates a shake animation
243
+ // @param {Map} $props - Animation properties
256
244
  @mixin animate-shake($props: ()) {
257
245
  $defaults: (
258
246
  intensity: 5px,
@@ -296,7 +284,7 @@ $generated-keyframes: ();
296
284
  }
297
285
  }
298
286
 
299
- @if VAR.$generate-utility-classes {
287
+ @if FN.feature-enabled("animations") {
300
288
  // Add to your existing animation utilities
301
289
 
302
290
  #{VAR.$parent-selector} .animate-pulse {
@@ -3,16 +3,12 @@
3
3
  @use "../abstracts/config" as VAR;
4
4
  @use "../abstracts/functions" as FN;
5
5
 
6
- /**
7
- * Backdrop Filter Utilities
8
- *
9
- * Provides utility classes and mixins for backdrop-filter effects.
10
- * All utilities come with responsive variants.
11
- *
12
- * Usage:
13
- * <div class="backdrop-blur-md">Blurred backdrop</div>
14
- * <div class="backdrop-blur-lg@md">Blurred backdrop on medium screens and up</div>
15
- */
6
+ // Backdrop Filter Utilities
7
+ // Provides utility classes and mixins for backdrop-filter effects.
8
+ // All utilities come with responsive variants.
9
+ // Usage:
10
+ // <div class="backdrop-blur-md">Blurred backdrop</div>
11
+ // <div class="backdrop-blur-lg@md">Blurred backdrop on medium screens and up</div>
16
12
 
17
13
  // Blur values
18
14
  $backdrop-blur-values: (
@@ -305,7 +301,7 @@ $backdrop-filter-presets: (
305
301
  }
306
302
  }
307
303
 
308
- @if VAR.$generate-utility-classes {
304
+ @if FN.feature-enabled("backdrops") {
309
305
  // Generate base utilities
310
306
  @include generate-backdrop-filter-utilities;
311
307
 
@@ -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
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,7 +99,7 @@
119
99
  overflow-y: auto;
120
100
  }
121
101
 
122
- @if VAR.$generate-utility-classes {
102
+ @if FN.feature-enabled("displays") {
123
103
  #{VAR.$parent-selector} .hide {
124
104
  @include hide;
125
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;