@nordcode/ui 2.0.5 → 2.1.0

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 (36) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/LICENSE.md +159 -159
  3. package/README.md +1 -14
  4. package/out/bundle.css +44 -26
  5. package/out/bundle_configless.css +32 -14
  6. package/out/complete.css +170 -144
  7. package/out/complete_configless.css +158 -132
  8. package/package.json +4 -3
  9. package/src/assets/icons/ArrowRightSolid.svelte +3 -1
  10. package/src/assets/icons/arrow-right-solid.svg +5 -1
  11. package/src/assets/icons/favicon.svg +13 -4
  12. package/src/assets/logos/nordcode-logo-icon.svg +6 -1
  13. package/src/assets/logos/nordcode-logo.svg +46 -13
  14. package/src/modules/dialogs/svelte/dialog.svelte +14 -15
  15. package/src/modules/dialogs/ts/dialogs.ts +80 -79
  16. package/src/modules/notifications/js/notifications.js +3 -6
  17. package/src/modules/notifications/svelte/NotificationTemplate.svelte +0 -2
  18. package/src/styles/components/buttons.css +70 -93
  19. package/src/styles/components/card.css +1 -1
  20. package/src/styles/components/dialogs.css +4 -5
  21. package/src/styles/components/forms.css +3 -7
  22. package/src/styles/components/gallery.css +12 -8
  23. package/src/styles/components/inputs/base.css +24 -72
  24. package/src/styles/components/inputs/segmented.css +4 -8
  25. package/src/styles/components/inputs/switch.css +2 -4
  26. package/src/styles/components/notifications.css +3 -4
  27. package/src/styles/config/config.css +352 -305
  28. package/src/styles/theme/colors.css +182 -124
  29. package/src/styles/theme/colors_processed.css +254 -80
  30. package/src/styles/utils/base.css +2 -13
  31. package/src/styles/utils/bundle.css +1 -0
  32. package/src/styles/utils/conditionalRadius.css +7 -0
  33. package/src/styles/utils/easings.css +360 -304
  34. package/src/styles/utils/layouts.css +12 -18
  35. package/src/styles/utils/reset.css +5 -38
  36. package/transform.js +2 -9
package/out/complete.css CHANGED
@@ -59,14 +59,14 @@
59
59
  --color-brand-primary-base-light: oklch(var(--l-brand-primary-light) var(--c-brand-primary) var(--h-brand-primary));
60
60
  --color-brand-primary-emphasis-light: oklch(calc(var(--l-brand-primary-light) * .85) calc(var(--c-brand-primary) * 1.1) var(--h-brand-primary));
61
61
  --color-brand-primary-surface-light: oklch(calc(var(--lightness-max) - .1 + var(--l-brand-primary-light) / 10) calc(var(--c-brand-primary) * .25) var(--h-brand-primary));
62
- --color-brand-primary-contrast-lightness-light: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-brand-primary-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
62
+ --color-brand-primary-contrast-lightness-light: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-brand-primary-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
63
63
  --color-brand-primary-contrast-light: oklch(var(--color-brand-primary-contrast-lightness-light) calc(var(--c-brand-primary) * .25) var(--h-brand-primary));
64
64
  --color-brand-primary-hover-light: oklch(var(--l-brand-primary-light) var(--c-brand-primary) var(--h-brand-primary) / calc(var(--transparency-weaker) / 10));
65
65
  --l-brand-primary-dark: .75;
66
66
  --color-brand-primary-base-dark: oklch(var(--l-brand-primary-dark) var(--c-brand-primary) var(--h-brand-primary));
67
67
  --color-brand-primary-emphasis-dark: oklch(calc(var(--l-brand-primary-dark) * 1.25) calc(var(--c-brand-primary) * 1.1) var(--h-brand-primary));
68
68
  --color-brand-primary-surface-dark: oklch(calc(var(--lightness-min) + var(--l-brand-primary-dark) / 3) calc(var(--c-brand-primary) * .25) var(--h-brand-primary));
69
- --color-brand-primary-contrast-lightness-dark: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-brand-primary-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
69
+ --color-brand-primary-contrast-lightness-dark: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-brand-primary-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
70
70
  --color-brand-primary-contrast-dark: oklch(var(--color-brand-primary-contrast-lightness-dark) calc(var(--c-brand-primary) * .25) var(--h-brand-primary));
71
71
  --color-brand-primary-hover-dark: oklch(var(--l-brand-primary-dark) var(--c-brand-primary) var(--h-brand-primary) / calc(var(--transparency-weaker) / 10));
72
72
  --c-brand-secondary: .4;
@@ -75,14 +75,14 @@
75
75
  --color-brand-secondary-base-light: oklch(var(--l-brand-secondary-light) var(--c-brand-secondary) var(--h-brand-secondary));
76
76
  --color-brand-secondary-emphasis-light: oklch(calc(var(--l-brand-secondary-light) * .85) calc(var(--c-brand-secondary) * 1.1) var(--h-brand-secondary));
77
77
  --color-brand-secondary-surface-light: oklch(calc(var(--lightness-max) - .1 + var(--l-brand-secondary-light) / 10) calc(var(--c-brand-secondary) * .25) var(--h-brand-secondary));
78
- --color-brand-secondary-contrast-lightness-light: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-brand-secondary-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
78
+ --color-brand-secondary-contrast-lightness-light: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-brand-secondary-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
79
79
  --color-brand-secondary-contrast-light: oklch(var(--color-brand-secondary-contrast-lightness-light) calc(var(--c-brand-secondary) * .25) var(--h-brand-secondary));
80
80
  --color-brand-secondary-hover-light: oklch(var(--l-brand-secondary-light) var(--c-brand-secondary) var(--h-brand-secondary) / calc(var(--transparency-weaker) / 10));
81
81
  --l-brand-secondary-dark: .76;
82
82
  --color-brand-secondary-base-dark: oklch(var(--l-brand-secondary-dark) var(--c-brand-secondary) var(--h-brand-secondary));
83
83
  --color-brand-secondary-emphasis-dark: oklch(calc(var(--l-brand-secondary-dark) * 1.25) calc(var(--c-brand-secondary) * 1.1) var(--h-brand-secondary));
84
84
  --color-brand-secondary-surface-dark: oklch(calc(var(--lightness-min) + var(--l-brand-secondary-dark) / 3) calc(var(--c-brand-secondary) * .25) var(--h-brand-secondary));
85
- --color-brand-secondary-contrast-lightness-dark: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-brand-secondary-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
85
+ --color-brand-secondary-contrast-lightness-dark: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-brand-secondary-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
86
86
  --color-brand-secondary-contrast-dark: oklch(var(--color-brand-secondary-contrast-lightness-dark) calc(var(--c-brand-secondary) * .25) var(--h-brand-secondary));
87
87
  --color-brand-secondary-hover-dark: oklch(var(--l-brand-secondary-dark) var(--c-brand-secondary) var(--h-brand-secondary) / calc(var(--transparency-weaker) / 10));
88
88
  --l-text-light: .28;
@@ -143,14 +143,14 @@
143
143
  --color-status-success-base-light: oklch(var(--l-status-success-light) var(--c-status-success) var(--h-status-success));
144
144
  --color-status-success-emphasis-light: oklch(calc(var(--l-status-success-light) * .85) calc(var(--c-status-success) * 1.1) var(--h-status-success));
145
145
  --color-status-success-surface-light: oklch(calc(var(--lightness-max) - .1 + var(--l-status-success-light) / 10) calc(var(--c-status-success) * .25) var(--h-status-success));
146
- --color-status-success-contrast-lightness-light: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-success-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
146
+ --color-status-success-contrast-lightness-light: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-success-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
147
147
  --color-status-success-contrast-light: oklch(var(--color-status-success-contrast-lightness-light) calc(var(--c-status-success) * .25) var(--h-status-success));
148
148
  --color-status-success-hover-light: oklch(var(--l-status-success-light) var(--c-status-success) var(--h-status-success) / calc(var(--transparency-weaker) / 10));
149
149
  --l-status-success-dark: .75;
150
150
  --color-status-success-base-dark: oklch(var(--l-status-success-dark) var(--c-status-success) var(--h-status-success));
151
151
  --color-status-success-emphasis-dark: oklch(calc(var(--l-status-success-dark) * 1.25) calc(var(--c-status-success) * 1.1) var(--h-status-success));
152
152
  --color-status-success-surface-dark: oklch(calc(var(--lightness-min) + var(--l-status-success-dark) / 3) calc(var(--c-status-success) * .25) var(--h-status-success));
153
- --color-status-success-contrast-lightness-dark: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-success-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
153
+ --color-status-success-contrast-lightness-dark: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-success-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
154
154
  --color-status-success-contrast-dark: oklch(var(--color-status-success-contrast-lightness-dark) calc(var(--c-status-success) * .25) var(--h-status-success));
155
155
  --color-status-success-hover-dark: oklch(var(--l-status-success-dark) var(--c-status-success) var(--h-status-success) / calc(var(--transparency-weaker) / 10));
156
156
  --c-status-warning: .3;
@@ -159,14 +159,14 @@
159
159
  --color-status-warning-base-light: oklch(var(--l-status-warning-light) var(--c-status-warning) var(--h-status-warning));
160
160
  --color-status-warning-emphasis-light: oklch(calc(var(--l-status-warning-light) * .85) calc(var(--c-status-warning) * 1.1) var(--h-status-warning));
161
161
  --color-status-warning-surface-light: oklch(calc(var(--lightness-max) - .1 + var(--l-status-warning-light) / 10) calc(var(--c-status-warning) * .25) var(--h-status-warning));
162
- --color-status-warning-contrast-lightness-light: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-warning-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
162
+ --color-status-warning-contrast-lightness-light: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-warning-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
163
163
  --color-status-warning-contrast-light: oklch(var(--color-status-warning-contrast-lightness-light) calc(var(--c-status-warning) * .25) var(--h-status-warning));
164
164
  --color-status-warning-hover-light: oklch(var(--l-status-warning-light) var(--c-status-warning) var(--h-status-warning) / calc(var(--transparency-weaker) / 10));
165
165
  --l-status-warning-dark: .75;
166
166
  --color-status-warning-base-dark: oklch(var(--l-status-warning-dark) var(--c-status-warning) var(--h-status-warning));
167
167
  --color-status-warning-emphasis-dark: oklch(calc(var(--l-status-warning-dark) * 1.25) calc(var(--c-status-warning) * 1.1) var(--h-status-warning));
168
168
  --color-status-warning-surface-dark: oklch(calc(var(--lightness-min) + var(--l-status-warning-dark) / 3) calc(var(--c-status-warning) * .25) var(--h-status-warning));
169
- --color-status-warning-contrast-lightness-dark: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-warning-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
169
+ --color-status-warning-contrast-lightness-dark: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-warning-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
170
170
  --color-status-warning-contrast-dark: oklch(var(--color-status-warning-contrast-lightness-dark) calc(var(--c-status-warning) * .25) var(--h-status-warning));
171
171
  --color-status-warning-hover-dark: oklch(var(--l-status-warning-dark) var(--c-status-warning) var(--h-status-warning) / calc(var(--transparency-weaker) / 10));
172
172
  --c-status-danger: .3;
@@ -175,14 +175,14 @@
175
175
  --color-status-danger-base-light: oklch(var(--l-status-danger-light) var(--c-status-danger) var(--h-status-danger));
176
176
  --color-status-danger-emphasis-light: oklch(calc(var(--l-status-danger-light) * .85) calc(var(--c-status-danger) * 1.1) var(--h-status-danger));
177
177
  --color-status-danger-surface-light: oklch(calc(var(--lightness-max) - .1 + var(--l-status-danger-light) / 10) calc(var(--c-status-danger) * .25) var(--h-status-danger));
178
- --color-status-danger-contrast-lightness-light: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-danger-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
178
+ --color-status-danger-contrast-lightness-light: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-danger-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
179
179
  --color-status-danger-contrast-light: oklch(var(--color-status-danger-contrast-lightness-light) calc(var(--c-status-danger) * .25) var(--h-status-danger));
180
180
  --color-status-danger-hover-light: oklch(var(--l-status-danger-light) var(--c-status-danger) var(--h-status-danger) / calc(var(--transparency-weaker) / 10));
181
181
  --l-status-danger-dark: .75;
182
182
  --color-status-danger-base-dark: oklch(var(--l-status-danger-dark) var(--c-status-danger) var(--h-status-danger));
183
183
  --color-status-danger-emphasis-dark: oklch(calc(var(--l-status-danger-dark) * 1.25) calc(var(--c-status-danger) * 1.1) var(--h-status-danger));
184
184
  --color-status-danger-surface-dark: oklch(calc(var(--lightness-min) + var(--l-status-danger-dark) / 3) calc(var(--c-status-danger) * .25) var(--h-status-danger));
185
- --color-status-danger-contrast-lightness-dark: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-danger-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
185
+ --color-status-danger-contrast-lightness-dark: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-danger-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
186
186
  --color-status-danger-contrast-dark: oklch(var(--color-status-danger-contrast-lightness-dark) calc(var(--c-status-danger) * .25) var(--h-status-danger));
187
187
  --color-status-danger-hover-dark: oklch(var(--l-status-danger-dark) var(--c-status-danger) var(--h-status-danger) / calc(var(--transparency-weaker) / 10));
188
188
  --c-status-info: .3;
@@ -191,14 +191,14 @@
191
191
  --color-status-info-base-light: oklch(var(--l-status-info-light) var(--c-status-info) var(--h-status-info));
192
192
  --color-status-info-emphasis-light: oklch(calc(var(--l-status-info-light) * .85) calc(var(--c-status-info) * 1.1) var(--h-status-info));
193
193
  --color-status-info-surface-light: oklch(calc(var(--lightness-max) - .1 + var(--l-status-info-light) / 10) calc(var(--c-status-info) * .25) var(--h-status-info));
194
- --color-status-info-contrast-lightness-light: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-info-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
194
+ --color-status-info-contrast-lightness-light: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-info-light) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
195
195
  --color-status-info-contrast-light: oklch(var(--color-status-info-contrast-lightness-light) calc(var(--c-status-info) * .25) var(--h-status-info));
196
196
  --color-status-info-hover-light: oklch(var(--l-status-info-light) var(--c-status-info) var(--h-status-info) / calc(var(--transparency-weaker) / 10));
197
197
  --l-status-info-dark: .75;
198
198
  --color-status-info-base-dark: oklch(var(--l-status-info-dark) var(--c-status-info) var(--h-status-info));
199
199
  --color-status-info-emphasis-dark: oklch(calc(var(--l-status-info-dark) * 1.25) calc(var(--c-status-info) * 1.1) var(--h-status-info));
200
200
  --color-status-info-surface-dark: oklch(calc(var(--lightness-min) + var(--l-status-info-dark) / 3) calc(var(--c-status-info) * .25) var(--h-status-info));
201
- --color-status-info-contrast-lightness-dark: calc(var(--lightness-max) - ( var(--lightness-diff) * min(max((var(--l-status-info-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1)));
201
+ --color-status-info-contrast-lightness-dark: calc(var(--lightness-max) - var(--lightness-diff) * min(max((var(--l-status-info-dark) - var(--lightness-contrast-cutoff)) * 1000000, 0), 1));
202
202
  --color-status-info-contrast-dark: oklch(var(--color-status-info-contrast-lightness-dark) calc(var(--c-status-info) * .25) var(--h-status-info));
203
203
  --color-status-info-hover-dark: oklch(var(--l-status-info-dark) var(--c-status-info) var(--h-status-info) / calc(var(--transparency-weaker) / 10));
204
204
  --control-height-base: var(--button-height-base);
@@ -307,14 +307,8 @@
307
307
  border-width: 0;
308
308
  }
309
309
 
310
- @media (prefers-reduced-motion: no-preference) {
311
- :where(:focus-visible) {
312
- transition: outline-offset var(--transition-duration-short) var(--ease-2);
313
- }
314
-
315
- :where(:not(:active):focus-visible) {
316
- transition-duration: var(--transition-duration-base);
317
- }
310
+ :where(:focus-visible) {
311
+ transition: outline-offset var(--transition-duration-quick-1) var(--ease-2);
318
312
  }
319
313
 
320
314
  :where(:not(:active):focus-visible) {
@@ -1193,21 +1187,37 @@
1193
1187
  --ease-bounce-3: linear(0, .004, .016, .035, .062, .098, .141 11.4%, .25, .39, .562, .764, 1 30.3%, .847 34.8%, .787, .737, .699, .672, .655, .65, .656, .672, .699, .738, .787, .847 61.7%, 1 66.2%, .946, .908, .885 74.2%, .879, .878, .879, .885 79.5%, .908, .946, 1 87.4%, .981, .968, .96, .957, .96, .968, .981, 1);
1194
1188
  --ease-bounce-4: linear(0, .004, .016 3%, .062, .141, .25, .391, .562 18.2%, 1 24.3%, .81, .676 32.3%, .629, .595, .575, .568, .575, .595, .629, .676 48.2%, .811, 1 56.2%, .918, .86, .825, .814, .825, .86, .918, 1 77.2%, .94 80.6%, .925, .92, .925, .94 87.5%, 1 90.9%, .974, .965, .974, 1);
1195
1189
  --ease-bounce-5: linear(0, .004, .016 2.5%, .063, .141, .25 10.1%, .562, 1 20.2%, .783, .627, .534 30.9%, .511, .503, .511, .534 38%, .627, .782, 1 48.7%, .892, .815, .769 56.3%, .757, .753, .757, .769 61.3%, .815, .892, 1 68.8%, .908 72.4%, .885, .878, .885, .908 79.4%, 1 83%, .954 85.5%, .943, .939, .943, .954 90.5%, 1 93%, .977, .97, .977, 1);
1190
+ --easing-entry: cubic-bezier(.1, 0, 0, 1);
1191
+ --easing-exit: cubic-bezier(.3, 0, 1, .8);
1196
1192
  --transition-duration-instant: 0s;
1197
- --transition-duration-short: .1s;
1198
- --transition-duration-base: .2s;
1199
- --transition-duration-long: .3s;
1193
+ --transition-duration-quick-1: 80ms;
1194
+ --transition-duration-quick-2: .12s;
1195
+ --transition-duration-moderate-1: .18s;
1196
+ --transition-duration-moderate-2: .26s;
1197
+ --transition-duration-gentle-1: .32s;
1198
+ --transition-duration-gentle-2: .42s;
1199
+ --transition-duration-short: var(--transition-duration-quick-1);
1200
+ --transition-duration-base: var(--transition-duration-moderate-1);
1201
+ --transition-duration-long: var(--transition-duration-gentle-1);
1200
1202
  --transition-duration-entry: 0s;
1201
1203
  --transition-duration-exit: 0s;
1202
1204
  --transition-target-scale: .9;
1205
+ --animated-element-distance: 0;
1206
+ --animated-element-width: 0;
1207
+ --animated-element-height: 0;
1208
+ --transition-duration-calculated: calc(( .5 * var(--animated-element-distance, 0) + .35 * var(--animated-element-width, 0) + .3 * var(--animated-element-height, 0)) * 1ms);
1203
1209
  }
1204
1210
 
1205
1211
  @media (prefers-reduced-motion: reduce) {
1206
1212
  :where(html) {
1213
+ --transition-duration-quick-1: 80ms;
1214
+ --transition-duration-quick-2: .12s;
1215
+ --transition-duration-moderate-1: .18s;
1216
+ --transition-duration-moderate-2: .26s;
1217
+ --transition-duration-gentle-1: .32s;
1218
+ --transition-duration-gentle-2: .42s;
1219
+ --transition-duration-calculated: 0;
1207
1220
  --transition-duration-instant: 0s;
1208
- --transition-duration-short: 0s;
1209
- --transition-duration-base: 0s;
1210
- --transition-duration-long: 0s;
1211
1221
  --transition-duration-entry: 0s;
1212
1222
  --transition-duration-exit: 0s;
1213
1223
  }
@@ -1330,6 +1340,14 @@
1330
1340
  }
1331
1341
  }
1332
1342
 
1343
+ @layer helpers.conditionalRadius {
1344
+ :where(html) {
1345
+ --border-radius-cond-small: clamp(0px, calc(100vw - 100%) * 100000, var(--border-radius-small));
1346
+ --border-radius-cond-medium: clamp(0px, calc(100vw - 100%) * 100000, var(--border-radius-medium));
1347
+ --border-radius-cond-large: clamp(0px, calc(100vw - 100%) * 100000, var(--border-radius-large));
1348
+ }
1349
+ }
1350
+
1333
1351
  :where(.text-assistive, .sr-only) {
1334
1352
  clip: rect(0 0 0 0);
1335
1353
  white-space: nowrap;
@@ -1516,7 +1534,7 @@
1516
1534
  }
1517
1535
 
1518
1536
  @layer components.buttons {
1519
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), input[type="file"]:not([class]), .nc-button) {
1537
+ :where(button, button, input[type="button"], input[type="submit"], input[type="reset"], input[type="file"], .nc-button) {
1520
1538
  --_button-background: var(--button-background, var(--surface-hover));
1521
1539
  --_button-color: var(--button-color, var(--text-hover));
1522
1540
  --_button-border-color: var(--button-border-color, var(--surface-hover));
@@ -1539,7 +1557,6 @@
1539
1557
  font-weight: var(--font-weight-default);
1540
1558
  font-size: inherit;
1541
1559
  cursor: pointer;
1542
- box-sizing: border-box;
1543
1560
  text-align: center;
1544
1561
  transition: var(--transition-duration-base) var(--ease-2);
1545
1562
  -webkit-text-decoration: unset;
@@ -1547,31 +1564,36 @@
1547
1564
  box-shadow: var(--_button-box-shadow);
1548
1565
  -webkit-user-select: none;
1549
1566
  user-select: none;
1567
+ justify-content: center;
1568
+ align-items: center;
1569
+ gap: var(--control-spacing-tiny, .25em);
1550
1570
  -webkit-tap-highlight-color: transparent;
1551
1571
  -webkit-touch-callout: none;
1552
1572
  line-height: var(--line-height-base);
1553
- justify-content: center;
1554
- align-items: center;
1555
1573
  padding-block: 0;
1556
1574
  transition-property: box-shadow, transform;
1557
1575
  display: inline-flex;
1558
1576
  position: relative;
1559
1577
  }
1560
1578
 
1561
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button):hover {
1579
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button):hover {
1562
1580
  background: var(--_button-background-hover);
1563
1581
  color: var(--_button-color-hover);
1564
1582
  border-color: var(--_button-border-color-hover);
1565
1583
  box-shadow: var(--_button-hover-shadow);
1566
1584
  }
1567
1585
 
1568
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button)[aria-pressed="true"] {
1586
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button)[aria-pressed="true"] {
1569
1587
  box-shadow: none;
1570
1588
  font-weight: var(--font-weight-active);
1571
1589
  transform: none;
1572
1590
  }
1573
1591
 
1574
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button):is(:active, .-active) {
1592
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button) > svg {
1593
+ pointer-events: none;
1594
+ }
1595
+
1596
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button):is(:active, .-active) {
1575
1597
  background-color: var(--_button-background-hover);
1576
1598
  color: var(--_button-color-hover);
1577
1599
  border-color: var(--_button-border-color-hover);
@@ -1582,58 +1604,45 @@
1582
1604
  transform: none;
1583
1605
  }
1584
1606
 
1585
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button)[disabled] {
1586
- --_button-border-color-hover: var(--_button-border-color);
1587
- filter: contrast(.72) opacity(.72);
1588
- cursor: not-allowed;
1589
- --_button-background: none !important;
1590
- --_button-background-hover: none !important;
1591
- --_button-color: var(--color-text-subtle) !important;
1592
- --_button-color-hover: var(--_button-color) !important;
1593
- --_button-border-color: var(--color-text-subtle) !important;
1594
- box-shadow: none !important;
1595
- transform: none !important;
1596
- }
1597
-
1598
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-outline {
1607
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-outline {
1599
1608
  color: var(--text);
1600
1609
  border-color: var(--border);
1601
1610
  background-color: #0000;
1602
1611
  }
1603
1612
 
1604
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-outline:hover {
1613
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-outline:hover {
1605
1614
  background-color: var(--_button-background-hover-light);
1606
1615
  color: var(--text);
1607
1616
  border-color: var(--border-hover);
1608
1617
  }
1609
1618
 
1610
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-stealth {
1619
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-stealth {
1611
1620
  color: var(--text);
1612
1621
  background-color: #0000;
1613
1622
  border-color: #0000;
1614
1623
  }
1615
1624
 
1616
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-stealth:hover {
1625
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-stealth:hover {
1617
1626
  background-color: var(--_button-background-hover-light);
1618
1627
  color: var(--text);
1619
1628
  border-color: #0000;
1620
1629
  }
1621
1630
 
1622
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-stealth {
1631
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-stealth {
1623
1632
  box-shadow: none !important;
1624
1633
  transform: none !important;
1625
1634
  }
1626
1635
 
1627
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-small {
1636
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-small {
1628
1637
  --_button-padding-inline: var(--control-spacing-near, .5em);
1629
1638
  min-block-size: var(--control-height-small);
1630
1639
  }
1631
1640
 
1632
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-round {
1641
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-round {
1633
1642
  --_button-border-radius: var(--border-radius-round);
1634
1643
  }
1635
1644
 
1636
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-offset {
1645
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-offset {
1637
1646
  --_button-offset-distance: var(--button-offset-distance, calc(-1 * var(--control-spacing-minimal)));
1638
1647
  --_button-offset-distance-hover: var(--button-offset-distance-hover, calc(-.5 * var(--control-spacing-minimal)));
1639
1648
  --_button-transform: translate(var(--_button-offset-distance), var(--_button-offset-distance));
@@ -1645,22 +1654,26 @@
1645
1654
  inset-inline-start: calc(var(--_button-offset-distance) * -1);
1646
1655
  }
1647
1656
 
1648
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-offset:hover {
1657
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-offset:hover {
1649
1658
  transform: var(--_button-hover-transform);
1650
1659
  }
1651
1660
 
1652
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button):has(svg) {
1653
- gap: var(--control-spacing-tiny, .25em);
1661
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-icon.-small {
1662
+ padding: 0;
1654
1663
  }
1655
1664
 
1656
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button)[aria-label], :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-icon {
1665
+ :where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button).-aligned {
1666
+ margin-inline: calc(-1 * var(--_button-padding-inline));
1667
+ }
1668
+
1669
+ :is([aria-label], .-icon):where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button) {
1657
1670
  --_button-border-radius: var(--border-radius-round);
1658
1671
  aspect-ratio: 1;
1659
1672
  fill: currentColor;
1660
1673
  padding: 0;
1661
1674
  }
1662
1675
 
1663
- :is(:where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button)[aria-label], :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-icon):after {
1676
+ :is([aria-label], .-icon):where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button):after {
1664
1677
  content: "";
1665
1678
  inline-size: max(var(--control-height-base), 100%);
1666
1679
  block-size: max(var(--control-height-base), 100%);
@@ -1673,63 +1686,62 @@
1673
1686
  inset-inline-start: calc(-.5 * (var(--control-height-base) - 100%));
1674
1687
  }
1675
1688
 
1676
- :is(:where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button)[aria-label], :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-icon) > svg {
1677
- pointer-events: none;
1678
- }
1679
-
1680
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-icon.-small {
1681
- padding: 0;
1682
- }
1683
-
1684
- :where(button:not([class]), button[type]:not([class]), input[type="button"]:not([class]), input[type="submit"]:not([class]), input[type="reset"]:not([class]), .nc-button).-aligned {
1685
- margin-inline: calc(-1 * var(--_button-padding-inline));
1689
+ [disabled]:where(button, button[type], input[type="button"], input[type="submit"], input[type="reset"], .nc-button) {
1690
+ --_button-border-color-hover: var(--_button-border-color);
1691
+ filter: contrast(.72) opacity(.72);
1692
+ cursor: not-allowed;
1693
+ --_button-background: none !important;
1694
+ --_button-background-hover: none !important;
1695
+ --_button-color: var(--color-text-subtle) !important;
1696
+ --_button-color-hover: var(--_button-color) !important;
1697
+ --_button-border-color: var(--color-text-subtle) !important;
1698
+ box-shadow: none !important;
1699
+ transform: none !important;
1686
1700
  }
1687
1701
 
1688
- :where(input[type="file"]:not([class])) {
1702
+ :where(input[type="file"]) {
1689
1703
  color: var(--_input-color);
1690
1704
  background-color: var(--_input-background);
1691
1705
  border: var(--_input-border);
1692
1706
  min-block-size: var(--control-height-base);
1693
1707
  border-radius: var(--_input-border-radius);
1694
- padding-inline-start: 0;
1695
1708
  padding-inline-end: var(--contol-spacing-near, .5em);
1709
+ padding-inline-start: 0 !important;
1696
1710
  }
1697
1711
 
1698
- :where(input[type="file"]:not([class]))::-webkit-file-upload-button {
1712
+ :where(input[type="file"])::-webkit-file-upload-button {
1699
1713
  background-color: var(--_button-background);
1700
1714
  color: var(--_button-color);
1701
1715
  padding-inline: var(--_button-padding-inline);
1702
1716
  cursor: pointer;
1703
1717
  box-shadow: none;
1704
- min-block-size: calc(var(--control-height-base) - var(--border-width-thin));
1705
1718
  border: none;
1706
- border-inline-end: var(--border-width-thin) solid var(--color-border-base);
1707
1719
  border-start-end-radius: 0;
1708
1720
  border-end-end-radius: 0;
1721
+ min-block-size: 100%;
1709
1722
  margin-inline-end: var(--contol-spacing-near, .5em);
1710
1723
  inset-block-start: 0;
1711
1724
  inset-inline-start: 0;
1712
1725
  transform: none;
1713
1726
  }
1714
1727
 
1715
- :where(input[type="file"]:not([class]))::file-selector-button {
1728
+ :where(input[type="file"])::file-selector-button {
1716
1729
  background-color: var(--_button-background);
1717
1730
  color: var(--_button-color);
1718
1731
  padding-inline: var(--_button-padding-inline);
1719
1732
  cursor: pointer;
1720
1733
  box-shadow: none;
1721
- min-block-size: calc(var(--control-height-base) - var(--border-width-thin));
1722
1734
  border: none;
1723
- border-inline-end: var(--border-width-thin) solid var(--color-border-base);
1724
1735
  border-start-end-radius: 0;
1725
1736
  border-end-end-radius: 0;
1737
+ min-block-size: 100%;
1726
1738
  margin-inline-end: var(--contol-spacing-near, .5em);
1727
1739
  inset-block-start: 0;
1728
1740
  inset-inline-start: 0;
1729
1741
  transform: none;
1730
1742
  }
1731
1743
 
1732
- :where(button[type="reset"]:not([class]), .nc-button.-destructive) {
1744
+ :where(button[type="reset"], .nc-button.-destructive) {
1733
1745
  --text: var(--color-status-danger-emphasis);
1734
1746
  --color: var(--color-status-danger-base);
1735
1747
  --surface: var(--color-status-danger-surface);
@@ -1774,7 +1786,7 @@
1774
1786
  background-color: var(--_card-background-color);
1775
1787
  border-radius: var(--_card-border-radius);
1776
1788
  box-shadow: var(--_card-shadow);
1777
- transition: border-color var(--transition-duration-base) var(--ease-2);
1789
+ transition: border-color var(--transition-duration-quick-2) var(--ease-2);
1778
1790
  display: inline-block;
1779
1791
  overflow: hidden;
1780
1792
  }
@@ -1833,13 +1845,13 @@
1833
1845
  --_dialog-padding-inline: var(--dialog-padding-inline, var(--spacing-base));
1834
1846
  --_dialog-layout-padding: var(--layout-padding, var(--spacing-base));
1835
1847
  --_dialog-close-size: var(--dialog-close-size, var(--control-height-base));
1836
- --_dialog-transition-duration: var(--dialog-transition-duration, var(--transition-duration-base));
1848
+ --_dialog-transition-duration: var(--dialog-transition-duration, var(--transition-duration-moderate-2));
1837
1849
  --_dialog-max-block-size: var(--dialog-max-block-size, 90dvh);
1838
1850
  --_dialog-max-inline-size: var(--dialog-max-inline-size, 28rem);
1839
1851
  --_dialog-radius: 0;
1840
1852
  z-index: var(--layer-important);
1841
- animation: close-dialog var(--_dialog-transition-duration) cubic-bezier(.7, 0, 1, 1) forwards;
1842
- transition: opacity var(--_dialog-transition-duration) cubic-bezier(.7, 0, 1, 1);
1853
+ animation: close-dialog var(--_dialog-transition-duration) var(--easing-exit) forwards;
1854
+ transition: opacity var(--_dialog-transition-duration) var(--easing-exit);
1843
1855
  border: var(--border-width-thin) solid var(--color-border-base);
1844
1856
  block-size: max-content;
1845
1857
  inline-size: 100dvw;
@@ -1868,7 +1880,7 @@
1868
1880
  }
1869
1881
 
1870
1882
  :where(.nc-dialog)[open] {
1871
- animation: open-dialog var(--_dialog-transition-duration) cubic-bezier(0, .6, .58, 1);
1883
+ animation: open-dialog var(--_dialog-transition-duration) var(--easing-entry);
1872
1884
  }
1873
1885
 
1874
1886
  :where(.nc-dialog):not([open]) {
@@ -2117,8 +2129,8 @@
2117
2129
  }
2118
2130
  }
2119
2131
 
2120
- @layer components.inputs {
2121
- :where(label:not([class]), .nc-input-label) {
2132
+ @layer base.inputs {
2133
+ :where(label, .nc-input-label) {
2122
2134
  font-family: var(--font-family-default);
2123
2135
  letter-spacing: var(--tracking-tight);
2124
2136
  font-weight: var(--font-weight-active);
@@ -2129,7 +2141,7 @@
2129
2141
  display: inline-flex;
2130
2142
  }
2131
2143
 
2132
- :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], input[type="checkbox"], input[type="radio"], textarea, select, .nc-input, .nc-select, .nc-textarea, .nc-input-checkbox, .nc-input-radio, .nc-input-label, .nc-input-color, .nc-input-field, .nc-input-error, .nc-checkbox-wrapper, .nc-input-switch, .nc-radio-field, .nc-checkbox-field) {
2144
+ :where(input, textarea, select, .nc-input, .nc-select, .nc-textarea, .nc-input-checkbox, .nc-input-radio, .nc-input-label, .nc-input-color, .nc-input-field, .nc-input-error, .nc-checkbox-wrapper, .nc-input-switch, .nc-radio-field, .nc-checkbox-field) {
2133
2145
  --_input-background: var(--input-background, var(--color-surface-subtle));
2134
2146
  --_input-background-active: var(--input-background-active, var(--color-surface-base));
2135
2147
  --_input-color: var(--input-color, var(--color-text-base));
@@ -2143,7 +2155,7 @@
2143
2155
  --_input-hover-background: var(--input-hover-background, var(--color-brand-primary-hover));
2144
2156
  }
2145
2157
 
2146
- :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], textarea, select, .nc-input) {
2158
+ :where(input, textarea, select, .nc-input) {
2147
2159
  font: inherit;
2148
2160
  letter-spacing: inherit;
2149
2161
  word-spacing: inherit;
@@ -2159,39 +2171,51 @@
2159
2171
  line-height: var(--line-height-base);
2160
2172
  }
2161
2173
 
2162
- :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], textarea, select, .nc-input):focus, :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], textarea, select, .nc-input):hover:focus {
2174
+ :where(input, textarea, select, .nc-input):focus, :where(input, textarea, select, .nc-input):hover:focus {
2163
2175
  --current-background: var(--_input-background-active);
2164
2176
  outline: var(--_input-outline);
2165
2177
  outline-offset: 0;
2166
2178
  background-color: var(--_input-background-active);
2167
2179
  }
2168
2180
 
2169
- :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], textarea, select, .nc-input):disabled {
2181
+ :where(input, textarea, select, .nc-input):disabled {
2170
2182
  filter: var(--_input-disabled-filter);
2171
2183
  cursor: not-allowed;
2172
2184
  }
2173
2185
 
2174
- :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], textarea, select, .nc-input):hover {
2186
+ :where(input, textarea, select, .nc-input):hover {
2175
2187
  --current-background: var(--_input-hover-background);
2176
2188
  background-color: var(--_input-hover-background);
2177
2189
  }
2178
2190
 
2179
- :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], textarea, select, .nc-input)[required] {
2191
+ :where(input, textarea, select, .nc-input)[required] {
2180
2192
  border-inline-start-width: var(--border-width-thick);
2181
2193
  }
2182
2194
 
2183
- :where(input[type="text"], input[type="email"], input[type="password"], input[type="number"], input[type="url"], input[type="search"], input[type="date"], input[type="month"], input[type="week"], input[type="text"], input[type="datetime"], input[type="datetime-local"], input[type="time"], input[type="tel"], input[type="color"], input[type="file"], textarea, select, .nc-input)::placeholder {
2195
+ :where(input, textarea, select, .nc-input)::placeholder {
2184
2196
  color: var(--color-text-subtle);
2185
2197
  }
2186
2198
 
2187
- :where(select:not([class]), .nc-select) {
2199
+ :where(input, textarea, select, .nc-input).-validate:user-valid {
2200
+ outline: var(--_input-outline);
2201
+ outline-offset: 0;
2202
+ outline-color: var(--color-status-success-base);
2203
+ }
2204
+
2205
+ :where(input, textarea, select, .nc-input).-validate:user-invalid {
2206
+ outline: var(--_input-outline);
2207
+ outline-offset: 0;
2208
+ outline-color: var(--color-status-danger-base);
2209
+ }
2210
+
2211
+ :where(select, .nc-select) {
2188
2212
  background-image: var(--triangle-down-url);
2189
2213
  background-position: right .5em top 50%;
2190
2214
  background-size: 1em .75em;
2191
2215
  padding-inline-end: 1.75em;
2192
2216
  }
2193
2217
 
2194
- :where(textarea:not([class]), .nc-textarea) {
2218
+ :where(textarea, .nc-textarea) {
2195
2219
  min-block-size: calc(8lh + 2 * var(--_input-padding-block));
2196
2220
  max-block-size: 80svh;
2197
2221
  min-inline-size: var(--input-inline-size, 100%);
@@ -2201,14 +2225,14 @@
2201
2225
  field-sizing: content;
2202
2226
  }
2203
2227
 
2204
- :where(input[type="checkbox"]:not([class]), input[type="radio"]:not([class]), .nc-input-checkbox, .nc-input-radio, .nc-input-switch) {
2228
+ :where(input[type="checkbox"], input[type="radio"], .nc-input-checkbox, .nc-input-radio, .nc-input-switch) {
2205
2229
  appearance: none;
2206
2230
  border: var(--_input-border);
2207
2231
  --current-background: var(--_input-background);
2208
2232
  background: var(--current-background);
2209
2233
  block-size: 1lh;
2210
2234
  inline-size: 1lh;
2211
- transition: var(--transition-duration-short) background var(--ease-2);
2235
+ transition: var(--transition-duration-quick-1) background var(--ease-2);
2212
2236
  box-shadow: var(--_input-box-shadow);
2213
2237
  justify-content: center;
2214
2238
  align-items: center;
@@ -2216,18 +2240,18 @@
2216
2240
  display: inline-flex;
2217
2241
  }
2218
2242
 
2219
- :where(input[type="checkbox"]:not([class]), .nc-input-checkbox) {
2243
+ :where(input[type="checkbox"], .nc-input-checkbox) {
2220
2244
  --_transition-duration: 0s;
2221
2245
  border-radius: var(--_input-border-radius);
2222
2246
  overflow: hidden;
2223
2247
  }
2224
2248
 
2225
- :where(input[type="checkbox"]:not([class]), .nc-input-checkbox):before {
2249
+ :where(input[type="checkbox"], .nc-input-checkbox):before {
2226
2250
  content: "";
2227
2251
  background-color: var(--color-brand-primary-contrast);
2228
2252
  block-size: .75lh;
2229
2253
  inline-size: .75lh;
2230
- transition: transform var(--ease-out-2) var(--transition-duration-short);
2254
+ transition: transform var(--ease-out-2) var(--transition-duration-quick-1);
2231
2255
  font-family: var(--font-family-sans);
2232
2256
  --font-weight: var(--font-weight-active);
2233
2257
  color: var(--_input-background);
@@ -2239,11 +2263,11 @@
2239
2263
  transform: scale(.8)translateY(2em);
2240
2264
  }
2241
2265
 
2242
- :where(input[type="checkbox"]:not([class]), .nc-input-checkbox):checked {
2266
+ :where(input[type="checkbox"], .nc-input-checkbox):checked {
2243
2267
  --current-background: var(--color-brand-primary-base);
2244
2268
  }
2245
2269
 
2246
- :where(input[type="checkbox"]:not([class]), .nc-input-checkbox):checked:before {
2270
+ :where(input[type="checkbox"], .nc-input-checkbox):checked:before {
2247
2271
  transform: scale(1)translateY(0%);
2248
2272
  }
2249
2273
 
@@ -2258,7 +2282,7 @@
2258
2282
  background-color: var(--color-brand-primary-contrast);
2259
2283
  block-size: 50%;
2260
2284
  inline-size: 50%;
2261
- transition: transform var(--ease-out-2) var(--transition-duration-short);
2285
+ transition: transform var(--ease-out-2) var(--transition-duration-quick-1);
2262
2286
  display: inline-flex;
2263
2287
  transform: scale(.8)translateY(2em);
2264
2288
  }
@@ -2274,7 +2298,7 @@
2274
2298
  :where(input[type="color"], .nc-input-color) {
2275
2299
  aspect-ratio: 1;
2276
2300
  inline-size: auto;
2277
- padding: var(--control-spacing-minimal, .125em);
2301
+ padding: var(--control-spacing-nearest, .125em);
2278
2302
  }
2279
2303
 
2280
2304
  :where(input[type="date"], .nc-input-date) {
@@ -2318,43 +2342,6 @@
2318
2342
  background-color: var(--color-brand-primary-base);
2319
2343
  border-color: var(--color-brand-primary-base);
2320
2344
  }
2321
-
2322
- :where(.nc-tag-select-field) {
2323
- --_tag-select-checked-text-color: var(--tag-select-checked-text-color, var(--color-brand-primary-contrast));
2324
- --_tag-select-checked-surface-color: var(--tag-select-checked-surface-color, var(--color-brand-primary-base));
2325
- --_tag-select-border-radius: var(--tag-select-border-radius, var(--_input-border-radius));
2326
- --nc-legend-spacing: var(--control-spacing-near, .5em);
2327
- }
2328
-
2329
- :where(.nc-tag-select-field):focus-within:has(:focus-visible) {
2330
- outline-offset: var(--controls-spacing-near, .5em);
2331
- outline: var(--_input-outline);
2332
- border-radius: var(--_tag-select-border-radius);
2333
- }
2334
-
2335
- :where(.nc-tag-select-field) input {
2336
- opacity: 0;
2337
- position: absolute;
2338
- }
2339
-
2340
- :where(.nc-tag-select-field) label {
2341
- display: grid;
2342
- }
2343
-
2344
- :where(.nc-tag-select-field) label:hover, :where(.nc-tag-select-field) label:focus-within {
2345
- background-color: var(--_input-hover-background);
2346
- }
2347
-
2348
- :where(.nc-tag-select-field) label:has(input:checked) {
2349
- background: var(--_tag-select-checked-surface-color);
2350
- color: var(--_tag-select-checked-text-color);
2351
- box-shadow: var(--shadow-near);
2352
- }
2353
-
2354
- :where(.nc-tag-select-field) label:has(input:disabled) {
2355
- filter: var(--_input-disabled-filter);
2356
- cursor: not-allowed;
2357
- }
2358
2345
  }
2359
2346
 
2360
2347
  @layer components.input-fields {
@@ -2565,7 +2552,7 @@
2565
2552
  border-radius: var(--_input-border-radius);
2566
2553
  box-shadow: var(--shadow-near);
2567
2554
  transition: transform, background-color;
2568
- transition-duration: var(--transition-duration-base);
2555
+ transition-duration: var(--transition-duration-quick-2);
2569
2556
  transition-timing-function: var(--ease-2);
2570
2557
  display: block;
2571
2558
  }
@@ -2579,6 +2566,45 @@
2579
2566
  }
2580
2567
  }
2581
2568
 
2569
+ @layer components.inputs {
2570
+ :where(.nc-tag-select-field) {
2571
+ --_tag-select-checked-text-color: var(--tag-select-checked-text-color, var(--color-brand-primary-contrast));
2572
+ --_tag-select-checked-surface-color: var(--tag-select-checked-surface-color, var(--color-brand-primary-base));
2573
+ --_tag-select-border-radius: var(--tag-select-border-radius, var(--_input-border-radius));
2574
+ --nc-legend-spacing: var(--control-spacing-near, .5em);
2575
+ }
2576
+
2577
+ :where(.nc-tag-select-field):focus-within:has(:focus-visible) {
2578
+ outline-offset: var(--controls-spacing-near, .5em);
2579
+ outline: var(--_input-outline);
2580
+ border-radius: var(--_tag-select-border-radius);
2581
+ }
2582
+
2583
+ :where(.nc-tag-select-field) input {
2584
+ opacity: 0;
2585
+ position: absolute;
2586
+ }
2587
+
2588
+ :where(.nc-tag-select-field) label {
2589
+ display: grid;
2590
+ }
2591
+
2592
+ :where(.nc-tag-select-field) label:hover, :where(.nc-tag-select-field) label:focus-within {
2593
+ background-color: var(--_input-hover-background);
2594
+ }
2595
+
2596
+ :where(.nc-tag-select-field) label:has(input:checked) {
2597
+ background: var(--_tag-select-checked-surface-color);
2598
+ color: var(--_tag-select-checked-text-color);
2599
+ box-shadow: var(--shadow-near);
2600
+ }
2601
+
2602
+ :where(.nc-tag-select-field) label:has(input:disabled) {
2603
+ filter: var(--_input-disabled-filter);
2604
+ cursor: not-allowed;
2605
+ }
2606
+ }
2607
+
2582
2608
  @layer components.lists {
2583
2609
  :where(.nc-meta-list) {
2584
2610
  inline-size: 100%;
@@ -2645,7 +2671,7 @@
2645
2671
  backdrop-filter: blur(3px);
2646
2672
  background-color: var(--_notification-center-background);
2647
2673
  block-size: 100%;
2648
- transition: transform var(--transition-duration-base) ease-in-out;
2674
+ transition: transform var(--transition-duration-moderate-2) var(--ease-in-out-2);
2649
2675
  transform: translate(100%);
2650
2676
  }
2651
2677
 
@@ -2688,7 +2714,7 @@
2688
2714
  border-radius: var(--border-radius-small);
2689
2715
  inline-size: 100%;
2690
2716
  box-shadow: var(--shadow-far);
2691
- animation: pop-in var(--transition-duration-base) cubic-bezier(0, .6, .58, 1);
2717
+ animation: pop-in var(--transition-duration-moderate-2) var(--easing-entry);
2692
2718
  color: var(--color-text-base);
2693
2719
  pointer-events: all;
2694
2720
  flex-direction: column;
@@ -2728,7 +2754,7 @@
2728
2754
  }
2729
2755
 
2730
2756
  :where(.nc-notification.-closing) {
2731
- animation: remove-notification var(--transition-duration-base) cubic-bezier(.7, 0, 1, 1) forwards;
2757
+ animation: remove-notification var(--transition-duration-moderate-2) var(--easing-exit) forwards;
2732
2758
  }
2733
2759
 
2734
2760
  @keyframes pop-in {