@nuvoui/core 1.2.1 → 1.2.3

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.
@@ -5,88 +5,89 @@
5
5
  @use "../abstracts" as *;
6
6
 
7
7
  @if $generate-utility-classes {
8
- :root {
9
- // Theme color CSS variables
10
- @each $color-name, $scale in COL.$colors {
11
- --#{$color-name}: #{color.adjust(map.get($scale, 500), $alpha: 1)};
12
- @each $shade, $value in $scale {
13
- --#{$color-name}-#{$shade}: #{color.adjust($value, $alpha: 1)};
8
+ :root {
9
+ // Theme color CSS variables
10
+ @each $color-name, $scale in COL.$colors {
11
+ --#{$color-name}: #{color.adjust(map.get($scale, 500), $alpha: 1)};
12
+ @each $shade, $value in $scale {
13
+ --#{$color-name}-#{$shade}: #{color.adjust($value, $alpha: 1)};
14
+ }
14
15
  }
15
- }
16
16
 
17
- // Primitive color CSS variables
18
- @each $color-name, $scale in COL.$colors-primitives {
19
- --#{$color-name}: #{color.adjust(map.get($scale, 500), $alpha: 1)};
20
- @each $shade, $value in $scale {
21
- --#{$color-name}-#{$shade}: #{color.adjust($value, $alpha: 1)};
17
+ // Primitive color CSS variables
18
+ @each $color-name, $scale in COL.$colors-primitives {
19
+ --#{$color-name}: #{color.adjust(map.get($scale, 500), $alpha: 1)};
20
+ @each $shade, $value in $scale {
21
+ --#{$color-name}-#{$shade}: #{color.adjust($value, $alpha: 1)};
22
+ }
22
23
  }
23
- }
24
-
25
- // Light theme variables
26
- --background: #{map.get($light-theme, "background")};
27
- --foreground: #{map.get($light-theme, "foreground")};
28
- --surface: #{map.get($light-theme, "surface")};
29
- --border: var(--gray-600);
30
- --text-primary: var(--gray-900);
31
- --text-secondary: var(--gray-600);
32
- --button-bg-color: var(--primary);
33
- --button-bg-color-hover: var(--primary-600);
34
- --button-text-color: var(--gray-100);
35
- --link-color: var(--primary);
36
- --link-hover-color: var(--primary-600);
37
- --inverted-text-color: var(--gray-100);
38
24
 
39
- // Scrollbar styling
40
- &::-webkit-scrollbar {
41
- width: 12px;
42
- }
43
-
44
- &::-webkit-scrollbar-track {
45
- background: var(--background);
46
- }
25
+ // Light theme variables
26
+ --background: #{map.get($light-theme, "background")};
27
+ --foreground: #{map.get($light-theme, "foreground")};
28
+ --surface: #{map.get($light-theme, "surface")};
29
+ --border: var(--gray-600);
30
+ --text-primary: var(--gray-900);
31
+ --text-secondary: var(--gray-600);
32
+ --button-bg-color: var(--primary);
33
+ --button-bg-color-hover: var(--primary-600);
34
+ --button-text-color: var(--gray-100);
35
+ --link-color: var(--primary);
36
+ --link-hover-color: var(--primary-600);
37
+ --inverted-text-color: var(--gray-100);
38
+
39
+ // Scrollbar styling
40
+ &::-webkit-scrollbar {
41
+ width: 12px;
42
+ }
47
43
 
48
- &::-webkit-scrollbar-thumb {
49
- background-color: #888;
50
- border-radius: 6px;
51
- border: 3px solid var(--background);
52
- }
44
+ &::-webkit-scrollbar-track {
45
+ background: var(--background);
46
+ }
53
47
 
54
- scrollbar-width: thin;
55
- scrollbar-color: #888 var(--background);
56
- }
48
+ &::-webkit-scrollbar-thumb {
49
+ background-color: #888;
50
+ border-radius: 6px;
51
+ border: 3px solid var(--background);
52
+ }
57
53
 
58
- // Dark theme settings
59
- [data-theme="dark"] {
60
- --background: #{map.get($dark-theme, "background")};
61
- --foreground: #{map.get($dark-theme, "foreground")};
62
- --surface: #{map.get($dark-theme, "surface")};
63
- --border: var(--gray-400);
64
- --text-primary: var(--gray-100);
65
- --text-secondary: var(--gray-400);
66
- --button-bg-color: var(--primary);
67
- --button-bg-color-hover: var(--primary-400);
68
- --button-text-color: var(--gray-200);
69
- --link-color: var(--primary);
70
- --link-hover-color: var(--primary-400);
71
- --inverted-text-color: var(--gray-900);
54
+ scrollbar-width: thin;
55
+ scrollbar-color: #888 var(--background);
56
+ }
57
+
58
+ // Dark theme settings
59
+ [data-theme="dark"] {
60
+ --background: #{map.get($dark-theme, "background")};
61
+ --foreground: #{map.get($dark-theme, "foreground")};
62
+ --surface: #{map.get($dark-theme, "surface")};
63
+ --border: var(--gray-400);
64
+ --text-primary: var(--gray-100);
65
+ --text-secondary: var(--gray-400);
66
+ --button-bg-color: var(--primary);
67
+ --button-bg-color-hover: var(--primary-400);
68
+ --button-text-color: var(--gray-200);
69
+ --link-color: var(--primary);
70
+ --link-hover-color: var(--primary-400);
71
+ --inverted-text-color: var(--gray-900);
72
+
73
+ &::-webkit-scrollbar-track {
74
+ background: var(--background);
75
+ }
72
76
 
73
- &::-webkit-scrollbar-track {
74
- background: var(--background);
75
- }
77
+ &::-webkit-scrollbar-thumb {
78
+ background-color: #555;
79
+ border: 3px solid var(--background);
80
+ }
76
81
 
77
- &::-webkit-scrollbar-thumb {
78
- background-color: #555;
79
- border: 3px solid var(--background);
82
+ scrollbar-color: #555 var(--background);
80
83
  }
81
84
 
82
- scrollbar-color: #555 var(--background);
83
- }
84
-
85
- // -----------------------------------------------
86
- // COLOR UTILITY CLASSES
87
- // -----------------------------------------------
85
+ // -----------------------------------------------
86
+ // COLOR UTILITY CLASSES
87
+ // -----------------------------------------------
88
88
 
89
89
  // Theme color background utilities
90
+ // primar, secondry, warning etc.
90
91
  @each $color-name, $scale in COL.$colors {
91
92
  @each $shade, $value in $scale {
92
93
  .bg-#{$color-name}-#{$shade} {
@@ -94,6 +95,7 @@
94
95
  }
95
96
 
96
97
  // Automatic text contrast for backgrounds
98
+ // todo: documentaton may add karo issay
97
99
  .text-on-#{$color-name}-#{$shade} {
98
100
  color: COL.find-text-color($value);
99
101
  }
@@ -101,6 +103,9 @@
101
103
  .text-#{$color-name}-#{$shade} {
102
104
  color: var(--#{$color-name}-#{$shade});
103
105
  }
106
+ .border-#{$color-name}-#{$shade} {
107
+ border-color: var(--#{$color-name}-#{$shade});
108
+ }
104
109
  }
105
110
 
106
111
  // Base color classes
@@ -111,9 +116,14 @@
111
116
  .text-#{$color-name} {
112
117
  color: var(--#{$color-name});
113
118
  }
119
+
120
+ .border-#{$color-name} {
121
+ border-color: var(--#{$color-name});
122
+ }
114
123
  }
115
124
 
116
125
  // Primitive color utilities
126
+ // green, purple, pink etc.
117
127
  @each $color-name, $scale in COL.$colors-primitives {
118
128
  @each $shade, $value in $scale {
119
129
  .bg-#{$color-name}-#{$shade} {
@@ -127,6 +137,9 @@
127
137
  .text-#{$color-name}-#{$shade} {
128
138
  color: var(--#{$color-name}-#{$shade});
129
139
  }
140
+ .border-#{$color-name}-#{$shade} {
141
+ border-color: var(--#{$color-name}-#{$shade});
142
+ }
130
143
  }
131
144
 
132
145
  // Base color classes
@@ -137,6 +150,10 @@
137
150
  .text-#{$color-name} {
138
151
  color: var(--#{$color-name});
139
152
  }
153
+
154
+ .border-#{$color-name} {
155
+ border-color: var(--#{$color-name});
156
+ }
140
157
  }
141
158
 
142
159
  // Semantic color utilities
@@ -217,15 +234,16 @@
217
234
 
218
235
  // Glass effects
219
236
  .glass-effect {
220
- @include COL.backdrop-filter(blur(8px));
221
-
222
237
  background-color: rgb(255 255 255 / 10%);
223
238
  border: 1px solid rgb(255 255 255 / 20%);
239
+
240
+ @include COL.backdrop-filter(blur(8px));
241
+
224
242
  }
225
243
 
226
244
  .frosted-glass {
227
- @include COL.backdrop-filter(blur(15px));
228
-
229
245
  background-color: rgb(255 255 255 / 70%);
230
246
  border: 1px solid rgb(255 255 255 / 80%);
247
+
248
+ @include COL.backdrop-filter(blur(15px));
231
249
  }
@@ -1,22 +1,22 @@
1
1
  @use '../abstracts' as VAR;
2
2
 
3
- @mixin align-baseline { vertical-align: baseline; }
4
- @mixin align-top { vertical-align: top; }
5
- @mixin align-middle { vertical-align: middle; }
6
- @mixin align-bottom { vertical-align: bottom; }
3
+ @mixin align-baseline { & { vertical-align: baseline; } }
4
+ @mixin align-top { & { vertical-align: top; } }
5
+ @mixin align-middle { & { vertical-align: middle; } }
6
+ @mixin align-bottom { & { vertical-align: bottom; } }
7
7
 
8
8
  @if VAR.$generate-utility-classes {
9
- .align-baseline { @include align-baseline; }
10
- .align-top { @include align-top; }
11
- .align-middle { @include align-middle; }
12
- .align-bottom { @include align-bottom; }
9
+ .align-baseline { @include align-baseline; }
10
+ .align-top { @include align-top; }
11
+ .align-middle { @include align-middle; }
12
+ .align-bottom { @include align-bottom; }
13
13
 
14
- @each $breakpoint, $width in VAR.$breakpoints {
15
- @media (min-width: #{$width}) {
16
- .align-baseline\@#{$breakpoint} { @include align-baseline; }
17
- .align-top\@#{$breakpoint} { @include align-top; }
18
- .align-middle\@#{$breakpoint} { @include align-middle; }
19
- .align-bottom\@#{$breakpoint} { @include align-bottom; }
20
- }
14
+ @each $breakpoint, $width in VAR.$breakpoints {
15
+ @media (min-width: #{$width}) {
16
+ .align-baseline\@#{$breakpoint} { @include align-baseline; }
17
+ .align-top\@#{$breakpoint} { @include align-top; }
18
+ .align-middle\@#{$breakpoint} { @include align-middle; }
19
+ .align-bottom\@#{$breakpoint} { @include align-bottom; }
21
20
  }
22
- }
21
+ }
22
+ }
@@ -2,6 +2,7 @@
2
2
 
3
3
  @use "sass:map";
4
4
  @use "../abstracts/functions" as *;
5
+ @use "../abstracts" as VAR;
5
6
 
6
7
  $generated-keyframes: ();
7
8
 
@@ -45,15 +46,13 @@ $generated-keyframes: ();
45
46
  // Handle units
46
47
  $x-unit: if($x, safe-unit-name(get-unit($x)), "-");
47
48
  $y-unit: if($y, safe-unit-name(get-unit($y)), "-");
48
-
49
+
49
50
  // Clean values (remove units)
50
51
  $clean-x: if($x, strip-unit($x), 0);
51
52
  $clean-y: if($y, strip-unit($y), 0);
52
53
  $animation-name: anim-bounce-#{$clean-x}#{$x-unit}-#{$clean-y}#{$y-unit};
53
54
 
54
- & {
55
- animation: #{$animation-name} $duration $easing $iteration;
56
- }
55
+ animation: #{$animation-name} $duration $easing $iteration;
57
56
  @include generate-bounce-keyframes($animation-name, $x, $y);
58
57
  }
59
58
 
@@ -76,9 +75,63 @@ $generated-keyframes: ();
76
75
  }
77
76
 
78
77
  @mixin hover-ready {
79
- & {
80
- transition-property: color, background-color, border-color, box-shadow, opacity, border-radius;
81
- transition-duration: 0.2s;
82
- transition-timing-function: ease-in-out;
78
+ transition-property: all;
79
+ transition-duration: 0.2s;
80
+ transition-timing-function: ease-in-out;
81
+ }
82
+
83
+ @if VAR.$generate-utility-classes {
84
+ .anim__bounce {
85
+ @include animate-bounce((
86
+ vertical: 50%,
87
+ horizontal: 50%,
88
+ duration: 1s,
89
+ timing: ease-in-out,
90
+ iteration: infinite,
91
+ ));
92
+ }
93
+
94
+ .anim__bounce-sm {
95
+ @include animate-bounce((
96
+ vertical: 25%,
97
+ horizontal: 25%,
98
+ duration: 1s,
99
+ timing: ease-in-out,
100
+ iteration: infinite,
101
+ ));
102
+ }
103
+
104
+ .anim__bounce-md {
105
+ @include animate-bounce((
106
+ vertical: 50%,
107
+ horizontal: 50%,
108
+ duration: 1s,
109
+ timing: ease-in-out,
110
+ iteration: infinite,
111
+ ));
112
+ }
113
+
114
+ .anim__bounce-lg {
115
+ @include animate-bounce((
116
+ vertical: 75%,
117
+ horizontal: 75%,
118
+ duration: 1s,
119
+ timing: ease-in-out,
120
+ iteration: infinite,
121
+ ));
122
+ }
123
+
124
+ .anim__bounce-xl {
125
+ @include animate-bounce((
126
+ vertical: 100%,
127
+ horizontal: 100%,
128
+ duration: 1s,
129
+ timing: ease-in-out,
130
+ iteration: infinite,
131
+ ));
132
+ }
133
+
134
+ .hover-ready{
135
+ @include hover-ready;
83
136
  }
84
137
  }
@@ -5,24 +5,26 @@
5
5
  @use 'sass:map';
6
6
  @use '../abstracts' as *;
7
7
 
8
+
9
+
10
+ // Common border styles
11
+ $border-styles: (solid, dashed, dotted, double, none);
12
+
8
13
  // -----------------------------------------------
9
14
  // MIXINS
10
15
  // -----------------------------------------------
11
16
 
12
17
  // Core Border Mixins - improved to include style and color by default
13
- @mixin border($val) {
14
- $val: if($val == 0, $val, $val + px);
15
-
18
+ // SKIP Documentation
19
+ @mixin border($val, $style: solid, $color: var(--border)) {
16
20
  border-width: $val;
17
21
  @if $val != 0 {
18
- border-style: solid; // Apply solid style by default when width > 0
19
- border-color: var(--border, var(--border)); // Apply default color
20
- }
22
+ border-style: $style;
23
+ border-color: $color;
24
+ }
21
25
  }
22
26
 
23
27
  @mixin border-top($val) {
24
- $val: if($val == 0, $val, $val + px);
25
-
26
28
  border-top-width: $val;
27
29
  @if $val != 0 {
28
30
  border-top-style: solid;
@@ -31,8 +33,6 @@
31
33
  }
32
34
 
33
35
  @mixin border-right($val) {
34
- $val: if($val == 0, $val, $val + px);
35
-
36
36
  border-right-width: $val;
37
37
  @if $val != 0 {
38
38
  border-right-style: solid;
@@ -41,8 +41,6 @@
41
41
  }
42
42
 
43
43
  @mixin border-bottom($val) {
44
- $val: if($val == 0, $val, $val + px);
45
-
46
44
  border-bottom-width: $val;
47
45
  @if $val != 0 {
48
46
  border-bottom-style: solid;
@@ -51,8 +49,6 @@
51
49
  }
52
50
 
53
51
  @mixin border-left($val) {
54
- $val: if($val == 0, $val, $val + px);
55
-
56
52
  border-left-width: $val;
57
53
  @if $val != 0 {
58
54
  border-left-style: solid;
@@ -60,35 +56,62 @@
60
56
  }
61
57
  }
62
58
 
63
- // Border Radius Mixins
64
- @mixin rounded($val: map.get($border-radii, 'md')) {
65
- border-radius: $val;
59
+ /**
60
+ * @description Applies border radius to all corners
61
+ * @param {String} $val - The border radius value
62
+ */
63
+ @mixin rounded($val: null) {
64
+ border-radius: if($val == null, map.get($border-radii, 'md'), $val);
66
65
  }
67
66
 
68
- @mixin rounded-t($val) {
67
+ @mixin rounded-t($val: null) {
68
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
69
+
69
70
  border-top-left-radius: $val;
70
71
  border-top-right-radius: $val;
71
72
  }
72
73
 
73
- @mixin rounded-r($val) {
74
+ @mixin rounded-r($val: null) {
75
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
76
+
74
77
  border-top-right-radius: $val;
75
78
  border-bottom-right-radius: $val;
76
79
  }
77
80
 
78
- @mixin rounded-b($val) {
81
+ @mixin rounded-b($val: null) {
82
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
83
+
79
84
  border-bottom-left-radius: $val;
80
85
  border-bottom-right-radius: $val;
81
86
  }
82
87
 
83
- @mixin rounded-l($val) {
88
+ @mixin rounded-l($val: null) {
89
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
90
+
84
91
  border-top-left-radius: $val;
85
92
  border-bottom-left-radius: $val;
86
93
  }
87
94
 
88
- @mixin rounded-tl($val) { border-top-left-radius: $val; }
89
- @mixin rounded-tr($val) { border-top-right-radius: $val; }
90
- @mixin rounded-br($val) { border-bottom-right-radius: $val; }
91
- @mixin rounded-bl($val) { border-bottom-left-radius: $val; }
95
+ @mixin rounded-tl($val: null) {
96
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
97
+
98
+ border-top-left-radius: $val;
99
+ }
100
+ @mixin rounded-tr($val: null) {
101
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
102
+
103
+ border-top-right-radius: $val;
104
+ }
105
+ @mixin rounded-br($val: null) {
106
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
107
+
108
+ border-bottom-right-radius: $val;
109
+ }
110
+ @mixin rounded-bl($val: null) {
111
+ $val: if($val == null, map.get($border-radii, 'md'), $val);
112
+
113
+ border-bottom-left-radius: $val;
114
+ }
92
115
 
93
116
  // Border Style and Color
94
117
  @mixin border-style($style) { border-style: $style; }
@@ -101,6 +124,8 @@
101
124
  border-color: $color;
102
125
  }
103
126
 
127
+ @mixin pill { @include rounded(9999px); } // todo: doc missing
128
+
104
129
  // -----------------------------------------------
105
130
  // VARIABLES
106
131
  // -----------------------------------------------
@@ -120,9 +145,6 @@ $border-radii: (
120
145
  'none': 0
121
146
  );
122
147
 
123
- // Common border styles
124
- $border-styles: (solid, dashed, dotted, double, none);
125
-
126
148
  // -----------------------------------------------
127
149
  // UTILITY CLASSES
128
150
  // -----------------------------------------------
@@ -173,7 +195,7 @@ $border-styles: (solid, dashed, dotted, double, none);
173
195
  }
174
196
 
175
197
  // Pill shape (alias for full radius)
176
- .pill { @include rounded(9999px); }
198
+ .pill { @include pill; }
177
199
 
178
200
  // Border styles - these override the default solid style if needed
179
201
  @each $style in $border-styles {
@@ -288,7 +310,7 @@ $border-styles: (solid, dashed, dotted, double, none);
288
310
 
289
311
  .rounded\@#{$breakpoint} { @include rounded; }
290
312
  .square\@#{$breakpoint} { @include rounded(0); }
291
- .pill\@#{$breakpoint} { @include rounded(9999px); }
313
+ .pill\@#{$breakpoint} { @include pill; }
292
314
  }
293
315
  }
294
- }
316
+ }