morya-ui 0.3.5 → 0.3.6

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 (157) hide show
  1. package/CHANGELOG.md +529 -523
  2. package/LICENSE +21 -21
  3. package/README.md +150 -150
  4. package/README.zh-CN.md +150 -150
  5. package/dist/accordion/style.css +1148 -1148
  6. package/dist/auto-complete/style.css +1690 -1690
  7. package/dist/avatar/style.css +1261 -1261
  8. package/dist/badge/style.css +1315 -1315
  9. package/dist/block-ui/style.css +1148 -1148
  10. package/dist/breadcrumb/style.css +1148 -1148
  11. package/dist/button/style.css +2138 -2138
  12. package/dist/card/style.css +1148 -1148
  13. package/dist/carousel/style.css +1249 -1249
  14. package/dist/cascade-select/style.css +1839 -1839
  15. package/dist/checkbox/style.css +1148 -1148
  16. package/dist/chip/style.css +1292 -1292
  17. package/dist/command-menu/style.css +1381 -1381
  18. package/dist/components/AutoComplete/styles.css +209 -209
  19. package/dist/components/Avatar/styles.css +113 -113
  20. package/dist/components/Badge/styles.css +165 -165
  21. package/dist/components/Button/styles.css +962 -962
  22. package/dist/components/Carousel/styles.css +101 -101
  23. package/dist/components/CascadeSelect/styles.css +157 -157
  24. package/dist/components/Chip/styles.css +144 -144
  25. package/dist/components/CommandMenu/styles.css +102 -102
  26. package/dist/components/ConfigProvider/styles.css +6 -6
  27. package/dist/components/ConfirmDialog/styles.css +24 -24
  28. package/dist/components/ConfirmPopup/styles.css +35 -35
  29. package/dist/components/ContextMenu/styles.css +138 -138
  30. package/dist/components/DatePicker/styles.css +335 -335
  31. package/dist/components/Dialog/styles.css +421 -421
  32. package/dist/components/Dock/styles.css +84 -84
  33. package/dist/components/Drawer/styles.css +334 -334
  34. package/dist/components/Dropdown/styles.css +130 -130
  35. package/dist/components/Empty/styles.css +146 -146
  36. package/dist/components/FileUpload/styles.css +359 -359
  37. package/dist/components/Form/styles.css +114 -114
  38. package/dist/components/Gallery/styles.css +100 -100
  39. package/dist/components/Input/styles.css +356 -356
  40. package/dist/components/InputColor/styles.css +129 -129
  41. package/dist/components/InputNumber/styles.css +261 -261
  42. package/dist/components/InputPassword/styles.css +178 -178
  43. package/dist/components/InputTags/styles.css +112 -112
  44. package/dist/components/Layout/styles.css +433 -433
  45. package/dist/components/Loading/styles.css +378 -378
  46. package/dist/components/MegaMenu/styles.css +97 -97
  47. package/dist/components/Menu/styles.css +564 -564
  48. package/dist/components/Menubar/styles.css +144 -144
  49. package/dist/components/Message/styles.css +250 -250
  50. package/dist/components/MeterGroup/styles.css +49 -49
  51. package/dist/components/Page/styles.css +430 -430
  52. package/dist/components/Pagination/styles.css +105 -105
  53. package/dist/components/Popover/styles.css +92 -92
  54. package/dist/components/Result/styles.css +146 -146
  55. package/dist/components/Scrollbar/styles.css +131 -131
  56. package/dist/components/Select/styles.css +192 -192
  57. package/dist/components/SelectButton/styles.css +105 -105
  58. package/dist/components/Sidebar/styles.css +74 -74
  59. package/dist/components/Slider/styles.css +211 -211
  60. package/dist/components/SplitButton/styles.css +216 -216
  61. package/dist/components/Status/styles.css +191 -191
  62. package/dist/components/Stepper/styles.css +135 -135
  63. package/dist/components/Switch/styles.css +129 -129
  64. package/dist/components/Tabs/styles.css +131 -131
  65. package/dist/components/Terminal/styles.css +74 -74
  66. package/dist/components/Textarea/styles.css +126 -126
  67. package/dist/components/TieredMenu/styles.css +125 -125
  68. package/dist/components/Timeline/styles.css +159 -159
  69. package/dist/components/TreeSelect/styles.css +161 -161
  70. package/dist/components/TreeTable/styles.css +97 -97
  71. package/dist/components/VirtualScroller/styles.css +27 -27
  72. package/dist/config-provider/style.css +2472 -2472
  73. package/dist/confirm-dialog/style.css +2555 -2555
  74. package/dist/confirm-popup/style.css +2145 -2145
  75. package/dist/context-menu/style.css +1417 -1417
  76. package/dist/data-view/style.css +1631 -1631
  77. package/dist/date-picker/style.css +1483 -1483
  78. package/dist/dialog/style.css +2531 -2531
  79. package/dist/divider/style.css +1148 -1148
  80. package/dist/dock/style.css +1232 -1232
  81. package/dist/drawer/style.css +1482 -1482
  82. package/dist/dropdown/style.css +1409 -1409
  83. package/dist/empty/style.css +1294 -1294
  84. package/dist/fieldset/style.css +1148 -1148
  85. package/dist/file-upload/style.css +1507 -1507
  86. package/dist/flex/style.css +1148 -1148
  87. package/dist/float-label/style.css +1148 -1148
  88. package/dist/fluid/style.css +1148 -1148
  89. package/dist/form/style.css +1264 -1264
  90. package/dist/gallery/style.css +1379 -1379
  91. package/dist/grid/style.css +1148 -1148
  92. package/dist/icon/style.css +1148 -1148
  93. package/dist/icon-field/style.css +1504 -1504
  94. package/dist/inplace/style.css +1148 -1148
  95. package/dist/input/style.css +1504 -1504
  96. package/dist/input-color/style.css +1279 -1279
  97. package/dist/input-group/style.css +1148 -1148
  98. package/dist/input-number/style.css +1409 -1409
  99. package/dist/input-otp/style.css +1148 -1148
  100. package/dist/input-password/style.css +1326 -1326
  101. package/dist/input-tags/style.css +1260 -1260
  102. package/dist/knob/style.css +1148 -1148
  103. package/dist/label/style.css +1148 -1148
  104. package/dist/layout/style.css +1712 -1712
  105. package/dist/listbox/style.css +1306 -1306
  106. package/dist/loading/style.css +1528 -1528
  107. package/dist/mega-menu/style.css +1245 -1245
  108. package/dist/menu/style.css +2001 -2001
  109. package/dist/menubar/style.css +1423 -1423
  110. package/dist/message/style.css +1398 -1398
  111. package/dist/meter-group/style.css +1199 -1199
  112. package/dist/order-list/style.css +1148 -1148
  113. package/dist/page/style.css +2804 -2804
  114. package/dist/pagination/style.css +1445 -1445
  115. package/dist/panel/style.css +1148 -1148
  116. package/dist/pick-list/style.css +1148 -1148
  117. package/dist/popover/style.css +1242 -1242
  118. package/dist/progress-bar/style.css +1148 -1148
  119. package/dist/progress-spinner/style.css +1148 -1148
  120. package/dist/radio/style.css +1148 -1148
  121. package/dist/rating/style.css +1148 -1148
  122. package/dist/result/style.css +1294 -1294
  123. package/dist/scroll-top/style.css +1279 -1279
  124. package/dist/scrollbar/style.css +1281 -1281
  125. package/dist/select/style.css +1901 -1901
  126. package/dist/select-button/style.css +1255 -1255
  127. package/dist/shared/styles/control-affix-icon.css +110 -110
  128. package/dist/shared/styles/control-suffix.css +118 -118
  129. package/dist/shared/styles/select-overlay.css +175 -175
  130. package/dist/sidebar/style.css +1222 -1222
  131. package/dist/skeleton/style.css +1148 -1148
  132. package/dist/slider/style.css +1361 -1361
  133. package/dist/space/style.css +1148 -1148
  134. package/dist/speed-dial/style.css +1148 -1148
  135. package/dist/split-button/style.css +2326 -2326
  136. package/dist/splitter/style.css +1148 -1148
  137. package/dist/status/style.css +1339 -1339
  138. package/dist/stepper/style.css +1283 -1283
  139. package/dist/styles/base.css +790 -790
  140. package/dist/switch/style.css +1279 -1279
  141. package/dist/table/style.css +1812 -1812
  142. package/dist/tabs/style.css +1410 -1410
  143. package/dist/tag/style.css +1148 -1148
  144. package/dist/terminal/style.css +1224 -1224
  145. package/dist/textarea/style.css +1274 -1274
  146. package/dist/theme/styles.css +358 -358
  147. package/dist/tiered-menu/style.css +1404 -1404
  148. package/dist/timeline/style.css +1438 -1438
  149. package/dist/toast/style.css +1148 -1148
  150. package/dist/toggle-button/style.css +1148 -1148
  151. package/dist/toolbar/style.css +1148 -1148
  152. package/dist/tooltip/style.css +1148 -1148
  153. package/dist/tree/style.css +1148 -1148
  154. package/dist/tree-select/style.css +1843 -1843
  155. package/dist/tree-table/style.css +1245 -1245
  156. package/dist/virtual-scroller/style.css +1309 -1309
  157. package/package.json +1 -1
@@ -1,962 +1,962 @@
1
- .m-button {
2
- --m-button-padding-x-small: var(--m-control-padding-x-small);
3
- --m-button-padding-x-medium: calc(
4
- var(--m-control-padding-x-medium) + var(--m-space-1)
5
- );
6
- --m-button-padding-x-large: calc(
7
- var(--m-control-padding-x-large) + var(--m-space-1)
8
- );
9
- --m-button-icon-stack-min-height: 3.25rem;
10
- --m-button-badge-min-width: 1.15rem;
11
- --m-button-spinner-size: 0.875rem;
12
- --m-button-icon-size: 1rem;
13
- --m-button-bg: var(--m-color-primary);
14
- --m-button-fg: var(--m-color-on-emphasis);
15
- --m-button-border: var(--m-color-primary);
16
- --m-button-hover-bg: var(--m-color-primary-hover);
17
- --m-button-hover-fg: var(--m-color-on-emphasis);
18
- --m-button-hover-border: var(--m-color-primary-hover);
19
- --m-button-active-bg: color-mix(
20
- in srgb,
21
- var(--m-color-primary) 82%,
22
- black
23
- );
24
- align-items: center;
25
- background: var(--m-button-bg);
26
- border: var(--m-border-width) solid var(--m-button-border);
27
- border-radius: var(--m-radius-control);
28
- color: var(--m-button-fg);
29
- cursor: pointer;
30
- display: inline-flex;
31
- flex-direction: row;
32
- font-family: var(--m-font-sans);
33
- font-size: var(--m-control-font-medium);
34
- font-weight: 600;
35
- gap: var(--m-space-2);
36
- justify-content: center;
37
- line-height: 1;
38
- min-height: var(--m-control-height-medium);
39
- padding: 0 var(--m-button-padding-x-medium);
40
- position: relative;
41
- transition:
42
- background-color var(--m-motion-fast) var(--m-motion-ease),
43
- border-color var(--m-motion-fast) var(--m-motion-ease),
44
- color var(--m-motion-fast) var(--m-motion-ease),
45
- box-shadow var(--m-motion-fast) var(--m-motion-ease),
46
- opacity var(--m-motion-fast) var(--m-motion-ease),
47
- transform 160ms var(--m-motion-ease);
48
- vertical-align: middle;
49
- white-space: nowrap;
50
- }
51
-
52
- @media (hover: hover) and (pointer: fine) {
53
- .m-button:hover:not(:disabled) {
54
- background: var(--m-button-hover-bg);
55
- border-color: var(--m-button-hover-border);
56
- color: var(--m-button-hover-fg);
57
- }
58
- }
59
-
60
- .m-button:active:not(:disabled) {
61
- background: var(--m-button-active-bg);
62
- }
63
-
64
- .m-button--press:active:not(:disabled) {
65
- transform: scale(0.97);
66
- }
67
-
68
- /* Naive-style focus: soft glow, not outline-offset ring */
69
- .m-button:focus {
70
- outline: none;
71
- }
72
-
73
- .m-button:focus-visible {
74
- box-shadow: var(--m-focus-shadow);
75
- outline: none;
76
- }
77
-
78
- .m-button:disabled {
79
- cursor: not-allowed;
80
- opacity: var(--m-opacity-disabled);
81
- }
82
-
83
- .m-button--primary {
84
- --m-button-bg: var(--m-color-primary);
85
- --m-button-fg: var(--m-color-on-emphasis);
86
- --m-button-border: var(--m-color-primary);
87
- --m-button-hover-bg: var(--m-color-primary-hover);
88
- --m-button-hover-fg: var(--m-color-on-emphasis);
89
- --m-button-hover-border: var(--m-color-primary-hover);
90
- --m-button-active-bg: color-mix(
91
- in srgb,
92
- var(--m-color-primary) 82%,
93
- black
94
- );
95
- }
96
-
97
- .m-button--secondary {
98
- --m-button-bg: color-mix(
99
- in srgb,
100
- var(--m-color-text-muted) 16%,
101
- var(--m-color-surface)
102
- );
103
- --m-button-fg: var(--m-color-text);
104
- --m-button-border: transparent;
105
- --m-button-hover-bg: color-mix(
106
- in srgb,
107
- var(--m-color-text-muted) 24%,
108
- var(--m-color-surface)
109
- );
110
- --m-button-hover-fg: var(--m-color-text);
111
- --m-button-hover-border: transparent;
112
- --m-button-active-bg: color-mix(
113
- in srgb,
114
- var(--m-color-text-muted) 32%,
115
- var(--m-color-surface)
116
- );
117
- }
118
-
119
- .m-button--success {
120
- --m-button-bg: var(--m-color-success);
121
- --m-button-fg: var(--m-color-on-emphasis);
122
- --m-button-border: var(--m-color-success);
123
- --m-button-hover-bg: color-mix(
124
- in srgb,
125
- var(--m-color-success) 85%,
126
- black
127
- );
128
- --m-button-hover-fg: var(--m-color-on-emphasis);
129
- --m-button-hover-border: color-mix(
130
- in srgb,
131
- var(--m-color-success) 85%,
132
- black
133
- );
134
- --m-button-active-bg: color-mix(
135
- in srgb,
136
- var(--m-color-success) 75%,
137
- black
138
- );
139
- }
140
-
141
- .m-button--info {
142
- --m-button-bg: var(--m-color-info);
143
- --m-button-fg: var(--m-color-on-emphasis);
144
- --m-button-border: var(--m-color-info);
145
- --m-button-hover-bg: color-mix(in srgb, var(--m-color-info) 85%, black);
146
- --m-button-hover-fg: var(--m-color-on-emphasis);
147
- --m-button-hover-border: color-mix(
148
- in srgb,
149
- var(--m-color-info) 85%,
150
- black
151
- );
152
- --m-button-active-bg: color-mix(in srgb, var(--m-color-info) 75%, black);
153
- }
154
-
155
- .m-button--warn {
156
- --m-button-bg: var(--m-color-warn);
157
- --m-button-fg: var(--m-color-on-emphasis);
158
- --m-button-border: var(--m-color-warn);
159
- --m-button-hover-bg: color-mix(in srgb, var(--m-color-warn) 85%, black);
160
- --m-button-hover-fg: var(--m-color-on-emphasis);
161
- --m-button-hover-border: color-mix(
162
- in srgb,
163
- var(--m-color-warn) 85%,
164
- black
165
- );
166
- --m-button-active-bg: color-mix(in srgb, var(--m-color-warn) 75%, black);
167
- }
168
-
169
- .m-button--help {
170
- --m-button-bg: var(--m-color-help);
171
- --m-button-fg: var(--m-color-on-emphasis);
172
- --m-button-border: var(--m-color-help);
173
- --m-button-hover-bg: color-mix(in srgb, var(--m-color-help) 85%, black);
174
- --m-button-hover-fg: var(--m-color-on-emphasis);
175
- --m-button-hover-border: color-mix(
176
- in srgb,
177
- var(--m-color-help) 85%,
178
- black
179
- );
180
- --m-button-active-bg: color-mix(in srgb, var(--m-color-help) 75%, black);
181
- }
182
-
183
- .m-button--danger {
184
- --m-button-bg: var(--m-color-danger);
185
- --m-button-fg: var(--m-color-on-emphasis);
186
- --m-button-border: var(--m-color-danger);
187
- --m-button-hover-bg: color-mix(in srgb, var(--m-color-danger) 85%, black);
188
- --m-button-hover-fg: var(--m-color-on-emphasis);
189
- --m-button-hover-border: color-mix(
190
- in srgb,
191
- var(--m-color-danger) 85%,
192
- black
193
- );
194
- --m-button-active-bg: color-mix(
195
- in srgb,
196
- var(--m-color-danger) 75%,
197
- black
198
- );
199
- }
200
-
201
- .m-button--contrast {
202
- --m-button-bg: var(--m-color-contrast);
203
- --m-button-fg: var(--m-color-contrast-fg);
204
- --m-button-border: var(--m-color-contrast);
205
- --m-button-hover-bg: var(--m-color-contrast-hover);
206
- --m-button-hover-fg: var(--m-color-contrast-fg);
207
- --m-button-hover-border: var(--m-color-contrast-hover);
208
- --m-button-active-bg: var(--m-color-contrast-active);
209
- }
210
-
211
- .m-button--outlined {
212
- --m-button-bg: transparent;
213
- --m-button-fg: var(--m-button-border);
214
- --m-button-hover-bg: color-mix(
215
- in srgb,
216
- var(--m-button-border) 10%,
217
- transparent
218
- );
219
- --m-button-hover-fg: var(--m-button-border);
220
- --m-button-hover-border: var(--m-button-border);
221
- --m-button-active-bg: color-mix(
222
- in srgb,
223
- var(--m-button-border) 16%,
224
- transparent
225
- );
226
- }
227
-
228
- /* Idle matches outlined hover; hover/active deepen the tint. */
229
- .m-button--plain {
230
- --m-button-bg: color-mix(
231
- in srgb,
232
- var(--m-button-border) 10%,
233
- transparent
234
- );
235
- --m-button-fg: var(--m-button-border);
236
- --m-button-hover-bg: color-mix(
237
- in srgb,
238
- var(--m-button-border) 16%,
239
- transparent
240
- );
241
- --m-button-hover-fg: var(--m-button-border);
242
- --m-button-hover-border: var(--m-button-border);
243
- --m-button-active-bg: color-mix(
244
- in srgb,
245
- var(--m-button-border) 22%,
246
- transparent
247
- );
248
- }
249
-
250
- .m-button--secondary.m-button--outlined,
251
- .m-button--secondary.m-button--plain {
252
- --m-button-border: var(--m-color-border);
253
- --m-button-fg: var(--m-color-text);
254
- --m-button-hover-fg: var(--m-color-text);
255
- }
256
-
257
- .m-button--text,
258
- .m-button--link {
259
- --m-button-bg: transparent;
260
- --m-button-border: transparent;
261
- --m-button-fg: var(--m-color-primary);
262
- --m-button-hover-fg: var(--m-color-primary);
263
- --m-button-hover-border: transparent;
264
- }
265
-
266
- .m-button--text {
267
- --m-button-hover-bg: color-mix(
268
- in srgb,
269
- var(--m-color-primary) 10%,
270
- transparent
271
- );
272
- --m-button-active-bg: color-mix(
273
- in srgb,
274
- var(--m-color-primary) 16%,
275
- transparent
276
- );
277
- }
278
-
279
- .m-button--link {
280
- --m-button-bg: transparent;
281
- --m-button-hover-bg: transparent;
282
- --m-button-active-bg: transparent;
283
- height: auto;
284
- min-height: 0;
285
- padding: 0;
286
- }
287
-
288
- .m-button--link.m-button--link-underline:hover:not(:disabled) {
289
- text-decoration: underline;
290
- }
291
-
292
- .m-button--link:not(.m-button--link-underline):hover:not(:disabled) {
293
- opacity: 0.8;
294
- }
295
-
296
- .m-button--secondary.m-button--text {
297
- --m-button-fg: var(--m-color-text-muted);
298
- --m-button-hover-bg: color-mix(
299
- in srgb,
300
- var(--m-color-text-muted) 12%,
301
- transparent
302
- );
303
- --m-button-hover-fg: var(--m-color-text);
304
- }
305
-
306
- .m-button--secondary.m-button--link {
307
- --m-button-fg: var(--m-color-text-muted);
308
- --m-button-hover-fg: var(--m-color-text);
309
- }
310
-
311
- .m-button--success.m-button--text,
312
- .m-button--success.m-button--outlined {
313
- --m-button-fg: var(--m-color-success);
314
- --m-button-border: var(--m-color-success);
315
- --m-button-hover-bg: color-mix(
316
- in srgb,
317
- var(--m-color-success) 10%,
318
- transparent
319
- );
320
- --m-button-hover-fg: var(--m-color-success);
321
- --m-button-hover-border: var(--m-color-success);
322
- }
323
-
324
- .m-button--success.m-button--link {
325
- --m-button-fg: var(--m-color-success);
326
- --m-button-hover-fg: var(--m-color-success);
327
- }
328
-
329
- .m-button--info.m-button--text,
330
- .m-button--info.m-button--outlined {
331
- --m-button-fg: var(--m-color-info);
332
- --m-button-border: var(--m-color-info);
333
- --m-button-hover-bg: color-mix(
334
- in srgb,
335
- var(--m-color-info) 10%,
336
- transparent
337
- );
338
- --m-button-hover-fg: var(--m-color-info);
339
- --m-button-hover-border: var(--m-color-info);
340
- }
341
-
342
- .m-button--info.m-button--link {
343
- --m-button-fg: var(--m-color-info);
344
- --m-button-hover-fg: var(--m-color-info);
345
- }
346
-
347
- .m-button--warn.m-button--text,
348
- .m-button--warn.m-button--outlined {
349
- --m-button-fg: var(--m-color-warn);
350
- --m-button-border: var(--m-color-warn);
351
- --m-button-hover-bg: color-mix(
352
- in srgb,
353
- var(--m-color-warn) 10%,
354
- transparent
355
- );
356
- --m-button-hover-fg: var(--m-color-warn);
357
- --m-button-hover-border: var(--m-color-warn);
358
- }
359
-
360
- .m-button--warn.m-button--link {
361
- --m-button-fg: var(--m-color-warn);
362
- --m-button-hover-fg: var(--m-color-warn);
363
- }
364
-
365
- .m-button--help.m-button--text,
366
- .m-button--help.m-button--outlined {
367
- --m-button-fg: var(--m-color-help);
368
- --m-button-border: var(--m-color-help);
369
- --m-button-hover-bg: color-mix(
370
- in srgb,
371
- var(--m-color-help) 10%,
372
- transparent
373
- );
374
- --m-button-hover-fg: var(--m-color-help);
375
- --m-button-hover-border: var(--m-color-help);
376
- }
377
-
378
- .m-button--help.m-button--link {
379
- --m-button-fg: var(--m-color-help);
380
- --m-button-hover-fg: var(--m-color-help);
381
- }
382
-
383
- .m-button--danger.m-button--text,
384
- .m-button--danger.m-button--outlined {
385
- --m-button-fg: var(--m-color-danger);
386
- --m-button-border: var(--m-color-danger);
387
- --m-button-hover-bg: color-mix(
388
- in srgb,
389
- var(--m-color-danger) 10%,
390
- transparent
391
- );
392
- --m-button-hover-fg: var(--m-color-danger);
393
- --m-button-hover-border: var(--m-color-danger);
394
- }
395
-
396
- .m-button--danger.m-button--link {
397
- --m-button-fg: var(--m-color-danger);
398
- --m-button-hover-fg: var(--m-color-danger);
399
- }
400
-
401
- .m-button--contrast.m-button--text,
402
- .m-button--contrast.m-button--outlined {
403
- --m-button-fg: var(--m-color-contrast);
404
- --m-button-border: var(--m-color-contrast);
405
- --m-button-hover-bg: color-mix(
406
- in srgb,
407
- var(--m-color-contrast) 10%,
408
- transparent
409
- );
410
- --m-button-hover-fg: var(--m-color-contrast);
411
- --m-button-hover-border: var(--m-color-contrast);
412
- }
413
-
414
- .m-button--contrast.m-button--link {
415
- --m-button-fg: var(--m-color-contrast);
416
- --m-button-hover-fg: var(--m-color-contrast);
417
- }
418
-
419
- .m-button--plain.m-button--text,
420
- .m-button--plain.m-button--outlined {
421
- --m-button-bg: transparent;
422
- --m-button-fg: var(--m-color-text-muted);
423
- --m-button-border: var(--m-color-border);
424
- --m-button-hover-bg: color-mix(
425
- in srgb,
426
- var(--m-color-text-muted) 12%,
427
- transparent
428
- );
429
- --m-button-hover-fg: var(--m-color-text);
430
- --m-button-hover-border: var(--m-color-border);
431
- --m-button-active-bg: color-mix(
432
- in srgb,
433
- var(--m-color-text-muted) 18%,
434
- transparent
435
- );
436
- }
437
-
438
- .m-button--plain.m-button--link {
439
- --m-button-fg: var(--m-color-text-muted);
440
- --m-button-hover-fg: var(--m-color-text);
441
- }
442
-
443
- .m-button--ghost {
444
- --m-button-bg: color-mix(
445
- in srgb,
446
- var(--m-color-primary) 10%,
447
- transparent
448
- );
449
- --m-button-border: transparent;
450
- --m-button-fg: var(--m-color-primary);
451
- --m-button-hover-bg: color-mix(
452
- in srgb,
453
- var(--m-color-primary) 16%,
454
- transparent
455
- );
456
- --m-button-hover-fg: var(--m-color-primary);
457
- --m-button-hover-border: transparent;
458
- --m-button-active-bg: color-mix(
459
- in srgb,
460
- var(--m-color-primary) 22%,
461
- transparent
462
- );
463
- }
464
-
465
- .m-button--secondary.m-button--ghost {
466
- --m-button-bg: color-mix(
467
- in srgb,
468
- var(--m-color-text-muted) 12%,
469
- transparent
470
- );
471
- --m-button-fg: var(--m-color-text);
472
- --m-button-hover-bg: color-mix(
473
- in srgb,
474
- var(--m-color-text-muted) 18%,
475
- transparent
476
- );
477
- --m-button-hover-fg: var(--m-color-text);
478
- --m-button-active-bg: color-mix(
479
- in srgb,
480
- var(--m-color-text-muted) 24%,
481
- transparent
482
- );
483
- }
484
-
485
- .m-button--success.m-button--ghost {
486
- --m-button-bg: color-mix(
487
- in srgb,
488
- var(--m-color-success) 10%,
489
- transparent
490
- );
491
- --m-button-fg: var(--m-color-success);
492
- --m-button-hover-bg: color-mix(
493
- in srgb,
494
- var(--m-color-success) 16%,
495
- transparent
496
- );
497
- --m-button-hover-fg: var(--m-color-success);
498
- --m-button-active-bg: color-mix(
499
- in srgb,
500
- var(--m-color-success) 22%,
501
- transparent
502
- );
503
- }
504
-
505
- .m-button--info.m-button--ghost {
506
- --m-button-bg: color-mix(
507
- in srgb,
508
- var(--m-color-info) 10%,
509
- transparent
510
- );
511
- --m-button-fg: var(--m-color-info);
512
- --m-button-hover-bg: color-mix(
513
- in srgb,
514
- var(--m-color-info) 16%,
515
- transparent
516
- );
517
- --m-button-hover-fg: var(--m-color-info);
518
- --m-button-active-bg: color-mix(
519
- in srgb,
520
- var(--m-color-info) 22%,
521
- transparent
522
- );
523
- }
524
-
525
- .m-button--warn.m-button--ghost {
526
- --m-button-bg: color-mix(
527
- in srgb,
528
- var(--m-color-warn) 10%,
529
- transparent
530
- );
531
- --m-button-fg: var(--m-color-warn);
532
- --m-button-hover-bg: color-mix(
533
- in srgb,
534
- var(--m-color-warn) 16%,
535
- transparent
536
- );
537
- --m-button-hover-fg: var(--m-color-warn);
538
- --m-button-active-bg: color-mix(
539
- in srgb,
540
- var(--m-color-warn) 22%,
541
- transparent
542
- );
543
- }
544
-
545
- .m-button--help.m-button--ghost {
546
- --m-button-bg: color-mix(
547
- in srgb,
548
- var(--m-color-help) 10%,
549
- transparent
550
- );
551
- --m-button-fg: var(--m-color-help);
552
- --m-button-hover-bg: color-mix(
553
- in srgb,
554
- var(--m-color-help) 16%,
555
- transparent
556
- );
557
- --m-button-hover-fg: var(--m-color-help);
558
- --m-button-active-bg: color-mix(
559
- in srgb,
560
- var(--m-color-help) 22%,
561
- transparent
562
- );
563
- }
564
-
565
- .m-button--danger.m-button--ghost {
566
- --m-button-bg: color-mix(
567
- in srgb,
568
- var(--m-color-danger) 10%,
569
- transparent
570
- );
571
- --m-button-fg: var(--m-color-danger);
572
- --m-button-hover-bg: color-mix(
573
- in srgb,
574
- var(--m-color-danger) 16%,
575
- transparent
576
- );
577
- --m-button-hover-fg: var(--m-color-danger);
578
- --m-button-active-bg: color-mix(
579
- in srgb,
580
- var(--m-color-danger) 22%,
581
- transparent
582
- );
583
- }
584
-
585
- .m-button--contrast.m-button--ghost {
586
- --m-button-bg: color-mix(
587
- in srgb,
588
- var(--m-color-contrast) 10%,
589
- transparent
590
- );
591
- --m-button-fg: var(--m-color-contrast);
592
- --m-button-hover-bg: color-mix(
593
- in srgb,
594
- var(--m-color-contrast) 16%,
595
- transparent
596
- );
597
- --m-button-hover-fg: var(--m-color-contrast);
598
- --m-button-active-bg: color-mix(
599
- in srgb,
600
- var(--m-color-contrast) 22%,
601
- transparent
602
- );
603
- }
604
-
605
- .m-button--quaternary {
606
- --m-button-bg: transparent;
607
- --m-button-border: transparent;
608
- --m-button-fg: var(--m-color-text);
609
- --m-button-hover-bg: color-mix(
610
- in srgb,
611
- var(--m-color-text-muted) 10%,
612
- transparent
613
- );
614
- --m-button-hover-fg: var(--m-color-text);
615
- --m-button-hover-border: transparent;
616
- --m-button-active-bg: color-mix(
617
- in srgb,
618
- var(--m-color-text-muted) 16%,
619
- transparent
620
- );
621
- }
622
-
623
- .m-button--custom {
624
- --m-button-bg: var(--m-button-color);
625
- --m-button-fg: var(--m-color-on-emphasis);
626
- --m-button-border: var(--m-button-color);
627
- --m-button-hover-bg: color-mix(in srgb, var(--m-button-color) 85%, black);
628
- --m-button-hover-fg: var(--m-color-on-emphasis);
629
- --m-button-hover-border: color-mix(
630
- in srgb,
631
- var(--m-button-color) 85%,
632
- black
633
- );
634
- --m-button-active-bg: color-mix(
635
- in srgb,
636
- var(--m-button-color) 75%,
637
- black
638
- );
639
- }
640
-
641
- .m-button--custom.m-button--outlined {
642
- --m-button-bg: transparent;
643
- --m-button-fg: var(--m-button-color);
644
- --m-button-border: var(--m-button-color);
645
- --m-button-hover-bg: color-mix(
646
- in srgb,
647
- var(--m-button-color) 12%,
648
- transparent
649
- );
650
- --m-button-hover-fg: var(--m-button-color);
651
- --m-button-hover-border: var(--m-button-color);
652
- }
653
-
654
- .m-button--custom.m-button--ghost {
655
- --m-button-bg: color-mix(
656
- in srgb,
657
- var(--m-button-color) 10%,
658
- transparent
659
- );
660
- --m-button-fg: var(--m-button-color);
661
- --m-button-border: transparent;
662
- --m-button-hover-bg: color-mix(
663
- in srgb,
664
- var(--m-button-color) 16%,
665
- transparent
666
- );
667
- --m-button-hover-fg: var(--m-button-color);
668
- --m-button-hover-border: transparent;
669
- --m-button-active-bg: color-mix(
670
- in srgb,
671
- var(--m-button-color) 22%,
672
- transparent
673
- );
674
- }
675
-
676
- .m-button--custom.m-button--text,
677
- .m-button--custom.m-button--quaternary {
678
- --m-button-bg: transparent;
679
- --m-button-fg: var(--m-button-color);
680
- --m-button-border: transparent;
681
- --m-button-hover-bg: color-mix(
682
- in srgb,
683
- var(--m-button-color) 12%,
684
- transparent
685
- );
686
- --m-button-hover-fg: var(--m-button-color);
687
- --m-button-hover-border: transparent;
688
- }
689
-
690
- .m-button--custom.m-button--plain {
691
- --m-button-bg: color-mix(
692
- in srgb,
693
- var(--m-button-color) 10%,
694
- transparent
695
- );
696
- --m-button-fg: var(--m-button-color);
697
- --m-button-border: var(--m-button-color);
698
- --m-button-hover-bg: color-mix(
699
- in srgb,
700
- var(--m-button-color) 16%,
701
- transparent
702
- );
703
- --m-button-hover-fg: var(--m-button-color);
704
- --m-button-hover-border: var(--m-button-color);
705
- --m-button-active-bg: color-mix(
706
- in srgb,
707
- var(--m-button-color) 22%,
708
- transparent
709
- );
710
- }
711
-
712
- .m-button--custom.m-button--link {
713
- --m-button-bg: transparent;
714
- --m-button-fg: var(--m-button-color);
715
- --m-button-border: transparent;
716
- --m-button-hover-bg: transparent;
717
- --m-button-hover-fg: var(--m-button-color);
718
- --m-button-hover-border: transparent;
719
- --m-button-active-bg: transparent;
720
- }
721
-
722
- .m-button-group {
723
- display: inline-flex;
724
- vertical-align: middle;
725
- }
726
-
727
- .m-button-group--fluid {
728
- display: flex;
729
- width: 100%;
730
- }
731
-
732
- .m-button-group--fluid > .m-button {
733
- flex: 1;
734
- }
735
-
736
- .m-button-group > .m-button {
737
- border-radius: 0;
738
- margin: 0;
739
- }
740
-
741
- .m-button-group > .m-button + .m-button {
742
- margin-left: -1px;
743
- }
744
-
745
- .m-button-group > .m-button:first-child {
746
- border-top-left-radius: var(--m-radius-control);
747
- border-bottom-left-radius: var(--m-radius-control);
748
- }
749
-
750
- .m-button-group > .m-button:last-child {
751
- border-top-right-radius: var(--m-radius-control);
752
- border-bottom-right-radius: var(--m-radius-control);
753
- }
754
-
755
- .m-button--raised {
756
- box-shadow: var(--m-shadow-raised);
757
- }
758
-
759
- .m-button--raised:focus-visible {
760
- box-shadow: var(--m-focus-shadow), var(--m-shadow-raised);
761
- }
762
-
763
- .m-button--rounded {
764
- border-radius: var(--m-radius-full);
765
- }
766
-
767
- .m-button--icon-only {
768
- gap: 0;
769
- min-width: var(--m-control-height-medium);
770
- padding: 0;
771
- width: var(--m-control-height-medium);
772
- }
773
-
774
- .m-button--icon-only.m-button--small {
775
- min-width: var(--m-control-height-small);
776
- width: var(--m-control-height-small);
777
- }
778
-
779
- .m-button--icon-only.m-button--large {
780
- min-width: var(--m-control-height-large);
781
- width: var(--m-control-height-large);
782
- }
783
-
784
- .m-button--icon-right {
785
- flex-direction: row-reverse;
786
- }
787
-
788
- .m-button--icon-top {
789
- flex-direction: column;
790
- min-height: var(--m-button-icon-stack-min-height);
791
- padding-block: var(--m-space-2);
792
- }
793
-
794
- .m-button--icon-bottom {
795
- flex-direction: column-reverse;
796
- min-height: var(--m-button-icon-stack-min-height);
797
- padding-block: var(--m-space-2);
798
- }
799
-
800
- .m-button--fluid {
801
- display: flex;
802
- width: 100%;
803
- }
804
-
805
- .m-button--small {
806
- --m-button-icon-size: 0.875rem;
807
- font-size: var(--m-control-font-small);
808
- min-height: var(--m-control-height-small);
809
- padding: 0 var(--m-button-padding-x-small);
810
- }
811
-
812
- .m-button--large {
813
- --m-button-icon-size: 1.25rem;
814
- font-size: var(--m-control-font-large);
815
- min-height: var(--m-control-height-large);
816
- padding: 0 var(--m-button-padding-x-large);
817
- }
818
-
819
- .m-button__icon,
820
- .m-button__label {
821
- align-items: center;
822
- display: inline-flex;
823
- justify-content: center;
824
- }
825
-
826
- .m-button__icon,
827
- .m-button__label,
828
- .m-button__badge {
829
- position: relative;
830
- z-index: 1;
831
- }
832
-
833
- .m-button__ripple {
834
- border-radius: inherit;
835
- inset: 0;
836
- overflow: hidden;
837
- pointer-events: none;
838
- position: absolute;
839
- z-index: 0;
840
- }
841
-
842
- .m-button__ripple-wave {
843
- background: currentColor;
844
- border-radius: var(--m-radius-full);
845
- opacity: 0;
846
- pointer-events: none;
847
- position: absolute;
848
- transform: scale(0);
849
- will-change: transform, opacity;
850
- }
851
-
852
- /* Used only when Web Animations API is unavailable. */
853
- .m-button__ripple-wave--fallback {
854
- animation: m-button-ripple 560ms var(--m-motion-ease) forwards;
855
- }
856
-
857
- @keyframes m-button-ripple {
858
- 0% {
859
- opacity: 0.42;
860
- transform: scale(0);
861
- }
862
- 55% {
863
- opacity: 0.22;
864
- transform: scale(0.55);
865
- }
866
- 100% {
867
- opacity: 0;
868
- transform: scale(1);
869
- }
870
- }
871
-
872
- .m-button__icon {
873
- flex: 0 0 auto;
874
- width: var(--m-button-icon-size);
875
- height: var(--m-button-icon-size);
876
- line-height: 0;
877
- }
878
-
879
- .m-button__icon :is(.m-icon, .m-button__icon-graphic, svg) {
880
- display: block;
881
- flex-shrink: 0;
882
- width: 100%;
883
- height: 100%;
884
- }
885
-
886
- .m-button__icon .m-icon {
887
- max-width: 100%;
888
- max-height: 100%;
889
- }
890
-
891
- .m-button__badge {
892
- align-items: center;
893
- background: var(--m-color-contrast);
894
- border-radius: var(--m-radius-full);
895
- color: var(--m-color-contrast-fg);
896
- display: inline-flex;
897
- font-size: var(--m-font-size-xs);
898
- font-weight: 700;
899
- justify-content: center;
900
- line-height: 1;
901
- margin-inline-start: var(--m-space-1);
902
- min-width: var(--m-button-badge-min-width);
903
- padding: var(--m-space-1) var(--m-space-2);
904
- }
905
-
906
- .m-button__badge--secondary {
907
- background: color-mix(
908
- in srgb,
909
- var(--m-color-text-muted) 25%,
910
- var(--m-color-surface)
911
- );
912
- color: var(--m-color-text);
913
- }
914
-
915
- .m-button__badge--success {
916
- background: var(--m-color-success);
917
- color: var(--m-color-on-emphasis);
918
- }
919
-
920
- .m-button__badge--info {
921
- background: var(--m-color-info);
922
- color: var(--m-color-on-emphasis);
923
- }
924
-
925
- .m-button__badge--warn {
926
- background: var(--m-color-warn);
927
- color: var(--m-color-on-emphasis);
928
- }
929
-
930
- .m-button__badge--danger {
931
- background: var(--m-color-danger);
932
- color: var(--m-color-on-emphasis);
933
- }
934
-
935
- .m-button__badge--contrast {
936
- background: var(--m-color-contrast);
937
- color: var(--m-color-contrast-fg);
938
- }
939
-
940
- .m-button__spinner {
941
- animation: m-button-spin var(--m-motion-spin-fast) linear infinite;
942
- border: 2px solid currentColor;
943
- border-right-color: transparent;
944
- border-radius: var(--m-radius-full);
945
- height: var(--m-button-spinner-size);
946
- width: var(--m-button-spinner-size);
947
- }
948
-
949
- @keyframes m-button-spin {
950
- to {
951
- transform: rotate(360deg);
952
- }
953
- }
954
-
955
- [data-m-motion="reduced"] .m-button__spinner,
956
- [data-m-motion="none"] .m-button__spinner {
957
- animation: none;
958
- }
959
-
960
- [data-m-motion="none"] .m-button__ripple-wave {
961
- display: none;
962
- }
1
+ .m-button {
2
+ --m-button-padding-x-small: var(--m-control-padding-x-small);
3
+ --m-button-padding-x-medium: calc(
4
+ var(--m-control-padding-x-medium) + var(--m-space-1)
5
+ );
6
+ --m-button-padding-x-large: calc(
7
+ var(--m-control-padding-x-large) + var(--m-space-1)
8
+ );
9
+ --m-button-icon-stack-min-height: 3.25rem;
10
+ --m-button-badge-min-width: 1.15rem;
11
+ --m-button-spinner-size: 0.875rem;
12
+ --m-button-icon-size: 1rem;
13
+ --m-button-bg: var(--m-color-primary);
14
+ --m-button-fg: var(--m-color-on-emphasis);
15
+ --m-button-border: var(--m-color-primary);
16
+ --m-button-hover-bg: var(--m-color-primary-hover);
17
+ --m-button-hover-fg: var(--m-color-on-emphasis);
18
+ --m-button-hover-border: var(--m-color-primary-hover);
19
+ --m-button-active-bg: color-mix(
20
+ in srgb,
21
+ var(--m-color-primary) 82%,
22
+ black
23
+ );
24
+ align-items: center;
25
+ background: var(--m-button-bg);
26
+ border: var(--m-border-width) solid var(--m-button-border);
27
+ border-radius: var(--m-radius-control);
28
+ color: var(--m-button-fg);
29
+ cursor: pointer;
30
+ display: inline-flex;
31
+ flex-direction: row;
32
+ font-family: var(--m-font-sans);
33
+ font-size: var(--m-control-font-medium);
34
+ font-weight: 600;
35
+ gap: var(--m-space-2);
36
+ justify-content: center;
37
+ line-height: 1;
38
+ min-height: var(--m-control-height-medium);
39
+ padding: 0 var(--m-button-padding-x-medium);
40
+ position: relative;
41
+ transition:
42
+ background-color var(--m-motion-fast) var(--m-motion-ease),
43
+ border-color var(--m-motion-fast) var(--m-motion-ease),
44
+ color var(--m-motion-fast) var(--m-motion-ease),
45
+ box-shadow var(--m-motion-fast) var(--m-motion-ease),
46
+ opacity var(--m-motion-fast) var(--m-motion-ease),
47
+ transform 160ms var(--m-motion-ease);
48
+ vertical-align: middle;
49
+ white-space: nowrap;
50
+ }
51
+
52
+ @media (hover: hover) and (pointer: fine) {
53
+ .m-button:hover:not(:disabled) {
54
+ background: var(--m-button-hover-bg);
55
+ border-color: var(--m-button-hover-border);
56
+ color: var(--m-button-hover-fg);
57
+ }
58
+ }
59
+
60
+ .m-button:active:not(:disabled) {
61
+ background: var(--m-button-active-bg);
62
+ }
63
+
64
+ .m-button--press:active:not(:disabled) {
65
+ transform: scale(0.97);
66
+ }
67
+
68
+ /* Naive-style focus: soft glow, not outline-offset ring */
69
+ .m-button:focus {
70
+ outline: none;
71
+ }
72
+
73
+ .m-button:focus-visible {
74
+ box-shadow: var(--m-focus-shadow);
75
+ outline: none;
76
+ }
77
+
78
+ .m-button:disabled {
79
+ cursor: not-allowed;
80
+ opacity: var(--m-opacity-disabled);
81
+ }
82
+
83
+ .m-button--primary {
84
+ --m-button-bg: var(--m-color-primary);
85
+ --m-button-fg: var(--m-color-on-emphasis);
86
+ --m-button-border: var(--m-color-primary);
87
+ --m-button-hover-bg: var(--m-color-primary-hover);
88
+ --m-button-hover-fg: var(--m-color-on-emphasis);
89
+ --m-button-hover-border: var(--m-color-primary-hover);
90
+ --m-button-active-bg: color-mix(
91
+ in srgb,
92
+ var(--m-color-primary) 82%,
93
+ black
94
+ );
95
+ }
96
+
97
+ .m-button--secondary {
98
+ --m-button-bg: color-mix(
99
+ in srgb,
100
+ var(--m-color-text-muted) 16%,
101
+ var(--m-color-surface)
102
+ );
103
+ --m-button-fg: var(--m-color-text);
104
+ --m-button-border: transparent;
105
+ --m-button-hover-bg: color-mix(
106
+ in srgb,
107
+ var(--m-color-text-muted) 24%,
108
+ var(--m-color-surface)
109
+ );
110
+ --m-button-hover-fg: var(--m-color-text);
111
+ --m-button-hover-border: transparent;
112
+ --m-button-active-bg: color-mix(
113
+ in srgb,
114
+ var(--m-color-text-muted) 32%,
115
+ var(--m-color-surface)
116
+ );
117
+ }
118
+
119
+ .m-button--success {
120
+ --m-button-bg: var(--m-color-success);
121
+ --m-button-fg: var(--m-color-on-emphasis);
122
+ --m-button-border: var(--m-color-success);
123
+ --m-button-hover-bg: color-mix(
124
+ in srgb,
125
+ var(--m-color-success) 85%,
126
+ black
127
+ );
128
+ --m-button-hover-fg: var(--m-color-on-emphasis);
129
+ --m-button-hover-border: color-mix(
130
+ in srgb,
131
+ var(--m-color-success) 85%,
132
+ black
133
+ );
134
+ --m-button-active-bg: color-mix(
135
+ in srgb,
136
+ var(--m-color-success) 75%,
137
+ black
138
+ );
139
+ }
140
+
141
+ .m-button--info {
142
+ --m-button-bg: var(--m-color-info);
143
+ --m-button-fg: var(--m-color-on-emphasis);
144
+ --m-button-border: var(--m-color-info);
145
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-info) 85%, black);
146
+ --m-button-hover-fg: var(--m-color-on-emphasis);
147
+ --m-button-hover-border: color-mix(
148
+ in srgb,
149
+ var(--m-color-info) 85%,
150
+ black
151
+ );
152
+ --m-button-active-bg: color-mix(in srgb, var(--m-color-info) 75%, black);
153
+ }
154
+
155
+ .m-button--warn {
156
+ --m-button-bg: var(--m-color-warn);
157
+ --m-button-fg: var(--m-color-on-emphasis);
158
+ --m-button-border: var(--m-color-warn);
159
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-warn) 85%, black);
160
+ --m-button-hover-fg: var(--m-color-on-emphasis);
161
+ --m-button-hover-border: color-mix(
162
+ in srgb,
163
+ var(--m-color-warn) 85%,
164
+ black
165
+ );
166
+ --m-button-active-bg: color-mix(in srgb, var(--m-color-warn) 75%, black);
167
+ }
168
+
169
+ .m-button--help {
170
+ --m-button-bg: var(--m-color-help);
171
+ --m-button-fg: var(--m-color-on-emphasis);
172
+ --m-button-border: var(--m-color-help);
173
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-help) 85%, black);
174
+ --m-button-hover-fg: var(--m-color-on-emphasis);
175
+ --m-button-hover-border: color-mix(
176
+ in srgb,
177
+ var(--m-color-help) 85%,
178
+ black
179
+ );
180
+ --m-button-active-bg: color-mix(in srgb, var(--m-color-help) 75%, black);
181
+ }
182
+
183
+ .m-button--danger {
184
+ --m-button-bg: var(--m-color-danger);
185
+ --m-button-fg: var(--m-color-on-emphasis);
186
+ --m-button-border: var(--m-color-danger);
187
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-danger) 85%, black);
188
+ --m-button-hover-fg: var(--m-color-on-emphasis);
189
+ --m-button-hover-border: color-mix(
190
+ in srgb,
191
+ var(--m-color-danger) 85%,
192
+ black
193
+ );
194
+ --m-button-active-bg: color-mix(
195
+ in srgb,
196
+ var(--m-color-danger) 75%,
197
+ black
198
+ );
199
+ }
200
+
201
+ .m-button--contrast {
202
+ --m-button-bg: var(--m-color-contrast);
203
+ --m-button-fg: var(--m-color-contrast-fg);
204
+ --m-button-border: var(--m-color-contrast);
205
+ --m-button-hover-bg: var(--m-color-contrast-hover);
206
+ --m-button-hover-fg: var(--m-color-contrast-fg);
207
+ --m-button-hover-border: var(--m-color-contrast-hover);
208
+ --m-button-active-bg: var(--m-color-contrast-active);
209
+ }
210
+
211
+ .m-button--outlined {
212
+ --m-button-bg: transparent;
213
+ --m-button-fg: var(--m-button-border);
214
+ --m-button-hover-bg: color-mix(
215
+ in srgb,
216
+ var(--m-button-border) 10%,
217
+ transparent
218
+ );
219
+ --m-button-hover-fg: var(--m-button-border);
220
+ --m-button-hover-border: var(--m-button-border);
221
+ --m-button-active-bg: color-mix(
222
+ in srgb,
223
+ var(--m-button-border) 16%,
224
+ transparent
225
+ );
226
+ }
227
+
228
+ /* Idle matches outlined hover; hover/active deepen the tint. */
229
+ .m-button--plain {
230
+ --m-button-bg: color-mix(
231
+ in srgb,
232
+ var(--m-button-border) 10%,
233
+ transparent
234
+ );
235
+ --m-button-fg: var(--m-button-border);
236
+ --m-button-hover-bg: color-mix(
237
+ in srgb,
238
+ var(--m-button-border) 16%,
239
+ transparent
240
+ );
241
+ --m-button-hover-fg: var(--m-button-border);
242
+ --m-button-hover-border: var(--m-button-border);
243
+ --m-button-active-bg: color-mix(
244
+ in srgb,
245
+ var(--m-button-border) 22%,
246
+ transparent
247
+ );
248
+ }
249
+
250
+ .m-button--secondary.m-button--outlined,
251
+ .m-button--secondary.m-button--plain {
252
+ --m-button-border: var(--m-color-border);
253
+ --m-button-fg: var(--m-color-text);
254
+ --m-button-hover-fg: var(--m-color-text);
255
+ }
256
+
257
+ .m-button--text,
258
+ .m-button--link {
259
+ --m-button-bg: transparent;
260
+ --m-button-border: transparent;
261
+ --m-button-fg: var(--m-color-primary);
262
+ --m-button-hover-fg: var(--m-color-primary);
263
+ --m-button-hover-border: transparent;
264
+ }
265
+
266
+ .m-button--text {
267
+ --m-button-hover-bg: color-mix(
268
+ in srgb,
269
+ var(--m-color-primary) 10%,
270
+ transparent
271
+ );
272
+ --m-button-active-bg: color-mix(
273
+ in srgb,
274
+ var(--m-color-primary) 16%,
275
+ transparent
276
+ );
277
+ }
278
+
279
+ .m-button--link {
280
+ --m-button-bg: transparent;
281
+ --m-button-hover-bg: transparent;
282
+ --m-button-active-bg: transparent;
283
+ height: auto;
284
+ min-height: 0;
285
+ padding: 0;
286
+ }
287
+
288
+ .m-button--link.m-button--link-underline:hover:not(:disabled) {
289
+ text-decoration: underline;
290
+ }
291
+
292
+ .m-button--link:not(.m-button--link-underline):hover:not(:disabled) {
293
+ opacity: 0.8;
294
+ }
295
+
296
+ .m-button--secondary.m-button--text {
297
+ --m-button-fg: var(--m-color-text-muted);
298
+ --m-button-hover-bg: color-mix(
299
+ in srgb,
300
+ var(--m-color-text-muted) 12%,
301
+ transparent
302
+ );
303
+ --m-button-hover-fg: var(--m-color-text);
304
+ }
305
+
306
+ .m-button--secondary.m-button--link {
307
+ --m-button-fg: var(--m-color-text-muted);
308
+ --m-button-hover-fg: var(--m-color-text);
309
+ }
310
+
311
+ .m-button--success.m-button--text,
312
+ .m-button--success.m-button--outlined {
313
+ --m-button-fg: var(--m-color-success);
314
+ --m-button-border: var(--m-color-success);
315
+ --m-button-hover-bg: color-mix(
316
+ in srgb,
317
+ var(--m-color-success) 10%,
318
+ transparent
319
+ );
320
+ --m-button-hover-fg: var(--m-color-success);
321
+ --m-button-hover-border: var(--m-color-success);
322
+ }
323
+
324
+ .m-button--success.m-button--link {
325
+ --m-button-fg: var(--m-color-success);
326
+ --m-button-hover-fg: var(--m-color-success);
327
+ }
328
+
329
+ .m-button--info.m-button--text,
330
+ .m-button--info.m-button--outlined {
331
+ --m-button-fg: var(--m-color-info);
332
+ --m-button-border: var(--m-color-info);
333
+ --m-button-hover-bg: color-mix(
334
+ in srgb,
335
+ var(--m-color-info) 10%,
336
+ transparent
337
+ );
338
+ --m-button-hover-fg: var(--m-color-info);
339
+ --m-button-hover-border: var(--m-color-info);
340
+ }
341
+
342
+ .m-button--info.m-button--link {
343
+ --m-button-fg: var(--m-color-info);
344
+ --m-button-hover-fg: var(--m-color-info);
345
+ }
346
+
347
+ .m-button--warn.m-button--text,
348
+ .m-button--warn.m-button--outlined {
349
+ --m-button-fg: var(--m-color-warn);
350
+ --m-button-border: var(--m-color-warn);
351
+ --m-button-hover-bg: color-mix(
352
+ in srgb,
353
+ var(--m-color-warn) 10%,
354
+ transparent
355
+ );
356
+ --m-button-hover-fg: var(--m-color-warn);
357
+ --m-button-hover-border: var(--m-color-warn);
358
+ }
359
+
360
+ .m-button--warn.m-button--link {
361
+ --m-button-fg: var(--m-color-warn);
362
+ --m-button-hover-fg: var(--m-color-warn);
363
+ }
364
+
365
+ .m-button--help.m-button--text,
366
+ .m-button--help.m-button--outlined {
367
+ --m-button-fg: var(--m-color-help);
368
+ --m-button-border: var(--m-color-help);
369
+ --m-button-hover-bg: color-mix(
370
+ in srgb,
371
+ var(--m-color-help) 10%,
372
+ transparent
373
+ );
374
+ --m-button-hover-fg: var(--m-color-help);
375
+ --m-button-hover-border: var(--m-color-help);
376
+ }
377
+
378
+ .m-button--help.m-button--link {
379
+ --m-button-fg: var(--m-color-help);
380
+ --m-button-hover-fg: var(--m-color-help);
381
+ }
382
+
383
+ .m-button--danger.m-button--text,
384
+ .m-button--danger.m-button--outlined {
385
+ --m-button-fg: var(--m-color-danger);
386
+ --m-button-border: var(--m-color-danger);
387
+ --m-button-hover-bg: color-mix(
388
+ in srgb,
389
+ var(--m-color-danger) 10%,
390
+ transparent
391
+ );
392
+ --m-button-hover-fg: var(--m-color-danger);
393
+ --m-button-hover-border: var(--m-color-danger);
394
+ }
395
+
396
+ .m-button--danger.m-button--link {
397
+ --m-button-fg: var(--m-color-danger);
398
+ --m-button-hover-fg: var(--m-color-danger);
399
+ }
400
+
401
+ .m-button--contrast.m-button--text,
402
+ .m-button--contrast.m-button--outlined {
403
+ --m-button-fg: var(--m-color-contrast);
404
+ --m-button-border: var(--m-color-contrast);
405
+ --m-button-hover-bg: color-mix(
406
+ in srgb,
407
+ var(--m-color-contrast) 10%,
408
+ transparent
409
+ );
410
+ --m-button-hover-fg: var(--m-color-contrast);
411
+ --m-button-hover-border: var(--m-color-contrast);
412
+ }
413
+
414
+ .m-button--contrast.m-button--link {
415
+ --m-button-fg: var(--m-color-contrast);
416
+ --m-button-hover-fg: var(--m-color-contrast);
417
+ }
418
+
419
+ .m-button--plain.m-button--text,
420
+ .m-button--plain.m-button--outlined {
421
+ --m-button-bg: transparent;
422
+ --m-button-fg: var(--m-color-text-muted);
423
+ --m-button-border: var(--m-color-border);
424
+ --m-button-hover-bg: color-mix(
425
+ in srgb,
426
+ var(--m-color-text-muted) 12%,
427
+ transparent
428
+ );
429
+ --m-button-hover-fg: var(--m-color-text);
430
+ --m-button-hover-border: var(--m-color-border);
431
+ --m-button-active-bg: color-mix(
432
+ in srgb,
433
+ var(--m-color-text-muted) 18%,
434
+ transparent
435
+ );
436
+ }
437
+
438
+ .m-button--plain.m-button--link {
439
+ --m-button-fg: var(--m-color-text-muted);
440
+ --m-button-hover-fg: var(--m-color-text);
441
+ }
442
+
443
+ .m-button--ghost {
444
+ --m-button-bg: color-mix(
445
+ in srgb,
446
+ var(--m-color-primary) 10%,
447
+ transparent
448
+ );
449
+ --m-button-border: transparent;
450
+ --m-button-fg: var(--m-color-primary);
451
+ --m-button-hover-bg: color-mix(
452
+ in srgb,
453
+ var(--m-color-primary) 16%,
454
+ transparent
455
+ );
456
+ --m-button-hover-fg: var(--m-color-primary);
457
+ --m-button-hover-border: transparent;
458
+ --m-button-active-bg: color-mix(
459
+ in srgb,
460
+ var(--m-color-primary) 22%,
461
+ transparent
462
+ );
463
+ }
464
+
465
+ .m-button--secondary.m-button--ghost {
466
+ --m-button-bg: color-mix(
467
+ in srgb,
468
+ var(--m-color-text-muted) 12%,
469
+ transparent
470
+ );
471
+ --m-button-fg: var(--m-color-text);
472
+ --m-button-hover-bg: color-mix(
473
+ in srgb,
474
+ var(--m-color-text-muted) 18%,
475
+ transparent
476
+ );
477
+ --m-button-hover-fg: var(--m-color-text);
478
+ --m-button-active-bg: color-mix(
479
+ in srgb,
480
+ var(--m-color-text-muted) 24%,
481
+ transparent
482
+ );
483
+ }
484
+
485
+ .m-button--success.m-button--ghost {
486
+ --m-button-bg: color-mix(
487
+ in srgb,
488
+ var(--m-color-success) 10%,
489
+ transparent
490
+ );
491
+ --m-button-fg: var(--m-color-success);
492
+ --m-button-hover-bg: color-mix(
493
+ in srgb,
494
+ var(--m-color-success) 16%,
495
+ transparent
496
+ );
497
+ --m-button-hover-fg: var(--m-color-success);
498
+ --m-button-active-bg: color-mix(
499
+ in srgb,
500
+ var(--m-color-success) 22%,
501
+ transparent
502
+ );
503
+ }
504
+
505
+ .m-button--info.m-button--ghost {
506
+ --m-button-bg: color-mix(
507
+ in srgb,
508
+ var(--m-color-info) 10%,
509
+ transparent
510
+ );
511
+ --m-button-fg: var(--m-color-info);
512
+ --m-button-hover-bg: color-mix(
513
+ in srgb,
514
+ var(--m-color-info) 16%,
515
+ transparent
516
+ );
517
+ --m-button-hover-fg: var(--m-color-info);
518
+ --m-button-active-bg: color-mix(
519
+ in srgb,
520
+ var(--m-color-info) 22%,
521
+ transparent
522
+ );
523
+ }
524
+
525
+ .m-button--warn.m-button--ghost {
526
+ --m-button-bg: color-mix(
527
+ in srgb,
528
+ var(--m-color-warn) 10%,
529
+ transparent
530
+ );
531
+ --m-button-fg: var(--m-color-warn);
532
+ --m-button-hover-bg: color-mix(
533
+ in srgb,
534
+ var(--m-color-warn) 16%,
535
+ transparent
536
+ );
537
+ --m-button-hover-fg: var(--m-color-warn);
538
+ --m-button-active-bg: color-mix(
539
+ in srgb,
540
+ var(--m-color-warn) 22%,
541
+ transparent
542
+ );
543
+ }
544
+
545
+ .m-button--help.m-button--ghost {
546
+ --m-button-bg: color-mix(
547
+ in srgb,
548
+ var(--m-color-help) 10%,
549
+ transparent
550
+ );
551
+ --m-button-fg: var(--m-color-help);
552
+ --m-button-hover-bg: color-mix(
553
+ in srgb,
554
+ var(--m-color-help) 16%,
555
+ transparent
556
+ );
557
+ --m-button-hover-fg: var(--m-color-help);
558
+ --m-button-active-bg: color-mix(
559
+ in srgb,
560
+ var(--m-color-help) 22%,
561
+ transparent
562
+ );
563
+ }
564
+
565
+ .m-button--danger.m-button--ghost {
566
+ --m-button-bg: color-mix(
567
+ in srgb,
568
+ var(--m-color-danger) 10%,
569
+ transparent
570
+ );
571
+ --m-button-fg: var(--m-color-danger);
572
+ --m-button-hover-bg: color-mix(
573
+ in srgb,
574
+ var(--m-color-danger) 16%,
575
+ transparent
576
+ );
577
+ --m-button-hover-fg: var(--m-color-danger);
578
+ --m-button-active-bg: color-mix(
579
+ in srgb,
580
+ var(--m-color-danger) 22%,
581
+ transparent
582
+ );
583
+ }
584
+
585
+ .m-button--contrast.m-button--ghost {
586
+ --m-button-bg: color-mix(
587
+ in srgb,
588
+ var(--m-color-contrast) 10%,
589
+ transparent
590
+ );
591
+ --m-button-fg: var(--m-color-contrast);
592
+ --m-button-hover-bg: color-mix(
593
+ in srgb,
594
+ var(--m-color-contrast) 16%,
595
+ transparent
596
+ );
597
+ --m-button-hover-fg: var(--m-color-contrast);
598
+ --m-button-active-bg: color-mix(
599
+ in srgb,
600
+ var(--m-color-contrast) 22%,
601
+ transparent
602
+ );
603
+ }
604
+
605
+ .m-button--quaternary {
606
+ --m-button-bg: transparent;
607
+ --m-button-border: transparent;
608
+ --m-button-fg: var(--m-color-text);
609
+ --m-button-hover-bg: color-mix(
610
+ in srgb,
611
+ var(--m-color-text-muted) 10%,
612
+ transparent
613
+ );
614
+ --m-button-hover-fg: var(--m-color-text);
615
+ --m-button-hover-border: transparent;
616
+ --m-button-active-bg: color-mix(
617
+ in srgb,
618
+ var(--m-color-text-muted) 16%,
619
+ transparent
620
+ );
621
+ }
622
+
623
+ .m-button--custom {
624
+ --m-button-bg: var(--m-button-color);
625
+ --m-button-fg: var(--m-color-on-emphasis);
626
+ --m-button-border: var(--m-button-color);
627
+ --m-button-hover-bg: color-mix(in srgb, var(--m-button-color) 85%, black);
628
+ --m-button-hover-fg: var(--m-color-on-emphasis);
629
+ --m-button-hover-border: color-mix(
630
+ in srgb,
631
+ var(--m-button-color) 85%,
632
+ black
633
+ );
634
+ --m-button-active-bg: color-mix(
635
+ in srgb,
636
+ var(--m-button-color) 75%,
637
+ black
638
+ );
639
+ }
640
+
641
+ .m-button--custom.m-button--outlined {
642
+ --m-button-bg: transparent;
643
+ --m-button-fg: var(--m-button-color);
644
+ --m-button-border: var(--m-button-color);
645
+ --m-button-hover-bg: color-mix(
646
+ in srgb,
647
+ var(--m-button-color) 12%,
648
+ transparent
649
+ );
650
+ --m-button-hover-fg: var(--m-button-color);
651
+ --m-button-hover-border: var(--m-button-color);
652
+ }
653
+
654
+ .m-button--custom.m-button--ghost {
655
+ --m-button-bg: color-mix(
656
+ in srgb,
657
+ var(--m-button-color) 10%,
658
+ transparent
659
+ );
660
+ --m-button-fg: var(--m-button-color);
661
+ --m-button-border: transparent;
662
+ --m-button-hover-bg: color-mix(
663
+ in srgb,
664
+ var(--m-button-color) 16%,
665
+ transparent
666
+ );
667
+ --m-button-hover-fg: var(--m-button-color);
668
+ --m-button-hover-border: transparent;
669
+ --m-button-active-bg: color-mix(
670
+ in srgb,
671
+ var(--m-button-color) 22%,
672
+ transparent
673
+ );
674
+ }
675
+
676
+ .m-button--custom.m-button--text,
677
+ .m-button--custom.m-button--quaternary {
678
+ --m-button-bg: transparent;
679
+ --m-button-fg: var(--m-button-color);
680
+ --m-button-border: transparent;
681
+ --m-button-hover-bg: color-mix(
682
+ in srgb,
683
+ var(--m-button-color) 12%,
684
+ transparent
685
+ );
686
+ --m-button-hover-fg: var(--m-button-color);
687
+ --m-button-hover-border: transparent;
688
+ }
689
+
690
+ .m-button--custom.m-button--plain {
691
+ --m-button-bg: color-mix(
692
+ in srgb,
693
+ var(--m-button-color) 10%,
694
+ transparent
695
+ );
696
+ --m-button-fg: var(--m-button-color);
697
+ --m-button-border: var(--m-button-color);
698
+ --m-button-hover-bg: color-mix(
699
+ in srgb,
700
+ var(--m-button-color) 16%,
701
+ transparent
702
+ );
703
+ --m-button-hover-fg: var(--m-button-color);
704
+ --m-button-hover-border: var(--m-button-color);
705
+ --m-button-active-bg: color-mix(
706
+ in srgb,
707
+ var(--m-button-color) 22%,
708
+ transparent
709
+ );
710
+ }
711
+
712
+ .m-button--custom.m-button--link {
713
+ --m-button-bg: transparent;
714
+ --m-button-fg: var(--m-button-color);
715
+ --m-button-border: transparent;
716
+ --m-button-hover-bg: transparent;
717
+ --m-button-hover-fg: var(--m-button-color);
718
+ --m-button-hover-border: transparent;
719
+ --m-button-active-bg: transparent;
720
+ }
721
+
722
+ .m-button-group {
723
+ display: inline-flex;
724
+ vertical-align: middle;
725
+ }
726
+
727
+ .m-button-group--fluid {
728
+ display: flex;
729
+ width: 100%;
730
+ }
731
+
732
+ .m-button-group--fluid > .m-button {
733
+ flex: 1;
734
+ }
735
+
736
+ .m-button-group > .m-button {
737
+ border-radius: 0;
738
+ margin: 0;
739
+ }
740
+
741
+ .m-button-group > .m-button + .m-button {
742
+ margin-left: -1px;
743
+ }
744
+
745
+ .m-button-group > .m-button:first-child {
746
+ border-top-left-radius: var(--m-radius-control);
747
+ border-bottom-left-radius: var(--m-radius-control);
748
+ }
749
+
750
+ .m-button-group > .m-button:last-child {
751
+ border-top-right-radius: var(--m-radius-control);
752
+ border-bottom-right-radius: var(--m-radius-control);
753
+ }
754
+
755
+ .m-button--raised {
756
+ box-shadow: var(--m-shadow-raised);
757
+ }
758
+
759
+ .m-button--raised:focus-visible {
760
+ box-shadow: var(--m-focus-shadow), var(--m-shadow-raised);
761
+ }
762
+
763
+ .m-button--rounded {
764
+ border-radius: var(--m-radius-full);
765
+ }
766
+
767
+ .m-button--icon-only {
768
+ gap: 0;
769
+ min-width: var(--m-control-height-medium);
770
+ padding: 0;
771
+ width: var(--m-control-height-medium);
772
+ }
773
+
774
+ .m-button--icon-only.m-button--small {
775
+ min-width: var(--m-control-height-small);
776
+ width: var(--m-control-height-small);
777
+ }
778
+
779
+ .m-button--icon-only.m-button--large {
780
+ min-width: var(--m-control-height-large);
781
+ width: var(--m-control-height-large);
782
+ }
783
+
784
+ .m-button--icon-right {
785
+ flex-direction: row-reverse;
786
+ }
787
+
788
+ .m-button--icon-top {
789
+ flex-direction: column;
790
+ min-height: var(--m-button-icon-stack-min-height);
791
+ padding-block: var(--m-space-2);
792
+ }
793
+
794
+ .m-button--icon-bottom {
795
+ flex-direction: column-reverse;
796
+ min-height: var(--m-button-icon-stack-min-height);
797
+ padding-block: var(--m-space-2);
798
+ }
799
+
800
+ .m-button--fluid {
801
+ display: flex;
802
+ width: 100%;
803
+ }
804
+
805
+ .m-button--small {
806
+ --m-button-icon-size: 0.875rem;
807
+ font-size: var(--m-control-font-small);
808
+ min-height: var(--m-control-height-small);
809
+ padding: 0 var(--m-button-padding-x-small);
810
+ }
811
+
812
+ .m-button--large {
813
+ --m-button-icon-size: 1.25rem;
814
+ font-size: var(--m-control-font-large);
815
+ min-height: var(--m-control-height-large);
816
+ padding: 0 var(--m-button-padding-x-large);
817
+ }
818
+
819
+ .m-button__icon,
820
+ .m-button__label {
821
+ align-items: center;
822
+ display: inline-flex;
823
+ justify-content: center;
824
+ }
825
+
826
+ .m-button__icon,
827
+ .m-button__label,
828
+ .m-button__badge {
829
+ position: relative;
830
+ z-index: 1;
831
+ }
832
+
833
+ .m-button__ripple {
834
+ border-radius: inherit;
835
+ inset: 0;
836
+ overflow: hidden;
837
+ pointer-events: none;
838
+ position: absolute;
839
+ z-index: 0;
840
+ }
841
+
842
+ .m-button__ripple-wave {
843
+ background: currentColor;
844
+ border-radius: var(--m-radius-full);
845
+ opacity: 0;
846
+ pointer-events: none;
847
+ position: absolute;
848
+ transform: scale(0);
849
+ will-change: transform, opacity;
850
+ }
851
+
852
+ /* Used only when Web Animations API is unavailable. */
853
+ .m-button__ripple-wave--fallback {
854
+ animation: m-button-ripple 560ms var(--m-motion-ease) forwards;
855
+ }
856
+
857
+ @keyframes m-button-ripple {
858
+ 0% {
859
+ opacity: 0.42;
860
+ transform: scale(0);
861
+ }
862
+ 55% {
863
+ opacity: 0.22;
864
+ transform: scale(0.55);
865
+ }
866
+ 100% {
867
+ opacity: 0;
868
+ transform: scale(1);
869
+ }
870
+ }
871
+
872
+ .m-button__icon {
873
+ flex: 0 0 auto;
874
+ width: var(--m-button-icon-size);
875
+ height: var(--m-button-icon-size);
876
+ line-height: 0;
877
+ }
878
+
879
+ .m-button__icon :is(.m-icon, .m-button__icon-graphic, svg) {
880
+ display: block;
881
+ flex-shrink: 0;
882
+ width: 100%;
883
+ height: 100%;
884
+ }
885
+
886
+ .m-button__icon .m-icon {
887
+ max-width: 100%;
888
+ max-height: 100%;
889
+ }
890
+
891
+ .m-button__badge {
892
+ align-items: center;
893
+ background: var(--m-color-contrast);
894
+ border-radius: var(--m-radius-full);
895
+ color: var(--m-color-contrast-fg);
896
+ display: inline-flex;
897
+ font-size: var(--m-font-size-xs);
898
+ font-weight: 700;
899
+ justify-content: center;
900
+ line-height: 1;
901
+ margin-inline-start: var(--m-space-1);
902
+ min-width: var(--m-button-badge-min-width);
903
+ padding: var(--m-space-1) var(--m-space-2);
904
+ }
905
+
906
+ .m-button__badge--secondary {
907
+ background: color-mix(
908
+ in srgb,
909
+ var(--m-color-text-muted) 25%,
910
+ var(--m-color-surface)
911
+ );
912
+ color: var(--m-color-text);
913
+ }
914
+
915
+ .m-button__badge--success {
916
+ background: var(--m-color-success);
917
+ color: var(--m-color-on-emphasis);
918
+ }
919
+
920
+ .m-button__badge--info {
921
+ background: var(--m-color-info);
922
+ color: var(--m-color-on-emphasis);
923
+ }
924
+
925
+ .m-button__badge--warn {
926
+ background: var(--m-color-warn);
927
+ color: var(--m-color-on-emphasis);
928
+ }
929
+
930
+ .m-button__badge--danger {
931
+ background: var(--m-color-danger);
932
+ color: var(--m-color-on-emphasis);
933
+ }
934
+
935
+ .m-button__badge--contrast {
936
+ background: var(--m-color-contrast);
937
+ color: var(--m-color-contrast-fg);
938
+ }
939
+
940
+ .m-button__spinner {
941
+ animation: m-button-spin var(--m-motion-spin-fast) linear infinite;
942
+ border: 2px solid currentColor;
943
+ border-right-color: transparent;
944
+ border-radius: var(--m-radius-full);
945
+ height: var(--m-button-spinner-size);
946
+ width: var(--m-button-spinner-size);
947
+ }
948
+
949
+ @keyframes m-button-spin {
950
+ to {
951
+ transform: rotate(360deg);
952
+ }
953
+ }
954
+
955
+ [data-m-motion="reduced"] .m-button__spinner,
956
+ [data-m-motion="none"] .m-button__spinner {
957
+ animation: none;
958
+ }
959
+
960
+ [data-m-motion="none"] .m-button__ripple-wave {
961
+ display: none;
962
+ }