vanilla-jui 1.7.31 → 1.7.33

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 (44) hide show
  1. package/dist/index.d.ts +24 -4
  2. package/dist/index.js +1 -1
  3. package/dist/index.umd.js +1 -1
  4. package/dist/style.css +1 -1
  5. package/package.json +1 -1
  6. package/src/components/accordion.ts +22 -8
  7. package/src/components/flow.ts +1 -1
  8. package/src/components/form.ts +1 -1
  9. package/src/components/modal.ts +1 -1
  10. package/src/components/offcanvas.ts +2 -2
  11. package/src/components/pagination.ts +5 -5
  12. package/src/components/tabs.ts +132 -16
  13. package/src/css/animation.css +7 -3
  14. package/src/css/card.css +10 -10
  15. package/src/css/font.css +3 -6
  16. package/src/css/icon.css +3 -20
  17. package/src/css/layout.css +11 -18
  18. package/src/css/status.css +39 -3
  19. package/src/css/themes/default/accordion.css +13 -45
  20. package/src/css/themes/default/avatar.css +2 -3
  21. package/src/css/themes/default/badge.css +14 -22
  22. package/src/css/themes/default/breadcrumb.css +11 -12
  23. package/src/css/themes/default/button.css +85 -162
  24. package/src/css/themes/default/editor.css +36 -36
  25. package/src/css/themes/default/flow.css +4 -4
  26. package/src/css/themes/default/form.css +110 -217
  27. package/src/css/themes/default/loading.css +48 -63
  28. package/src/css/themes/default/menu.css +17 -17
  29. package/src/css/themes/default/modal.css +9 -9
  30. package/src/css/themes/default/offcanvas.css +3 -3
  31. package/src/css/themes/default/swiper.css +18 -18
  32. package/src/css/themes/default/tabs.css +38 -24
  33. package/src/css/themes/default/theme-palette.css +22 -18
  34. package/src/css/themes/default/tip.css +24 -13
  35. package/src/css/themes/default/toast.css +66 -46
  36. package/src/css/themes/default/toolbar.css +2 -2
  37. package/src/css/themes/default/tooltip.css +2 -3
  38. package/src/css/tokens.css +89 -59
  39. package/src/css/tokens_/345/211/257/346/234/254.css +4 -4
  40. package/src/icons/index.ts +9 -7
  41. package/src/locales/index.ts +3 -1
  42. package/src/primitives/theme.ts +7 -10
  43. package/src/primitives/toast.ts +191 -107
  44. package/src/utilities/browser.ts +1 -1
@@ -2,7 +2,7 @@
2
2
  .j-form .form-field {
3
3
  border: 0;
4
4
  padding: 0;
5
- margin: 0 0 var(--s3);
5
+ margin: 0 0 12px;
6
6
  }
7
7
 
8
8
  .j-form .form-field:last-of-type {
@@ -14,19 +14,19 @@
14
14
  font-size: var(--font-size-sm);
15
15
  display: block;
16
16
  padding: 0;
17
- margin-bottom: var(--space);
17
+ margin-bottom: 4px;
18
18
  }
19
19
 
20
20
  .j-form .field-legend.is-required::after {
21
21
  content: '*';
22
22
  color: var(--state-error);
23
- margin-left: var(--space);
23
+ margin-left: 4px;
24
24
  }
25
25
 
26
26
  .j-form .form-field .field-control .help-block {
27
27
  font-size: var(--font-size-sm);
28
28
  color: var(--ui-fg-soft);
29
- margin: var(--space) 0 0;
29
+ margin: 4px 0 0;
30
30
  }
31
31
 
32
32
  .j-form .form-field .field-control .help-block[data-valid='false'] {
@@ -35,8 +35,8 @@
35
35
 
36
36
  .j-form .form-buttons {
37
37
  display: flex;
38
- gap: var(--s2);
39
- margin-top: var(--s6);
38
+ gap: 8px;
39
+ margin-top: 24px;
40
40
  }
41
41
 
42
42
  .j-form [data-field-buttons] button {
@@ -45,38 +45,31 @@
45
45
 
46
46
  /* input */
47
47
  .j-input {
48
- --input-font-size: var(--font-size-md);
49
- --input-bg: inherit;
50
- --input-fg: inherit;
51
-
52
- font-size: var(--input-font-size);
53
- background-color: var(--input-bg);
54
- color: var(--input-fg);
48
+ font-size: var(--input-font-size, var(--font-size-md));
49
+ background-color: inherit;
50
+ color: var(--input-fg, var(--tone-body));
55
51
  }
56
52
 
57
53
  .j-input:not([type='checkbox']) {
58
- --input-padding: var(--s1d5) var(--s2);
59
- --input-height: var(--el-height-md);
60
- --input-line-height: var(--line-height);
61
-
62
54
  border: 1px solid var(--ui-border);
63
55
  border-radius: var(--radius-md);
64
- padding: var(--input-padding);
65
- height: var(--input-height);
66
- line-height: var(--input-line-height);
56
+ padding: var(--input-padding, 0 8px);
57
+ height: var(--input-height, var(--el-height));
58
+ line-height: var(--input-line-height, var(--line-height));
67
59
  letter-spacing: 0.5px;
68
60
  }
69
61
 
62
+ .j-input::placeholder {
63
+ color: var(--ui-fg-muted);
64
+ }
65
+
70
66
  .j-input.is-sm {
71
- --input-height: var(--el-height-sm);
72
67
  --input-line-height: var(--line-height-self);
73
68
  --input-font-size: var(--font-size-sm);
74
69
  }
75
70
 
76
71
  .j-input.is-lg {
77
- --input-height: var(--el-height-lg);
78
72
  --input-line-height: var(--line-height);
79
- --input-font-size: var(--font-size-lg);
80
73
  }
81
74
 
82
75
  .j-input[type='password'] {
@@ -95,20 +88,9 @@
95
88
  letter-spacing: 0.5px;
96
89
  }
97
90
 
98
- .j-input[type='date'],
99
- .j-input[type='datetime'],
100
- .j-input[type='datetime-local'],
101
- .j-input[type='time'],
102
- .j-input[type='week'],
103
- .j-input[type='month'],
104
- .j-input[type='file'],
105
- .j-input[type='color'] {
106
- --input-fg: var(--ui-fg-muted);
107
- }
108
-
109
91
  .j-input[type='color'] {
110
- --input-padding: var(--space);
111
- min-width: 5rem;
92
+ --input-padding: 4px;
93
+ min-width: 60px;
112
94
  }
113
95
 
114
96
  .j-input[type='color']::-webkit-color-swatch {
@@ -120,113 +102,75 @@
120
102
  background-clip: padding-box;
121
103
  overflow: hidden;
122
104
  cursor: pointer;
123
- background-color: var(--ui-surface-subtle);
105
+ padding-left: 0;
124
106
  }
125
107
 
126
108
  .j-input[type='file']::file-selector-button {
127
109
  color: var(--ui-fg-muted);
128
110
  appearance: none;
129
111
  border-width: 0;
130
- /* border-inline-end-width: 1px; */
131
112
  border-right-width: 1px;
132
- border-radius: 0;
133
- border-color: var(--ui-border);
134
- background-color: transparent;
135
- margin: calc(var(--s2) * -1);
113
+ border-color: hsla(210, 12%, 96%, 30%);
114
+ background-color: var(--ui-bg-soft);
136
115
  font-size: var(--input-font-size);
137
- }
138
-
139
- .j-input[type='file']::file-selector-button,
140
- .j-font-sm .j-input[type='file']::file-selector-button {
141
- /* margin-inline-end: var(--s2); */
142
- margin-right: var(--s2);
143
- padding: var(--s2);
144
- }
145
-
146
- .j-font-md .j-input[type='file']::file-selector-button {
147
- /* margin-inline-end: calc(var(--space) * 2.75); */
148
- margin-right: calc(var(--space) * 2.75);
149
- padding: calc(var(--space) * 2.75);
116
+ height: var(--el-height);
117
+ margin-right: 8px;
118
+ padding-left: 8px;
119
+ padding-right: 8px;
150
120
  }
151
121
 
152
122
  /* type radio */
153
123
  .j-radio {
154
124
  display: flex;
125
+ flex-direction: var(--flex-direction);
155
126
  flex-wrap: wrap;
156
127
  }
157
128
 
158
- .j-radio.is-vertical {
159
- flex-direction: column;
160
- }
161
-
162
- .j-radio,
163
- .j-radio.is-horizontal {
164
- flex-direction: row;
165
- }
166
-
167
129
  .j-radio label {
168
130
  display: flex;
169
131
  align-items: center;
170
- gap: calc(var(--space)*1.5);
132
+ gap: 6px;
171
133
  font-size: var(--font-size-md);
172
- padding: calc(var(--space)*2);
134
+ padding: 8px;
173
135
  border-radius: var(--radius-md);
136
+ user-select: none;
174
137
  }
175
138
 
176
- .j-radio label:not(:has(input[type='radio']:disabled)):hover {
177
- background-color: var(--ui-surface-hover);
139
+ .j-radio label:not(:has(input[type='radio']:disabled)):hover,
140
+ .j-radio label:has(input[type='radio']:focus-within),
141
+ .j-radio label:has(input[type='radio']:focus-visible) {
142
+ background-color: var(--ui-bg-soft);
178
143
  }
179
144
 
180
145
  .j-radio label input[type='radio'] {
146
+ position: relative;
181
147
  appearance: none;
182
148
  width: 1rem;
183
149
  height: 1rem;
184
150
  border-radius: 50%;
185
151
  border: 1px solid var(--ui-border);
186
152
  background-color: var(--ui-bg);
187
- cursor: pointer;
188
- position: relative;
189
153
  margin: 0;
190
- }
191
-
192
- .j-radio label input[type='radio']:checked {
193
- border-color: var(--tone-solid);
194
- background-color: var(--tone-solid);
195
- }
196
-
197
- .j-radio label input[type='radio']:focus-visible {
198
- outline: 2px solid var(--tone-ring);
199
- outline-offset: 1px;
154
+ cursor: pointer;
200
155
  }
201
156
 
202
157
  .j-radio label input[type='radio']:before {
203
158
  content: '';
204
159
  position: absolute;
205
- width: 6px;
206
- height: 6px;
160
+ width: 8px;
161
+ height: 8px;
207
162
  border-radius: 50%;
208
- background-color: var(--ui-bg);
163
+ background-color: var(--tone-solid);
209
164
  top: 50%;
210
165
  left: 50%;
211
166
  transform: translate(-50%, -50%) scale(0);
212
- transition: transform 0.1s cubic-bezier(0.165, 0.84, 0.44, 1);
167
+ transition: transform 0.15s ease-in-out;
213
168
  }
214
169
 
215
170
  .j-radio label input[type='radio']:checked::before {
216
171
  transform: translate(-50%, -50%) scale(1);
217
172
  }
218
173
 
219
- .j-radio label:has(input[type='radio']:disabled) {
220
- cursor: not-allowed;
221
- color: var(--ui-disabled-fg);
222
- }
223
-
224
- .j-radio label input[type='radio']:disabled {
225
- background-color: var(--ui-disabled-bg);
226
- border-color: var(--ui-border);
227
- cursor: not-allowed;
228
- }
229
-
230
174
  /* radio group */
231
175
  .j-radio.is-group {
232
176
  gap: 0;
@@ -246,10 +190,10 @@
246
190
  .j-radio.is-group label span.radio-text {
247
191
  color: var(--ui-fg);
248
192
  background-color: var(--ui-bg);
249
- padding: var(--radio-group-padding, var(--s1d5) var(--s3));
250
- height: var(--el-height-md);
193
+ padding: var(--radio-group-padding, 0 12px);
194
+ height: var(--el-height);
251
195
  line-height: var(--line-height);
252
- box-shadow: 0 0 0 1px var(--ui-input-border);
196
+ box-shadow: 0 0 0 1px var(--ui-border);
253
197
  cursor: pointer;
254
198
  position: relative;
255
199
  display: flex;
@@ -257,7 +201,7 @@
257
201
  align-items: center;
258
202
  text-align: center;
259
203
  user-select: none;
260
- letter-spacing: 0.5px;
204
+ transition: all 0.2s ease-in-out;
261
205
  }
262
206
 
263
207
  .j-radio.is-group label:not(:first-child) span.radio-text {
@@ -266,9 +210,9 @@
266
210
 
267
211
  .j-radio.is-group input[type='radio']:checked+span.radio-text {
268
212
  box-shadow: 0 0 0 1px var(--tone-solid);
269
- background-color: var(--tone-solid);
213
+ color: var(--tone-solid);
214
+ background-color: var(--tone-soft);
270
215
  z-index: 1;
271
- color: var(--tone-fg);
272
216
  }
273
217
 
274
218
  .j-radio.is-group label:first-child span {
@@ -288,8 +232,7 @@
288
232
  }
289
233
 
290
234
  .j-radio.is-group.is-sm label span.radio-text {
291
- --radio-group-padding: var(--space) var(--s2d5);
292
- height: var(--el-height-sm);
235
+ --radio-group-padding: 0 10px;
293
236
  }
294
237
 
295
238
  .j-radio.is-group.is-lg label {
@@ -297,33 +240,24 @@
297
240
  }
298
241
 
299
242
  .j-radio.is-group.is-lg label span.radio-text {
300
- --radio-group-padding: var(--s3) var(--s3d5);
301
- height: var(--el-height-lg);
243
+ --radio-group-padding: 0 14px;
302
244
  }
303
245
 
304
246
  /* type checkbox */
305
247
  .j-checkbox {
306
248
  display: flex;
249
+ flex-direction: var(--flex-direction);
307
250
  flex-wrap: wrap;
308
251
  margin: 0;
309
252
  }
310
253
 
311
- .j-checkbox.is-vertical {
312
- flex-direction: column;
313
- }
314
-
315
- .j-checkbox,
316
- .j-checkbox.is-horizontal {
317
- flex-direction: row;
318
- }
319
-
320
254
  .j-checkbox label {
321
255
  display: flex;
322
256
  align-items: center;
323
- gap: var(--s1d5);
257
+ gap: 6px;
324
258
  font-size: var(--font-size-md);
325
259
  height: var(--el-height-md);
326
- padding: var(--s2);
260
+ padding: 8px;
327
261
  border-radius: var(--radius-md);
328
262
  }
329
263
 
@@ -333,7 +267,7 @@
333
267
  }
334
268
 
335
269
  .j-checkbox label:not(:has(input[type='checkbox']:disabled)):hover {
336
- background-color: var(--ui-surface-hover);
270
+ background-color: var(--ui-bg-soft);
337
271
  }
338
272
 
339
273
  .j-checkbox input[type='checkbox'] {
@@ -342,7 +276,7 @@
342
276
  height: 1rem;
343
277
  aspect-ratio: 1/1;
344
278
  border: 1px solid var(--ui-border);
345
- border-radius: var(--radius-md);
279
+ border-radius: var(--checkbox-radius, var(--radius-sm));
346
280
  cursor: pointer;
347
281
  position: relative;
348
282
  margin: 0;
@@ -350,17 +284,9 @@
350
284
 
351
285
  .j-checkbox input[type='checkbox']:checked {
352
286
  border-color: transparent;
353
- border-radius: var(--radius-md);
354
287
  background-color: var(--tone-solid);
355
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
356
- background-repeat: no-repeat;
288
+ background-image: var(--svg-check);
357
289
  background-position: center;
358
- background-size: contain;
359
- print-color-adjust: exact;
360
- }
361
-
362
- .dark .j-checkbox input[type='checkbox']:checked {
363
- background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16'%3e%3cpath fill='none' stroke='%23000000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8.5l2.5 2.5l5.5 -5.5'/%3e%3c/svg%3e");
364
290
  }
365
291
 
366
292
  /* switch checkbox */
@@ -371,17 +297,17 @@
371
297
 
372
298
  .j-switch.is-sm {
373
299
  width: 1.75rem;
374
- height: var(--switch-height-sm, calc(var(--space, 0 0.25rem) * 4));
300
+ height: 16px;
375
301
  }
376
302
 
377
303
  .j-switch.is-md {
378
304
  width: 2.625rem;
379
- height: var(--switch-height-md, calc(var(--space, 0 0.25rem) * 6));
305
+ height: 24px;
380
306
  }
381
307
 
382
308
  .j-switch.is-lg {
383
309
  width: 3.5rem;
384
- height: var(--switch-height-lg, calc(var(--space, 0 0.25rem) * 8));
310
+ height: 32px;
385
311
  }
386
312
 
387
313
  .j-switch input[type='checkbox'] {
@@ -396,7 +322,7 @@
396
322
  inset: 0;
397
323
  border-radius: 50px;
398
324
  background-color: var(--ui-border);
399
- transition: all 0.3s ease;
325
+ transition: all 0.2s var(--bezier);
400
326
  }
401
327
 
402
328
  .j-switch .switch-slider:after {
@@ -404,7 +330,7 @@
404
330
  position: absolute;
405
331
  border-radius: 50%;
406
332
  background-color: #fff;
407
- transition: all 0.3s ease;
333
+ transition: all 0.2s var(--bezier);
408
334
  }
409
335
 
410
336
  .j-switch.is-sm .switch-slider:after {
@@ -453,54 +379,43 @@
453
379
  }
454
380
 
455
381
  .j-switch .switch-slider:hover {
456
- opacity: var(--opacity-hover, 0.9);
382
+ opacity: var(--opacity-hover);
457
383
  }
458
384
 
459
385
  /* select */
460
386
  select.j-select {
461
- --input-padding: var(--s1d5);
462
- --input-height: var(--el-height-md);
463
- --input-font-size: var(--font-size-md);
464
-
465
- padding: var(--input-padding);
387
+ padding: var(--input-padding, 0 6px);
466
388
  border: 1px solid var(--ui-border);
467
389
  border-radius: var(--radius-md);
468
- height: var(--input-height);
469
- line-height: var(--input-line-height, var(--line-height));
470
- background-color: var(--input-background-color, inherit);
471
- font-size: var(--input-font-size);
472
- letter-spacing: 0.5px;
390
+ height: var(--el-height);
391
+ line-height: var(--line-height);
392
+ color: var(--tone-body);
393
+ background-color: inherit;
394
+ font-size: var(--input-font-size, var(--font-size-md));
473
395
  }
474
396
 
475
397
  select.j-select.is-sm {
476
- --input-padding: var(--space);
477
- --input-height: var(--el-height-sm);
398
+ --input-padding: 0 4px;
478
399
  --input-font-size: var(--font-size-sm);
479
400
  }
480
401
 
481
- select.j-select.is-lg {
482
- --input-padding: var(--s2);
483
- --input-height: var(--el-height-lg);
484
- --input-font-size: var(--font-size-lg);
485
- }
486
-
487
402
  /* textarea */
488
403
  textarea.j-textarea {
489
- min-height: var(--textarea-min-height, calc(var(--space) * 18));
404
+ min-height: 72px;
490
405
  border: 1px solid var(--ui-border);
491
406
  border-radius: var(--radius-md);
492
- background-color: var(--input-background-color, var(--ui-bg));
493
- color: var(--input-color, var(--ui-input-color));
407
+ color: var(--tone-body);
408
+ background-color: var(--ui-bg);
494
409
  resize: vertical;
495
- padding: var(--space) var(--s2);
410
+ padding: 4px 8px;
496
411
  font-family: inherit;
497
- font-size: var(--textarea-font-size, var(--font-size-md));
498
- line-height: var(--textarea-line-height, var(--line-height));
412
+ font-size: var(--font-size-md);
413
+ line-height: var(--line-height);
499
414
  }
500
415
 
501
416
  textarea.j-textarea:disabled {
502
- background-color: var(--ui-disabled-bg);
503
- color: var(--ui-disabled-fg);
417
+ background-color: var(--ui-bg-disabled);
418
+ color: var(--ui-fg-disabled);
504
419
  cursor: not-allowed;
505
420
  }
506
421
 
@@ -523,20 +438,16 @@
523
438
  min-width: 0;
524
439
  }
525
440
 
526
- .input-group .j-button {
441
+ .input-group .j-btn {
527
442
  --btn-border-color: var(--ui-border);
528
443
  --btn-fg: var(--ui-fg-muted);
529
444
  --btn-bg: var(--ui-bg-muted);
530
- --btn-padding: 0 var(--s2);
445
+ --btn-padding: 0 8px;
531
446
  --btn-box-shadow: none;
532
447
  }
533
448
 
534
- .input-group .el-addon .is-text {
535
- font-size: var(--font-size-md);
536
- color: var(--ui-fg-muted);
449
+ .input-group .el-addon>.el-text {
537
450
  background-color: var(--ui-bg-muted);
538
- padding: var(--s2);
539
- height: var(--el-height-md);
540
451
  border: 1px solid var(--ui-border);
541
452
  border-radius: var(--radius-md);
542
453
  }
@@ -552,14 +463,14 @@
552
463
 
553
464
  .input-group>input.j-input:not(:first-child),
554
465
  .input-group>select.j-select:not(:first-child),
555
- .input-group> :not(select.j-select)+.el-addon:not(:first-child)>.is-text {
466
+ .input-group> :not(select.j-select)+.el-addon:not(:first-child)>.el-text {
556
467
  border-left-color: transparent;
557
468
  }
558
469
 
559
470
  .input-group>input.j-input:not(:first-child),
560
471
  .input-group>select.j-select:not(:first-child),
561
472
  .input-group>*:not(:first-child)>*,
562
- .input-group>*:not(:first-child)>.is-text {
473
+ .input-group>*:not(:first-child)>.el-text {
563
474
  border-top-left-radius: 0;
564
475
  border-bottom-left-radius: 0;
565
476
  }
@@ -567,7 +478,7 @@
567
478
  .input-group>input.j-input:not(:last-child),
568
479
  .input-group>select.j-select:not(:last-child),
569
480
  .input-group>*:not(:last-child)>*,
570
- .input-group>*:not(:last-child)>.is-text {
481
+ .input-group>*:not(:last-child)>.el-text {
571
482
  border-top-right-radius: 0;
572
483
  border-bottom-right-radius: 0;
573
484
  }
@@ -592,18 +503,16 @@
592
503
  letter-spacing: 0.4px;
593
504
  }
594
505
 
595
- .input-inner-group .j-button {
506
+ .input-inner-group .j-btn {
596
507
  --btn-box-shadow: none;
597
508
  }
598
509
 
599
510
  .input-inner-group .el-addon+.j-input {
600
- /* padding-inline: 0 var(--space); */
601
511
  padding-left: 0;
602
- padding-right: var(--space);
512
+ padding-right: 4px;
603
513
  }
604
514
 
605
515
  .input-inner-group .el-addon+.j-select {
606
- /* padding-inline-start: 2px; */
607
516
  padding-left: 2px;
608
517
  }
609
518
 
@@ -615,16 +524,16 @@
615
524
  justify-content: center;
616
525
  }
617
526
 
618
- .input-inner-group .el-addon .j-button:not(.is-icon) {
527
+ .input-inner-group .el-addon .j-btn:not(.is-icon) {
619
528
  --btn-height: var(--el-height-sm);
620
529
  }
621
530
 
622
- .input-inner-group .el-addon .j-button.is-xs:not(.is-icon),
623
- .input-inner-group .el-addon .j-button.is-sm:not(.is-icon) {
531
+ .input-inner-group .el-addon .j-btn.is-xs:not(.is-icon),
532
+ .input-inner-group .el-addon .j-btn.is-sm:not(.is-icon) {
624
533
  height: inherit;
625
534
  }
626
535
 
627
- .input-group .j-button:active,
536
+ /* .input-group .j-btn:active, */
628
537
  .input-inner-group:has(input:focus),
629
538
  .input-inner-group:has(select:focus) {
630
539
  border-color: var(--tone-solid);
@@ -636,21 +545,21 @@
636
545
  height: var(--font-size-xl);
637
546
  }
638
547
 
639
- .input-group .el-addon .is-text,
640
- .input-inner-group .el-addon.is-text {
548
+ .input-group .el-addon>.el-text,
549
+ .input-inner-group .el-addon>.el-text {
641
550
  display: flex;
642
551
  align-items: center;
643
552
  user-select: none;
644
- /* padding-inline: var(--s2); */
645
- padding-left: var(--s2);
646
- padding-right: var(--s2);
553
+ padding: 0 8px;
554
+ font-size: var(--font-size-md);
555
+ color: var(--ui-fg-muted);
556
+ height: var(--el-height-md);
647
557
  }
648
558
 
649
559
  .input-inner-group .el-addon.inner-wrap {
650
- gap: var(--space);
651
- /* padding-inline: var(--space); */
652
- padding-left: var(--space);
653
- padding-right: var(--space);
560
+ gap: 4px;
561
+ padding-left: 4px;
562
+ padding-right: 4px;
654
563
  }
655
564
 
656
565
  .input-group .el-addon,
@@ -683,11 +592,10 @@
683
592
  .j-select[data-valid='false'],
684
593
  .j-textarea[data-valid='false'] {
685
594
  border-color: var(--state-error);
686
- /* background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23d63939' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cline x1='18' y1='6' x2='6' y2='18'%3e%3c/line%3e%3cline x1='6' y1='6' x2='18' y2='18'%3e%3c/line%3e%3c/svg%3e"); */
687
595
  }
688
596
 
689
597
  /* status active */
690
- .input-group .j-button:not(:disabled):active,
598
+ .input-group .j-btn:not(:disabled):active,
691
599
  .inner-group .j-input:focus,
692
600
  .input-group .j-input:focus-within,
693
601
  .inner-group .j-input:focus-visible,
@@ -702,27 +610,17 @@
702
610
  .j-textarea:focus,
703
611
  .j-textarea:focus-within,
704
612
  .j-textarea:focus-visible,
613
+ .j-checkbox input[type='checkbox']:focus-visible,
705
614
  select.j-select:focus,
706
615
  select.j-select:focus-within,
707
616
  select.j-select:focus-visible,
708
617
  .j-input[data-valid='false']:focus-within,
709
- .j-select[data-valid='false']:focus-within,
710
- .input-group .j-button:not(:disabled):active {
618
+ .j-select[data-valid='false']:focus-within {
711
619
  outline: 0;
712
620
  border-color: var(--tone-solid);
713
621
  box-shadow: 0 0 0 3px var(--tone-ring);
714
622
  }
715
623
 
716
- .j-radio label input[type='radio']:focus-within {
717
- border-color: transparent;
718
- outline-offset: 1px;
719
- }
720
-
721
- .j-checkbox input[type='checkbox']:focus-within {
722
- border-color: var(--tone-solid);
723
- outline-offset: 1px;
724
- }
725
-
726
624
  .input-inner-group input.j-input,
727
625
  .input-inner-group select.j-select {
728
626
  border: 0;
@@ -732,58 +630,53 @@
732
630
  /* status readonly */
733
631
  .j-input:not([type='file']):not(.is-line):not(.is-blank)[readonly],
734
632
  .j-textarea[readonly] {
735
- background-color: var(--ui-surface-active);
633
+ background-color: var(--ui-bg-subtle);
736
634
  }
737
635
 
738
636
  /* status disabled */
739
637
  .j-input:disabled:not(.is-line):not(.is-ghost):not(.is-blank),
740
638
  .j-textarea[disabled] {
741
- background-color: var(--ui-disabled-bg);
639
+ background-color: var(--ui-bg-disabled);
742
640
  }
743
641
 
744
642
  /* radio disabled */
745
643
  .j-radio label:has(input[type='radio']:disabled) {
746
644
  cursor: not-allowed;
747
- opacity: var(--opacity-disabled);
748
- color: var(--ui-disabled-fg);
645
+ color: var(--ui-fg-disabled);
749
646
  }
750
647
 
751
648
  .j-radio label input[type='radio']:disabled {
752
- background-color: var(--ui-disabled-bg);
753
- border-color: var(--ui-border);
649
+ background-color: var(--ui-bg-disabled);
754
650
  }
755
651
 
756
652
  .j-radio.is-group label input[type='radio']:disabled+.radio-text {
757
653
  cursor: not-allowed;
758
- background-color: var(--ui-disabled-bg);
759
- color: var(--ui-disabled-fg);
654
+ background-color: var(--ui-bg-disabled);
655
+ color: var(--ui-fg-disabled);
760
656
  }
761
657
 
762
658
  /* checkbox disabled */
763
659
  .j-checkbox label:has(input[type='checkbox']:disabled) {
764
660
  cursor: not-allowed;
765
- color: var(--ui-disabled-fg);
661
+ color: var(--ui-fg-disabled);
766
662
  }
767
663
 
768
664
  .j-checkbox label input[type='checkbox']:disabled {
769
- background-color: var(--ui-disabled-bg);
665
+ background-color: var(--ui-bg-disabled);
770
666
  border-color: var(--ui-border);
771
667
  }
772
668
 
773
669
  /* switch disabled */
774
- .j-switch:has(input[type='checkbox']:disabled),
775
- .j-switch.is-line:has(input[type='checkbox']:disabled) {
670
+ .j-switch:has(input[type='checkbox']:disabled) {
776
671
  opacity: var(--opacity-disabled);
777
672
  cursor: not-allowed;
778
673
  }
779
674
 
780
- .j-switch:has(input[type='checkbox']:disabled) .switch-slider,
781
- .j-switch.is-line:has(input[type='checkbox']:disabled) .switch-slider {
675
+ .j-switch:has(input[type='checkbox']:disabled) .switch-slider {
782
676
  cursor: not-allowed;
783
677
  }
784
678
 
785
- .j-switch:has(input[type='checkbox']:disabled) .switch-slider:before,
786
- .j-switch.is-line:has(input[type='checkbox']:disabled) .switch-slider:before {
679
+ .j-switch:has(input[type='checkbox']:disabled) .switch-slider:before {
787
680
  background-color: var(--ui-border);
788
681
  }
789
682
 
@@ -791,7 +684,7 @@
791
684
  * .mobile
792
685
  *************************/
793
686
  .mobile input.j-input[type='file'] {
794
- --input-padding: 0.5rem;
687
+ --input-padding: 8px;
795
688
  }
796
689
 
797
690
  .mobile .j-input[type='file'],