@marwes-ui/presets 1.3.0 → 1.4.0

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 (57) hide show
  1. package/README.md +19 -9
  2. package/dist/chunk-PWG4S55U.js +131 -0
  3. package/dist/chunk-PWG4S55U.js.map +1 -0
  4. package/dist/firstEdition/index.d.ts +18 -1
  5. package/dist/firstEdition/index.js +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +1 -1
  8. package/package.json +3 -3
  9. package/src/firstEdition/accordion.css +25 -12
  10. package/src/firstEdition/avatar.css +20 -6
  11. package/src/firstEdition/badge.css +18 -15
  12. package/src/firstEdition/banner.css +190 -0
  13. package/src/firstEdition/breadcrumb.css +125 -0
  14. package/src/firstEdition/button.css +77 -18
  15. package/src/firstEdition/card.css +28 -24
  16. package/src/firstEdition/checkbox.css +9 -9
  17. package/src/firstEdition/context-menu.css +114 -0
  18. package/src/firstEdition/date-picker.css +6 -9
  19. package/src/firstEdition/dialog.css +17 -10
  20. package/src/firstEdition/drawer.css +258 -0
  21. package/src/firstEdition/index.ts +10 -0
  22. package/src/firstEdition/input-otp.css +16 -8
  23. package/src/firstEdition/input.css +7 -4
  24. package/src/firstEdition/molecules/accordion-field.css +9 -5
  25. package/src/firstEdition/molecules/checkbox-field.css +12 -12
  26. package/src/firstEdition/molecules/checkbox-group-field.css +29 -17
  27. package/src/firstEdition/molecules/date-picker-field.css +28 -0
  28. package/src/firstEdition/molecules/dialog-modal.css +16 -1
  29. package/src/firstEdition/molecules/input-field.css +31 -13
  30. package/src/firstEdition/molecules/input-otp-field.css +26 -0
  31. package/src/firstEdition/molecules/pagination-field.css +23 -0
  32. package/src/firstEdition/molecules/radio-group-field.css +30 -9
  33. package/src/firstEdition/molecules/segmented-control-field.css +23 -0
  34. package/src/firstEdition/molecules/slider-field.css +9 -4
  35. package/src/firstEdition/molecules/switch-field.css +8 -4
  36. package/src/firstEdition/molecules/tab-group.css +15 -2
  37. package/src/firstEdition/pagination.css +180 -0
  38. package/src/firstEdition/personality.css +66 -0
  39. package/src/firstEdition/presets.ts +97 -0
  40. package/src/firstEdition/progress-bar.css +108 -0
  41. package/src/firstEdition/radio.css +10 -5
  42. package/src/firstEdition/rich-text.css +5 -2
  43. package/src/firstEdition/segmented-control.css +133 -0
  44. package/src/firstEdition/select.css +26 -31
  45. package/src/firstEdition/skip-link.css +45 -0
  46. package/src/firstEdition/slider.css +10 -4
  47. package/src/firstEdition/spinner.css +1 -1
  48. package/src/firstEdition/styles.css +20 -0
  49. package/src/firstEdition/switch.css +4 -4
  50. package/src/firstEdition/tab.css +4 -4
  51. package/src/firstEdition/textarea.css +9 -6
  52. package/src/firstEdition/toast.css +25 -25
  53. package/src/firstEdition/tokens.css +6 -5
  54. package/src/firstEdition/tooltip.css +5 -5
  55. package/src/firstEdition/typography.css +21 -0
  56. package/dist/chunk-62D3F6GN.js +0 -49
  57. package/dist/chunk-62D3F6GN.js.map +0 -1
@@ -0,0 +1,114 @@
1
+ .mw-context-menu {
2
+ --mw-context-menu-width: 212px;
3
+ --mw-context-menu-surface: var(--mw-color-surface-elevated, #ffffff);
4
+ --mw-context-menu-border: color-mix(in srgb, var(--mw-color-text) 15%, transparent);
5
+ --mw-context-menu-divider: color-mix(in srgb, var(--mw-color-text) 20%, transparent);
6
+ --mw-context-menu-text: var(--mw-color-text, #141414);
7
+ --mw-context-menu-muted: var(--mw-color-text-muted, #595959);
8
+ --mw-context-menu-hover: var(--mw-color-surface-subtle, #f5f5f5);
9
+ --mw-context-menu-active: color-mix(in srgb, var(--mw-color-text) 10%, transparent);
10
+ --mw-context-menu-focus: var(--mw-color-focus, #2f31fc);
11
+ --mw-context-menu-radius: 10px;
12
+ --mw-context-menu-item-radius: 6px;
13
+
14
+ box-sizing: border-box;
15
+ width: var(--mw-context-menu-width);
16
+ display: flex;
17
+ flex-direction: column;
18
+ gap: 2px;
19
+ padding: 6px;
20
+ border: 0;
21
+ border-radius: var(--mw-context-menu-radius);
22
+ background: var(--mw-context-menu-surface);
23
+ box-shadow: inset 0 0 0 0.5px var(--mw-context-menu-border), 0 4px 16px rgb(0 0 0 / 8%);
24
+ color: var(--mw-context-menu-text);
25
+ font-family: var(--mw-font-primary, inherit);
26
+ }
27
+
28
+ .mw-context-menu__item {
29
+ appearance: none;
30
+ box-sizing: border-box;
31
+ width: 100%;
32
+ min-height: 28px;
33
+ display: flex;
34
+ align-items: center;
35
+ gap: 10px;
36
+ padding: 8px 12px;
37
+ border: 0;
38
+ border-radius: var(--mw-context-menu-item-radius);
39
+ background: transparent;
40
+ color: var(--mw-context-menu-text);
41
+ cursor: pointer;
42
+ font-family: var(--mw-font-primary, inherit);
43
+ font-size: 12px;
44
+ font-weight: 500;
45
+ line-height: 12px;
46
+ letter-spacing: -0.36px;
47
+ text-align: left;
48
+ }
49
+
50
+ .mw-context-menu__item:hover:not(:disabled),
51
+ .mw-context-menu__item:focus-visible {
52
+ background: var(--mw-context-menu-hover);
53
+ }
54
+
55
+ .mw-context-menu__item:active:not(:disabled) {
56
+ background: var(--mw-context-menu-active);
57
+ }
58
+
59
+ .mw-context-menu__item:focus-visible {
60
+ outline: 2px solid var(--mw-context-menu-focus);
61
+ outline-offset: 1px;
62
+ }
63
+
64
+ .mw-context-menu__item:disabled,
65
+ .mw-context-menu__item--disabled {
66
+ cursor: not-allowed;
67
+ opacity: 0.48;
68
+ }
69
+
70
+ .mw-context-menu__icon {
71
+ width: 12px;
72
+ height: 12px;
73
+ display: inline-flex;
74
+ flex: 0 0 12px;
75
+ align-items: center;
76
+ justify-content: center;
77
+ color: var(--mw-context-menu-muted);
78
+ }
79
+
80
+ .mw-context-menu__icon svg {
81
+ width: 12px;
82
+ height: 12px;
83
+ }
84
+
85
+ .mw-context-menu__label {
86
+ min-width: 0;
87
+ flex: 1;
88
+ overflow: hidden;
89
+ text-overflow: ellipsis;
90
+ white-space: nowrap;
91
+ }
92
+
93
+ .mw-context-menu__divider {
94
+ height: 7px;
95
+ display: flex;
96
+ align-items: center;
97
+ padding: 3px 0;
98
+ box-sizing: border-box;
99
+ }
100
+
101
+ .mw-context-menu__divider::before {
102
+ content: "";
103
+ width: 100%;
104
+ height: 1px;
105
+ background: var(--mw-context-menu-divider);
106
+ }
107
+
108
+ .mw-theme--dark .mw-context-menu {
109
+ --mw-context-menu-surface: var(--mw-color-surface-elevated, #2b2b2b);
110
+ --mw-context-menu-border: color-mix(in srgb, var(--mw-color-text) 20%, transparent);
111
+ --mw-context-menu-divider: color-mix(in srgb, var(--mw-color-text) 20%, transparent);
112
+ --mw-context-menu-hover: color-mix(in srgb, var(--mw-color-background) 10%, transparent);
113
+ --mw-context-menu-active: color-mix(in srgb, var(--mw-color-background) 18%, transparent);
114
+ }
@@ -1,19 +1,16 @@
1
1
  .mw-date-picker {
2
- --mw-date-picker-surface: var(--mw-color-surface, #f8f8f8);
3
- --mw-date-picker-page-surface: var(--mw-color-page, #f5f5f5);
2
+ --mw-date-picker-surface: var(--mw-color-surface-primary, #ffffff);
3
+ --mw-date-picker-page-surface: var(--mw-color-surface-subtle, #f5f5f5);
4
4
  --mw-date-picker-text: var(--mw-color-text, #141414);
5
5
  --mw-date-picker-muted: var(--mw-color-text-muted, #595959);
6
6
  --mw-date-picker-placeholder: var(--mw-color-text-subtle, #595959);
7
7
  --mw-date-picker-icon-muted: var(--mw-color-icon-muted, #a3a3a3);
8
8
  --mw-date-picker-border: var(--mw-color-border-subtle, #d8d8d8);
9
9
  --mw-date-picker-divider: var(--mw-color-border, #d8d8d8);
10
- --mw-date-picker-hover: var(--mw-color-surface-muted, #f5f5f5);
11
- --mw-date-picker-accent: var(--mw-color-primary-base, var(--mw-color-accent, #2f31fc));
12
- --mw-date-picker-accent-text: var(--mw-color-on-primary, #ffffff);
13
- --mw-date-picker-range: var(
14
- --mw-color-primary-subtle,
15
- color-mix(in srgb, var(--mw-date-picker-accent) 7%, #ffffff)
16
- );
10
+ --mw-date-picker-hover: var(--mw-color-surface-subtle, #f5f5f5);
11
+ --mw-date-picker-accent: var(--mw-color-primary-base, #2f31fc);
12
+ --mw-date-picker-accent-text: var(--mw-color-primary-label, #ffffff);
13
+ --mw-date-picker-range: var(--mw-color-surface-brand, #eeeeff);
17
14
  --mw-date-picker-radius: var(--mw-radius-lg, 0.875rem);
18
15
  --mw-date-picker-day-radius: var(--mw-radius-sm, 0.375rem);
19
16
 
@@ -3,12 +3,13 @@
3
3
  --mw-dialog-border: var(--mw-color-border-subtle, #d8d8d8);
4
4
  --mw-dialog-divider: var(--mw-color-border-subtle, #00000033);
5
5
  --mw-dialog-title: var(--mw-color-text, #141414);
6
+ --mw-dialog-body: var(--mw-color-text-muted, #595959);
6
7
  --mw-dialog-description: color-mix(
7
8
  in srgb,
8
9
  var(--mw-color-text, #141414) 65%,
9
10
  var(--mw-color-background, #ffffff)
10
11
  );
11
- --mw-dialog-radius: calc(var(--mw-ui-radius, 4px) * 3);
12
+ --mw-dialog-radius: min(calc(var(--mw-ui-radius, 4px) * 3), 24px);
12
13
  --mw-dialog-close-radius: calc(var(--mw-ui-radius, 4px) * 2);
13
14
  --mw-dialog-width: 560px;
14
15
 
@@ -18,9 +19,10 @@
18
19
  flex-direction: column;
19
20
  overflow: auto;
20
21
  box-sizing: border-box;
21
- border: 1px solid var(--mw-dialog-border);
22
+ border: 0;
22
23
  border-radius: var(--mw-dialog-radius);
23
24
  background: var(--mw-dialog-surface);
25
+ box-shadow: inset 0 0 0 1px var(--mw-dialog-border);
24
26
  }
25
27
 
26
28
  .mw-dialog:focus-visible {
@@ -57,10 +59,10 @@
57
59
  margin: 0;
58
60
  color: var(--mw-dialog-title);
59
61
  font-family: var(--mw-font-primary, inherit);
60
- font-size: 20px;
61
- font-weight: 500;
62
- line-height: 26px;
63
- letter-spacing: 0;
62
+ font-size: 16px;
63
+ font-weight: 600;
64
+ line-height: 18px;
65
+ letter-spacing: -0.48px;
64
66
  }
65
67
 
66
68
  .mw-dialog__close {
@@ -70,10 +72,11 @@
70
72
  align-items: center;
71
73
  justify-content: center;
72
74
  flex-shrink: 0;
73
- border: none;
74
- border-radius: var(--mw-dialog-close-radius);
75
+ box-sizing: border-box;
76
+ border: 1px solid color-mix(in srgb, var(--mw-dialog-title) 15%, transparent);
77
+ border-radius: 4px;
75
78
  background: transparent;
76
- color: var(--mw-dialog-description);
79
+ color: var(--mw-dialog-title);
77
80
  cursor: pointer;
78
81
  }
79
82
 
@@ -81,6 +84,10 @@
81
84
  background: color-mix(in srgb, currentColor 8%, transparent);
82
85
  }
83
86
 
87
+ .mw-dialog__close:active {
88
+ background: color-mix(in srgb, currentColor 12%, transparent);
89
+ }
90
+
84
91
  .mw-dialog__close:focus-visible {
85
92
  outline: 2px solid var(--mw-color-focus, #2f31fc);
86
93
  outline-offset: 2px;
@@ -104,7 +111,7 @@
104
111
  font-size: 16px;
105
112
  font-weight: 400;
106
113
  line-height: 24px;
107
- letter-spacing: 0;
114
+ letter-spacing: -0.48px;
108
115
  }
109
116
 
110
117
  .mw-dialog__footer {
@@ -0,0 +1,258 @@
1
+ .mw-drawer {
2
+ --mw-drawer-width-small: 320px;
3
+ --mw-drawer-width-medium: 400px;
4
+ --mw-drawer-width-large: 560px;
5
+ --mw-drawer-width: var(--mw-drawer-width-medium);
6
+ --mw-drawer-surface: var(--mw-color-surface, var(--mw-color-background));
7
+ --mw-drawer-border: var(--mw-color-border-subtle, var(--mw-color-border));
8
+ --mw-drawer-divider: var(--mw-color-border-subtle, var(--mw-color-border));
9
+ --mw-drawer-title: var(--mw-color-text);
10
+ --mw-drawer-text: color-mix(in srgb, var(--mw-color-text) 68%, var(--mw-color-background));
11
+ --mw-drawer-muted: var(--mw-color-text-muted, var(--mw-drawer-text));
12
+ --mw-drawer-radius: min(calc(var(--mw-ui-radius, 4px) * 3), 24px);
13
+ --mw-drawer-shadow: 0 24px 60px color-mix(in srgb, var(--mw-color-text) 18%, transparent);
14
+ --mw-drawer-scrim: color-mix(in srgb, var(--mw-color-text) 42%, transparent);
15
+ --mw-drawer-motion-duration: 180ms;
16
+ --mw-drawer-motion-easing: cubic-bezier(0.22, 0.72, 0.2, 1);
17
+
18
+ position: fixed;
19
+ inset: 0;
20
+ z-index: 1000;
21
+ display: flex;
22
+ pointer-events: none;
23
+ color: var(--mw-drawer-text);
24
+ font-family: var(--mw-font-primary, inherit);
25
+ }
26
+
27
+ .mw-drawer--left {
28
+ justify-content: flex-start;
29
+ }
30
+
31
+ .mw-drawer--right {
32
+ justify-content: flex-end;
33
+ }
34
+
35
+ .mw-drawer--small {
36
+ --mw-drawer-width: var(--mw-drawer-width-small);
37
+ }
38
+
39
+ .mw-drawer--medium {
40
+ --mw-drawer-width: var(--mw-drawer-width-medium);
41
+ }
42
+
43
+ .mw-drawer--large {
44
+ --mw-drawer-width: var(--mw-drawer-width-large);
45
+ }
46
+
47
+ .mw-drawer__scrim {
48
+ position: absolute;
49
+ inset: 0;
50
+ background: var(--mw-drawer-scrim);
51
+ pointer-events: auto;
52
+ animation: mw-drawer-scrim-in var(--mw-drawer-motion-duration) var(--mw-drawer-motion-easing);
53
+ }
54
+
55
+ .mw-drawer__panel {
56
+ position: relative;
57
+ z-index: 1;
58
+ width: min(100vw, var(--mw-drawer-width));
59
+ max-width: 100vw;
60
+ height: 100%;
61
+ display: flex;
62
+ flex-direction: column;
63
+ overflow: auto;
64
+ box-sizing: border-box;
65
+ border: 1px solid var(--mw-drawer-border);
66
+ background: var(--mw-drawer-surface);
67
+ box-shadow: var(--mw-drawer-shadow);
68
+ color: var(--mw-drawer-text);
69
+ pointer-events: auto;
70
+ will-change: transform;
71
+ }
72
+
73
+ .mw-drawer--left .mw-drawer__panel {
74
+ border-left: none;
75
+ border-radius: 0 var(--mw-drawer-radius) var(--mw-drawer-radius) 0;
76
+ animation: mw-drawer-slide-in-left var(--mw-drawer-motion-duration) var(--mw-drawer-motion-easing);
77
+ }
78
+
79
+ .mw-drawer--right .mw-drawer__panel {
80
+ border-right: none;
81
+ border-radius: var(--mw-drawer-radius) 0 0 var(--mw-drawer-radius);
82
+ animation: mw-drawer-slide-in-right var(--mw-drawer-motion-duration)
83
+ var(--mw-drawer-motion-easing);
84
+ }
85
+
86
+ .mw-drawer__panel:focus-visible {
87
+ outline: 2px solid var(--mw-color-focus);
88
+ outline-offset: -4px;
89
+ }
90
+
91
+ .mw-drawer__header {
92
+ position: sticky;
93
+ top: 0;
94
+ z-index: 2;
95
+ display: flex;
96
+ align-items: center;
97
+ gap: var(--mw-spacing-sp-8);
98
+ padding: var(--mw-spacing-sp-16) var(--mw-spacing-sp-16) var(--mw-spacing-sp-16)
99
+ var(--mw-spacing-sp-24);
100
+ background: var(--mw-drawer-surface);
101
+ }
102
+
103
+ .mw-drawer__heading-group,
104
+ .mw-drawer__spacer {
105
+ flex: 1;
106
+ min-width: 0;
107
+ }
108
+
109
+ .mw-drawer__title {
110
+ margin: 0;
111
+ color: var(--mw-drawer-title);
112
+ font-family: var(--mw-font-primary, inherit);
113
+ font-size: 20px;
114
+ font-weight: 500;
115
+ line-height: 26px;
116
+ letter-spacing: 0;
117
+ }
118
+
119
+ .mw-drawer__close {
120
+ width: 32px;
121
+ height: 32px;
122
+ display: inline-flex;
123
+ align-items: center;
124
+ justify-content: center;
125
+ flex-shrink: 0;
126
+ box-sizing: border-box;
127
+ border: 1px solid color-mix(in srgb, var(--mw-drawer-title) 15%, transparent);
128
+ border-radius: 4px;
129
+ background: transparent;
130
+ color: var(--mw-drawer-title);
131
+ cursor: pointer;
132
+ }
133
+
134
+ .mw-drawer__close:hover {
135
+ background: color-mix(in srgb, currentColor 8%, transparent);
136
+ }
137
+
138
+ .mw-drawer__close:active {
139
+ background: color-mix(in srgb, currentColor 12%, transparent);
140
+ }
141
+
142
+ .mw-drawer__close:focus-visible {
143
+ outline: 2px solid var(--mw-color-focus);
144
+ outline-offset: 2px;
145
+ }
146
+
147
+ .mw-drawer__header-divider,
148
+ .mw-drawer__footer-divider {
149
+ height: 1px;
150
+ flex: 0 0 auto;
151
+ background: var(--mw-drawer-divider);
152
+ }
153
+
154
+ .mw-drawer__content {
155
+ flex: 1 1 auto;
156
+ min-height: 0;
157
+ padding: var(--mw-spacing-sp-24);
158
+ overflow: auto;
159
+ }
160
+
161
+ .mw-drawer__description,
162
+ .mw-drawer__content .mw-p {
163
+ margin: 0;
164
+ color: var(--mw-drawer-text);
165
+ font-family: var(--mw-font-primary, inherit);
166
+ font-size: 16px;
167
+ font-weight: 400;
168
+ line-height: 24px;
169
+ letter-spacing: 0;
170
+ }
171
+
172
+ .mw-drawer__footer {
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: flex-end;
176
+ gap: var(--mw-spacing-sp-8);
177
+ padding: var(--mw-spacing-sp-16) var(--mw-spacing-sp-24);
178
+ flex-wrap: wrap;
179
+ }
180
+
181
+ @media (max-width: 640px) {
182
+ .mw-drawer {
183
+ --mw-drawer-width-small: 100vw;
184
+ --mw-drawer-width-medium: 100vw;
185
+ --mw-drawer-width-large: 100vw;
186
+ }
187
+
188
+ .mw-drawer__panel {
189
+ width: 100vw;
190
+ max-width: 100vw;
191
+ height: 100dvh;
192
+ border: none;
193
+ border-radius: 0;
194
+ box-shadow: none;
195
+ }
196
+
197
+ .mw-drawer--left .mw-drawer__panel,
198
+ .mw-drawer--right .mw-drawer__panel {
199
+ border: none;
200
+ border-radius: 0;
201
+ box-shadow: none;
202
+ }
203
+
204
+ .mw-drawer__header {
205
+ padding: var(--mw-spacing-sp-16);
206
+ }
207
+
208
+ .mw-drawer__content {
209
+ padding: var(--mw-spacing-sp-16);
210
+ }
211
+
212
+ .mw-drawer__footer {
213
+ padding: var(--mw-spacing-sp-16);
214
+ justify-content: stretch;
215
+ }
216
+
217
+ .mw-drawer__footer > * {
218
+ flex: 1 1 auto;
219
+ }
220
+ }
221
+
222
+ @media (prefers-reduced-motion: reduce) {
223
+ .mw-drawer__scrim,
224
+ .mw-drawer__panel {
225
+ animation: none;
226
+ will-change: auto;
227
+ }
228
+ }
229
+
230
+ @keyframes mw-drawer-slide-in-right {
231
+ from {
232
+ transform: translateX(100%);
233
+ }
234
+
235
+ to {
236
+ transform: translateX(0);
237
+ }
238
+ }
239
+
240
+ @keyframes mw-drawer-slide-in-left {
241
+ from {
242
+ transform: translateX(-100%);
243
+ }
244
+
245
+ to {
246
+ transform: translateX(0);
247
+ }
248
+ }
249
+
250
+ @keyframes mw-drawer-scrim-in {
251
+ from {
252
+ opacity: 0;
253
+ }
254
+
255
+ to {
256
+ opacity: 1;
257
+ }
258
+ }
@@ -2,6 +2,16 @@ import type { ThemeInput } from "@marwes-ui/core"
2
2
  import "@fontsource/instrument-sans/400.css"
3
3
  import "@fontsource/instrument-sans/500.css"
4
4
  import "@fontsource/instrument-sans/600.css"
5
+ import "@fontsource/instrument-sans/700.css"
6
+
7
+ export {
8
+ cyberPreset,
9
+ editorialPreset,
10
+ marwesPreset,
11
+ nordicPreset,
12
+ sunsetPreset,
13
+ themePresets,
14
+ } from "./presets"
5
15
 
6
16
  // Explicit ThemeInput for consumers that still want to import the preset object.
7
17
  // MarwesProvider uses the same first edition baseline when no theme is provided.
@@ -7,9 +7,12 @@
7
7
  --mw-input-otp-label-color: var(--mw-color-text);
8
8
  --mw-input-otp-helper-color: var(--mw-color-text-muted);
9
9
  --mw-input-otp-cell-border: var(--mw-color-border);
10
- --mw-input-otp-cell-surface: var(--mw-color-surface);
10
+ --mw-input-otp-cell-surface: var(--mw-color-surface-primary);
11
11
  --mw-input-otp-cell-text: var(--mw-color-text-muted);
12
12
  --mw-input-otp-cell-filled-text: var(--mw-color-text);
13
+ --mw-input-otp-cell-size: 40px;
14
+ --mw-input-otp-cell-min-size: 32px;
15
+ --mw-input-otp-cell-gap: var(--mw-spacing-sp-8);
13
16
 
14
17
  display: grid;
15
18
  gap: var(--mw-spacing-sp-4);
@@ -20,23 +23,28 @@
20
23
  color: var(--mw-input-otp-label-color);
21
24
  }
22
25
 
23
- .mw-input-otp__label .mw-p {
26
+ .mw-input-otp__label .mw-text {
24
27
  color: var(--mw-input-otp-label-color);
25
28
  }
26
29
 
27
30
  .mw-input-otp__cells {
28
31
  position: relative;
29
32
  display: grid;
30
- grid-template-columns: repeat(var(--mw-input-otp-cell-count, 6), minmax(0, 40px));
31
- gap: var(--mw-spacing-sp-8);
33
+ grid-template-columns: repeat(
34
+ var(--mw-input-otp-cell-count, 6),
35
+ minmax(var(--mw-input-otp-cell-min-size), var(--mw-input-otp-cell-size))
36
+ );
37
+ gap: var(--mw-input-otp-cell-gap);
32
38
  }
33
39
 
34
40
  .mw-input-otp__cell {
35
41
  display: flex;
36
42
  align-items: center;
37
43
  justify-content: center;
38
- width: 40px;
39
- height: 40px;
44
+ width: 100%;
45
+ min-height: var(--mw-input-otp-cell-min-size);
46
+ aspect-ratio: 1;
47
+ box-sizing: border-box;
40
48
  border: 1px solid var(--mw-input-otp-cell-border);
41
49
  border-radius: var(--mw-ui-radius, 4px);
42
50
  background: var(--mw-input-otp-cell-surface);
@@ -79,8 +87,8 @@
79
87
  color: var(--mw-input-otp-helper-color);
80
88
  }
81
89
 
82
- .mw-input-otp__helper .mw-p,
83
- .mw-input-otp__error .mw-p {
90
+ .mw-input-otp__helper .mw-text,
91
+ .mw-input-otp__error .mw-text {
84
92
  color: var(--mw-input-otp-helper-color);
85
93
  }
86
94
 
@@ -6,15 +6,18 @@
6
6
  */
7
7
 
8
8
  .mw-input {
9
+ box-sizing: border-box;
9
10
  height: var(--mw-density-height);
10
11
  padding: 0 var(--mw-density-padding-x);
11
12
  border-radius: var(--mw-ui-radius);
12
- border: 1px solid var(--mw-color-border);
13
- background: var(--mw-color-surface);
13
+ border: 1px solid var(--mw-color-border-low);
14
+ background: var(--mw-color-surface-primary);
14
15
  color: var(--mw-color-text);
15
16
  font-family: var(--mw-font-primary, inherit);
16
17
  font-size: var(--mw-density-font-size);
17
- width: 260px;
18
+ width: 100%;
19
+ min-width: 0;
20
+ max-width: 100%;
18
21
  transition: border-color 150ms ease, outline 150ms ease;
19
22
  }
20
23
 
@@ -69,5 +72,5 @@
69
72
 
70
73
  /* Dark mode input styles */
71
74
  .mw-theme--dark .mw-input {
72
- background: var(--mw-color-surface);
75
+ background: var(--mw-color-surface-primary);
73
76
  }
@@ -20,26 +20,30 @@
20
20
 
21
21
  .mw-accordion-field__items {
22
22
  display: grid;
23
- gap: var(--mw-density-gap, 4px);
23
+ gap: var(--mw-density-gap, 8px);
24
24
  }
25
25
 
26
26
  .mw-accordion-field__description {
27
- font-size: 0.875em;
28
27
  color: var(--mw-color-text-muted, #595959);
29
28
  }
30
29
 
31
30
  .mw-accordion-field__error {
32
- font-size: 0.875em;
33
31
  color: var(--mw-color-danger-base, #d90429);
34
32
  }
35
33
 
34
+ .mw-accordion-field__label .mw-text,
35
+ .mw-accordion-field__description .mw-text,
36
+ .mw-accordion-field__error .mw-text {
37
+ color: inherit;
38
+ }
39
+
36
40
  /* State modifiers */
37
41
  .mw-accordion-field--disabled {
38
42
  color: var(--mw-color-text-disabled, #595959);
39
43
  cursor: not-allowed;
40
44
  }
41
45
 
42
- .mw-accordion-field--invalid .mw-accordion-field__label .mw-p,
43
- .mw-accordion-field--invalid .mw-accordion-field__error .mw-p {
46
+ .mw-accordion-field--invalid .mw-accordion-field__label .mw-text,
47
+ .mw-accordion-field--invalid .mw-accordion-field__error .mw-text {
44
48
  color: var(--mw-color-danger-base, #d90429);
45
49
  }
@@ -16,24 +16,16 @@
16
16
  }
17
17
 
18
18
  .mw-checkbox-field__description {
19
- opacity: 0.75;
20
19
  margin-left: calc(
21
20
  var(--mw-density-checkbox-size) +
22
21
  var(--mw-spacing-sp-8) +
23
22
  var(--mw-density-gap) /* checkbox size + margin + spacing to textfield */
24
23
  );
25
- font-size: var(--mw-density-font-size-sm);
24
+ color: var(--mw-color-text-muted, #595959);
26
25
  }
27
26
 
28
- @supports selector(:has(*)) {
29
- .mw-checkbox-field__row:has(.mw-checkbox:focus-visible) {
30
- outline: 2px solid var(--mw-color-focus);
31
- outline-offset: 2px;
32
- }
33
-
34
- .mw-checkbox-field__row:has(.mw-checkbox:focus-visible) .mw-checkbox {
35
- outline: none;
36
- }
27
+ .mw-checkbox-field__description .mw-text {
28
+ color: inherit;
37
29
  }
38
30
 
39
31
  .mw-checkbox-field__error {
@@ -42,12 +34,20 @@
42
34
  var(--mw-spacing-sp-8) +
43
35
  var(--mw-density-gap) /* checkbox size + margin + spacing to textfield */
44
36
  );
45
- font-size: var(--mw-density-font-size-sm);
46
37
  color: var(--mw-color-danger-base, #d90429);
47
38
  }
48
39
 
40
+ .mw-checkbox-field__error .mw-text {
41
+ color: inherit;
42
+ }
43
+
49
44
  /* Optional state hooks */
50
45
  .mw-checkbox-field--disabled .mw-checkbox-field__label {
51
46
  cursor: not-allowed;
52
47
  opacity: 0.7;
53
48
  }
49
+
50
+ .mw-checkbox-field--invalid .mw-checkbox-field__label .mw-text,
51
+ .mw-checkbox-field--invalid .mw-checkbox-field__error .mw-text {
52
+ color: var(--mw-color-danger-base, #d90429);
53
+ }