vanilla-jui 1.4.0 → 1.4.2

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 (71) hide show
  1. package/dist/index.d.ts +8 -21
  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 +7 -10
  7. package/src/components/drop.ts +5 -15
  8. package/src/components/offcanvas.ts +5 -44
  9. package/src/components/parabola.ts +2 -2
  10. package/src/components/tabs.ts +5 -25
  11. package/src/components/theme.ts +25 -22
  12. package/src/components/toast.ts +34 -19
  13. package/src/components/tooltip.ts +3 -9
  14. package/src/core/Component.ts +1 -1
  15. package/src/css/accordion.css +1 -46
  16. package/src/css/avatar.css +7 -33
  17. package/src/css/badge.css +11 -59
  18. package/src/css/breadcrumb.css +9 -32
  19. package/src/css/button.css +23 -224
  20. package/src/css/components.css +1 -0
  21. package/src/css/content.css +147 -151
  22. package/src/css/drop.css +8 -8
  23. package/src/css/editor.css +16 -0
  24. package/src/css/flow.css +1 -1
  25. package/src/css/form.css +27 -14
  26. package/src/css/icon.css +3 -24
  27. package/src/css/index.css +4 -1
  28. package/src/css/layout.css +2 -2
  29. package/src/css/loading.css +88 -24
  30. package/src/css/menu.css +29 -32
  31. package/src/css/modal.css +15 -44
  32. package/src/css/offcanvas.css +14 -40
  33. package/src/css/pagination.css +4 -4
  34. package/src/css/popup.css +4 -4
  35. package/src/css/status.css +2 -3
  36. package/src/css/swiper.css +35 -50
  37. package/src/css/table.css +20 -20
  38. package/src/css/tabs.css +11 -34
  39. package/src/css/tag.css +16 -77
  40. package/src/css/theme-palette.css +10 -17
  41. package/src/css/themes/default/accordion.css +62 -0
  42. package/src/css/themes/default/avatar.css +55 -0
  43. package/src/css/themes/default/badge.css +63 -0
  44. package/src/css/themes/default/breadcrumb.css +28 -0
  45. package/src/css/themes/default/button.css +204 -0
  46. package/src/css/themes/default/content.css +59 -0
  47. package/src/css/themes/default/drop.css +11 -0
  48. package/src/css/themes/default/editor.css +10 -0
  49. package/src/css/themes/default/index.css +23 -0
  50. package/src/css/themes/default/loading.css +23 -0
  51. package/src/css/themes/default/menu.css +15 -0
  52. package/src/css/themes/default/modal.css +40 -0
  53. package/src/css/themes/default/offcanvas.css +13 -0
  54. package/src/css/themes/default/pagination.css +8 -0
  55. package/src/css/themes/default/popup.css +7 -0
  56. package/src/css/themes/default/swiper.css +35 -0
  57. package/src/css/themes/default/table.css +18 -0
  58. package/src/css/themes/default/tabs.css +37 -0
  59. package/src/css/themes/default/tag.css +85 -0
  60. package/src/css/themes/default/theme-palette.css +12 -0
  61. package/src/css/themes/default/tip.css +49 -0
  62. package/src/css/themes/default/toast.css +70 -0
  63. package/src/css/themes/default/toolbar.css +34 -0
  64. package/src/css/themes/default/tooltip.css +14 -0
  65. package/src/css/themes/index.css +1 -0
  66. package/src/css/tip.css +20 -39
  67. package/src/css/toast.css +29 -89
  68. package/src/css/tokens.css +7 -2
  69. package/src/css/toolbar.css +29 -48
  70. package/src/css/tooltip.css +10 -10
  71. package/src/locales/index.ts +3 -3
package/src/css/drop.css CHANGED
@@ -10,19 +10,19 @@
10
10
  z-index: var(--z-drop);
11
11
  }
12
12
 
13
- .j-drop.is-active {
13
+ .j-drop[aria-expanded='true'] {
14
14
  display: block;
15
15
  opacity: 1;
16
16
  pointer-events: auto;
17
17
  }
18
18
 
19
19
  .drop-container {
20
- border-width: var(--drop-border-width, 1px);
21
- border-style: var(--drop-border-style, solid);
22
- border-color: var(--drop-border-color, var(--ui-border));
23
- border-radius: var(--radius-md);
24
- background-color: var(--drop-background, var(--ui-bg));
25
- color: var(--drop-foreground, var(--ui-fg));
26
- box-shadow: var(--drop-box-shadow, var(--shadow-sm));
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
27
  }
28
28
  }
@@ -0,0 +1,16 @@
1
+ @layer components {
2
+ #j-editor {
3
+ max-width: var(--editor-max-width);
4
+ border-width: var(--editor-border-width);
5
+ border-style: var(--editor-border-style);
6
+ border-color: var(--editor-border-color);
7
+ border-top: none;
8
+ border-bottom: none;
9
+ min-height: var(--editor-min-height);
10
+ padding: var(--editor-padding);
11
+ }
12
+
13
+ .ProseMirror {
14
+ outline: 0;
15
+ }
16
+ }
package/src/css/flow.css CHANGED
@@ -72,7 +72,7 @@
72
72
  color: var(--tone-fg);
73
73
  }
74
74
 
75
- .j-flow .flow-body {
75
+ s .j-flow .flow-body {
76
76
  min-width: 0;
77
77
  }
78
78
 
package/src/css/form.css CHANGED
@@ -84,6 +84,7 @@
84
84
  box-shadow: var(--input-box-shadow, var(--shadow-sm));
85
85
  background-color: inherit;
86
86
  color: inherit;
87
+ letter-spacing: 0.5px;
87
88
  }
88
89
 
89
90
  .j-input:not([type='file']) {
@@ -102,6 +103,23 @@
102
103
  line-height: var(--input-line-height-lg, var(--line-height));
103
104
  }
104
105
 
106
+ .j-input[type='password'].is-sm {
107
+ letter-spacing: 1px;
108
+ }
109
+
110
+ .j-input[type='password'] {
111
+ letter-spacing: 2px;
112
+ }
113
+
114
+ .j-input[type='password'].is-lg {
115
+ letter-spacing: 3px;
116
+ }
117
+
118
+ .j-input[type='password']:placeholder-shown {
119
+ letter-spacing: 0.5px;
120
+ }
121
+
122
+
105
123
  /* type file */
106
124
  .j-input[type='file'] {
107
125
  appearance: none;
@@ -259,7 +277,7 @@
259
277
 
260
278
  .j-radio label:has(input[type='radio']:disabled) {
261
279
  cursor: not-allowed;
262
- opacity: var(--opacity-disabled);
280
+ /* opacity: var(--opacity-disabled); */
263
281
  color: var(--ui-disabled-fg);
264
282
  }
265
283
 
@@ -404,11 +422,7 @@
404
422
  print-color-adjust: exact;
405
423
  }
406
424
 
407
- .j-theme-yellow .j-checkbox input[type='checkbox']:checked,
408
- .j-theme-mint .j-checkbox input[type='checkbox']:checked,
409
- .j-theme-lime .j-checkbox input[type='checkbox']:checked,
410
- .dark.j-theme-gray .j-checkbox input[type='checkbox']:checked,
411
- .dark.j-theme-olive .j-checkbox input[type='checkbox']:checked {
425
+ .dark .j-checkbox input[type='checkbox']:checked {
412
426
  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");
413
427
  }
414
428
 
@@ -677,6 +691,8 @@
677
691
  .input-group>.el-addon>.j-button {
678
692
  position: relative;
679
693
  border-color: var(--input-border-color, var(--ui-input-border));
694
+ color: var(--ui-fg-muted);
695
+ background: var(--ui-surface-muted);
680
696
  }
681
697
 
682
698
  .input-group>.el-addon>.is-text {
@@ -687,7 +703,7 @@
687
703
  line-height: var(--line-height, 1.25rem);
688
704
  color: var(--ui-fg-muted);
689
705
  background-color: var(--input-group-text-addon-background, var(--ui-bg-muted));
690
- padding: var(--input-group-text-addon-padding, 0.5rem 0.75rem);
706
+ padding: var(--input-group-text-addon-padding, var(--s2));
691
707
  height: var(--button-height, var(--el-height-md));
692
708
  border-width: var(--border-width, 1px);
693
709
  border-style: var(--border-style, solid);
@@ -855,7 +871,6 @@
855
871
 
856
872
  .j-input:disabled:not(.is-line):not(.is-ghost):not(.is-blank) {
857
873
  background-color: var(--ui-disabled-bg);
858
- border-color: var(--ui-border);
859
874
  }
860
875
 
861
876
  .j-textarea[disabled] {
@@ -877,14 +892,14 @@
877
892
  .j-radio.is-group label input[type='radio']:disabled+.radio-text {
878
893
  cursor: not-allowed;
879
894
  background-color: var(--ui-disabled-bg);
880
- opacity: var(--opacity-disabled);
895
+ /* opacity: var(--opacity-disabled); */
881
896
  color: var(--ui-disabled-fg);
882
897
  }
883
898
 
884
899
  /* checkbox disabled */
885
900
  .j-checkbox label:has(input[type='checkbox']:disabled) {
886
901
  cursor: not-allowed;
887
- opacity: var(--opacity-disabled);
902
+ /* opacity: var(--opacity-disabled); */
888
903
  color: var(--ui-disabled-fg);
889
904
  }
890
905
 
@@ -911,9 +926,7 @@
911
926
  }
912
927
 
913
928
  /* status placeholder shown */
914
- /* input.j-input[type='file']:valid, */
915
- /* select.j-select:valid, */
916
- input.j-input:not([type='file']):not(:placeholder-shown) {
929
+ /* input.j-input:not([type='file']):not(:placeholder-shown) {
917
930
  background-color: var(--tone-subtle);
918
- }
931
+ } */
919
932
  }
package/src/css/icon.css CHANGED
@@ -3,27 +3,6 @@
3
3
  display: block;
4
4
  }
5
5
 
6
- .j-loader {
7
- display: flex;
8
- justify-content: center;
9
- align-items: center;
10
- background: var(--ui-bg-subtle);
11
- width: 100%;
12
- height: 100%;
13
- position: absolute;
14
- }
15
-
16
- /* loader icon */
17
- .icon-loader {
18
- display: inline-block;
19
- width: var(--font-size-xl);
20
- height: var(--font-size-xl);
21
- border: 1px solid currentcolor;
22
- border-right-color: transparent;
23
- border-radius: 50%;
24
- animation: var(--speed-xl) linear infinite animate-spin;
25
- }
26
-
27
6
  /* close icon */
28
7
  .icon-close {
29
8
  box-sizing: border-box;
@@ -32,8 +11,8 @@
32
11
  transform: scale(1);
33
12
  width: var(--font-size-xl);
34
13
  height: var(--font-size-xl);
35
- border: 1px solid;
36
- border-radius: 50%;
14
+ /* border: 1px solid; */
15
+ /* border-radius: 50%; */
37
16
  color: inherit;
38
17
  cursor: pointer;
39
18
  }
@@ -46,7 +25,7 @@
46
25
  top: 50%;
47
26
  left: 50%;
48
27
  width: 12px;
49
- height: 2px;
28
+ height: 1.5px;
50
29
  background: currentColor;
51
30
  border-radius: 1px;
52
31
  transform-origin: center center;
package/src/css/index.css CHANGED
@@ -5,8 +5,11 @@
5
5
  @import url('./layout.css');
6
6
  @import url('./icon.css');
7
7
  @import url('./font.css');
8
- @import url('./components.css');
8
+
9
9
  @import url('./content.css');
10
+
11
+ @import url('./components.css');
10
12
  @import url('./themes/index.css');
13
+
11
14
  @import url('./animation.css');
12
15
  @import url('./status.css');
@@ -24,7 +24,7 @@
24
24
  body {
25
25
  -webkit-text-size-adjust: 100%;
26
26
  tab-size: 4;
27
- text-rendering: optimizeLegibility;
27
+ text-rendering: auto;
28
28
  -webkit-font-smoothing: antialiased;
29
29
  scroll-behavior: smooth;
30
30
  font-family:
@@ -42,9 +42,9 @@
42
42
 
43
43
  min-width: var(--screen-xs, 320px);
44
44
  min-height: 100vh;
45
+ min-height: 100dvh;
45
46
  font-size: var(--font-size-md);
46
47
  margin: 0;
47
- /* text-rendering: optimizeSpeed; */
48
48
  }
49
49
 
50
50
  img,
@@ -1,38 +1,102 @@
1
1
  @layer components {
2
- .j-loading {
3
- position: absolute;
4
- top: 0;
5
- left: 0;
6
- width: 100%;
7
- height: 100%;
8
- background-color: var(--loading-background, var(--ui-bg));
9
- display: none;
2
+ .j-loader {
3
+ display: flex;
10
4
  justify-content: center;
11
5
  align-items: center;
12
- backdrop-filter: var(--loading-backdrop-filter, blur(2px));
6
+ position: var(--loader-position);
7
+ width: 100%;
8
+ height: 100%;
13
9
  }
14
10
 
15
- .j-loading.is-active {
16
- display: flex;
17
- z-index: var(--loading-index, inherit);
11
+ .j-loader .loader {
12
+ display: inline-block;
13
+ width: var(--loader-size);
14
+ height: var(--loader-size);
15
+ border-width: var(--loader-width);
16
+ border-style: var(--loader-style);
17
+ border-color: var(--loader-fg);
18
+ border-right-color: transparent;
19
+ border-radius: 50%;
20
+ animation: var(--loader-speed) linear infinite animate-spin;
18
21
  }
19
22
 
20
- .loading-spinner {
21
- width: var(--loading-spinner-size, 3rem);
22
- height: var(--loading-spinner-size, 3rem);
23
- /* border: var(--loading-spinner-width, 4px) solid var(--loading-spinner-background, var(--tone-fg)); */
24
- border: var(--loading-spinner-width, 4px) solid var(--loading-spinner-background, var(--tone-soft));
25
- border-top: var(--loading-spinner-width, 4px) solid var(--loading-spinner-color, var(--tone-solid));
23
+ .j-loader .polygon-loader {
24
+ width: var(--loader-size);
25
+ aspect-ratio: 1;
26
26
  border-radius: 50%;
27
- animation: animate-spin 1s linear infinite;
27
+ border: 1.5px solid var(--loader-fg);
28
+ animation:
29
+ polygon-loader-1 0.8s infinite linear alternate,
30
+ polygon-loader-2 1.6s infinite linear;
28
31
  }
29
32
 
30
- .j-loading.is-bold .loading-spinner {
33
+ @keyframes polygon-loader-1 {
34
+ 0% {
35
+ clip-path: polygon(50% 50%, 0 0, 50% 0%, 50% 0%, 50% 0%, 50% 0%, 50% 0%)
36
+ }
37
+
38
+ 12.5% {
39
+ clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 0%, 100% 0%, 100% 0%)
40
+ }
41
+
42
+ 25% {
43
+ clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 100% 100%, 100% 100%)
44
+ }
45
+
46
+ 50% {
47
+ clip-path: polygon(50% 50%, 0 0, 50% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
48
+ }
49
+
50
+ 62.5% {
51
+ clip-path: polygon(50% 50%, 100% 0, 100% 0%, 100% 0%, 100% 100%, 50% 100%, 0% 100%)
52
+ }
53
+
54
+ 75% {
55
+ clip-path: polygon(50% 50%, 100% 100%, 100% 100%, 100% 100%, 100% 100%, 50% 100%, 0% 100%)
56
+ }
57
+
58
+ 100% {
59
+ clip-path: polygon(50% 50%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 50% 100%, 0% 100%)
60
+ }
61
+ }
62
+
63
+ @keyframes polygon-loader-2 {
64
+ 0% {
65
+ transform: scaleY(1) rotate(0deg)
66
+ }
67
+
68
+ 49.99% {
69
+ transform: scaleY(1) rotate(135deg)
70
+ }
71
+
72
+ 50% {
73
+ transform: scaleY(-1) rotate(0deg)
74
+ }
75
+
76
+ 100% {
77
+ transform: scaleY(-1) rotate(-135deg)
78
+ }
79
+ }
80
+
81
+ .j-loader .tone-loader {
82
+ width: var(--loader-size);
83
+ height: var(--loader-size);
84
+ border-width: var(--loader-width);
85
+ border-style: var(--loader-style);
86
+ border-color: var(--loader-fg);
87
+ border-top-color: var(--loader-top-fg);
88
+ border-radius: 50%;
89
+ animation: 1s linear infinite animate-spin;
90
+ }
91
+
92
+ .j-loader .flow-loader {
93
+ width: var(--loader-size);
94
+ height: var(--loader-size);
31
95
  border: none;
96
+ border-radius: 50%;
32
97
  aspect-ratio: 1;
33
- background:
34
- radial-gradient(farthest-side, var(--tone-solid) 94%, #0000) top/8px 8px no-repeat,
35
- conic-gradient(#0000 30%, var(--tone-solid));
36
- mask: radial-gradient(farthest-side, #0000 calc(100% - 8px), #000 0);
98
+ background: var(--loader-bg);
99
+ mask: var(--loader-mask);
100
+ animation: 1s linear infinite animate-spin;
37
101
  }
38
102
  }
package/src/css/menu.css CHANGED
@@ -31,43 +31,50 @@
31
31
 
32
32
  .j-menu .menu .menu-item {
33
33
  flex-shrink: 0;
34
+ font-size: var(--menu-font-size);
34
35
  }
35
36
 
36
37
  .j-menu .menu .menu-item:not(:has(a)) {
37
- font-size: var(--font-size-md);
38
- font-weight: var(--font-normal);
39
- padding: var(--button-padding, 0.5rem 1rem);
40
- height: var(--button-height, var(--el-height-md));
41
- line-height: var(--line-height);
38
+ height: var(--menu-item-height);
39
+ line-height: var(--menu-item-line-height);
40
+ font-weight: var(--menu-font-weight);
42
41
  text-decoration: underline;
43
42
  text-decoration-style: wavy;
44
43
  text-decoration-color: var(--state-danger);
45
44
  text-underline-offset: 4px;
45
+ padding: 4px 1rem;
46
46
  position: relative;
47
47
  cursor: help;
48
48
  }
49
49
 
50
- .j-menu .menu .menu-item:has(a) a {
50
+ .j-menu .menu .menu-item a {
51
51
  display: flex;
52
52
  justify-content: center;
53
53
  align-items: center;
54
54
  flex-wrap: nowrap;
55
- gap: var(--space);
55
+ gap: var(--menu-link-gap);
56
56
  white-space: nowrap;
57
57
  cursor: pointer;
58
58
  appearance: button;
59
59
  touch-action: manipulation;
60
60
  color: currentColor;
61
61
  background-color: inherit;
62
- font-weight: var(--font-medium);
63
- font-size: var(--font-size-md);
62
+ font-weight: var(--menu-link-font-weight);
64
63
  text-decoration: none;
64
+
65
+ padding: var(--menu-item-padding);
66
+ height: var(--menu-item-height);
67
+ line-height: var(--menu-item-line-height);
68
+ border-width: var(--border-width, 1px);
69
+ border-style: var(--border-style, solid);
70
+ border-color: var(--button-border-color, transparent);
71
+ border-radius: var(--button-border-radius, var(--radius-md));
65
72
  }
66
73
 
67
- .j-menu .menu .menu-item:has(a) a .el-icon,
68
- .j-menu .menu .menu-item:has(a) a svg {
69
- width: var(--font-size-lg);
70
- height: var(--font-size-lg);
74
+ .j-menu .menu .menu-item a .el-icon,
75
+ .j-menu .menu .menu-item a svg {
76
+ width: var(--menu-item-icon-size);
77
+ height: var(--menu-item-icon-size);
71
78
  }
72
79
 
73
80
  .j-menu .menu .menu-item.menu-item-has-children>a {
@@ -90,17 +97,6 @@
90
97
  transform: rotate(180deg);
91
98
  }
92
99
 
93
- /* menu type */
94
- .j-menu .menu .menu-item:has(a) a {
95
- padding: var(--button-padding, 0.5rem 1rem);
96
- height: var(--button-height, var(--el-height-md));
97
- line-height: var(--line-height);
98
- border-width: var(--border-width, 1px);
99
- border-style: var(--border-style, solid);
100
- border-color: var(--button-border-color, transparent);
101
- border-radius: var(--button-border-radius, var(--radius-md));
102
- }
103
-
104
100
  /* submenu */
105
101
  .j-menu .menu .menu-item .sub-menu {
106
102
  display: none;
@@ -206,10 +202,11 @@
206
202
  display: grid;
207
203
  grid-template-columns: repeat(6, 1fr);
208
204
  grid-template-rows: repeat(6, 1fr);
209
- grid-column-gap: 0px;
210
- grid-row-gap: 0px;
205
+ grid-column-gap: var(--space);
206
+ grid-row-gap: var(--space);
211
207
  min-width: 400px;
212
208
  max-width: 600px;
209
+ padding-right: var(--s2);
213
210
  transform: translateX(-33.33%) translateY(1px);
214
211
  }
215
212
 
@@ -324,7 +321,7 @@
324
321
  cursor: help;
325
322
  }
326
323
 
327
- .j-mobile-menu .menu .menu-item:has(a) a {
324
+ .j-mobile-menu .menu .menu-item a {
328
325
  display: flex;
329
326
  justify-content: flex-start;
330
327
  align-items: center;
@@ -341,12 +338,12 @@
341
338
  text-decoration: none;
342
339
  }
343
340
 
344
- .j-mobile-menu .menu .menu-item:has(a) a .menu-text {
341
+ .j-mobile-menu .menu .menu-item a .menu-text {
345
342
  line-height: var(--line-height-paragraph);
346
343
  }
347
344
 
348
- .j-mobile-menu .menu .menu-item:has(a) a .el-icon,
349
- .j-mobile-menu .menu .menu-item:has(a) a svg {
345
+ .j-mobile-menu .menu .menu-item a .el-icon,
346
+ .j-mobile-menu .menu .menu-item a svg {
350
347
  width: var(--font-size-lg);
351
348
  height: var(--font-size-lg);
352
349
  }
@@ -453,8 +450,8 @@
453
450
  padding: calc(var(--space) * 1.5);
454
451
  }
455
452
 
456
- .j-bottom-menu .menu .menu-item:has(a) a .el-icon,
457
- .j-bottom-menu .menu .menu-item:has(a) a svg {
453
+ .j-bottom-menu .menu .menu-item a .el-icon,
454
+ .j-bottom-menu .menu .menu-item a svg {
458
455
  width: var(--font-size-lg);
459
456
  height: var(--font-size-lg);
460
457
  }
package/src/css/modal.css CHANGED
@@ -1,27 +1,15 @@
1
1
  @layer components {
2
2
  .j-modal {
3
- --modal-border: var(--modal-border-width, 1px) var(--modal-border-style, solid) var(--modal-border-color, transparent);
4
-
5
- --modal-header-padding: var(--s4) var(--s4) 0;
6
- --modal-header-gap: var(--space);
7
- --modal-title-font-size: var(--font-size-md);
8
- --modal-close-icon-size: var(--el-height-3xs);
9
- --modal-close-font-size: var(--font-size-lg);
10
- --modal-close-color: var(--ui-fg-muted);
11
-
12
- --modal-body-padding: var(--s4);
13
- --modal-body-line-height: var(--line-height-paragraph);
14
-
15
- --modal-footer-padding: 0 var(--s4) var(--s4);
16
- --modal-footer-gap: var(--s2);
17
-
18
- background: var(--modal-background, var(--ui-bg));
19
- border: var(--modal-border, 1px solid var(--ui-border));
20
- border-radius: var(--modal-border-radius, var(--radius-md));
21
- box-shadow: var(--modal-box-shadow, var(--shadow-md));
22
- min-width: var(--modal-min-width, 300px);
23
- max-width: var(--modal-max-width, 500px);
24
- max-height: var(--modal-max-height, 90vh);
3
+ color: var(--modal-fg);
4
+ background: var(--modal-bg);
5
+ border-width: var(--modal-border-width);
6
+ border-style: var(--modal-border-style);
7
+ border-color: var(--modal-border-color);
8
+ border-radius: var(--modal-border-radius);
9
+ box-shadow: var(--modal-box-shadow);
10
+ min-width: var(--modal-min-width);
11
+ max-width: var(--modal-max-width);
12
+ max-height: var(--modal-max-height);
25
13
  overflow: hidden;
26
14
  animation: animate-fade-in 0.35s ease-in-out;
27
15
  display: flex;
@@ -38,22 +26,21 @@
38
26
  height: 100%;
39
27
  max-width: none;
40
28
  max-height: none;
41
- /* --modal-border-color: var(--ui-border-subtle); */
42
29
  }
43
30
 
44
31
  .j-modal .modal-header {
45
- padding: var(--modal-header-padding);
46
- border-bottom: var(--modal-border);
47
32
  display: flex;
48
33
  justify-content: space-between;
49
34
  align-items: center;
50
35
  gap: var(--modal-header-gap);
36
+ padding: var(--modal-header-padding);
37
+ border-bottom: var(--modal-header-bottom-border);
51
38
  }
52
39
 
53
40
  .j-modal .modal-header .modal-title {
54
41
  margin: 0;
55
42
  font-size: var(--modal-title-font-size);
56
- font-weight: 500;
43
+ font-weight: var(--modal-title-font-weight);
57
44
  }
58
45
 
59
46
  .j-modal .modal-body {
@@ -68,27 +55,11 @@
68
55
  line-height: var(--modal-body-line-height);
69
56
  }
70
57
 
71
- .j-modal.is-fullscreen .modal-header {
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;
77
- }
78
-
79
- .j-modal.is-fullscreen .modal-body {
80
- --modal-body-padding: 0;
81
- }
82
-
83
- .j-modal.is-fullscreen .modal-footer {
84
- --modal-footer-padding: var(--s4);
85
- }
86
-
87
58
  .j-modal .modal-footer {
88
- padding: var(--modal-footer-padding);
89
- border-top: var(--modal-footer-border, var(--modal-border));
90
59
  display: flex;
91
60
  justify-content: flex-end;
92
61
  gap: var(--modal-footer-gap);
62
+ padding: var(--modal-footer-padding);
63
+ border-top: var(--modal-footer-top-border);
93
64
  }
94
65
  }