@nuvoui/core 1.2.3 → 1.2.4
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.
- package/dist/nuvoui.css +2424 -2871
- package/dist/nuvoui.css.map +1 -1
- package/dist/nuvoui.min.css +1 -1
- package/dist/nuvoui.min.css.map +1 -1
- package/package.json +1 -1
- package/src/styles/abstracts/_config.scss +35 -54
- package/src/styles/abstracts/_index.scss +0 -1
- package/src/styles/base/_base.scss +4 -8
- package/src/styles/base/_index.scss +1 -1
- package/src/styles/base/_reset.scss +66 -31
- package/src/styles/mixins-map.scss +1 -1
- package/src/styles/themes/_theme.scss +83 -81
- package/src/styles/utilities/_media-queries.scss +24 -15
- package/src/styles/utilities/_sizing.scss +29 -9
- package/src/styles/utilities/_spacing.scss +6 -10
|
@@ -54,32 +54,34 @@
|
|
|
54
54
|
scrollbar-width: thin;
|
|
55
55
|
scrollbar-color: #888 var(--background);
|
|
56
56
|
}
|
|
57
|
+
|
|
58
|
+
@if $enable-dark-mode {
|
|
59
|
+
// Dark theme settings
|
|
60
|
+
[data-theme="dark"] {
|
|
61
|
+
--background: #{map.get($dark-theme, "background")};
|
|
62
|
+
--foreground: #{map.get($dark-theme, "foreground")};
|
|
63
|
+
--surface: #{map.get($dark-theme, "surface")};
|
|
64
|
+
--border: var(--gray-400);
|
|
65
|
+
--text-primary: var(--gray-100);
|
|
66
|
+
--text-secondary: var(--gray-400);
|
|
67
|
+
--button-bg-color: var(--primary);
|
|
68
|
+
--button-bg-color-hover: var(--primary-400);
|
|
69
|
+
--button-text-color: var(--gray-200);
|
|
70
|
+
--link-color: var(--primary);
|
|
71
|
+
--link-hover-color: var(--primary-400);
|
|
72
|
+
--inverted-text-color: var(--gray-900);
|
|
73
|
+
|
|
74
|
+
&::-webkit-scrollbar-track {
|
|
75
|
+
background: var(--background);
|
|
76
|
+
}
|
|
57
77
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
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
|
-
}
|
|
78
|
+
&::-webkit-scrollbar-thumb {
|
|
79
|
+
background-color: #555;
|
|
80
|
+
border: 3px solid var(--background);
|
|
81
|
+
}
|
|
76
82
|
|
|
77
|
-
|
|
78
|
-
background-color: #555;
|
|
79
|
-
border: 3px solid var(--background);
|
|
83
|
+
scrollbar-color: #555 var(--background);
|
|
80
84
|
}
|
|
81
|
-
|
|
82
|
-
scrollbar-color: #555 var(--background);
|
|
83
85
|
}
|
|
84
86
|
|
|
85
87
|
// -----------------------------------------------
|
|
@@ -90,34 +92,47 @@
|
|
|
90
92
|
// primar, secondry, warning etc.
|
|
91
93
|
@each $color-name, $scale in COL.$colors {
|
|
92
94
|
@each $shade, $value in $scale {
|
|
93
|
-
.bg-#{$color-name}-#{$shade} {
|
|
94
|
-
background-color: var(--#{$color-name}-#{$shade});
|
|
95
|
-
}
|
|
96
|
-
|
|
97
95
|
// Automatic text contrast for backgrounds
|
|
98
96
|
// todo: documentaton may add karo issay
|
|
99
97
|
.text-on-#{$color-name}-#{$shade} {
|
|
100
98
|
color: COL.find-text-color($value);
|
|
101
99
|
}
|
|
102
100
|
|
|
103
|
-
.text-#{$color-name}-#{$shade}
|
|
101
|
+
.text-#{$color-name}-#{$shade},
|
|
102
|
+
.hover\:text--#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
|
|
103
|
+
.group:hover .group-hover\:text--#{$color-name}-#{$shade} {
|
|
104
104
|
color: var(--#{$color-name}-#{$shade});
|
|
105
105
|
}
|
|
106
|
-
|
|
106
|
+
|
|
107
|
+
.bg-#{$color-name}-#{$shade},
|
|
108
|
+
.hover\:bg-#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
|
|
109
|
+
.group:hover .group-hover\:bg-#{$color-name}-#{$shade} {
|
|
110
|
+
background-color: var(--#{$color-name}-#{$shade});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.border-#{$color-name}-#{$shade},
|
|
114
|
+
.hover\:border-#{$color-name}-#{$shade}:hover,
|
|
115
|
+
.group:hover .group-hover\:border-#{$color-name}-#{$shade} {
|
|
107
116
|
border-color: var(--#{$color-name}-#{$shade});
|
|
108
117
|
}
|
|
109
118
|
}
|
|
110
119
|
|
|
111
120
|
// Base color classes
|
|
112
|
-
.
|
|
113
|
-
|
|
121
|
+
.text-#{$color-name},
|
|
122
|
+
.hover\:text--#{$color-name}:hover, // todo: improve these loops to save time
|
|
123
|
+
.group:hover .group-hover\:text--#{$color-name} {
|
|
124
|
+
color: var(--#{$color-name});
|
|
114
125
|
}
|
|
115
126
|
|
|
116
|
-
.
|
|
117
|
-
|
|
127
|
+
.bg-#{$color-name},
|
|
128
|
+
.hover\:bg-#{$color-name}:hover, // todo: improve these loops to save time
|
|
129
|
+
.group:hover .group-hover\:bg-#{$color-name} {
|
|
130
|
+
background-color: var(--#{$color-name});
|
|
118
131
|
}
|
|
119
|
-
|
|
120
|
-
.border-#{$color-name}
|
|
132
|
+
|
|
133
|
+
.border-#{$color-name},
|
|
134
|
+
.hover\:border-#{$color-name}:hover,
|
|
135
|
+
.group:hover .group-hover\:border-#{$color-name} {
|
|
121
136
|
border-color: var(--#{$color-name});
|
|
122
137
|
}
|
|
123
138
|
}
|
|
@@ -126,32 +141,45 @@
|
|
|
126
141
|
// green, purple, pink etc.
|
|
127
142
|
@each $color-name, $scale in COL.$colors-primitives {
|
|
128
143
|
@each $shade, $value in $scale {
|
|
129
|
-
.bg-#{$color-name}-#{$shade} {
|
|
130
|
-
background-color: var(--#{$color-name}-#{$shade});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
144
|
.text-on-#{$color-name}-#{$shade} {
|
|
134
145
|
color: COL.find-text-color($value);
|
|
135
146
|
}
|
|
136
147
|
|
|
137
|
-
.text-#{$color-name}-#{$shade}
|
|
148
|
+
.text-#{$color-name}-#{$shade},
|
|
149
|
+
.hover\:text--#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
|
|
150
|
+
.group:hover .group-hover\:text--#{$color-name}-#{$shade} {
|
|
138
151
|
color: var(--#{$color-name}-#{$shade});
|
|
139
152
|
}
|
|
140
|
-
|
|
153
|
+
|
|
154
|
+
.bg-#{$color-name}-#{$shade},
|
|
155
|
+
.hover\:bg-#{$color-name}-#{$shade}:hover, // todo: improve these loops to save time
|
|
156
|
+
.group:hover .group-hover\:bg-#{$color-name}-#{$shade} {
|
|
157
|
+
background-color: var(--#{$color-name}-#{$shade});
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.border-#{$color-name}-#{$shade},
|
|
161
|
+
.hover\:border-#{$color-name}-#{$shade}:hover,
|
|
162
|
+
.group:hover .group-hover\:border-#{$color-name}-#{$shade} {
|
|
141
163
|
border-color: var(--#{$color-name}-#{$shade});
|
|
142
164
|
}
|
|
143
165
|
}
|
|
144
166
|
|
|
145
167
|
// Base color classes
|
|
146
|
-
.
|
|
147
|
-
|
|
168
|
+
.text-#{$color-name},
|
|
169
|
+
.hover\:text--#{$color-name}:hover, // todo: improve these loops to save time
|
|
170
|
+
.group:hover .group-hover\:text--#{$color-name} {
|
|
171
|
+
color: var(--#{$color-name});
|
|
148
172
|
}
|
|
149
173
|
|
|
150
|
-
.
|
|
151
|
-
|
|
174
|
+
.bg-#{$color-name},
|
|
175
|
+
.hover\:bg-#{$color-name}:hover, // todo: improve these loops to save time
|
|
176
|
+
.group:hover .group-hover\:bg-#{$color-name} {
|
|
177
|
+
background-color: var(--#{$color-name});
|
|
152
178
|
}
|
|
153
|
-
|
|
154
|
-
.border-#{$color-name}
|
|
179
|
+
|
|
180
|
+
.border-#{$color-name},
|
|
181
|
+
.hover\:border-#{$color-name}:hover,
|
|
182
|
+
.group:hover .group-hover\:border-#{$color-name} {
|
|
155
183
|
border-color: var(--#{$color-name});
|
|
156
184
|
}
|
|
157
185
|
}
|
|
@@ -173,6 +201,14 @@
|
|
|
173
201
|
background-color: var(--button-bg-color-hover);
|
|
174
202
|
}
|
|
175
203
|
|
|
204
|
+
.bg-white {
|
|
205
|
+
background-color: white;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.bg-black {
|
|
209
|
+
background-color: black;
|
|
210
|
+
}
|
|
211
|
+
|
|
176
212
|
.text-default {
|
|
177
213
|
color: var(--text-primary);
|
|
178
214
|
}
|
|
@@ -190,14 +226,6 @@
|
|
|
190
226
|
color: var(--inverted-text-color);
|
|
191
227
|
}
|
|
192
228
|
|
|
193
|
-
.bg-white {
|
|
194
|
-
background-color: white;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
.bg-black {
|
|
198
|
-
background-color: black;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
229
|
.text-white {
|
|
202
230
|
color: white;
|
|
203
231
|
}
|
|
@@ -205,31 +233,6 @@
|
|
|
205
233
|
.text-black {
|
|
206
234
|
color: black;
|
|
207
235
|
}
|
|
208
|
-
|
|
209
|
-
// Hover utilities
|
|
210
|
-
@each $color-name, $scale in COL.$colors {
|
|
211
|
-
@each $shade, $value in $scale {
|
|
212
|
-
.hover\:bg-#{$color-name}-#{$shade}:hover {
|
|
213
|
-
background-color: var(--#{$color-name}-#{$shade});
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
.hover\:text-#{$color-name}-#{$shade}:hover {
|
|
217
|
-
color: var(--#{$color-name}-#{$shade});
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
@each $color-name, $scale in COL.$colors-primitives {
|
|
223
|
-
@each $shade, $value in $scale {
|
|
224
|
-
.hover\:bg-#{$color-name}-#{$shade}:hover {
|
|
225
|
-
background-color: var(--#{$color-name}-#{$shade});
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
.hover\:text-#{$color-name}-#{$shade}:hover {
|
|
229
|
-
color: var(--#{$color-name}-#{$shade});
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
236
|
}
|
|
234
237
|
|
|
235
238
|
// Glass effects
|
|
@@ -238,7 +241,6 @@
|
|
|
238
241
|
border: 1px solid rgb(255 255 255 / 20%);
|
|
239
242
|
|
|
240
243
|
@include COL.backdrop-filter(blur(8px));
|
|
241
|
-
|
|
242
244
|
}
|
|
243
245
|
|
|
244
246
|
.frosted-glass {
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
}
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
// todo: doc
|
|
76
77
|
// Touch devices
|
|
77
78
|
@mixin touch {
|
|
78
79
|
@media (hover: none) and (pointer: coarse) {
|
|
@@ -80,6 +81,7 @@
|
|
|
80
81
|
}
|
|
81
82
|
}
|
|
82
83
|
|
|
84
|
+
// todo: doc
|
|
83
85
|
// Print media
|
|
84
86
|
@mixin print {
|
|
85
87
|
@media print {
|
|
@@ -87,6 +89,7 @@
|
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
91
|
|
|
92
|
+
// todo: doc
|
|
90
93
|
// Example: @include supports(display: grid) { }
|
|
91
94
|
@mixin supports($property) {
|
|
92
95
|
@supports (#{$property}) {
|
|
@@ -94,6 +97,7 @@
|
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
|
|
100
|
+
// todo: doc
|
|
97
101
|
// System preference only
|
|
98
102
|
@mixin prefers-dark {
|
|
99
103
|
@media (prefers-color-scheme: dark) {
|
|
@@ -101,21 +105,25 @@
|
|
|
101
105
|
}
|
|
102
106
|
}
|
|
103
107
|
|
|
108
|
+
// todo: doc
|
|
104
109
|
// User preference takes precedence
|
|
105
110
|
@mixin dark-mode {
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Apply when system is dark AND user hasn't made a choice
|
|
112
|
-
@media (prefers-color-scheme: dark) {
|
|
113
|
-
[data-theme="system"] & {
|
|
111
|
+
@if $enable-dark-mode { // todo: documentation as this will fully remove the dark mode by force
|
|
112
|
+
// Apply when user explicitly chooses dark
|
|
113
|
+
[data-theme="dark"] & {
|
|
114
114
|
@content;
|
|
115
115
|
}
|
|
116
|
+
|
|
117
|
+
// Apply when system is dark AND user hasn't made a choice
|
|
118
|
+
@media (prefers-color-scheme: dark) {
|
|
119
|
+
[data-theme="system"] & {
|
|
120
|
+
@content;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
116
123
|
}
|
|
117
124
|
}
|
|
118
125
|
|
|
126
|
+
// todo: doc
|
|
119
127
|
// Device orientation
|
|
120
128
|
@mixin landscape {
|
|
121
129
|
@media screen and (orientation: landscape) {
|
|
@@ -123,17 +131,20 @@
|
|
|
123
131
|
}
|
|
124
132
|
}
|
|
125
133
|
|
|
134
|
+
// todo: doc
|
|
126
135
|
@mixin portrait {
|
|
127
136
|
@media screen and (orientation: portrait) {
|
|
128
137
|
@content;
|
|
129
138
|
}
|
|
130
139
|
}
|
|
131
140
|
|
|
141
|
+
// todo: doc
|
|
132
142
|
// Modern aspect ratio
|
|
133
143
|
@mixin aspect-ratio($ratio) {
|
|
134
144
|
aspect-ratio: #{$ratio};
|
|
135
145
|
}
|
|
136
146
|
|
|
147
|
+
// todo: doc
|
|
137
148
|
// Dynamic viewport units (modern browsers)
|
|
138
149
|
@mixin dvh {
|
|
139
150
|
@supports (height: 100dvh) {
|
|
@@ -145,24 +156,20 @@
|
|
|
145
156
|
}
|
|
146
157
|
}
|
|
147
158
|
|
|
159
|
+
// todo: doc
|
|
148
160
|
// Safe area insets (notches, home indicators)
|
|
149
161
|
@mixin safe-area-inset($property, $position) {
|
|
150
162
|
#{$property}: env(safe-area-inset-#{$position});
|
|
151
163
|
}
|
|
152
164
|
|
|
165
|
+
// todo: doc
|
|
153
166
|
@mixin reduced-motion {
|
|
154
167
|
@media (prefers-reduced-motion: reduce) {
|
|
155
168
|
@content;
|
|
156
169
|
}
|
|
157
170
|
}
|
|
158
171
|
|
|
159
|
-
//
|
|
160
|
-
@mixin save-data {
|
|
161
|
-
@media (prefers-reduced-data: reduce) {
|
|
162
|
-
@content;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
172
|
+
// todo: doc
|
|
166
173
|
// Mouse precision detection
|
|
167
174
|
@mixin fine-pointer {
|
|
168
175
|
@media (pointer: fine) {
|
|
@@ -170,6 +177,7 @@
|
|
|
170
177
|
}
|
|
171
178
|
}
|
|
172
179
|
|
|
180
|
+
// todo: doc
|
|
173
181
|
// Display mode for PWAs
|
|
174
182
|
@mixin display-mode($mode: "standalone") {
|
|
175
183
|
@media (display-mode: #{$mode}) {
|
|
@@ -177,6 +185,7 @@
|
|
|
177
185
|
}
|
|
178
186
|
}
|
|
179
187
|
|
|
188
|
+
// todo: doc
|
|
180
189
|
// High contrast mode
|
|
181
190
|
@mixin high-contrast {
|
|
182
191
|
@media (forced-colors: active) {
|
|
@@ -20,14 +20,20 @@
|
|
|
20
20
|
@mixin max-width-percent($i) { max-width: str.unquote($i + '%'); }
|
|
21
21
|
@mixin max-height-percent($i) { max-height: str.unquote($i + '%'); }
|
|
22
22
|
|
|
23
|
-
@mixin w-auto { width
|
|
24
|
-
@mixin w-full { width
|
|
25
|
-
@mixin h-auto { height
|
|
26
|
-
@mixin h-full { height
|
|
27
|
-
@mixin
|
|
28
|
-
@mixin max
|
|
29
|
-
@mixin min
|
|
30
|
-
@mixin
|
|
23
|
+
@mixin w-auto { @include width(auto);}
|
|
24
|
+
@mixin w-full { @include width(100%);}
|
|
25
|
+
@mixin h-auto { @include height(auto);}
|
|
26
|
+
@mixin h-full { @include height(100%);}
|
|
27
|
+
@mixin w-max { @include width(max-content);}
|
|
28
|
+
@mixin h-max { @include height(max-content);}
|
|
29
|
+
@mixin w-min { @include width(min-content);}
|
|
30
|
+
@mixin h-min { @include height(min-content);}
|
|
31
|
+
@mixin w-fit { @include width(fit-content);}
|
|
32
|
+
@mixin h-fit { @include height(fit-content);}
|
|
33
|
+
@mixin min-w-full { @include min-width(100%);}
|
|
34
|
+
@mixin max-w-full { @include max-width(100%);}
|
|
35
|
+
@mixin min-h-full { @include min-height(100%);}
|
|
36
|
+
@mixin max-h-full { @include max-height(100%);}
|
|
31
37
|
|
|
32
38
|
@mixin w-screen { width: 100vw; }
|
|
33
39
|
@mixin h-screen { height: 100dvh; }
|
|
@@ -38,9 +44,13 @@
|
|
|
38
44
|
|
|
39
45
|
.w-auto { @include w-auto; }
|
|
40
46
|
.w-full { @include w-full; }
|
|
41
|
-
|
|
42
47
|
.h-auto { @include h-auto; }
|
|
43
48
|
.h-full { @include h-full; }
|
|
49
|
+
.w-min { @include w-min;}
|
|
50
|
+
.h-min { @include h-min;}
|
|
51
|
+
.w-fit { @include w-fit;}
|
|
52
|
+
.h-fit { @include h-fit;}
|
|
53
|
+
|
|
44
54
|
.min-w-full { @include min-w-full; }
|
|
45
55
|
.max-w-full { @include max-w-full; }
|
|
46
56
|
.min-h-full { @include min-h-full; }
|
|
@@ -73,6 +83,16 @@
|
|
|
73
83
|
.min-w-#{$breakpoint} { @include min-width($width); }
|
|
74
84
|
.max-w-#{$breakpoint} { @include max-width($width); }
|
|
75
85
|
|
|
86
|
+
|
|
87
|
+
.w-auto\@#{$breakpoint} { @include w-auto; }
|
|
88
|
+
.w-full\@#{$breakpoint} { @include w-full; }
|
|
89
|
+
.h-auto\@#{$breakpoint} { @include h-auto; }
|
|
90
|
+
.h-full\@#{$breakpoint} { @include h-full; }
|
|
91
|
+
.w-min\@#{$breakpoint}{ @include w-min;}
|
|
92
|
+
.h-min\@#{$breakpoint}{ @include h-min;}
|
|
93
|
+
.w-fit\@#{$breakpoint}{ @include w-fit;}
|
|
94
|
+
.h-fit\@#{$breakpoint}{ @include h-fit;}
|
|
95
|
+
|
|
76
96
|
@include MQ.media-up ($breakpoint) {
|
|
77
97
|
// Generate utilities from spacing map
|
|
78
98
|
@each $i in VAR.$percentages {
|
|
@@ -127,8 +127,7 @@
|
|
|
127
127
|
@mixin px($val) {
|
|
128
128
|
$val: format-unit-value($val);
|
|
129
129
|
|
|
130
|
-
padding-
|
|
131
|
-
padding-right: $val;
|
|
130
|
+
padding-inline: $val;
|
|
132
131
|
}
|
|
133
132
|
|
|
134
133
|
/**
|
|
@@ -138,9 +137,8 @@
|
|
|
138
137
|
*/
|
|
139
138
|
@mixin py($val) {
|
|
140
139
|
$val: format-unit-value($val);
|
|
141
|
-
|
|
142
|
-
padding-
|
|
143
|
-
padding-bottom: $val;
|
|
140
|
+
|
|
141
|
+
padding-block: $val;
|
|
144
142
|
}
|
|
145
143
|
|
|
146
144
|
/**
|
|
@@ -210,8 +208,7 @@
|
|
|
210
208
|
@mixin mx($val) {
|
|
211
209
|
$val: format-unit-value($val);
|
|
212
210
|
|
|
213
|
-
margin-
|
|
214
|
-
margin-right: $val;
|
|
211
|
+
margin-inline: $val;
|
|
215
212
|
}
|
|
216
213
|
|
|
217
214
|
/**
|
|
@@ -220,10 +217,9 @@
|
|
|
220
217
|
* @param {Number|String} $val - Margin value
|
|
221
218
|
*/
|
|
222
219
|
@mixin my($val) {
|
|
223
|
-
$val: format-unit-value($val);
|
|
220
|
+
$val: format-unit-value($val);
|
|
224
221
|
|
|
225
|
-
margin-
|
|
226
|
-
margin-bottom: $val;
|
|
222
|
+
margin-block: $val;
|
|
227
223
|
}
|
|
228
224
|
|
|
229
225
|
/**
|