vanilla-jui 1.5.35 → 1.5.37

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 (62) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/index.umd.js +1 -1
  3. package/dist/style.css +1 -1
  4. package/package.json +7 -4
  5. package/src/css/accordion.css +3 -73
  6. package/src/css/animation.css +143 -0
  7. package/src/css/avatar.css +4 -13
  8. package/src/css/badge.css +4 -11
  9. package/src/css/breadcrumb.css +4 -11
  10. package/src/css/button.css +6 -64
  11. package/src/css/card.css +25 -23
  12. package/src/css/components.css +4 -3
  13. package/src/css/drop.css +0 -10
  14. package/src/css/editor.css +84 -67
  15. package/src/css/flow.css +2 -3
  16. package/src/css/form.css +45 -178
  17. package/src/css/index.css +2 -2
  18. package/src/css/layout.css +32 -0
  19. package/src/css/loading.css +230 -1
  20. package/src/css/menu.css +5 -565
  21. package/src/css/modal.css +0 -29
  22. package/src/css/offcanvas.css +0 -35
  23. package/src/css/pagination.css +0 -10
  24. package/src/css/popup.css +0 -3
  25. package/src/css/skeleton.css +14 -8
  26. package/src/css/status.css +6 -1
  27. package/src/css/swiper.css +7 -74
  28. package/src/css/table.css +4 -33
  29. package/src/css/tabs.css +0 -7
  30. package/src/css/theme-palette.css +6 -40
  31. package/src/css/themes/default/accordion.css +84 -7
  32. package/src/css/themes/default/avatar.css +15 -0
  33. package/src/css/themes/default/badge.css +24 -3
  34. package/src/css/themes/default/breadcrumb.css +18 -0
  35. package/src/css/themes/default/button.css +124 -26
  36. package/src/css/themes/default/drop.css +10 -8
  37. package/src/css/themes/default/editor.css +24 -8
  38. package/src/css/themes/default/form.css +170 -0
  39. package/src/css/themes/default/index.css +5 -2
  40. package/src/css/themes/default/loading.css +0 -1
  41. package/src/css/themes/default/menu.css +591 -42
  42. package/src/css/themes/default/modal.css +39 -17
  43. package/src/css/themes/default/offcanvas.css +40 -3
  44. package/src/css/themes/default/pagination.css +11 -4
  45. package/src/css/themes/default/popup.css +4 -3
  46. package/src/css/themes/default/swiper.css +83 -19
  47. package/src/css/themes/default/table.css +22 -14
  48. package/src/css/themes/default/tabs.css +16 -6
  49. package/src/css/themes/default/theme-palette.css +33 -8
  50. package/src/css/themes/default/tip.css +27 -17
  51. package/src/css/themes/default/toast.css +30 -18
  52. package/src/css/themes/default/toc.css +25 -0
  53. package/src/css/themes/default/toolbar.css +54 -9
  54. package/src/css/themes/default/tooltip.css +14 -7
  55. package/src/css/themes/default/tree.css +75 -0
  56. package/src/css/tip.css +2 -27
  57. package/src/css/toast.css +5 -21
  58. package/src/css/toc.css +0 -24
  59. package/src/css/tokens.css +52 -17
  60. package/src/css/toolbar.css +2 -48
  61. package/src/css/tooltip.css +2 -10
  62. package/src/css/tree.css +49 -0
package/src/css/card.css CHANGED
@@ -1,13 +1,15 @@
1
1
  @layer components {
2
2
  .j-card {
3
+ --card-border-radius: var(--radius-md);
4
+
3
5
  display: flex;
4
6
  flex-direction: column;
5
7
  position: relative;
6
8
  max-width: 100%;
7
- color: var(--card-color, var(--ui-fg));
8
- background-color: var(--card-background, var(--ui-bg));
9
- border: 1px solid var(--card-border-color, var(--ui-border));
10
- border-radius: var(--card-border-radius, var(--radius-md));
9
+ color: var(--ui-fg);
10
+ background-color: var(--ui-bg);
11
+ border: 1px solid var(--ui-border);
12
+ border-radius: var(--card-border-radius);
11
13
  box-shadow: var(--shadow-sm);
12
14
  }
13
15
 
@@ -19,17 +21,17 @@
19
21
  .j-card .card-header {
20
22
  display: flex;
21
23
  align-items: center;
22
- background-color: var(--card-header-background, transparent);
24
+ background-color: transparent;
23
25
  }
24
26
 
25
27
  .j-card .card-header .header-title {
26
28
  display: flex;
27
29
  align-items: center;
28
30
  flex-grow: 1;
29
- color: var(--card-header-color, var(--ui-fg));
31
+ color: var(--ui-fg);
30
32
  font-size: var(--font-size-md);
31
- font-weight: var(--card-header-weight, var(--font-medium));
32
- padding: var(--card-header-padding, var(--s3) var(--s4));
33
+ font-weight: var(--font-medium);
34
+ padding: var(--s3) var(--s4);
33
35
  margin: 0;
34
36
  }
35
37
 
@@ -43,7 +45,9 @@
43
45
  border: none;
44
46
  margin: 0;
45
47
  padding: 0;
46
- padding: var(--card-header-padding, var(--space) var(--s2));
48
+ padding: var(--space) var(--s2);
49
+ -webkit-appearance: none;
50
+ -moz-appearance: none;
47
51
  appearance: none;
48
52
  cursor: pointer;
49
53
  }
@@ -66,6 +70,7 @@
66
70
  .j-card figure img {
67
71
  width: 100%;
68
72
  height: 100%;
73
+ -o-object-fit: cover;
69
74
  object-fit: cover;
70
75
  }
71
76
 
@@ -78,36 +83,33 @@
78
83
  }
79
84
 
80
85
  .j-card .card-media:first-child img {
81
- border-start-end-radius: var(--card-border-radius, var(--radius-md));
82
- border-start-start-radius: var(--card-border-radius, var(--radius-md));
86
+ border-start-end-radius: var(--card-border-radius);
87
+ border-start-start-radius: var(--card-border-radius);
83
88
  }
84
89
 
85
90
  .j-card .card-content {
86
- background-color: var(--card-content-background);
87
- padding: var(--card-content-padding, var(--s4));
88
- line-height: var(--line-height-paragraph);
91
+ padding: var(--s4);
89
92
  }
90
93
 
91
94
  .j-card .card-content:last-child,
92
95
  .j-card .card-footer:last-child,
93
96
  .j-card .card-header:last-child {
94
- border-end-end-radius: var(--card-border-radius, var(--radius-md));
95
- border-end-start-radius: var(--card-border-radius, var(--radius-md));
97
+ border-end-end-radius: var(--card-border-radius);
98
+ border-end-start-radius: var(--card-border-radius);
96
99
  }
97
100
 
98
101
  .j-card .card-content:first-child,
99
102
  .j-card .card-footer:first-child,
100
103
  .j-card .card-header:first-child {
101
- border-start-end-radius: var(--card-border-radius, var(--radius-md));
102
- border-start-start-radius: var(--card-border-radius, var(--radius-md));
104
+ border-start-end-radius: var(--card-border-radius);
105
+ border-start-start-radius: var(--card-border-radius);
103
106
  }
104
107
 
105
108
  .j-card .card-footer {
106
109
  display: flex;
107
110
  align-items: stretch;
108
- background-color: var(--card-footer-background);
109
111
  overflow: hidden;
110
- gap: calc(var(--space)*2);
112
+ gap: var(--s2);
111
113
  }
112
114
 
113
115
  /* vertical */
@@ -119,11 +121,11 @@
119
121
  flex-direction: column;
120
122
  align-items: flex-start;
121
123
  gap: var(--s2);
122
- padding: var(--card-header-padding, var(--s4) var(--s4) 0);
124
+ padding: var(--s4) var(--s4) 0;
123
125
  }
124
126
 
125
127
  .j-card.is-vertical .card-header .header-title {
126
- font-size: var(--vertical-card-title-font-size, var(--font-size-lg));
128
+ font-size: var(--font-size-lg);
127
129
  }
128
130
 
129
131
  .j-card.is-vertical .card-header .header-description {
@@ -138,7 +140,7 @@
138
140
 
139
141
  .j-card .card-footer {
140
142
  border-top: none;
141
- padding: var(--vertical-card-footer-padding, var(--s4));
143
+ padding: var(--s4);
142
144
  }
143
145
 
144
146
  .j-card .card-content + .card-footer {
@@ -2,7 +2,7 @@
2
2
  @import url('./button.css');
3
3
  @import url('./avatar.css');
4
4
  @import url('./badge.css');
5
- @import url('./tag.css');
5
+ /* @import url('./tag.css'); */
6
6
  @import url('./tip.css');
7
7
  @import url('./loading.css');
8
8
  @import url('./skeleton.css');
@@ -21,8 +21,9 @@
21
21
  @import url('./table.css');
22
22
  @import url('./pagination.css');
23
23
  @import url('./card.css');
24
- @import url('./toolbar.css');
25
- @import url('./editor.css');
26
24
  @import url('./menu.css');
27
25
  @import url('./toc.css');
26
+ @import url('./tree.css');
28
27
  @import url('./form.css');
28
+ @import url('./toolbar.css');
29
+ @import url('./editor.css');
package/src/css/drop.css CHANGED
@@ -6,7 +6,6 @@
6
6
  left: 0;
7
7
  opacity: 0;
8
8
  pointer-events: none;
9
- transition: opacity 0.2s ease;
10
9
  z-index: var(--z-drop);
11
10
  }
12
11
 
@@ -17,15 +16,6 @@
17
16
  }
18
17
 
19
18
  .drop-container {
20
- border-width: var(--drop-border-width);
21
- border-style: var(--drop-border-style);
22
- border-color: var(--drop-border-color);
23
- border-radius: var(--drop-border-radius);
24
- background: var(--drop-bg);
25
- color: var(--drop-fg);
26
- box-shadow: var(--drop-box-shadow);
27
19
  position: relative;
28
- min-width: 64px;
29
- min-height: 32px;
30
20
  }
31
21
  }
@@ -19,7 +19,7 @@
19
19
  ============================================ */
20
20
  .j-editor {
21
21
  font-size: var(--editor-font-size);
22
- line-height: var(--editor-line-height);
22
+ line-height: 1.5;
23
23
  letter-spacing: var(--editor-letter-space);
24
24
  word-spacing: var(--editor-word-space);
25
25
  word-break: break-word;
@@ -28,17 +28,17 @@
28
28
  }
29
29
 
30
30
  /* ============================================
31
- reset - 重置样式
31
+ Typography - 段落与标题
32
32
  ============================================ */
33
- .j-editor p {
34
- margin: 0;
35
- }
36
-
37
- /* ============================================
38
- Typography - 段落与标题
39
- ============================================ */
40
- .j-editor > p {
41
- margin-block: var(--editor-block-space);
33
+ h1,
34
+ h2,
35
+ h3,
36
+ h4,
37
+ h5,
38
+ h6,
39
+ li,
40
+ p {
41
+ overflow-wrap: break-word;
42
42
  }
43
43
 
44
44
  .j-editor h1,
@@ -47,51 +47,61 @@
47
47
  .j-editor h4,
48
48
  .j-editor h5,
49
49
  .j-editor h6 {
50
- margin: var(--editor-heading-space) 0
51
- calc(var(--editor-heading-space) * 0.625);
50
+ outline: none;
52
51
  font-weight: 600;
52
+ position: relative;
53
53
  color: var(--editor-heading-fg);
54
- letter-spacing: -0.02em;
55
54
  }
56
55
 
57
56
  .j-editor h1 {
58
57
  font-size: 2em;
59
- letter-spacing: -0.03em;
60
- margin-top: 0;
58
+ letter-spacing: -0.02em;
59
+ line-height: 1.25;
60
+ margin-block: 0;
61
61
  }
62
62
 
63
63
  .j-editor h2 {
64
- font-size: 1.75em;
65
- padding-bottom: 2px;
66
- border-bottom: 1px solid var(--editor-border-subtle);
64
+ font-size: 1.5em;
65
+ letter-spacing: -0.02em;
66
+ padding-top: 1.5rem;
67
+ margin-top: 3rem;
68
+ margin-bottom: var(--editor-block-space);
69
+ line-height: 1.33333;
70
+ border-top: 1px solid var(--editor-border-subtle);
67
71
  }
68
72
 
69
73
  .j-editor h3 {
70
- font-size: 1.5em;
74
+ font-size: 1.25em;
75
+ letter-spacing: -0.01em;
76
+ margin-top: 2rem;
77
+ margin-bottom: var(--editor-block-space);
78
+ line-height: 1.4;
71
79
  }
72
80
 
73
81
  .j-editor h4 {
74
- font-size: 1.25em;
82
+ font-size: 1.125em;
83
+ letter-spacing: -0.01em;
84
+ margin-top: 1.75rem;
85
+ margin-bottom: var(--editor-block-space);
86
+ line-height: 1.33333;
75
87
  }
76
88
 
77
89
  .j-editor h5,
78
90
  .j-editor h6 {
79
91
  font-size: 1em;
92
+ margin-top: 1.5rem;
93
+ margin-bottom: var(--editor-block-space);
94
+ line-height: 1.5;
80
95
  }
81
96
 
82
- /* 标题后的段落减少间距 */
83
- /* .j-editor h1+p,
84
- .j-editor h2+p,
85
- .j-editor h3+p,
86
- .j-editor h4+p,
87
- .j-editor h5+p,
88
- .j-editor h6+p {
89
- margin-top: calc(var(--editor-block-space) * -0.5);
90
- } */
97
+ .j-editor p {
98
+ margin-block: var(--editor-block-space);
99
+ line-height: var(--editor-p-line-height);
100
+ }
91
101
 
92
102
  /* ============================================
93
- Inline Elements - 内联元素
94
- ============================================ */
103
+ Inline Elements - 内联元素
104
+ ============================================ */
95
105
  .j-editor strong,
96
106
  .j-editor b {
97
107
  font-weight: 600;
@@ -106,6 +116,7 @@
106
116
  .j-editor u {
107
117
  text-decoration: underline;
108
118
  text-decoration-thickness: 4px;
119
+ -webkit-text-decoration-color: var(--editor-ring);
109
120
  text-decoration-color: var(--editor-ring);
110
121
  text-underline-offset: 0.2em;
111
122
  }
@@ -139,7 +150,9 @@
139
150
  }
140
151
 
141
152
  .j-editor abbr[title] {
153
+ -webkit-text-decoration: underline dotted;
142
154
  text-decoration: underline dotted;
155
+ -webkit-text-decoration-color: var(--tone-muted);
143
156
  text-decoration-color: var(--tone-muted);
144
157
  text-underline-offset: 0.2em;
145
158
  cursor: help;
@@ -160,21 +173,30 @@
160
173
  }
161
174
 
162
175
  /* ============================================
163
- Links - 链接
164
- ============================================ */
176
+ Links - 链接
177
+ ============================================ */
165
178
  .j-editor a {
166
179
  color: var(--editor-link);
167
180
  text-decoration: none;
181
+ -webkit-text-decoration-color: transparent;
168
182
  text-decoration-color: transparent;
169
183
  text-underline-offset: 0.15em;
184
+ transition:
185
+ color 0.15s,
186
+ -webkit-text-decoration-color 0.15s;
170
187
  transition:
171
188
  color 0.15s,
172
189
  text-decoration-color 0.15s;
190
+ transition:
191
+ color 0.15s,
192
+ text-decoration-color 0.15s,
193
+ -webkit-text-decoration-color 0.15s;
173
194
  }
174
195
 
175
196
  .j-editor a:hover {
176
197
  color: var(--editor-link-hover);
177
198
  text-decoration: underline;
199
+ -webkit-text-decoration-color: var(--editor-link-hover);
178
200
  text-decoration-color: var(--editor-link-hover);
179
201
  }
180
202
 
@@ -187,8 +209,8 @@
187
209
  }
188
210
 
189
211
  /* ============================================
190
- Lists - 列表
191
- ============================================ */
212
+ Lists - 列表
213
+ ============================================ */
192
214
  .j-editor ul,
193
215
  .j-editor ol {
194
216
  margin: 0 0 var(--editor-list-space);
@@ -197,7 +219,7 @@
197
219
 
198
220
  .j-editor ul li,
199
221
  .j-editor ol li {
200
- margin-bottom: var(--editor-space);
222
+ margin-bottom: 0.4em;
201
223
  padding-left: 0.25em;
202
224
  }
203
225
 
@@ -251,7 +273,7 @@
251
273
  .j-editor dt {
252
274
  font-weight: 600;
253
275
  margin-top: 0.75rem;
254
- margin-bottom: var(--editor-dot-space);
276
+ margin-bottom: var(--editor-space);
255
277
  color: var(--editor-heading-fg);
256
278
  }
257
279
 
@@ -265,11 +287,9 @@
265
287
  color: var(--tone-body);
266
288
  }
267
289
 
268
- /* 任务列表 */
269
-
270
290
  /* ============================================
271
- Blockquote - 引用
272
- ============================================ */
291
+ Blockquote - 引用
292
+ ============================================ */
273
293
  .j-editor blockquote {
274
294
  margin: var(--editor-block-space) 0;
275
295
  margin-left: 0;
@@ -282,11 +302,16 @@
282
302
  font-style: italic;
283
303
  }
284
304
 
285
- .j-editor blockquote p {
305
+ /* .j-editor blockquote p {
306
+ margin-block: 0;
307
+ } */
308
+
309
+ .j-editor blockquote > * {
286
310
  margin-block: 0;
287
311
  }
288
312
 
289
- .j-editor blockquote p + p {
313
+ /* .j-editor blockquote p+p, */
314
+ .j-editor blockquote > * + * {
290
315
  margin-top: 0.5rem;
291
316
  }
292
317
 
@@ -303,15 +328,14 @@
303
328
  }
304
329
 
305
330
  /* ============================================
306
- Code - 代码
307
- ============================================ */
331
+ Code - 代码
332
+ ============================================ */
308
333
  code {
334
+ -webkit-box-decoration-break: clone;
309
335
  box-decoration-break: clone;
310
336
  }
311
337
 
312
338
  .j-editor code:not([class*='language-']) {
313
- /* font-family:
314
- 'SF Mono', SFMono-Regular, Consolas, 'Liberation Mono', Menlo, monospace; */
315
339
  font-family: Menlo, Monaco, Consolas, 'Liberation Mono', monospace;
316
340
  font-size: 0.875em;
317
341
  border: 1px solid var(--editor-border-subtle);
@@ -338,6 +362,8 @@
338
362
  background: var(--editor-code-bg);
339
363
  font-size: 0.875em;
340
364
  line-height: 1.6;
365
+ -moz-tab-size: 2;
366
+ -o-tab-size: 2;
341
367
  tab-size: 2;
342
368
  }
343
369
 
@@ -389,6 +415,8 @@
389
415
  }
390
416
 
391
417
  .code-block .code-header select {
418
+ -webkit-appearance: none;
419
+ -moz-appearance: none;
392
420
  appearance: none;
393
421
  background: transparent;
394
422
  border: none;
@@ -529,8 +557,8 @@
529
557
  }
530
558
 
531
559
  /* ============================================
532
- Media - 媒体
533
- ============================================ */
560
+ Media - 媒体
561
+ ============================================ */
534
562
 
535
563
  .j-editor img {
536
564
  max-width: 100%;
@@ -579,18 +607,6 @@
579
607
  align-items: center;
580
608
  }
581
609
 
582
- /* ============================================
583
- Table - 表格
584
- ============================================ */
585
-
586
- .j-editor table {
587
- margin-block: var(--editor-block-space);
588
- overflow-x: auto;
589
- scrollbar-width: thin;
590
- scrollbar-color: var(--ui-border) transparent;
591
- display: block;
592
- }
593
-
594
610
  /* ============================================
595
611
  Horizontal Rule - 分割线
596
612
  ============================================ */
@@ -603,8 +619,8 @@
603
619
  }
604
620
 
605
621
  /* ============================================
606
- Details / Summary - 折叠
607
- ============================================ */
622
+ Details / Summary - 折叠
623
+ ============================================ */
608
624
 
609
625
  .j-editor details {
610
626
  margin: var(--editor-block-space) 0;
@@ -651,8 +667,8 @@
651
667
  }
652
668
 
653
669
  /* ============================================
654
- Progress / Meter
655
- ============================================ */
670
+ Progress / Meter
671
+ ============================================ */
656
672
 
657
673
  .j-editor progress {
658
674
  max-width: 100%;
@@ -692,7 +708,8 @@
692
708
  margin-bottom: 0;
693
709
  }
694
710
 
711
+ .j-editor table,
695
712
  .j-editor .block {
696
- margin: var(--editor-block-space) 0;
713
+ margin-block: var(--editor-block-space);
697
714
  }
698
715
  }
package/src/css/flow.css CHANGED
@@ -2,7 +2,6 @@
2
2
  .j-flow {
3
3
  --flow-gap: var(--s2);
4
4
  --flow-step-size: 28px;
5
- --flow-border: 1px solid var(--ui-border-subtle);
6
5
  }
7
6
 
8
7
  .j-flow,
@@ -44,8 +43,8 @@
44
43
  background: var(--ui-surface-muted);
45
44
  border-radius: 999px;
46
45
  display: inline-flex;
47
- height: var(--flow-step-size);
48
46
  justify-content: center;
47
+ height: var(--flow-step-size);
49
48
  min-width: var(--flow-step-size);
50
49
  }
51
50
 
@@ -64,7 +63,7 @@
64
63
  }
65
64
 
66
65
  .j-flow .flow-footer {
67
- border-top: var(--flow-border);
66
+ border-top: 1px solid var(--ui-border-subtle);
68
67
  display: flex;
69
68
  gap: var(--space);
70
69
  justify-content: flex-end;