vanilla-jui 1.4.0 → 1.4.1

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 (45) hide show
  1. package/dist/index.d.ts +1 -7
  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/offcanvas.ts +5 -44
  7. package/src/css/accordion.css +0 -45
  8. package/src/css/avatar.css +7 -33
  9. package/src/css/badge.css +11 -59
  10. package/src/css/breadcrumb.css +9 -32
  11. package/src/css/button.css +23 -224
  12. package/src/css/drop.css +7 -7
  13. package/src/css/flow.css +1 -1
  14. package/src/css/icon.css +0 -21
  15. package/src/css/index.css +4 -1
  16. package/src/css/loading.css +36 -20
  17. package/src/css/modal.css +15 -44
  18. package/src/css/offcanvas.css +14 -40
  19. package/src/css/popup.css +4 -4
  20. package/src/css/status.css +0 -2
  21. package/src/css/swiper.css +35 -50
  22. package/src/css/tabs.css +9 -32
  23. package/src/css/tag.css +16 -77
  24. package/src/css/themes/default/accordion.css +62 -0
  25. package/src/css/themes/default/avatar.css +39 -0
  26. package/src/css/themes/default/badge.css +63 -0
  27. package/src/css/themes/default/breadcrumb.css +28 -0
  28. package/src/css/themes/default/button.css +204 -0
  29. package/src/css/themes/default/drop.css +11 -0
  30. package/src/css/themes/default/index.css +16 -0
  31. package/src/css/themes/default/loading.css +23 -0
  32. package/src/css/themes/default/modal.css +40 -0
  33. package/src/css/themes/default/offcanvas.css +13 -0
  34. package/src/css/themes/default/popup.css +7 -0
  35. package/src/css/themes/default/swiper.css +35 -0
  36. package/src/css/themes/default/tabs.css +37 -0
  37. package/src/css/themes/default/tag.css +85 -0
  38. package/src/css/themes/default/tip.css +49 -0
  39. package/src/css/themes/default/toast.css +70 -0
  40. package/src/css/themes/default/tooltip.css +14 -0
  41. package/src/css/themes/index.css +1 -0
  42. package/src/css/tip.css +20 -39
  43. package/src/css/toast.css +18 -80
  44. package/src/css/tokens.css +7 -2
  45. package/src/css/tooltip.css +10 -10
package/src/css/tag.css CHANGED
@@ -3,49 +3,19 @@
3
3
  display: inline-flex;
4
4
  justify-content: center;
5
5
  align-items: center;
6
- gap: var(--tag-gap, var(--space));
7
- padding: 0 var(--tag-padding, calc(var(--space) * 1.5));
8
- height: var(--tag-height, var(--el-height-xs));
9
- line-height: var(--tag-line-height, var(--line-height-self));
10
- font-size: var(--tag-font-size, var(--font-size-sm));
11
- font-weight: var(--font-normal);
12
- border-radius: var(--tag-radius, var(--radius-md));
13
- border: 1px solid var(--tag-border-color, var(--ui-border));
14
- color: var(--tag-foreground, var(--ui-fg));
15
- background: var(--tag-background, var(--ui-bg));
16
- box-shadow: var(--tag-box-shadow, var(--shadow-sm));
17
- }
18
-
19
- .j-font-md .j-tag {
20
- --tag-padding: var(--s2);
21
- }
22
-
23
- .j-tag.is-contrast {
24
- --tag-background: var(--ui-fg);
25
- --tag-foreground: var(--ui-bg);
26
- }
27
-
28
- .j-tag.is-primary {
29
- --tag-background: var(--tone-solid);
30
- --tag-foreground: var(--tone-fg);
31
- --tag-border-color: var(--tone-solid);
32
- }
33
-
34
- .j-tag.is-secondary {
35
- --tag-background: var(--tone-soft);
36
- --tag-foreground: var(--tone-text);
37
- --tag-border-color: transparent;
38
- }
39
-
40
- .j-tag.is-outline {
41
- --tag-background: transparent;
42
- --tag-foreground: var(--tone-solid);
43
- --tag-border-color: var(--tone-solid);
44
- }
45
-
46
- .j-tag.is-ghost {
47
- --tag-border-color: transparent;
48
- --tag-shadow: none;
6
+ gap: var(--tag-gap);
7
+ padding: var(--tag-padding);
8
+ height: var(--tag-height);
9
+ line-height: var(--tag-line-height);
10
+ font-size: var(--tag-font-size);
11
+ font-weight: var(--tag-font-weight);
12
+ border-width: var(--tag-border-width);
13
+ border-style: var(--tag-border-style);
14
+ border-color: var(--tag-border-color);
15
+ border-radius: var(--tag-border-radius);
16
+ color: var(--tag-fg);
17
+ background: var(--tag-bg);
18
+ box-shadow: var(--tag-box-shadow);
49
19
  }
50
20
 
51
21
  .j-tag span {
@@ -56,42 +26,11 @@
56
26
 
57
27
  .j-tag img,
58
28
  .j-tag svg {
59
- width: var(--tag-icon-size, var(--font-size-sm));
60
- height: var(--tag-icon-size, var(--font-size-sm));
29
+ width: var(--tag-icon-size);
30
+ height: var(--tag-icon-size);
61
31
  }
62
32
 
63
33
  .j-tag:hover {
64
- opacity: var(--opacity-hover, 0.9);
65
- }
66
-
67
- .j-tag.is-default:hover {
68
- background-color: var(--ui-surface-hover);
69
- }
70
-
71
- .j-tag.is-outline:hover,
72
- .j-tag.is-ghost:hover {
73
- background-color: var(--tone-subtle);
74
- }
75
-
76
- .j-tag .el-icon[data-action='close']:hover {
77
- color: var(--tone-fg);
78
- background-color: var(--tone-solid);
79
- border-radius: 50%;
80
- }
81
-
82
- .j-tag.is-default .el-icon[data-action='close']:hover,
83
- .j-tag.is-ghost .el-icon[data-action='close']:hover {
84
- background-color: var(--ui-fg);
85
- color: var(--ui-bg-subtle);
86
- }
87
-
88
- .j-tag.is-contrast .el-icon[data-action='close']:hover {
89
- color: var(--ui-fg);
90
- background-color: var(--ui-bg);
91
- }
92
-
93
- .j-tag.is-primary .el-icon[data-action='close']:hover {
94
- color: var(--tone-solid);
95
- background-color: var(--tone-fg);
34
+ opacity: var(--opacity-hover);
96
35
  }
97
36
  }
@@ -0,0 +1,62 @@
1
+ @layer themes {
2
+ .j-accordion {
3
+ --accordion-font-size: var(--font-size-md);
4
+ --accordion-font-weight: var(--font-medium);
5
+ --accordion-header-font-size: var(--font-size-md);
6
+ --accordion-header-padding: var(--s2) var(--s3);
7
+ --accordion-header-margin: 0;
8
+ --accordion-border: 1px solid var(--ui-border-subtle);
9
+ --accordion-icon-size: var(--font-size-lg);
10
+ --accordion-icon-transform: rotate(0deg);
11
+ --accordion-panel-margin: 0;
12
+ --accordion-panel-content-margin: 0;
13
+ --accordion-panel-content-padding: 0 var(--s3) var(--s2);
14
+ }
15
+
16
+ .j-accordion .accordion-header {
17
+ padding: var(--accordion-header-padding);
18
+ margin: var(--accordion-header-margin);
19
+ font-weight: var(--accordion-font-weight);
20
+ font-size: var(--accordion-header-font-size);
21
+ background: var(--accordion-bg);
22
+ border-bottom: var(--accordion-border);
23
+ }
24
+
25
+ .j-accordion .accordion-header.is-active {
26
+ border-color: transparent;
27
+ }
28
+
29
+ .j-accordion .accordion-header.is-active .header-title {
30
+ --accordion-font-weight: var(--font-bold);
31
+ }
32
+
33
+ .j-accordion .accordion-header:hover:not(.is-active) {
34
+ --accordion-bg: var(--ui-surface-hover)
35
+ }
36
+
37
+ .j-accordion .accordion-header .header-arrow {
38
+ width: var(--accordion-icon-size);
39
+ height: var(--accordion-icon-size);
40
+ transition: transform 0.3s ease-out;
41
+ transform: var(--accordion-icon-transform);
42
+ }
43
+
44
+ .j-accordion .accordion-header.is-active .header-arrow {
45
+ --accordion-icon-transform: rotate(180deg);
46
+ }
47
+
48
+ .j-accordion .accordion-panel {
49
+ margin: var(--accordion-panel-margin);
50
+ font-size: var(--accordion-font-size);
51
+ }
52
+
53
+ .j-accordion .accordion-panel .panel-content {
54
+ margin: var(--accordion-panel-content-margin);
55
+ padding: var(--accordion-panel-content-padding);
56
+ border-bottom: var(--accordion-border);
57
+ }
58
+
59
+ .j-accordion .accordion-panel:last-child .panel-content {
60
+ border-bottom: none;
61
+ }
62
+ }
@@ -0,0 +1,39 @@
1
+ @layer themes {
2
+ .j-avatar {
3
+ --avatar-size: var(--el-height-md);
4
+ --avatar-border-radius: var(--radius-md);
5
+ --avatar-box-shadow: var(--shadow-sm);
6
+ }
7
+
8
+ .j-avatar.is-sm {
9
+ --avatar-size: var(--el-height-2xs);
10
+ }
11
+
12
+ .j-avatar.is-lg {
13
+ --avatar-size: var(--el-height-lg);
14
+ }
15
+
16
+ .j-avatar.is-round {
17
+ --avatar-border-radius: 0.5rem;
18
+ }
19
+
20
+ .j-avatar.is-text {
21
+ --avatar-bg: var(--tone-subtle);
22
+ --avatar-fg: var(--tone-solid);
23
+ --avatar-font-weight: var(--font-medium);
24
+ }
25
+
26
+ .j-avatar-group .j-avatar {
27
+ --avatar-border: 1.5px solid var(--ui-bg)
28
+ }
29
+
30
+ .j-avatar-group .j-avatar:not(:first-child) {
31
+ margin-inline-start: calc(var(--space) * -3);
32
+ }
33
+
34
+ .j-avatar-group .j-avatar:last-child {
35
+ --avatar-font-size: var(--font-size-sm);
36
+ --avatar-bg: var(--ui-bg);
37
+ --avatar-box-shadow: var(--shadow-sm);
38
+ }
39
+ }
@@ -0,0 +1,63 @@
1
+ @layer themes {
2
+ .j-badge {
3
+ --badge-padding: 0 calc(var(--space) * 1.5);
4
+ --badge-min-width: 1.25rem;
5
+ --badge-height: 1.25rem;
6
+ --badge-font-size: var(--font-size-sm);
7
+ --badge-font-weight: var(--font-medium);
8
+ --badge-line-height: var(--line-height-self);
9
+ --badge-radius: 500px;
10
+ --badge-border-color: var(--ui-border);
11
+ --badge-fg: var(--ui-fg);
12
+ --badge-bg: var(--ui-bg);
13
+ --badge-box-shadow: none;
14
+ }
15
+
16
+ .j-badge.is-sm {
17
+ --badge-padding: 0 calc(var(--space) * 0.75);
18
+ --badge-min-width: 1rem;
19
+ --badge-height: 1rem;
20
+ --badge-font-size: 0.625rem;
21
+ }
22
+
23
+ .j-badge.is-contrast {
24
+ --badge-bg: var(--ui-fg);
25
+ --badge-fg: var(--ui-bg);
26
+ }
27
+
28
+ .j-badge.is-primary {
29
+ --badge-bg: var(--tone-solid);
30
+ --badge-fg: var(--tone-fg);
31
+ --badge-border-color: var(--tone-solid);
32
+ }
33
+
34
+ .j-badge.is-secondary {
35
+ --badge-bg: var(--tone-soft);
36
+ --badge-fg: var(--tone-text);
37
+ --badge-border-color: var(--tone-soft);
38
+ }
39
+
40
+ .j-badge.is-success {
41
+ --badge-bg: var(--state-success);
42
+ --badge-fg: var(--state-success-fg);
43
+ --badge-border-color: var(--state-success);
44
+ }
45
+
46
+ .j-badge.is-warning {
47
+ --badge-bg: var(--state-warning);
48
+ --badge-fg: var(--state-warning-fg);
49
+ --badge-border-color: var(--state-warning);
50
+ }
51
+
52
+ .j-badge.is-danger {
53
+ --badge-bg: var(--state-danger);
54
+ --badge-fg: var(--state-danger-fg);
55
+ --badge-border-color: var(--state-danger);
56
+ }
57
+
58
+ .j-badge.is-error {
59
+ --badge-border-color: var(--state-danger-subtle);
60
+ --badge-bg: var(--state-danger-subtle);
61
+ --badge-fg: var(--state-danger-text);
62
+ }
63
+ }
@@ -0,0 +1,28 @@
1
+ @layer themes {
2
+ .j-breadcrumb {
3
+ --breadcrumb-font-size: var(--font-size-md);
4
+ --breadcrumb-fg: var(--ui-fg-muted);
5
+ --breadcrumb-icon-size: var(--font-size-md);
6
+ --breadcrumb-divider-fg: var(--ui-fg-soft);
7
+ --breadcrumb-link-fg: var(--tone-text);
8
+ --breadcrumb-item-padding: 0 var(--s2);
9
+ }
10
+
11
+ .j-breadcrumb.is-sm {
12
+ --breadcrumb-font-size: var(--font-size-sm);
13
+ --breadcrumb-icon-size: var(--font-size-sm);
14
+ }
15
+
16
+ .j-breadcrumb.is-lg {
17
+ --breadcrumb-font-size: var(--font-size-lg);
18
+ --breadcrumb-icon-size: var(--font-size-lg);
19
+ }
20
+
21
+ .j-breadcrumb a:hover {
22
+ --breadcrumb-link-fg: var(--tone-solid);
23
+ }
24
+
25
+ .j-breadcrumb li.is-active a {
26
+ --breadcrumb-link-fg: var(--ui-fg-muted);
27
+ }
28
+ }
@@ -0,0 +1,204 @@
1
+ @layer themes {
2
+ .j-button-group {
3
+ --btn-group-box-shadow: var(--shadow-sm);
4
+ }
5
+
6
+ .j-button {
7
+ --btn-gap: var(--space) calc(var(--space) * 1.5);
8
+ --btn-font-weight: var(--font-medium);
9
+ --btn-font-size: var(--font-size-md);
10
+ --btn-height: var(--el-height-md);
11
+ --btn-line-height: var(--line-height-self);
12
+ --btn-fg: inherit;
13
+ --btn-bg: transparent;
14
+ --btn-padding: 0 var(--s3);
15
+ --btn-border-width: 1px;
16
+ --btn-border-style: solid;
17
+ --btn-border-color: transparent;
18
+ --btn-border-radius: var(--radius-md);
19
+ --btn-box-shadow: var(--shadow-sm);
20
+ }
21
+
22
+ .j-button svg {
23
+ --btn-svg-size: var(--font-size-md);
24
+ }
25
+
26
+ .j-button.is-sm {
27
+ --btn-font-size: var(--font-size-sm);
28
+ --btn-height: var(--el-height-sm);
29
+ --btn-padding: var(--space) var(--s2);
30
+ }
31
+
32
+ .j-button.is-lg {
33
+ --btn-font-size: var(--font-size-lg);
34
+ --btn-height: var(--el-height-lg);
35
+ --btn-padding: var(--s3) var(--s4);
36
+ }
37
+
38
+ .j-button.is-default {
39
+ --btn-fg: var(--ui-fg);
40
+ --btn-bg: var(--ui-bg);
41
+ --btn-border-color: var(--ui-border);
42
+ }
43
+
44
+ .j-button.is-contrast {
45
+ --btn-fg: var(--ui-bg);
46
+ --btn-bg: var(--ui-fg);
47
+ }
48
+
49
+ .j-button.is-primary {
50
+ --btn-fg: var(--tone-fg);
51
+ --btn-bg: var(--tone-solid);
52
+ }
53
+
54
+ .j-button.is-secondary {
55
+ --btn-fg: var(--tone-text);
56
+ --btn-bg: var(--tone-soft);
57
+ --btn-border-color: transparent;
58
+ }
59
+
60
+ .j-button.is-outline {
61
+ --btn-bg: transparent;
62
+ --btn-border-color: var(--tone-solid);
63
+ --btn-fg: var(--tone-solid);
64
+ }
65
+
66
+ .j-button.is-ghost {
67
+ --btn-box-shadow: none;
68
+ transition-property: none;
69
+ }
70
+
71
+ .j-button.is-text {
72
+ --btn-border-color: transparent;
73
+ --btn-text-height: auto;
74
+ --btn-text-padding: 0;
75
+ --btn-box-shadow: none;
76
+ }
77
+
78
+ .j-button.is-icon {
79
+ aspect-ratio: var(--aspect-icon, 1);
80
+ --btn-padding: var(--icon-padding, 0);
81
+ }
82
+
83
+ .j-button.is-danger {
84
+ --btn-bg: var(--state-danger);
85
+ --btn-fg: var(--state-danger-fg);
86
+ }
87
+
88
+ .j-button.is-warning {
89
+ --btn-bg: var(--state-warning);
90
+ --btn-fg: var(--state-warning-fg);
91
+ }
92
+
93
+ .j-button.is-success {
94
+ --btn-bg: var(--state-success);
95
+ --btn-fg: var(--state-success-fg);
96
+ }
97
+
98
+ .j-button.is-error {
99
+ --btn-bg: var(--state-danger-subtle);
100
+ --btn-fg: var(--state-danger-text);
101
+ }
102
+
103
+ .j-button[class*='is-surface-'] {
104
+ --btn-border-color: var(--ui-border);
105
+ --btn-fg: var(--ui-fg);
106
+ }
107
+
108
+ .j-button.is-surface-sm {
109
+ --btn-bg: var(--ui-surface-subtle);
110
+ }
111
+
112
+ .j-button.is-surface-md {
113
+ --btn-bg: var(--ui-surface-muted);
114
+ }
115
+
116
+ .j-button.is-surface-lg {
117
+ --btn-bg: var(--ui-surface-active);
118
+ }
119
+
120
+ .j-button-group {
121
+ --btn-padding: 0 var(--s2);
122
+ }
123
+
124
+ /* disabled */
125
+ .j-button:disabled {
126
+ opacity: var(--opacity-disabled);
127
+ }
128
+
129
+ /* status */
130
+ .j-button:not(:disabled) {
131
+ cursor: pointer;
132
+ }
133
+
134
+ .j-button:not(:disabled):hover {
135
+ opacity: var(--opacity-hover);
136
+ }
137
+
138
+ .j-button:not(:disabled):active {
139
+ opacity: var(--opacity-active);
140
+ }
141
+
142
+ .j-button:not(:disabled).is-active {
143
+ --opacity: var(--opacity-active);
144
+ --btn-border-color: var(--tone-solid);
145
+ }
146
+
147
+ .j-button:not(:disabled):focus-visible {
148
+ outline-color: var(--btn-ring, var(--tone-solid));
149
+ }
150
+
151
+ .j-button.is-default:hover:not(:disabled) {
152
+ --btn-bg: var(--ui-surface-hover);
153
+ }
154
+
155
+ .j-button.is-outline:hover:not(:disabled),
156
+ .j-button.is-ghost:hover:not(:disabled) {
157
+ --btn-bg: var(--tone-subtle);
158
+ }
159
+
160
+ .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;
164
+ --btn-fg: var(--tone-solid);
165
+ text-decoration: underline;
166
+ text-underline-offset: var(--space);
167
+ }
168
+
169
+ .j-button.is-success:not(:disabled):active,
170
+ .j-button.is-success:not(:disabled):focus-visible {
171
+ --btn-ring: var(--state-success);
172
+ }
173
+
174
+ .j-button.is-warning:not(:disabled):active,
175
+ .j-button.is-warning:not(:disabled):focus-visible {
176
+ --btn-ring: var(--state-warning);
177
+ }
178
+
179
+ .j-button.is-danger:not(:disabled):active,
180
+ .j-button.is-danger:not(:disabled):focus-visible {
181
+ --btn-ring: var(--state-danger);
182
+ }
183
+
184
+ .j-button.is-error:not(:disabled):active,
185
+ .j-button.is-error:not(:disabled):focus-visible {
186
+ --btn-ring: var(--state-danger-subtle);
187
+ }
188
+
189
+ .j-button-group .j-button {
190
+ --btn-box-shadow: none;
191
+ }
192
+
193
+ .j-button-group .j-button:active,
194
+ .j-button-group .j-button:focus-visible,
195
+ .j-button-group .j-button:focus-within {
196
+ outline: 0;
197
+ opacity: var(--opacity-active);
198
+ z-index: 1;
199
+ }
200
+
201
+ .j-button-group.is-vertical .j-button:focus-within {
202
+ z-index: auto
203
+ }
204
+ }
@@ -0,0 +1,11 @@
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-md);
7
+ --drop-fg: var(--ui-fg);
8
+ --drop-bg: var(--ui-bg);
9
+ --drop-box-shadow: var(--shadow-sm);
10
+ }
11
+ }
@@ -0,0 +1,16 @@
1
+ @import url('./button.css');
2
+ @import url('./avatar.css');
3
+ @import url('./badge.css');
4
+ @import url('./tag.css');
5
+ @import url('./tip.css');
6
+ @import url('./tabs.css');
7
+ @import url('./popup.css');
8
+ @import url('./toast.css');
9
+ @import url('./modal.css');
10
+ @import url('./offcanvas.css');
11
+ @import url('./accordion.css');
12
+ @import url('./drop.css');
13
+ @import url('./tooltip.css');
14
+ @import url('./swiper.css');
15
+ @import url('./breadcrumb.css');
16
+ @import url('./loading.css');
@@ -0,0 +1,23 @@
1
+ @layer themes {
2
+ .j-loader {
3
+ --loader-bg: inherit;
4
+ --loader-icon-size: var(--font-size-xl);
5
+ --loader-icon-width: 1px;
6
+ --loader-icon-style: solid;
7
+ --loader-icon-fg: currentcolor;
8
+ --loader-icon-speed: var(--speed-xl);
9
+ }
10
+
11
+ .j-loading {
12
+ --loading-bg: inherit;
13
+ --loading-backdrop-filter: blur(4px);
14
+ --loading-loader-size: 3rem;
15
+ --loading-loader-border-width: 4px;
16
+ --loading-loader-border-style: solid;
17
+ --loading-loader-border-color: var(--tone-soft);
18
+ --loading-loader-border-top-color: var(--tone-solid);
19
+ --loading-loader-bg: radial-gradient(farthest-side, var(--tone-solid) 94%, #0000) top/8px 8px no-repeat,
20
+ conic-gradient(#0000 30%, var(--tone-solid));
21
+ --loading-loader-mask: radial-gradient(farthest-side, #0000 calc(100% - 8px), #000 0);
22
+ }
23
+ }
@@ -0,0 +1,40 @@
1
+ @layer themes {
2
+ .j-modal {
3
+ --modal-fg: var(--ui-fg);
4
+ --modal-bg: var(--ui-bg);
5
+ --modal-border-width: 1px;
6
+ --modal-border-style: solid;
7
+ --modal-border-color: var(--ui-border);
8
+ --modal-border-radius: var(--radius-md);
9
+ --modal-box-shadow: var(--shadow-md);
10
+ --modal-min-width: 300px;
11
+ --modal-max-width: 500px;
12
+ --modal-max-height: 90vh;
13
+ --modal-header-gap: var(--space);
14
+ --modal-header-padding: var(--s4) var(--s4) 0;
15
+ --modal-header-bottom-border: transparent;
16
+ --modal-title-font-size: var(--font-size-md);
17
+ --modal-title-font-weight: var(--font-medium);
18
+ --modal-body-padding: var(--s4);
19
+ --modal-body-line-height: var(--line-height-paragraph);
20
+ --modal-footer-gap: var(--s2);
21
+ --modal-footer-padding: 0 var(--s4) var(--s4);
22
+ --modal-footer-top-border: 1px solid transparent;
23
+ }
24
+
25
+ .j-modal:not(.is-fullscreen) .modal-header:has(.modal-close) {
26
+ --modal-header-padding: var(--s3) var(--s4) 0;
27
+ }
28
+
29
+ .j-modal.is-fullscreen .modal-header {
30
+ --modal-header-padding: var(--s4);
31
+ }
32
+
33
+ .j-modal.is-fullscreen .modal-body {
34
+ --modal-body-padding: 0;
35
+ }
36
+
37
+ .j-modal.is-fullscreen .modal-footer {
38
+ --modal-footer-padding: var(--s4);
39
+ }
40
+ }
@@ -0,0 +1,13 @@
1
+ @layer themes {
2
+ .j-offcanvas-overlay {
3
+ --offcanvas-overlay-bg: var(--ui-overlay-muted);
4
+ }
5
+
6
+ .j-offcanvas {
7
+ --offcanvas-bg: var(--ui-bg);
8
+ --offcanvas-box-shadow: var(--shadow-md);
9
+ --offcanvas-border: 1px solid var(--ui-border-subtle);
10
+ --offcanvas-block-width: 300px;
11
+ --offcanvas-inline-height: 200px;
12
+ }
13
+ }
@@ -0,0 +1,7 @@
1
+ @layer themes {
2
+ .j-popup-layout {
3
+ --popup-layout-padding: var(--s4);
4
+ --popup-bg: var(--ui-popup-bg);
5
+ --popup-backdrop-filter: blur(4px);
6
+ }
7
+ }
@@ -0,0 +1,35 @@
1
+ @layer themes {
2
+ .j-swiper {
3
+ --swiper-min-height: 180px;
4
+ --swiper-title-inset: var(--s3);
5
+ --swiper-title-padding: calc(var(--space) * 1.5) var(--s2);
6
+ --swiper-title-color: #fff;
7
+ --swiper-title-font-size: var(--font-size-lg);
8
+ --swiper-title-font-weight: var(--font-bold);
9
+ --swiper-title-bg: rgb(0 0 0 / 35%);
10
+ --swiper-title-border-radius: var(--radius-sm);
11
+ --swiper-title-line-height: var(--line-height-heading);
12
+ --swiper-pagination-gap: 6px;
13
+ --swiper-pagination-inline: var(--s3);
14
+ --swiper-pagination-block: var(--s2);
15
+ --swiper-indicator-size: 8px;
16
+ --swiper-indicator-bg: rgb(255 255 255 / 62%);
17
+ --swiper-indicator-hover-bg: rgb(255 255 255 / 86%);
18
+ --swiper-indicator-active-width: 22px;
19
+ --swiper-indicator-active-bg: #fff;
20
+ --swiper-navigation-size: 36px;
21
+ --swiper-navigation-fg: #fff;
22
+ --swiper-navigation-bg: rgb(0 0 0 / 35%);
23
+ --swiper-navigation-hover-bg: rgb(0 0 0 / 65%);
24
+ --swiper-navigation-offset: var(--s2);
25
+ --swiper-navigation-icon-size: 18px;
26
+ }
27
+
28
+ @media (max-width: 640px) {
29
+ .j-swiper {
30
+ --swiper-title-font-size: var(--font-size-md);
31
+ --swiper-title-inset: var(--s2);
32
+ --swiper-navigation-size: 32px;
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,37 @@
1
+ @layer themes {
2
+ .j-tabs {
3
+ --tab-list-item-padding: var(--s2) var(--s3);
4
+ --tab-list-item-margin: 0;
5
+ --tab-wrap-border: 1px solid var(--ui-border-subtle);
6
+ --tab-panel-padding: var(--s2) var(--s3);
7
+ --tab-panel-margin: 0;
8
+ --tab-panel-item-margin: 0;
9
+ --tab-panel-item-min-height: 1.25em;
10
+ --tab-panel-item-content-margin: 0;
11
+ }
12
+
13
+ .j-tabs.is-top .tab-wrap {
14
+ border-bottom: var(--tab-wrap-border);
15
+ }
16
+
17
+ .j-tabs.is-bottom .tab-wrap {
18
+ border-top: var(--tab-wrap-border);
19
+ }
20
+
21
+ .j-tabs.is-left .tab-wrap {
22
+ border-right: var(--tab-wrap-border);
23
+ }
24
+
25
+ .j-tabs.is-right .tab-wrap {
26
+ border-left: var(--tab-wrap-border);
27
+ }
28
+
29
+ .j-tabs .tab-list .tab-item.is-active {
30
+ --tab-fg: var(--tone-solid);
31
+ --tab-font-weight: var(--font-medium);
32
+ }
33
+
34
+ .j-tabs .tab-list .tab-item.is-disabled {
35
+ --tab-fg: var(--ui-border-strong);
36
+ }
37
+ }