@inchurch/matcha-theme 20.0.8 → 20.276.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 (99) hide show
  1. package/abstracts/_colors.scss +404 -404
  2. package/abstracts/_elevation.scss +102 -102
  3. package/abstracts/_functions.scss +1212 -1212
  4. package/abstracts/_media-breakpoint.scss +23 -23
  5. package/abstracts/_typography.scss +127 -127
  6. package/base/_reset.scss +438 -438
  7. package/components/app-page-header.scss +260 -0
  8. package/components/matcha-accordion.scss +294 -157
  9. package/components/matcha-avatar.scss +171 -31
  10. package/components/matcha-badge.scss +4 -4
  11. package/components/matcha-breadcrumb.scss +232 -126
  12. package/components/matcha-button-toggle.scss +44 -0
  13. package/components/matcha-buttons.scss +908 -784
  14. package/components/matcha-calendar.scss +70 -2
  15. package/components/matcha-cards.scss +28 -2
  16. package/components/matcha-checkbox.scss +191 -490
  17. package/components/matcha-chip.scss +297 -212
  18. package/components/matcha-command-palette.scss +291 -63
  19. package/components/matcha-crop.scss +407 -172
  20. package/components/matcha-date.scss +81 -81
  21. package/components/matcha-divider.scss +86 -31
  22. package/components/matcha-drawer.scss +201 -50
  23. package/components/matcha-drop-image.scss +14 -0
  24. package/components/matcha-drop-list.scss +42 -1
  25. package/components/matcha-empty-state.scss +195 -83
  26. package/components/matcha-flag.scss +93 -52
  27. package/components/matcha-footer.scss +68 -164
  28. package/components/matcha-form-field.scss +52 -0
  29. package/components/matcha-form-section.scss +101 -101
  30. package/components/matcha-header.scss +135 -325
  31. package/components/matcha-highlight.scss +65 -197
  32. package/components/matcha-hint-text.scss +21 -0
  33. package/components/matcha-horizontal-tree.scss +317 -317
  34. package/components/matcha-icon.scss +17 -25
  35. package/components/matcha-list.scss +5 -5
  36. package/components/matcha-menu.scss +13 -0
  37. package/components/matcha-modal.scss +58 -84
  38. package/components/matcha-nav.scss +361 -230
  39. package/components/matcha-notification.scss +413 -197
  40. package/components/matcha-option.scss +79 -23
  41. package/components/matcha-paginator.scss +689 -235
  42. package/components/matcha-panel.scss +42 -26
  43. package/components/matcha-profile-card.scss +50 -50
  44. package/components/matcha-progress-bar.scss +257 -153
  45. package/components/matcha-radio.scss +244 -452
  46. package/components/matcha-scrollbox-shadow.scss +122 -122
  47. package/components/matcha-select.scss +3 -3
  48. package/components/matcha-skeleton.scss +18 -0
  49. package/components/matcha-slide-toggle.scss +47 -2
  50. package/components/matcha-slider.scss +172 -75
  51. package/components/matcha-snack-bar.scss +114 -121
  52. package/components/matcha-spinner.scss +76 -57
  53. package/components/matcha-status-pill.scss +82 -0
  54. package/components/matcha-stepper.scss +377 -177
  55. package/components/matcha-table.scss +569 -785
  56. package/components/matcha-tabs.scss +624 -469
  57. package/components/matcha-text-editor.scss +98 -144
  58. package/components/matcha-toolbar.scss +359 -206
  59. package/components/matcha-tooltip.scss +156 -62
  60. package/components/matcha-tree-view.scss +189 -0
  61. package/components/matcha-uploader.scss +240 -62
  62. package/fonts/manrope/manrope-latin-ext.woff2 +0 -0
  63. package/fonts/manrope/manrope-latin.woff2 +0 -0
  64. package/layout/matcha-page-layout.scss +776 -0
  65. package/main.scss +232 -261
  66. package/package.json +1 -1
  67. package/tokens/_animations-tokens.scss +37 -37
  68. package/tokens/_breakpoints-tokens.scss +35 -26
  69. package/tokens/_color-tokens.scss +1152 -1152
  70. package/tokens/_css-custom-properties.scss +650 -568
  71. package/tokens/_spacing-tokens.scss +94 -94
  72. package/vendors/angular-editor.scss +56 -56
  73. package/vendors/angular-material-fixes.scss +297 -297
  74. package/vendors/charts.scss +92 -92
  75. package/vendors/ng5-slider.scss +56 -56
  76. package/vendors/ngx-material-timepicker.scss +50 -50
  77. package/fonts/CircularStd-Black.eot +0 -0
  78. package/fonts/CircularStd-Black.svg +0 -3426
  79. package/fonts/CircularStd-Black.ttf +0 -0
  80. package/fonts/CircularStd-Black.woff +0 -0
  81. package/fonts/CircularStd-Black.woff2 +0 -0
  82. package/fonts/CircularStd-Bold.eot +0 -0
  83. package/fonts/CircularStd-Bold.otf +0 -0
  84. package/fonts/CircularStd-Bold.svg +0 -13532
  85. package/fonts/CircularStd-Bold.ttf +0 -0
  86. package/fonts/CircularStd-Bold.woff +0 -0
  87. package/fonts/CircularStd-Bold.woff2 +0 -0
  88. package/fonts/CircularStd-Medium.eot +0 -0
  89. package/fonts/CircularStd-Medium.otf +0 -0
  90. package/fonts/CircularStd-Medium.svg +0 -13511
  91. package/fonts/CircularStd-Medium.ttf +0 -0
  92. package/fonts/CircularStd-Medium.woff +0 -0
  93. package/fonts/CircularStd-Medium.woff2 +0 -0
  94. package/fonts/CircularStd-Regular.eot +0 -0
  95. package/fonts/CircularStd-Regular.otf +0 -0
  96. package/fonts/CircularStd-Regular.svg +0 -2378
  97. package/fonts/CircularStd-Regular.ttf +0 -0
  98. package/fonts/CircularStd-Regular.woff +0 -0
  99. package/fonts/CircularStd-Regular.woff2 +0 -0
@@ -1,55 +1,89 @@
1
1
  @use "sass:map";
2
2
 
3
3
  // =============================================================================
4
- // matcha-uploader.scss File upload component
5
- // Aligned with Figma matcha/uploader:
6
- // Estado(3: Dropzone, Enviando, Completo)
7
- // Angular: matcha-uploader
4
+ // matcha-uploader.scss — File upload component (matcha/file-upload no Figma DSV3)
5
+ //
6
+ // 3 estados canon (16152:254):
7
+ // Estado=Dropzone (16152:209) — área vazia com icon pill + title + hint + 2 botões
8
+ // Estado=Enviando (16152:227) — thumb 64×36 + nome + progress + % + cancel
9
+ // Estado=Completo (16152:242) — thumb 64×36 + nome + size + delete (trash)
10
+ //
11
+ // Width canon: 480px (component se adapta via max-width: 480px + width: 100%)
8
12
  // =============================================================================
9
13
 
10
14
  @mixin matcha-uploader-theme($theme) {
11
15
  $is-dark: map.get($theme, is-dark);
12
16
 
13
- // ── Dropzone ──
17
+ // ── Dropzone ──
14
18
  .matcha-uploader-dropzone {
15
- background: var(--matcha-color-surface-bg, #{getBackground($theme)});
16
- border-color: var(--matcha-color-border, #{getGrey($theme)});
19
+ background: var(--matcha-color-surface-background, var(--matcha-color-surface-bg, #{getBackground($theme)}));
20
+ border-color: var(--matcha-color-surface-border, #{getGrey($theme)});
17
21
 
18
22
  &.matcha-uploader-dragover {
19
23
  background: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
20
24
  border-color: var(--matcha-color-accent, #{getAccent($theme)});
21
25
  }
22
26
 
23
- &.matcha-uploader-error {
24
- border-color: var(--matcha-color-feedback-danger, #{getDanger($theme)});
27
+ &.matcha-uploader-disabled {
28
+ opacity: 0.5;
29
+ cursor: not-allowed;
30
+ pointer-events: none;
25
31
  }
26
32
  }
27
33
 
28
- .matcha-uploader-dropzone__icon {
29
- background: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
30
- color: var(--matcha-color-accent, #{getAccent($theme)});
34
+ .matcha-uploader-dropzone__icon-pill {
35
+ background: var(--matcha-color-interaction-disabled-bg, #282c34);
36
+ color: var(--matcha-color-text-secondary, #{getBlueGrey($theme)});
31
37
  }
32
38
 
33
39
  .matcha-uploader-dropzone__title {
34
- color: var(--matcha-color-fg, #{getForeground($theme)});
40
+ color: var(--matcha-color-text-primary, #{getForeground($theme)});
41
+ }
42
+
43
+ .matcha-uploader-dropzone__optional {
44
+ color: var(--matcha-color-interaction-disabled-fg, rgba(232, 234, 237, 0.38));
35
45
  }
36
46
 
37
47
  .matcha-uploader-dropzone__hint {
38
- color: var(--matcha-color-text-hint, #{getBlueGrey($theme)});
48
+ color: var(--matcha-color-text-secondary, #{getBlueGrey($theme)});
49
+ }
50
+
51
+ // ── Buttons (dentro do dropzone) ──
52
+ .matcha-uploader-btn--accent {
53
+ border-color: var(--matcha-color-accent, #{getAccent($theme)});
54
+ color: var(--matcha-color-text-primary, #{getForeground($theme)});
55
+
56
+ &:hover:not([disabled]) {
57
+ background: var(--matcha-color-accent-alpha, #{getAccentAlpha($theme)});
58
+ }
59
+
60
+ &[disabled] {
61
+ opacity: 0.5;
62
+ cursor: not-allowed;
63
+ }
39
64
  }
40
65
 
41
- // ── File item ──
66
+ // ── File item ──
42
67
  .matcha-uploader-file {
43
- background: var(--matcha-color-surface, #{getSurface($theme)});
44
- border-color: var(--matcha-color-border, #{getGrey($theme)});
68
+ background: var(--matcha-color-surface-card, #{getSurface($theme)});
69
+ border-color: var(--matcha-color-surface-border, #{getGrey($theme)});
70
+ }
71
+
72
+ .matcha-uploader-file__thumb {
73
+ background: var(--matcha-color-elevation-surface-3, var(--matcha-color-surface-card, #{getSurface($theme)}));
74
+ color: var(--matcha-color-text-muted, #{getBlueGrey($theme)});
45
75
  }
46
76
 
47
77
  .matcha-uploader-file__name {
48
- color: var(--matcha-color-fg, #{getForeground($theme)});
78
+ color: var(--matcha-color-text-primary, #{getForeground($theme)});
49
79
  }
50
80
 
51
81
  .matcha-uploader-file__size {
52
- color: var(--matcha-color-text-hint, #{getBlueGrey($theme)});
82
+ color: var(--matcha-color-text-secondary, #{getBlueGrey($theme)});
83
+ }
84
+
85
+ .matcha-uploader-file__progress {
86
+ background: var(--matcha-color-surface-border, #{getGrey($theme)});
53
87
  }
54
88
 
55
89
  .matcha-uploader-file__progress-fill {
@@ -57,71 +91,138 @@
57
91
  }
58
92
 
59
93
  .matcha-uploader-file__percent {
60
- color: var(--matcha-color-text-label, #{getBlueGrey($theme)});
61
- }
62
-
63
- .matcha-uploader-file__check {
64
- color: var(--matcha-color-feedback-success, #{getSuccess($theme)});
94
+ color: var(--matcha-color-text-secondary, #{getBlueGrey($theme)});
65
95
  }
66
96
 
67
97
  .matcha-uploader-file__error-text {
68
- color: var(--matcha-color-feedback-danger, #{getDanger($theme)});
98
+ color: var(--matcha-color-danger, #{getDanger($theme)});
69
99
  }
70
100
 
71
- .matcha-uploader-file__progress {
72
- background: var(--matcha-color-border, #{getGrey($theme)});
101
+ .matcha-uploader-file__action {
102
+ color: var(--matcha-color-text-secondary, #{getBlueGrey($theme)});
103
+
104
+ &:hover {
105
+ background: var(--matcha-color-surface-hover, transparent);
106
+ color: var(--matcha-color-text-primary, #{getForeground($theme)});
107
+ }
108
+
109
+ &.matcha-uploader-file__action--delete:hover {
110
+ color: var(--matcha-color-danger, #{getDanger($theme)});
111
+ }
73
112
  }
74
113
  }
75
114
 
76
- // ── Dropzone Layout ─────────────────────────────────────────────────────────
115
+ // ──────────────────────────────────────────────────────────────────────────────
116
+ // LAYOUT — independente de tema
117
+ // ──────────────────────────────────────────────────────────────────────────────
118
+
119
+ // Host — full-width; consumer aplica max-width externamente se quiser cap
120
+ .matcha-uploader {
121
+ display: block;
122
+ width: 100%;
123
+ }
77
124
 
125
+ // ── Dropzone (Estado=Dropzone — Figma 16152:209) ─────────────────────────────
78
126
  .matcha-uploader-dropzone {
79
127
  display: flex;
80
128
  flex-direction: column;
81
129
  align-items: center;
82
130
  justify-content: center;
83
- // Figma matcha/uploader Dropzone: pad 32/24, gap 16, radius 8
84
131
  gap: var(--matcha-space-200, 16px);
85
132
  padding: var(--matcha-space-400, 32px) var(--matcha-space-300, 24px);
86
- border: 2px dashed transparent;
133
+ border: var(--matcha-border-thin, 2px) dashed transparent;
87
134
  border-radius: var(--matcha-radius-lg, 8px);
88
135
  cursor: pointer;
89
136
  transition: background-color var(--matcha-duration-instant, 80ms) linear,
90
137
  border-color var(--matcha-duration-instant, 80ms) linear;
91
-
92
- &:hover {
93
- opacity: 0.9;
94
- }
95
138
  }
96
139
 
97
- .matcha-uploader-dropzone__icon {
98
- display: flex;
140
+ // Icon pill (bg interaction/disabled-bg + padding 40h/16v · icon 24×24)
141
+ .matcha-uploader-dropzone__icon-pill {
142
+ display: inline-flex;
99
143
  align-items: center;
100
144
  justify-content: center;
101
- width: var(--matcha-icon-size-lg, 48px);
102
- height: var(--matcha-icon-size-lg, 48px);
145
+ padding: var(--matcha-space-200, 16px) var(--matcha-space-500, 40px);
103
146
  border-radius: var(--matcha-radius-pill, 9999px);
147
+ flex-shrink: 0;
148
+
149
+ matcha-icon {
150
+ --matcha-icon-size: 24px;
151
+ width: 24px;
152
+ height: 24px;
153
+ }
104
154
  }
105
155
 
156
+ // Text block — column gap 4px, center
106
157
  .matcha-uploader-dropzone__text {
107
158
  display: flex;
108
159
  flex-direction: column;
109
160
  align-items: center;
110
161
  gap: var(--matcha-space-050, 4px);
111
162
  text-align: center;
163
+ width: 100%;
164
+ }
165
+
166
+ // Title row (inline: title + optional)
167
+ .matcha-uploader-dropzone__title-row {
168
+ display: inline-flex;
169
+ align-items: center;
170
+ justify-content: center;
171
+ gap: var(--matcha-space-050, 4px);
172
+ white-space: nowrap;
112
173
  }
113
174
 
114
175
  .matcha-uploader-dropzone__title {
115
176
  font-family: var(--matcha-font-family);
116
- font-size: var(--matcha-text-body-md, 14px);
117
- font-weight: var(--matcha-weight-semibold, 600);
118
- line-height: var(--matcha-leading-body-md, 20px);
177
+ font-size: var(--matcha-text-label-md, 14px);
178
+ font-weight: var(--matcha-weight-medium, 500);
179
+ line-height: var(--matcha-leading-label-md, 20px);
180
+ }
181
+
182
+ .matcha-uploader-dropzone__optional {
183
+ font-family: var(--matcha-font-family);
184
+ font-size: var(--matcha-text-label-md, 14px);
185
+ font-weight: var(--matcha-weight-medium, 500);
186
+ line-height: var(--matcha-leading-label-md, 20px);
119
187
  }
120
188
 
121
189
  .matcha-uploader-dropzone__hint {
190
+ margin: 0;
122
191
  font-family: var(--matcha-font-family);
123
192
  font-size: var(--matcha-text-body-sm, 12px);
193
+ font-weight: var(--matcha-weight-regular, 400);
124
194
  line-height: var(--matcha-leading-body-sm, 16px);
195
+ white-space: pre-line; // suporta \n pra hint multi-linha (1280×720 px... \n Clique pra selecionar...)
196
+ }
197
+
198
+ // Actions row (slot secondary + select arquivo)
199
+ .matcha-uploader-dropzone__actions {
200
+ display: flex;
201
+ gap: var(--matcha-space-100, 8px);
202
+ align-items: center;
203
+ justify-content: center;
204
+ flex-wrap: wrap;
205
+ }
206
+
207
+ // Botão accent outline (Selecionar arquivo)
208
+ .matcha-uploader-btn {
209
+ display: inline-flex;
210
+ align-items: center;
211
+ justify-content: center;
212
+ gap: var(--matcha-space-050, 4px);
213
+ height: 32px;
214
+ padding: 0 var(--matcha-space-100, 8px);
215
+ background: transparent;
216
+ border: var(--matcha-border-thin, 2px) solid transparent;
217
+ border-radius: var(--matcha-radius-lg, 8px);
218
+ cursor: pointer;
219
+ font-family: var(--matcha-font-family);
220
+ font-size: var(--matcha-text-label-sm, 12px);
221
+ font-weight: var(--matcha-weight-medium, 500);
222
+ line-height: var(--matcha-leading-label-sm, 16px);
223
+ letter-spacing: 0.2px;
224
+ white-space: nowrap;
225
+ transition: background-color var(--matcha-duration-instant, 80ms) linear;
125
226
  }
126
227
 
127
228
  // Hidden input
@@ -129,21 +230,36 @@
129
230
  display: none;
130
231
  }
131
232
 
132
- // ── File Item Layout ────────────────────────────────────────────────────────
133
-
233
+ // ── File Item — Estados Enviando (16152:227) e Completo (16152:242) ──────────
134
234
  .matcha-uploader-file {
135
235
  display: flex;
136
236
  align-items: center;
137
- gap: var(--matcha-space-150, 12px);
138
- padding: var(--matcha-space-150, 12px) var(--matcha-space-200, 16px);
237
+ gap: var(--matcha-space-200, 16px);
139
238
  border: var(--matcha-border-hairline, 1px) solid transparent;
140
239
  border-radius: var(--matcha-radius-lg, 8px);
240
+ margin-top: var(--matcha-space-100, 8px);
241
+ width: 100%;
242
+
243
+ // Enviando: padding 20/24 (mais respiro vs. Figma original 16)
244
+ &.matcha-uploader-file--uploading {
245
+ padding: var(--matcha-space-250, 20px) var(--matcha-space-300, 24px);
246
+ }
247
+
248
+ // Completo/Erro: padding 20/24 (mais respiro vs. Figma original 12/16)
249
+ &.matcha-uploader-file--completed,
250
+ &.matcha-uploader-file--error {
251
+ padding: var(--matcha-space-250, 20px) var(--matcha-space-300, 24px);
252
+ }
141
253
  }
142
254
 
143
- .matcha-uploader-file__icon {
144
- width: var(--matcha-space-500, 40px);
145
- height: var(--matcha-space-500, 40px);
146
- border-radius: var(--matcha-radius-md, 4px);
255
+ // Thumbnail 64×36 (16:9 · radius lg)
256
+ .matcha-uploader-file__thumb {
257
+ display: flex;
258
+ align-items: center;
259
+ justify-content: center;
260
+ width: 64px;
261
+ height: 36px;
262
+ border-radius: var(--matcha-radius-lg, 8px);
147
263
  flex-shrink: 0;
148
264
  overflow: hidden;
149
265
 
@@ -152,64 +268,126 @@
152
268
  height: 100%;
153
269
  object-fit: cover;
154
270
  }
271
+
272
+ matcha-icon {
273
+ --matcha-icon-size: 20px;
274
+ width: 20px;
275
+ height: 20px;
276
+ }
155
277
  }
156
278
 
279
+ // Info column (flex-1)
157
280
  .matcha-uploader-file__info {
158
281
  display: flex;
159
282
  flex-direction: column;
160
- gap: var(--matcha-space-050, 4px);
161
- flex: 1;
283
+ flex: 1 1 0;
162
284
  min-width: 0;
285
+ overflow: hidden;
286
+
287
+ // Enviando: gap 6 (entre nome e progress bar)
288
+ .matcha-uploader-file--uploading & {
289
+ gap: var(--matcha-space-075, 6px);
290
+ }
291
+
292
+ // Completo: gap 4 (entre nome e size)
293
+ .matcha-uploader-file--completed &,
294
+ .matcha-uploader-file--error & {
295
+ gap: var(--matcha-space-050, 4px);
296
+ }
163
297
  }
164
298
 
299
+ // File name — Manrope Medium 13/19 letter 0.2 (text/button-sm)
165
300
  .matcha-uploader-file__name {
166
301
  font-family: var(--matcha-font-family);
167
- font-size: var(--matcha-text-body-sm, 12px);
302
+ font-size: var(--matcha-text-label-sm, 12px);
168
303
  font-weight: var(--matcha-weight-medium, 500);
169
- line-height: var(--matcha-leading-body-sm, 16px);
304
+ line-height: var(--matcha-leading-label-sm, 16px);
305
+ letter-spacing: 0.2px;
170
306
  white-space: nowrap;
171
307
  overflow: hidden;
172
308
  text-overflow: ellipsis;
173
309
  }
174
310
 
311
+ // File size — Manrope Regular 11/14 letter 0.3 (text/caption)
175
312
  .matcha-uploader-file__size {
176
313
  font-family: var(--matcha-font-family);
177
- font-size: var(--matcha-text-caption, 11px);
314
+ font-size: var(--matcha-text-p-tiny, 11px);
315
+ font-weight: var(--matcha-weight-regular, 400);
316
+ line-height: var(--matcha-leading-p-tiny, 14px);
317
+ letter-spacing: 0.3px;
178
318
  }
179
319
 
180
- // ── Progress ──
320
+ // Error text — body-sm danger
321
+ .matcha-uploader-file__error-text {
322
+ font-family: var(--matcha-font-family);
323
+ font-size: var(--matcha-text-body-sm, 12px);
324
+ font-weight: var(--matcha-weight-regular, 400);
325
+ line-height: var(--matcha-leading-body-sm, 16px);
326
+ }
327
+
328
+ // ── Progress bar (height 4px · radius sm) ─────────────────────────────────────
181
329
  .matcha-uploader-file__progress {
182
330
  width: 100%;
183
- height: var(--matcha-border-medium, 4px);
184
- border-radius: var(--matcha-radius-xs, 2px);
331
+ height: 4px;
332
+ border-radius: var(--matcha-radius-sm, 2px);
185
333
  overflow: hidden;
186
334
  }
187
335
 
188
336
  .matcha-uploader-file__progress-fill {
189
337
  height: 100%;
190
- border-radius: var(--matcha-radius-xs, 2px);
338
+ border-radius: var(--matcha-radius-sm, 2px);
191
339
  transition: width var(--matcha-duration-moderate, 300ms) ease;
192
340
  }
193
341
 
342
+ // Percent label — body-sm text-secondary
194
343
  .matcha-uploader-file__percent {
195
344
  font-family: var(--matcha-font-family);
196
345
  font-size: var(--matcha-text-body-sm, 12px);
346
+ font-weight: var(--matcha-weight-regular, 400);
347
+ line-height: var(--matcha-leading-body-sm, 16px);
197
348
  flex-shrink: 0;
198
349
  }
199
350
 
200
- // ── Responsive ──────────────────────────────────────────────────────────────
351
+ // Cancel/Delete action button — 20×20 (icon size + bg transparent + hover)
352
+ .matcha-uploader-file__action {
353
+ display: inline-flex;
354
+ align-items: center;
355
+ justify-content: center;
356
+ width: 20px;
357
+ height: 20px;
358
+ padding: 0;
359
+ background: transparent;
360
+ border: none;
361
+ border-radius: var(--matcha-radius-sm, 2px);
362
+ cursor: pointer;
363
+ flex-shrink: 0;
364
+ transition: background-color var(--matcha-duration-instant, 80ms) linear,
365
+ color var(--matcha-duration-instant, 80ms) linear;
366
+
367
+ matcha-icon {
368
+ --matcha-icon-size: 20px;
369
+ width: 20px;
370
+ height: 20px;
371
+ }
372
+ }
201
373
 
374
+ // ── Responsive ───────────────────────────────────────────────────────────────
202
375
  @include media-breakpoint('xs') {
203
376
  .matcha-uploader-dropzone {
204
377
  padding: var(--matcha-space-300, 24px) var(--matcha-space-200, 16px);
205
378
  }
206
- }
207
379
 
208
- // ── Reduced motion ──────────────────────────────────────────────────────────
380
+ .matcha-uploader-dropzone__icon-pill {
381
+ padding: var(--matcha-space-150, 12px) var(--matcha-space-400, 32px);
382
+ }
383
+ }
209
384
 
385
+ // ── Reduced motion ───────────────────────────────────────────────────────────
210
386
  @media (prefers-reduced-motion: reduce) {
211
387
  .matcha-uploader-dropzone,
212
- .matcha-uploader-file__progress-fill {
388
+ .matcha-uploader-file__progress-fill,
389
+ .matcha-uploader-btn,
390
+ .matcha-uploader-file__action {
213
391
  transition: none;
214
392
  }
215
393
  }