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
@@ -1,26 +1,33 @@
1
1
  @layer themes {
2
- .j-button-group {
3
- --btn-group-box-shadow: var(--shadow-sm);
4
- }
5
-
6
2
  .j-button {
7
- --btn-gap: var(--space) calc(var(--space) * 1.5);
8
- /* --btn-font-weight: var(--font-medium); */
9
3
  --btn-font-size: var(--font-size-md);
10
4
  --btn-height: var(--el-height-md);
11
- --btn-line-height: var(--line-height-self);
12
5
  --btn-fg: inherit;
13
6
  --btn-bg: transparent;
14
7
  --btn-padding: 0 var(--s3);
15
- --btn-border-width: 1px;
16
- --btn-border-style: solid;
17
8
  --btn-border-color: transparent;
18
- --btn-border-radius: var(--radius-md);
9
+ --btn-radius: var(--radius-md);
19
10
  --btn-box-shadow: var(--shadow-sm);
11
+
12
+ gap: var(--space);
13
+ font-size: var(--btn-font-size);
14
+ height: var(--btn-height);
15
+ line-height: 1;
16
+ color: var(--btn-fg);
17
+ background-color: var(--btn-bg);
18
+ padding: var(--btn-padding);
19
+ border-width: 1px;
20
+ border-style: solid;
21
+ border-color: var(--btn-border-color);
22
+ border-radius: var(--btn-radius);
23
+ box-shadow: var(--btn-box-shadow);
24
+ outline: none;
20
25
  }
21
26
 
22
- .j-button svg {
23
- --btn-svg-size: var(--font-size-md);
27
+ .j-button.is-xs {
28
+ --btn-font-size: var(--font-size-sm);
29
+ --btn-height: var(--el-height-xs);
30
+ --btn-padding: var(--space) var(--s2);
24
31
  }
25
32
 
26
33
  .j-button.is-sm {
@@ -35,6 +42,12 @@
35
42
  --btn-padding: 0 var(--s3);
36
43
  }
37
44
 
45
+ .j-button.is-xl {
46
+ --btn-font-size: var(--font-size-xl);
47
+ --btn-height: var(--el-height-xl);
48
+ --btn-padding: 0 var(--s4);
49
+ }
50
+
38
51
  .j-button.is-default {
39
52
  --btn-fg: var(--ui-fg);
40
53
  --btn-bg: var(--ui-bg);
@@ -70,13 +83,11 @@
70
83
 
71
84
  .j-button.is-text {
72
85
  --btn-border-color: transparent;
73
- --btn-text-height: auto;
74
- --btn-text-padding: 0;
75
86
  --btn-box-shadow: none;
76
87
  }
77
88
 
78
89
  .j-button.is-icon {
79
- aspect-ratio: var(--aspect-icon, 1);
90
+ aspect-ratio: 1/1;
80
91
  --btn-padding: var(--icon-padding, 0);
81
92
  }
82
93
 
@@ -119,14 +130,18 @@
119
130
 
120
131
  .j-button-group {
121
132
  --btn-padding: 0 var(--s2);
133
+ --btn-radius: var(--radius-md);
134
+
135
+ margin: 0;
136
+ box-shadow: var(--shadow-sm);
137
+ border-radius: var(--btn-radius);
122
138
  }
123
139
 
124
- /* disabled */
140
+ /* status */
125
141
  .j-button:disabled {
126
142
  opacity: var(--opacity-disabled);
127
143
  }
128
144
 
129
- /* status */
130
145
  .j-button:not(:disabled) {
131
146
  cursor: pointer;
132
147
  }
@@ -139,13 +154,48 @@
139
154
  opacity: var(--opacity-active);
140
155
  }
141
156
 
142
- .j-button:not(:disabled).is-active {
143
- --opacity: var(--opacity-active);
157
+ .j-button:not(:disabled).is-active,
158
+ .j-button:not(:disabled):focus,
159
+ .j-button:not(:disabled):focus-within,
160
+ .j-button:not(:disabled):focus-visible {
144
161
  --btn-border-color: var(--tone-solid);
162
+ --btn-box-shadow: 0 0 0 4px var(--tone-ring);
145
163
  }
146
164
 
147
- .j-button:not(:disabled):focus-visible {
148
- outline-color: var(--btn-ring, var(--tone-solid));
165
+ .j-button.is-reverse:not(:disabled).is-active,
166
+ .j-button.is-reverse:not(:disabled):focus,
167
+ .j-button.is-reverse:not(:disabled):focus-within,
168
+ .j-button.is-reverse:not(:disabled):focus-visible {
169
+ --btn-border-color: transparent;
170
+ --btn-box-shadow: 0 0 0 4px var(--tone-card-active);
171
+ }
172
+
173
+ .j-button.is-success:not(:disabled).is-active,
174
+ .j-button.is-success:not(:disabled):focus,
175
+ .j-button.is-success:not(:disabled):focus-within,
176
+ .j-button.is-success:not(:disabled):focus-visible {
177
+ --btn-border-color: transparent;
178
+ --btn-box-shadow: 0 0 0 4px var(--state-success-ring);
179
+ }
180
+
181
+ .j-button.is-warning:not(:disabled).is-active,
182
+ .j-button.is-warning:not(:disabled):focus,
183
+ .j-button.is-warning:not(:disabled):focus-within,
184
+ .j-button.is-warning:not(:disabled):focus-visible {
185
+ --btn-border-color: transparent;
186
+ --btn-box-shadow: 0 0 0 4px var(--state-warning-ring);
187
+ }
188
+
189
+ .j-button.is-danger:not(:disabled).is-active,
190
+ .j-button.is-danger:not(:disabled):focus,
191
+ .j-button.is-danger:not(:disabled):focus-within,
192
+ .j-button.is-danger:not(:disabled):focus-visible,
193
+ .j-button.is-error:not(:disabled).is-active,
194
+ .j-button.is-error:not(:disabled):focus,
195
+ .j-button.is-error:not(:disabled):focus-within,
196
+ .j-button.is-error:not(:disabled):focus-visible {
197
+ --btn-border-color: transparent;
198
+ --btn-box-shadow: 0 0 0 4px var(--state-danger-muted);
149
199
  }
150
200
 
151
201
  .j-button.is-default:hover:not(:disabled) {
@@ -157,10 +207,11 @@
157
207
  --btn-bg: var(--tone-subtle);
158
208
  }
159
209
 
210
+ .j-button.is-text:not(:disabled).is-active,
160
211
  .j-button.is-text:not(:disabled):active,
161
- .j-button.is-text:not(:disabled):focus-visible,
162
- .j-button.is-text:not(:disabled).is-active {
163
- outline: none;
212
+ .j-button.is-text:not(:disabled):focus,
213
+ .j-button.is-text:not(:disabled):focus-within,
214
+ .j-button.is-text:not(:disabled):focus-visible {
164
215
  --btn-fg: var(--tone-solid);
165
216
  text-decoration: underline;
166
217
  text-underline-offset: var(--space);
@@ -191,13 +242,60 @@
191
242
  }
192
243
 
193
244
  .j-button-group .j-button:active,
245
+ .j-button-group .j-button:focus,
194
246
  .j-button-group .j-button:focus-visible,
195
247
  .j-button-group .j-button:focus-within {
196
- outline: 0;
197
- opacity: var(--opacity-active);
248
+ /* opacity: var(--opacity-active); */
198
249
  z-index: 1;
199
250
  }
200
251
 
252
+ .j-button-group .j-button:not(:first-child) {
253
+ border-top-left-radius: 0;
254
+ border-bottom-left-radius: 0;
255
+ }
256
+
257
+ .j-button-group .j-button:not(:last-child) {
258
+ border-top-right-radius: 0;
259
+ border-bottom-right-radius: 0;
260
+ }
261
+
262
+ .j-button-group .j-button:not(:first-child):not(:last-child) {
263
+ border-top-width: 1px;
264
+ border-bottom-width: 1px;
265
+ border-left-width: 0;
266
+ border-right-width: 0;
267
+ }
268
+
269
+ .j-button-group.is-vertical {
270
+ flex-direction: column;
271
+ }
272
+
273
+ .j-button-group.is-vertical .j-button:not(:last-child) {
274
+ border-bottom-left-radius: 0;
275
+ border-bottom-right-radius: 0;
276
+ }
277
+
278
+ .j-button-group.is-vertical .j-button:not(:first-child) {
279
+ margin-left: 0;
280
+ border-top-left-radius: 0;
281
+ border-top-right-radius: 0;
282
+ }
283
+
284
+ .j-button-group.is-vertical .j-button:not(:last-child):not(:first-child) {
285
+ border-left-width: 1px;
286
+ border-right-width: 1px;
287
+ border-top-width: 0;
288
+ border-bottom-width: 0;
289
+ }
290
+
291
+ .j-button-group.is-vertical .j-button:first-child {
292
+ border-top-right-radius: var(--btn-radius);
293
+ }
294
+
295
+ .j-button-group.is-vertical .j-button:last-child {
296
+ border-bottom-left-radius: var(--btn-radius);
297
+ }
298
+
201
299
  .j-button-group.is-vertical .j-button:focus-within {
202
300
  z-index: auto;
203
301
  }
@@ -1,11 +1,13 @@
1
1
  @layer themes {
2
- .j-drop {
3
- --drop-border-width: 1px;
4
- --drop-border-style: solid;
5
- --drop-border-color: var(--ui-border);
6
- --drop-border-radius: var(--radius-sm);
7
- --drop-fg: var(--ui-fg);
8
- --drop-bg: var(--ui-bg);
9
- --drop-box-shadow: var(--shadow-sm);
2
+ .drop-container {
3
+ border-width: 1px;
4
+ border-style: solid;
5
+ border-color: var(--ui-border);
6
+ border-radius: var(--radius-sm);
7
+ background: var(--ui-bg);
8
+ color: var(--ui-fg);
9
+ box-shadow: var(--shadow-sm);
10
+ min-width: 64px;
11
+ min-height: 32px;
10
12
  }
11
13
  }
@@ -10,14 +10,12 @@
10
10
 
11
11
  .j-editor {
12
12
  --editor-font-size: var(--font-size-lg);
13
- --editor-line-height: 1.85;
13
+ --editor-p-line-height: 1.75;
14
14
  --editor-word-space: 0.02em;
15
15
  --editor-letter-space: 0.01em;
16
- --editor-heading-space: 2rem;
17
- --editor-block-space: 1.5rem;
18
- --editor-list-space: 1.25rem;
16
+ --editor-block-space: 1.25rem;
17
+ --editor-list-space: 1rem;
19
18
  --editor-space: 0.25rem;
20
- --editor-dot-space: 0.125rem;
21
19
 
22
20
  --editor-heading-fg: var(--tone-heading);
23
21
  --editor-caption-fg: var(--tone-caption);
@@ -38,17 +36,19 @@
38
36
 
39
37
  .j-editor.is-sm {
40
38
  --editor-font-size: var(--font-size-md);
41
- --editor-line-height: 1.65;
39
+ --editor-p-line-height: 1.75;
42
40
  }
43
41
 
44
42
  .j-editor.is-lg {
45
43
  --editor-font-size: var(--font-size-xl);
46
- --editor-line-height: 1.8;
44
+ --editor-p-line-height: 1.8;
45
+ --editor-block-space: 1.5rem;
47
46
  }
48
47
 
49
48
  .j-editor.is-xl {
50
49
  --editor-font-size: var(--font-size-2xl);
51
- --editor-line-height: 1.85;
50
+ --editor-p-line-height: 1.8;
51
+ --editor-block-space: 1.5rem;
52
52
  }
53
53
 
54
54
  .j-radius-round .j-editor {
@@ -56,4 +56,20 @@
56
56
  --radius-md: 1rem;
57
57
  --radius-lg: 1.5rem;
58
58
  }
59
+
60
+ .mobile .j-editor h1 {
61
+ margin-bottom: 2rem;
62
+ }
63
+
64
+ .mobile .j-editor h2,
65
+ .mobile .j-editor h3,
66
+ .mobile .j-editor h4,
67
+ .mobile .j-editor h5,
68
+ .mobile .j-editor p {
69
+ --editor-block-space: 1.75rem;
70
+ }
71
+
72
+ .mobile .j-editor li p {
73
+ margin-block: 0;
74
+ }
59
75
  }
@@ -0,0 +1,170 @@
1
+ @layer themes {
2
+ .j-form.is-lg {
3
+ --form-gap-vertical: var(--s3);
4
+ --form-gap-horizontal: var(--s3);
5
+ }
6
+
7
+ .j-input {
8
+ --input-font-size: var(--font-size-md);
9
+ --input-bg: inherit;
10
+ --input-fg: inherit;
11
+ }
12
+
13
+ .j-input:not([type='checkbox']) {
14
+ --input-padding: calc(var(--space) * 1.5) var(--s2);
15
+ --input-height: var(--el-height-md);
16
+ --input-line-height: var(--line-height);
17
+ }
18
+
19
+ .j-input.is-sm {
20
+ --input-height: var(--el-height-sm);
21
+ --input-line-height: var(--line-height-self);
22
+ --input-font-size: var(--font-size-sm);
23
+ }
24
+
25
+ .j-input.is-lg {
26
+ --input-height: var(--el-height-lg);
27
+ --input-line-height: var(--line-height);
28
+ --input-font-size: var(--font-size-lg);
29
+ }
30
+
31
+ .j-input[type='password'] {
32
+ letter-spacing: 2px;
33
+ }
34
+
35
+ .j-input[type='password'].is-sm {
36
+ letter-spacing: 1px;
37
+ }
38
+
39
+ .j-input[type='password'].is-lg {
40
+ letter-spacing: 3px;
41
+ }
42
+
43
+ .j-input[type='password']:placeholder-shown {
44
+ letter-spacing: 0.5px;
45
+ }
46
+
47
+ .j-input[type='date'],
48
+ .j-input[type='datetime'],
49
+ .j-input[type='datetime-local'],
50
+ .j-input[type='time'],
51
+ .j-input[type='week'],
52
+ .j-input[type='month'],
53
+ .j-input[type='file'],
54
+ .j-input[type='color'] {
55
+ /* --input-font-size: var(--font-size-sm); */
56
+ --input-fg: var(--ui-fg-muted);
57
+ }
58
+
59
+ .j-input[type='color'] {
60
+ --input-padding: var(--space);
61
+ min-width: 5rem;
62
+ }
63
+
64
+ .j-input[type='color']::-webkit-color-swatch {
65
+ border: 0;
66
+ }
67
+
68
+ select.j-select {
69
+ --input-padding: calc(var(--space) * 1.5);
70
+ --input-height: var(--el-height-md);
71
+ --input-font-size: var(--font-size-md);
72
+ }
73
+
74
+ select.j-select.is-sm {
75
+ --input-padding: var(--space);
76
+ --input-height: var(--el-height-sm);
77
+ --input-font-size: var(--font-size-sm);
78
+ }
79
+
80
+ select.j-select.is-lg {
81
+ --input-padding: var(--s2);
82
+ --input-height: var(--el-height-lg);
83
+ --input-font-size: var(--font-size-lg);
84
+ }
85
+
86
+ .input-group .el-addon .j-button {
87
+ --btn-border-color: var(--ui-border);
88
+ --btn-fg: var(--ui-fg-muted);
89
+ --btn-bg: var(--ui-bg-muted);
90
+ --btn-padding: 0 var(--s2);
91
+ --btn-box-shadow: none;
92
+ }
93
+
94
+ .input-group .el-addon .is-text {
95
+ font-size: var(--font-size-md);
96
+ line-height: var(--line-height);
97
+ color: var(--ui-fg-muted);
98
+ background-color: var(--ui-bg-muted);
99
+ padding: var(--s2);
100
+ height: var(--el-height-md);
101
+ border-color: var(--ui-border);
102
+ border-radius: var(--radius-md);
103
+ }
104
+
105
+ .input-group .el-addon .icon-close,
106
+ .input-inner-group .el-addon .icon-close {
107
+ width: var(--input-height);
108
+ }
109
+
110
+ .input-group > *:not(:first-child) {
111
+ margin-left: -1px;
112
+ }
113
+
114
+ .input-group > input.j-input:not(:first-child),
115
+ .input-group > select.j-select:not(:first-child),
116
+ .input-group
117
+ > :not(select.j-select)
118
+ + .el-addon:not(:first-child)
119
+ > .is-text {
120
+ border-left-color: transparent;
121
+ }
122
+
123
+ .input-group > input.j-input:not(:first-child),
124
+ .input-group > select.j-select:not(:first-child),
125
+ .input-group > *:not(:first-child) > *,
126
+ .input-group > *:not(:first-child) > .is-text {
127
+ border-top-left-radius: 0;
128
+ border-bottom-left-radius: 0;
129
+ }
130
+
131
+ .input-group > input.j-input:not(:last-child),
132
+ .input-group > select.j-select:not(:last-child),
133
+ .input-group > *:not(:last-child) > *,
134
+ .input-group > *:not(:last-child) > .is-text {
135
+ border-top-right-radius: 0;
136
+ border-bottom-right-radius: 0;
137
+ }
138
+
139
+ .input-inner-group .j-button {
140
+ --btn-box-shadow: none;
141
+ }
142
+
143
+ .input-inner-group input.j-input:not(:last-child) {
144
+ padding-right: var(--el-height-md);
145
+ }
146
+
147
+ .input-inner-group input.j-input:not(:first-child) {
148
+ padding-left: var(--el-height-md);
149
+ }
150
+
151
+ .input-inner-group .el-addon {
152
+ color: var(--ui-fg-muted);
153
+ }
154
+
155
+ .mobile .j-input[type='file']::file-selector-button {
156
+ padding: var(--s3);
157
+ margin: calc(var(--space) * -1.7);
158
+ -webkit-margin-end: calc(var(--space) * 2.75);
159
+ margin-inline-end: calc(var(--space) * 2.75);
160
+ }
161
+
162
+ .mobile.j-font-md .j-input.is-lg[type='file']::file-selector-button {
163
+ margin: calc(var(--space) * -1.4);
164
+ }
165
+
166
+ /* .mobile .j-input, */
167
+ .mobile .j-textarea {
168
+ width: 100%;
169
+ }
170
+ }
@@ -3,7 +3,7 @@
3
3
  @import url('./button.css');
4
4
  @import url('./avatar.css');
5
5
  @import url('./badge.css');
6
- @import url('./tag.css');
6
+ /* @import url('./tag.css'); */
7
7
  @import url('./tip.css');
8
8
  @import url('./tabs.css');
9
9
  @import url('./popup.css');
@@ -16,7 +16,10 @@
16
16
  @import url('./swiper.css');
17
17
  @import url('./breadcrumb.css');
18
18
  @import url('./loading.css');
19
- @import url('./theme-palette.css');
20
19
  @import url('./table.css');
21
20
  @import url('./pagination.css');
22
21
  @import url('./menu.css');
22
+ @import url('./toc.css');
23
+ @import url('./tree.css');
24
+ @import url('./theme-palette.css');
25
+ @import url('./form.css');
@@ -1,6 +1,5 @@
1
1
  @layer themes {
2
2
  .j-loader {
3
- --loader-position: absolute;
4
3
  --loader-size: var(--font-size-md);
5
4
  --loader-width: 1.5px;
6
5
  --loader-style: solid;