vanilla-jui 1.3.10 → 1.3.11

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/src/css/index.css CHANGED
@@ -1,7 +1,7 @@
1
1
  @layer config, layout, content, icon, font, components, menu, form, animation, status;
2
2
 
3
3
  @import url('./tokens.css');
4
- @import url('./gradient.css');
4
+ /* @import url('./gradient.css'); */
5
5
  @import url('./layout.css');
6
6
  @import url('./icon.css');
7
7
  @import url('./font.css');
@@ -449,7 +449,7 @@
449
449
  /* Grid 容器:自动 gap + 响应式列 */
450
450
  .grid-container {
451
451
  display: grid;
452
- gap: var(--grid-container-gap, calc(var(--space) * 2));
452
+ gap: var(--grid-container-gap, var(--s2));
453
453
  width: 100%;
454
454
  /* 默认:单列(移动端友好) */
455
455
  grid-template-columns: 1fr;
package/src/css/menu.css CHANGED
@@ -52,7 +52,7 @@
52
52
  justify-content: center;
53
53
  align-items: center;
54
54
  flex-wrap: nowrap;
55
- gap: calc(var(--space) * 1);
55
+ gap: var(--space);
56
56
  white-space: nowrap;
57
57
  cursor: pointer;
58
58
  appearance: button;
@@ -106,7 +106,7 @@
106
106
  display: none;
107
107
  position: absolute;
108
108
  transform: translateY(1px);
109
- padding: calc(var(--space) * 2) 0;
109
+ padding: var(--s2) 0;
110
110
  background-color: var(--ui-surface-subtle);
111
111
  border: 1px solid var(--ui-border);
112
112
  border-radius: var(--radius-md);
@@ -125,7 +125,7 @@
125
125
 
126
126
  .j-menu .menu .menu-item.menu-item-has-children:hover .sub-menu {
127
127
  display: block;
128
- z-index: var(--z-index-submenu);
128
+ z-index: var(--z-submenu);
129
129
  }
130
130
 
131
131
  .j-menu .menu .menu-item .sub-menu .menu-item:hover a {
@@ -329,13 +329,13 @@
329
329
  justify-content: flex-start;
330
330
  align-items: center;
331
331
  flex-wrap: wrap;
332
- gap: calc(var(--space) * 2);
332
+ gap: var(--s2);
333
333
  white-space: normal;
334
334
  appearance: button;
335
335
  touch-action: manipulation;
336
336
  color: currentColor;
337
- min-height: var(--el-height-xl);
338
- padding: calc(var(--space) * 2) calc(var(--space) * 4);
337
+ min-height: var(--el-height-2xl);
338
+ padding: var(--s2) var(--s4);
339
339
  line-height: var(--line-height-paragraph);
340
340
  position: relative;
341
341
  text-decoration: none;
@@ -394,7 +394,7 @@
394
394
  opacity: 1;
395
395
  transform: translateX(0);
396
396
  height: 100%;
397
- z-index: var(--z-index-submenu);
397
+ z-index: var(--z-submenu);
398
398
  }
399
399
 
400
400
  /* bottom menu */
@@ -424,11 +424,11 @@
424
424
  gap: 1px;
425
425
  border-top: 1px solid var(--ui-border-subtle);
426
426
  background: linear-gradient(to bottom,
427
- var(--ui-surface-subtle) 20%,
428
- var(--ui-bg-muted) 40%,
429
- var(--ui-surface-muted) 50%,
430
- var(--ui-bg-muted) 60%,
431
- var(--ui-surface-subtle) 80%);
427
+ var(--ui-bg-subtle) 20%,
428
+ var(--ui-border) 40%,
429
+ var(--ui-outline) 50%,
430
+ var(--ui-border) 60%,
431
+ var(--ui-bg-subtle) 80%);
432
432
  font-size: var(--font-size-md);
433
433
  }
434
434
 
@@ -444,11 +444,11 @@
444
444
  width: 100%;
445
445
  text-align: center;
446
446
  text-decoration: none;
447
- height: var(--el-height-xl);
447
+ height: var(--el-height-2xl);
448
448
  display: flex;
449
449
  justify-content: center;
450
450
  align-items: center;
451
- gap: calc(var(--space) * 1);
451
+ gap: var(--space);
452
452
  color: var(--ui-fg);
453
453
  padding: calc(var(--space) * 1.5);
454
454
  }
@@ -475,9 +475,9 @@
475
475
  visibility: hidden;
476
476
  background: linear-gradient(to right,
477
477
  var(--ui-surface-subtle) 20%,
478
- var(--ui-bg-muted) 40%,
479
- var(--ui-surface-muted) 50%,
480
- var(--ui-bg-muted) 60%,
478
+ var(--ui-border) 40%,
479
+ var(--ui-outline) 50%,
480
+ var(--ui-border) 60%,
481
481
  var(--ui-surface-subtle) 80%);
482
482
  border: 1px solid var(--ui-border-subtle);
483
483
  display: flex;
@@ -485,8 +485,8 @@
485
485
  align-items: center;
486
486
  justify-content: center;
487
487
  gap: 1px;
488
- min-width: calc(var(--space) * 30);
489
- max-width: calc(var(--space) * 76);
488
+ min-width: var(--columns-6xs);
489
+ max-width: var(--columns-2xs);
490
490
  position: absolute;
491
491
  left: 50%;
492
492
  transform: translateX(-50%);
@@ -507,14 +507,14 @@
507
507
  }
508
508
 
509
509
  .j-bottom-menu .menu .menu-item.menu-item-has-children>.sub-menu>.menu-item>a {
510
- padding: calc(var(--space) * 1.5) calc(var(--space) * 3);
510
+ padding: calc(var(--space) * 1.5) var(--s3);
511
511
  }
512
512
 
513
513
  /* drop menu */
514
514
  .drop-menu {
515
515
  min-width: 100px;
516
516
  max-width: 200px;
517
- padding: calc(var(--space) * 2);
517
+ padding: var(--s2);
518
518
  font-size: var(--font-size-md);
519
519
  background-color: var(--ui-surface-subtle);
520
520
  border-radius: var(--radius-sm);
@@ -532,9 +532,9 @@
532
532
  .drop-menu .menu-item a {
533
533
  display: flex;
534
534
  align-items: center;
535
- gap: var(--drop-menu-item-gap, calc(var(--space) * 2));
535
+ gap: var(--drop-menu-item-gap, var(--s2));
536
536
  width: 100%;
537
- padding: calc(var(--space) * 1) calc(var(--space) * 2);
537
+ padding: var(--space) var(--s2);
538
538
  text-decoration: none;
539
539
  color: var(--ui-fg-muted);
540
540
  border-radius: var(--radius-md);
@@ -552,12 +552,12 @@
552
552
 
553
553
  .drop-menu .el-icon,
554
554
  .drop-menu svg {
555
- width: var(--drop-menu-icon-size, calc(var(--space) * 4));
556
- height: var(--drop-menu-icon-size, calc(var(--space) * 4));
555
+ width: var(--drop-menu-icon-size, var(--s4));
556
+ height: var(--drop-menu-icon-size, var(--s4));
557
557
  }
558
558
 
559
559
  .drop-menu .menu-item.menu-heading {
560
- padding: var(--menu-item-heading, calc(var(--space) * 1) calc(var(--space) * 2));
560
+ padding: var(--menu-item-heading, var(--space) var(--s2));
561
561
  color: var(--ui-fg-soft);
562
562
  font-size: var(--font-size-sm);
563
563
  }
package/src/css/modal.css CHANGED
@@ -2,18 +2,18 @@
2
2
  .j-modal {
3
3
  --modal-border: var(--modal-border-width, 1px) var(--modal-border-style, solid) var(--modal-border-color, transparent);
4
4
 
5
- --modal-header-padding: calc(var(--space) * 4) calc(var(--space) * 4) 0;
5
+ --modal-header-padding: var(--s4) var(--s4) 0;
6
6
  --modal-header-gap: var(--space);
7
7
  --modal-title-font-size: var(--font-size-md);
8
8
  --modal-close-icon-size: var(--el-height-3xs);
9
9
  --modal-close-font-size: var(--font-size-lg);
10
10
  --modal-close-color: var(--ui-fg-muted);
11
11
 
12
- --modal-body-padding: calc(var(--space) * 4);
12
+ --modal-body-padding: var(--s4);
13
13
  --modal-body-line-height: var(--line-height-paragraph);
14
14
 
15
- --modal-footer-padding: 0 calc(var(--space) * 4) calc(var(--space) * 4);
16
- --modal-footer-gap: calc(var(--space) * 2);
15
+ --modal-footer-padding: 0 var(--s4) var(--s4);
16
+ --modal-footer-gap: var(--s2);
17
17
 
18
18
  background: var(--modal-background, var(--ui-bg));
19
19
  border: var(--modal-border, 1px solid var(--ui-border));
@@ -56,27 +56,6 @@
56
56
  font-weight: 500;
57
57
  }
58
58
 
59
- .j-modal .modal-header .modal-close {
60
- display: inline-flex;
61
- align-items: center;
62
- justify-content: center;
63
- width: var(--modal-close-icon-size);
64
- height: var(--modal-close-icon-size);
65
- font-size: var(--modal-close-font-size);
66
- color: var(--modal-close-color);
67
- text-align: center;
68
- }
69
-
70
- .j-modal .modal-header .modal-close:focus-within {
71
- outline: 2px solid var(--tone-solid);
72
- color: var(--tone-solid);
73
- }
74
-
75
- .j-modal .modal-header .modal-close:hover {
76
- color: var(--tone-solid);
77
- background-color: var(--tone-subtle);
78
- }
79
-
80
59
  .j-modal .modal-body {
81
60
  padding: var(--modal-body-padding);
82
61
  overflow-y: auto;
@@ -90,7 +69,11 @@
90
69
  }
91
70
 
92
71
  .j-modal.is-fullscreen .modal-header {
93
- --modal-header-padding: calc(var(--space) * 4);
72
+ --modal-header-padding: var(--s4);
73
+ }
74
+
75
+ .j-modal:not(.is-fullscreen) .modal-header:has(.modal-close) {
76
+ --modal-header-padding: var(--s3) var(--s4) 0;
94
77
  }
95
78
 
96
79
  .j-modal.is-fullscreen .modal-body {
@@ -98,7 +81,7 @@
98
81
  }
99
82
 
100
83
  .j-modal.is-fullscreen .modal-footer {
101
- --modal-footer-padding: calc(var(--space) * 4);
84
+ --modal-footer-padding: var(--s4);
102
85
  }
103
86
 
104
87
  .j-modal .modal-footer {
@@ -7,7 +7,7 @@
7
7
  height: 100%;
8
8
  background-color: var(--offcanvas-overlay-background,
9
9
  var(--ui-overlay-muted));
10
- z-index: var(--z-index-overlay);
10
+ z-index: var(--z-overlay);
11
11
  opacity: 0;
12
12
  transition: opacity 0.3s ease;
13
13
  }
@@ -18,7 +18,7 @@
18
18
 
19
19
  .j-offcanvas {
20
20
  position: fixed;
21
- z-index: var(--z-index-offcanvas);
21
+ z-index: var(--z-offcanvas);
22
22
  background: var(--offcanvas-background, var(--ui-bg));
23
23
  box-shadow: var(--offcanvas-box-shadow, var(--shadow-md));
24
24
  --offcanvas-border: 1px solid var(--ui-border-subtle);
@@ -13,7 +13,7 @@
13
13
  display: flex;
14
14
  justify-content: center;
15
15
  align-items: center;
16
- gap: var(--pagination-gap, calc(var(--space) * 1));
16
+ gap: var(--pagination-gap, var(--space));
17
17
  margin: 0;
18
18
  padding: 0;
19
19
  }
package/src/css/popup.css CHANGED
@@ -8,8 +8,8 @@
8
8
  background-color: var(--popup-background, var(--ui-popup-background));
9
9
  backdrop-filter: var(--popup-backdrop-filter, blur(4px));
10
10
  display: flex;
11
- padding: var(--popup-layout-padding, calc(var(--space) * 4));
12
- z-index: var(--z-index-popup);
11
+ padding: var(--popup-layout-padding, var(--s4));
12
+ z-index: var(--z-popup);
13
13
  }
14
14
 
15
15
  .j-popup-layout,
@@ -37,12 +37,12 @@
37
37
 
38
38
  .j-swiper .swiper-slide-title {
39
39
  position: absolute;
40
- right: var(--swiper-title-inset, calc(var(--space) * 3));
41
- bottom: var(--swiper-title-inset, calc(var(--space) * 3));
42
- left: var(--swiper-title-inset, calc(var(--space) * 3));
40
+ right: var(--swiper-title-inset, var(--s3));
41
+ bottom: var(--swiper-title-inset, var(--s3));
42
+ left: var(--swiper-title-inset, var(--s3));
43
43
  z-index: 1;
44
44
  display: block;
45
- padding: calc(var(--space) * 1.5) calc(var(--space) * 2);
45
+ padding: calc(var(--space) * 1.5) var(--s2);
46
46
  overflow: hidden;
47
47
  color: var(--swiper-title-color, #fff);
48
48
  font-size: var(--swiper-title-font-size, var(--font-size-lg));
@@ -64,9 +64,9 @@
64
64
  }
65
65
 
66
66
  .j-swiper .swiper-pagination.is-horizontal {
67
- right: calc(var(--space) * 3);
68
- bottom: calc(var(--space) * 2);
69
- left: calc(var(--space) * 3);
67
+ right: var(--s3);
68
+ bottom: var(--s2);
69
+ left: var(--s3);
70
70
  }
71
71
 
72
72
  .j-swiper .swiper-pagination-indicator {
@@ -125,11 +125,11 @@
125
125
  }
126
126
 
127
127
  .j-swiper .swiper-navigation.is-prev {
128
- left: calc(var(--space) * 2);
128
+ left: var(--s2);
129
129
  }
130
130
 
131
131
  .j-swiper .swiper-navigation.is-next {
132
- right: calc(var(--space) * 2);
132
+ right: var(--s2);
133
133
  }
134
134
 
135
135
  .j-swiper .swiper-navigation svg {
@@ -146,9 +146,9 @@
146
146
 
147
147
  @media (max-width: 640px) {
148
148
  .j-swiper .swiper-slide-title {
149
- right: calc(var(--space) * 2);
150
- bottom: calc(var(--space) * 2);
151
- left: calc(var(--space) * 2);
149
+ right: var(--s2);
150
+ bottom: var(--s2);
151
+ left: var(--s2);
152
152
  font-size: var(--font-size-md);
153
153
  }
154
154
 
package/src/css/tabs.css CHANGED
@@ -40,7 +40,7 @@
40
40
 
41
41
  .j-tabs .tab-list .tab-item {
42
42
  flex-shrink: 0;
43
- padding: var(--tab-list-item-padding, calc(var(--space) * 2) calc(var(--space) * 3));
43
+ padding: var(--tab-list-item-padding, var(--s2) var(--s3));
44
44
  margin: var(--tab-list-item-margin, 0);
45
45
  cursor: pointer;
46
46
  }
@@ -75,7 +75,7 @@
75
75
  }
76
76
 
77
77
  .j-tabs .tab-panel {
78
- padding: var(--tab-panel-padding, calc(var(--space) * 2) calc(var(--space) * 3));
78
+ padding: var(--tab-panel-padding, var(--s2) var(--s3));
79
79
  margin: var(--tab-panel-margin, 0);
80
80
  }
81
81
 
package/src/css/tag.css CHANGED
@@ -5,20 +5,19 @@
5
5
  align-items: center;
6
6
  gap: var(--tag-gap, var(--space));
7
7
  padding: 0 var(--tag-padding, calc(var(--space) * 1.5));
8
- height: var(--tag-height, calc(var(--space) * 6));
8
+ height: var(--tag-height, var(--el-height-xs));
9
9
  line-height: var(--tag-line-height, var(--line-height-self));
10
10
  font-size: var(--tag-font-size, var(--font-size-sm));
11
11
  font-weight: var(--font-normal);
12
12
  border-radius: var(--tag-radius, var(--radius-md));
13
13
  border: 1px solid var(--tag-border-color, var(--ui-border));
14
14
  color: var(--tag-foreground, var(--ui-fg));
15
- background-color: var(--tag-background, var(--ui-bg));
15
+ background: var(--tag-background, var(--ui-bg));
16
16
  box-shadow: var(--tag-box-shadow, var(--shadow-sm));
17
17
  }
18
18
 
19
19
  .j-font-md .j-tag {
20
- --tag-padding: calc(var(--space) * 2);
21
- --tag-height: calc(var(--space) * 8);
20
+ --tag-padding: var(--s2);
22
21
  }
23
22
 
24
23
  .j-tag.is-contrast {
@@ -1,22 +1,22 @@
1
1
  @layer components {
2
2
  .j-theme-palette {
3
- padding: var(--palette-padding, calc(var(--space) * 4));
3
+ padding: var(--palette-padding, var(--s4));
4
4
  }
5
5
 
6
6
  .j-theme-palette>h3 {
7
- margin: var(--palette-title-margin, calc(var(--space) * 2) 0);
7
+ margin: var(--palette-title-margin, var(--s2) 0);
8
8
  }
9
9
 
10
10
  .j-theme-palette .palette-container {
11
11
  display: flex;
12
12
  flex-direction: column;
13
- gap: var(--palette-container-gap, calc(var(--space) * 4));
13
+ gap: var(--palette-container-gap, var(--s4));
14
14
  }
15
15
 
16
16
  .j-theme-palette .palette-container .palette-item {
17
17
  display: flex;
18
18
  flex-direction: column;
19
- gap: var(--palette-item-gap, calc(var(--space) * 2));
19
+ gap: var(--palette-item-gap, var(--s2));
20
20
  }
21
21
 
22
22
  .j-theme-palette .palette-container .palette-item .item-title {
@@ -33,8 +33,8 @@
33
33
  }
34
34
 
35
35
  .j-theme-palette .palette-container .palette-item .items>button {
36
- padding-left: calc(var(--space) * 2);
37
- padding-right: calc(var(--space) * 2);
36
+ padding-left: var(--s2);
37
+ padding-right: var(--s2);
38
38
  min-width: 0;
39
39
  overflow: hidden;
40
40
  }
package/src/css/tip.css CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
  .j-tip:has(.tip-icon) {
22
22
  column-gap: calc(var(--space, 0.25rem) * 3);
23
- grid-template-columns: calc(var(--space) * 4) 1fr;
23
+ grid-template-columns: var(--s4) 1fr;
24
24
  }
25
25
 
26
26
  .j-font-md .j-tip:has(.tip-icon) {
package/src/css/toast.css CHANGED
@@ -1,12 +1,12 @@
1
1
  @layer components {
2
2
  .j-toast-container {
3
3
  position: fixed;
4
- top: var(--toast-container-offset, calc(var(--space) * 2));
5
- right: var(--toast-container-offset, calc(var(--space) * 2));
6
- z-index: var(--z-index-toast);
4
+ top: var(--toast-container-offset, var(--s2));
5
+ right: var(--toast-container-offset, var(--s2));
6
+ z-index: var(--z-toast);
7
7
  display: flex;
8
8
  flex-direction: column;
9
- gap: var(--toast-container-gap, calc(var(--space) * 2));
9
+ gap: var(--toast-container-gap, var(--s2));
10
10
  align-items: center;
11
11
  left: 50%;
12
12
  transform: translateX(-50%);
@@ -16,7 +16,7 @@
16
16
  .j-toast {
17
17
  display: flex;
18
18
  align-items: center;
19
- padding: var(--toast-padding, calc(var(--space) * 3) calc(var(--space) * 4));
19
+ padding: var(--toast-padding, var(--s3) var(--s4));
20
20
  border-radius: var(--toast-border-radius, var(--radius-md));
21
21
  box-shadow: var(--toast-box-shadow, var(--shadow-md));
22
22
  font-size: var(--toast-font-size, var(--font-size-md));
@@ -45,7 +45,7 @@
45
45
  }
46
46
 
47
47
  .j-toast .toast-icon {
48
- margin-right: calc(var(--space) * 2);
48
+ margin-right: var(--s2);
49
49
  width: var(--toast-icon-size, var(--font-size-lg));
50
50
  }
51
51
 
@@ -112,13 +112,13 @@
112
112
  transform: translate(-50%, -50%);
113
113
  transition: opacity var(--speed-sm) ease-in-out;
114
114
  opacity: 0;
115
- z-index: var(--z-index-toast);
115
+ z-index: var(--z-toast);
116
116
  font-size: var(--toast-lite-font-size, var(--font-size-md));
117
117
  text-align: center;
118
118
  color: var(--toast-lite-color, var(--ui-bg));
119
119
  background: var(--toast-lite-background, var(--ui-fg));
120
120
  border-radius: var(--toast-lite-border-radius, var(--radius-md));
121
- padding: var(--toast-lite-padding, calc(var(--space) * 2) calc(var(--space) * 3));
121
+ padding: var(--toast-lite-padding, var(--s2) var(--s3));
122
122
  max-width: var(--toast-lite-max-width, calc(var(--screen-sm) / 2));
123
123
  user-select: none;
124
124
  pointer-events: none;