@nuvoui/core 1.1.8 → 1.2.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 (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 +7 -23
  15. package/src/styles/layouts/_flex.scss +116 -113
  16. package/src/styles/layouts/_grid.scss +70 -100
  17. package/src/styles/layouts/_index.scss +3 -0
  18. package/src/styles/mixins-map.scss +1 -1515
  19. package/src/styles/themes/_index.scss +1 -0
  20. package/src/styles/themes/_theme.scss +175 -55
  21. package/src/styles/utilities/_alignment.scss +9 -7
  22. package/src/styles/utilities/_animations.scss +65 -61
  23. package/src/styles/utilities/_borders.scss +283 -18
  24. package/src/styles/utilities/_colors.scss +68 -49
  25. package/src/styles/utilities/_container-queries.scss +19 -18
  26. package/src/styles/utilities/_display.scss +59 -57
  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 +68 -15
  30. package/src/styles/utilities/_opacity.scss +51 -27
  31. package/src/styles/utilities/_position.scss +38 -37
  32. package/src/styles/utilities/_shadows.scss +195 -137
  33. package/src/styles/utilities/_sizing.scss +74 -71
  34. package/src/styles/utilities/_spacing.scss +117 -99
  35. package/src/styles/utilities/_tooltips.scss +153 -105
  36. package/src/styles/utilities/_transitions.scss +77 -73
  37. package/src/styles/utilities/_typography.scss +23 -26
  38. package/src/styles/utilities/_functions.scss +0 -84
  39. package/src/styles/utilities/_variables.scss +0 -126
@@ -1,181 +1,239 @@
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;
88
- }
87
+ $shadow-color: map.get(VAR.$shadow-colors, $color);
89
88
 
90
- // Utility Classes
91
- .shadow-none {
92
- box-shadow: none !important;
89
+ box-shadow: inset map.get($shadow, "x") map.get($shadow, "y") map.get($shadow, "blur") map.get($shadow, "spread")
90
+ $shadow-color;
93
91
  }
94
92
 
95
- @each $size, $values in $shadow-sizes {
96
- .shadow-#{$size} {
97
- @include shadow($size);
98
- }
99
-
100
- .shadow-#{$size}-dark {
101
- @include shadow($size, 'dark');
102
- }
103
-
104
- .shadow-inset-#{$size} {
105
- @include shadow-inset($size);
93
+ @mixin elevation($i){
94
+ @if $i == 1 {
95
+ @include shadow("sm");
96
+ } @else if $i == 2 {
97
+ @include shadow("md");
98
+ } @else if $i == 3 {
99
+ @include shadow("lg");
100
+ } @else if $i == 4 {
101
+ @include shadow("xl");
102
+ } @else if $i == 5 {
103
+ @include shadow("monster");
106
104
  }
107
105
 
106
+ z-index: $i;
107
+ }
108
108
 
109
- // hover shadows
110
- .hover\:shadow-#{$size}:hover {
111
- @include shadow($size);
112
- }
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);
109
+ // Utility Classes
110
+ @if VAR.$generate-utility-classes {
111
+ .shadow-none {
112
+ box-shadow: none !important;
120
113
  }
121
-
122
114
 
123
- // focus shadows
124
- .focus\:shadow-#{$size}:hover {
125
- @include shadow($size);
126
- }
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);
134
- }
135
- }
115
+ @each $size, $values in $shadow-sizes {
116
+ .shadow-#{$size} {
117
+ @include shadow($size);
118
+ }
136
119
 
137
- // Active variants
138
- @each $size, $values in $shadow-sizes {
139
- .active\:shadow-#{$size}:active {
140
- @include shadow($size);
141
- }
142
- }
120
+ // Shadow with color variants
121
+ @each $color-name, $color-value in VAR.$shadow-colors {
122
+ @if $color-name != "default" {
123
+ .shadow-#{$size}-#{$color-name} {
124
+ @include shadow($size, $color-name);
125
+ }
126
+ }
127
+ }
128
+
129
+ .shadow-inset-#{$size} {
130
+ @include shadow-inset($size);
131
+ }
132
+
133
+ // Inset shadows with color variants
134
+ @each $color-name, $color-value in VAR.$shadow-colors {
135
+ @if $color-name != "default" {
136
+ .shadow-inset-#{$size}-#{$color-name} {
137
+ @include shadow-inset($size, $color-name);
138
+ }
139
+ }
140
+ }
141
+
142
+ // Hover shadows
143
+ .hover\:shadow-#{$size}:hover {
144
+ @include shadow($size);
145
+ }
143
146
 
144
- // Responsive variants
145
- @each $breakpoint, $width in VAR.$breakpoints {
146
- @media (min-width: #{$width}) {
147
- // Regular shadows with breakpoints
148
- @each $size, $values in $shadow-sizes {
149
- .shadow-#{$size}\@#{$breakpoint} {
150
- @include shadow($size);
147
+ // Hover shadows with color variants
148
+ @each $color-name, $color-value in VAR.$shadow-colors {
149
+ @if $color-name != "default" {
150
+ .hover\:shadow-#{$size}-#{$color-name}:hover {
151
+ @include shadow($size, $color-name);
152
+ }
151
153
  }
152
-
153
- // Hover shadows with breakpoints
154
- .hover\:shadow-#{$size}\@#{$breakpoint}:hover {
155
- @include shadow($size);
154
+ }
155
+
156
+ // Focus shadows
157
+ .focus\:shadow-#{$size}:focus {
158
+ @include shadow($size);
159
+ }
160
+
161
+ // Focus shadows with color variants
162
+ @each $color-name, $color-value in VAR.$shadow-colors {
163
+ @if $color-name != "default" {
164
+ .focus\:shadow-#{$size}-#{$color-name}:focus {
165
+ @include shadow($size, $color-name);
166
+ }
156
167
  }
157
-
158
- // Focus shadows with breakpoints
159
- .focus\:shadow-#{$size}\@#{$breakpoint}:focus {
160
- @include shadow($size);
168
+ }
169
+
170
+ // Active shadows
171
+ .active\:shadow-#{$size}:active {
172
+ @include shadow($size);
173
+ }
174
+
175
+ // Active shadows with color variants
176
+ @each $color-name, $color-value in VAR.$shadow-colors {
177
+ @if $color-name != "default" {
178
+ .active\:shadow-#{$size}-#{$color-name}:active {
179
+ @include shadow($size, $color-name);
180
+ }
161
181
  }
162
182
  }
163
183
  }
164
- }
165
184
 
166
- @for $i from 1 through 5 {
167
- .elevation-#{$i} {
168
- @if $i == 1 {
169
- @include shadow('sm');
170
- } @else if $i == 2 {
171
- @include shadow('md');
172
- } @else if $i == 3 {
173
- @include shadow('lg');
174
- } @else if $i == 4 {
175
- @include shadow('xl');
176
- } @else if $i == 5 {
177
- @include shadow('monster');
185
+ // Responsive variants
186
+ @each $breakpoint, $width in VAR.$breakpoints {
187
+ @media (min-width: #{$width}) {
188
+ @each $size, $values in $shadow-sizes {
189
+ // Regular shadows with breakpoints
190
+ .shadow-#{$size}\@#{$breakpoint} {
191
+ @include shadow($size);
192
+ }
193
+
194
+ // Shadows with color variants at breakpoints
195
+ @each $color-name, $color-value in VAR.$shadow-colors {
196
+ @if $color-name != "default" {
197
+ .shadow-#{$size}-#{$color-name}\@#{$breakpoint} {
198
+ @include shadow($size, $color-name);
199
+ }
200
+ }
201
+ }
202
+
203
+ // Hover shadows with breakpoints
204
+ .hover\:shadow-#{$size}\@#{$breakpoint}:hover {
205
+ @include shadow($size);
206
+ }
207
+
208
+ // Hover shadows with color variants at breakpoints
209
+ @each $color-name, $color-value in VAR.$shadow-colors {
210
+ @if $color-name != "default" {
211
+ .hover\:shadow-#{$size}-#{$color-name}\@#{$breakpoint}:hover {
212
+ @include shadow($size, $color-name);
213
+ }
214
+ }
215
+ }
216
+
217
+ // Focus shadows with breakpoints
218
+ .focus\:shadow-#{$size}\@#{$breakpoint}:focus {
219
+ @include shadow($size);
220
+ }
221
+
222
+ // Focus shadows with color variants at breakpoints
223
+ @each $color-name, $color-value in VAR.$shadow-colors {
224
+ @if $color-name != "default" {
225
+ .focus\:shadow-#{$size}-#{$color-name}\@#{$breakpoint}:focus {
226
+ @include shadow($size, $color-name);
227
+ }
228
+ }
229
+ }
230
+ }
178
231
  }
179
- z-index: $i;
180
232
  }
181
- }
233
+
234
+ @for $i from 1 through 5 {
235
+ .elevation-#{$i} {
236
+ @include elevation($i);
237
+ }
238
+ }
239
+ }
@@ -1,95 +1,98 @@
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
- .w-screen { @include w-screen; }
35
- .h-screen { @include h-screen; }
35
+ @if VAR.$generate-utility-classes {
36
+ .w-screen { @include w-screen; }
37
+ .h-screen { @include h-screen; }
36
38
 
37
- // Width utilities need :not(.flex) to avoid conflicts with flex child sizing
38
- :not(.flex)>.w-auto { @include w-auto; }
39
- :not(.flex)>.w-full { @include w-full; }
39
+ // Width utilities need :not(.flex) to avoid conflicts with flex child sizing
40
+ :not(.flex)>.w-auto { @include w-auto; }
41
+ :not(.flex)>.w-full { @include w-full; }
40
42
 
41
- .h-auto { @include h-auto; }
42
- .h-full { @include h-full; }
43
- .min-w-full { @include min-w-full; }
44
- .max-w-full { @include max-w-full; }
45
- .min-h-full { @include min-h-full; }
46
- .max-h-full { @include max-h-full; }
43
+ .h-auto { @include h-auto; }
44
+ .h-full { @include h-full; }
45
+ .min-w-full { @include min-w-full; }
46
+ .max-w-full { @include max-w-full; }
47
+ .min-h-full { @include min-h-full; }
48
+ .max-h-full { @include max-h-full; }
47
49
 
48
- // Percentage widths
49
- @each $i in VAR.$percentages {
50
- .w-#{$i}p { @include width-percent($i); }
51
- .h-#{$i}p { @include height-percent($i); }
52
- .min-w-#{$i}p { @include min-width-percent($i); }
53
- .min-h-#{$i}p { @include min-height-percent($i); }
54
- .max-w-#{$i}p { @include max-width-percent($i); }
55
- .max-h-#{$i}p { @include max-height-percent($i); }
56
- }
50
+ // Percentage widths
51
+ @each $i in VAR.$percentages {
52
+ .w-#{$i}p { @include width-percent($i); }
53
+ .h-#{$i}p { @include height-percent($i); }
54
+ .min-w-#{$i}p { @include min-width-percent($i); }
55
+ .min-h-#{$i}p { @include min-height-percent($i); }
56
+ .max-w-#{$i}p { @include max-width-percent($i); }
57
+ .max-h-#{$i}p { @include max-height-percent($i); }
58
+ }
57
59
 
58
- // Generate utilities from spacing map
59
- @each $key, $value in VAR.$spacings {
60
- .w-#{$key} { @include width($value); }
61
- .h-#{$key} { @include height($value); }
62
- .min-w-#{$key} { @include min-width($value); }
63
- .min-h-#{$key} { @include min-height($value); }
64
- .max-w-#{$key} { @include max-width($value); }
65
- .max-h-#{$key} { @include max-height($value); }
66
- }
60
+ // Generate utilities from spacing map
61
+ @each $key, $value in VAR.$spacings {
62
+ .w-#{$key} { @include width($value); }
63
+ .h-#{$key} { @include height($value); }
64
+ .min-w-#{$key} { @include min-width($value); }
65
+ .min-h-#{$key} { @include min-height($value); }
66
+ .max-w-#{$key} { @include max-width($value); }
67
+ .max-h-#{$key} { @include max-height($value); }
68
+ }
67
69
 
68
- // Pixel widths based on spacing scale
69
- @each $breakpoint, $width in VAR.$breakpoints {
70
+ // Pixel widths based on spacing scale
71
+ @each $breakpoint, $width in VAR.$breakpoints {
70
72
 
71
- .w-#{$breakpoint} { @include width($width); }
72
- .min-w-#{$breakpoint} { @include min-width($width); }
73
- .max-w-#{$breakpoint} { @include max-width($width); }
73
+ .w-#{$breakpoint} { @include width($width); }
74
+ .min-w-#{$breakpoint} { @include min-width($width); }
75
+ .max-w-#{$breakpoint} { @include max-width($width); }
74
76
 
75
- @include MC.media-up ($breakpoint) {
76
- // Generate utilities from spacing map
77
- @each $i in VAR.$percentages {
78
- .w-#{$i}p\@#{$breakpoint} { @include width-percent($i); }
79
- .h-#{$i}p\@#{$breakpoint} { @include height-percent($i); }
80
- .min-w-#{$i}p\@#{$breakpoint} { @include min-width-percent($i); }
81
- .min-h-#{$i}p\@#{$breakpoint} { @include min-height-percent($i); }
82
- .max-w-#{$i}p\@#{$breakpoint} { @include max-width-percent($i); }
83
- .max-h-#{$i}p\@#{$breakpoint} { @include max-height-percent($i); }
84
- }
77
+ @include MQ.media-up ($breakpoint) {
78
+ // Generate utilities from spacing map
79
+ @each $i in VAR.$percentages {
80
+ .w-#{$i}p\@#{$breakpoint} { @include width-percent($i); }
81
+ .h-#{$i}p\@#{$breakpoint} { @include height-percent($i); }
82
+ .min-w-#{$i}p\@#{$breakpoint} { @include min-width-percent($i); }
83
+ .min-h-#{$i}p\@#{$breakpoint} { @include min-height-percent($i); }
84
+ .max-w-#{$i}p\@#{$breakpoint} { @include max-width-percent($i); }
85
+ .max-h-#{$i}p\@#{$breakpoint} { @include max-height-percent($i); }
86
+ }
85
87
 
86
- @each $key, $value in VAR.$spacings {
87
- .w-#{$key}\@#{$breakpoint} { @include width($value); }
88
- .h-#{$key}\@#{$breakpoint} { @include height($value); }
89
- .min-w-#{$key}\@#{$breakpoint} { @include min-width($value); }
90
- .min-h-#{$key}\@#{$breakpoint} { @include min-height($value); }
91
- .max-w-#{$key}\@#{$breakpoint} { @include max-width($value); }
92
- .max-h-#{$key}\@#{$breakpoint} { @include max-height($value); }
88
+ @each $key, $value in VAR.$spacings {
89
+ .w-#{$key}\@#{$breakpoint} { @include width($value); }
90
+ .h-#{$key}\@#{$breakpoint} { @include height($value); }
91
+ .min-w-#{$key}\@#{$breakpoint} { @include min-width($value); }
92
+ .min-h-#{$key}\@#{$breakpoint} { @include min-height($value); }
93
+ .max-w-#{$key}\@#{$breakpoint} { @include max-width($value); }
94
+ .max-h-#{$key}\@#{$breakpoint} { @include max-height($value); }
95
+ }
93
96
  }
94
97
  }
95
98
  }