morya-ui 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (195) hide show
  1. package/CHANGELOG.md +25 -2
  2. package/dist/{Pagination-BkPBWEQq.js → Pagination-DLphD6LC.js} +1 -1
  3. package/dist/{Select-DzfyO0FE.js → Select-DxMlpgc5.js} +4 -2
  4. package/dist/accordion/style.css +39 -20
  5. package/dist/affix/style.css +39 -20
  6. package/dist/alert/style.css +39 -20
  7. package/dist/anchor/style.css +39 -20
  8. package/dist/auto-complete/style.css +42 -21
  9. package/dist/avatar/style.css +39 -20
  10. package/dist/badge/index.js +29 -28
  11. package/dist/badge/style.css +39 -20
  12. package/dist/block-ui/style.css +39 -20
  13. package/dist/breadcrumb/style.css +39 -20
  14. package/dist/button/style.css +40 -21
  15. package/dist/calendar/index.js +1 -1
  16. package/dist/calendar/style.css +49 -24
  17. package/dist/card/style.css +40 -21
  18. package/dist/carousel/index.js +313 -119
  19. package/dist/carousel/style.css +1305 -117
  20. package/dist/carousel/style.js +1 -1
  21. package/dist/cascade-select/style.css +54 -22
  22. package/dist/checkbox/style.css +41 -21
  23. package/dist/chip/index.js +39 -36
  24. package/dist/chip/style.css +39 -20
  25. package/dist/command-menu/style.css +39 -20
  26. package/dist/component-registry.d.ts.map +1 -1
  27. package/dist/components/Badge/Badge.vue.d.ts.map +1 -1
  28. package/dist/components/Badge/types.d.ts +3 -0
  29. package/dist/components/Badge/types.d.ts.map +1 -1
  30. package/dist/components/Button/styles.css +1 -1
  31. package/dist/components/Card/styles.css +1 -1
  32. package/dist/components/Carousel/Carousel.vue.d.ts +41 -11
  33. package/dist/components/Carousel/Carousel.vue.d.ts.map +1 -1
  34. package/dist/components/Carousel/CarouselItem.vue.d.ts +16 -0
  35. package/dist/components/Carousel/CarouselItem.vue.d.ts.map +1 -0
  36. package/dist/components/Carousel/context.d.ts +10 -0
  37. package/dist/components/Carousel/context.d.ts.map +1 -0
  38. package/dist/components/Carousel/index.d.ts +2 -1
  39. package/dist/components/Carousel/index.d.ts.map +1 -1
  40. package/dist/components/Carousel/styles.css +250 -49
  41. package/dist/components/Carousel/types.d.ts +64 -9
  42. package/dist/components/Carousel/types.d.ts.map +1 -1
  43. package/dist/components/CascadeSelect/styles.css +12 -1
  44. package/dist/components/Checkbox/styles.css +2 -1
  45. package/dist/components/Chip/Chip.vue.d.ts.map +1 -1
  46. package/dist/components/Chip/types.d.ts +3 -0
  47. package/dist/components/Chip/types.d.ts.map +1 -1
  48. package/dist/components/DatePicker/styles.css +2 -1
  49. package/dist/components/Divider/Divider.vue.d.ts.map +1 -1
  50. package/dist/components/Divider/types.d.ts +3 -0
  51. package/dist/components/Divider/types.d.ts.map +1 -1
  52. package/dist/components/IconField/styles.css +1 -1
  53. package/dist/components/Input/styles.css +20 -8
  54. package/dist/components/InputColor/styles.css +10 -0
  55. package/dist/components/InputNumber/styles.css +2 -1
  56. package/dist/components/InputOtp/styles.css +8 -0
  57. package/dist/components/InputPassword/styles.css +1 -1
  58. package/dist/components/InputTags/styles.css +9 -0
  59. package/dist/components/Layout/styles.css +1 -1
  60. package/dist/components/Listbox/styles.css +3 -0
  61. package/dist/components/Mentions/styles.css +13 -4
  62. package/dist/components/Pagination/styles.css +3 -2
  63. package/dist/components/ProgressBar/ProgressBar.vue.d.ts.map +1 -1
  64. package/dist/components/ProgressBar/types.d.ts +3 -0
  65. package/dist/components/ProgressBar/types.d.ts.map +1 -1
  66. package/dist/components/Radio/styles.css +2 -1
  67. package/dist/components/Result/styles.css +1 -1
  68. package/dist/components/Select/Select.vue.d.ts.map +1 -1
  69. package/dist/components/Select/styles.css +8 -3
  70. package/dist/components/SelectButton/styles.css +2 -0
  71. package/dist/components/Tag/Tag.vue.d.ts.map +1 -1
  72. package/dist/components/Tag/styles.css +10 -8
  73. package/dist/components/Tag/types.d.ts +3 -0
  74. package/dist/components/Tag/types.d.ts.map +1 -1
  75. package/dist/components/Terminal/styles.css +1 -0
  76. package/dist/components/Textarea/styles.css +18 -7
  77. package/dist/components/ToggleButton/styles.css +2 -1
  78. package/dist/components/Tree/Tree.vue.d.ts +1 -1
  79. package/dist/components/TreeSelect/styles.css +12 -1
  80. package/dist/config-provider/index.js +140 -119
  81. package/dist/config-provider/style.css +60 -29
  82. package/dist/confirm-dialog/style.css +40 -21
  83. package/dist/confirm-popup/style.css +40 -21
  84. package/dist/context-menu/style.css +39 -20
  85. package/dist/data-view/index.js +1 -1
  86. package/dist/data-view/style.css +42 -22
  87. package/dist/date-picker/style.css +41 -21
  88. package/dist/descriptions/style.css +39 -20
  89. package/dist/dialog/style.css +40 -21
  90. package/dist/divider/index.js +25 -22
  91. package/dist/divider/style.css +39 -20
  92. package/dist/dock/style.css +39 -20
  93. package/dist/drawer/style.css +39 -20
  94. package/dist/dropdown/style.css +39 -20
  95. package/dist/empty/style.css +39 -20
  96. package/dist/fieldset/style.css +39 -20
  97. package/dist/file-upload/style.css +39 -20
  98. package/dist/flex/index.js +7 -7
  99. package/dist/flex/style.css +39 -20
  100. package/dist/float-label/style.css +39 -20
  101. package/dist/fluid/style.css +39 -20
  102. package/dist/form/style.css +39 -20
  103. package/dist/gallery/style.css +39 -20
  104. package/dist/grid/index.js +5 -5
  105. package/dist/grid/style.css +39 -20
  106. package/dist/icon/style.css +39 -20
  107. package/dist/icon-field/style.css +60 -29
  108. package/dist/image/style.css +39 -20
  109. package/dist/index.d.ts +2 -1
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +4723 -4496
  112. package/dist/inplace/style.css +39 -20
  113. package/dist/input/style.css +59 -28
  114. package/dist/input-color/style.css +49 -20
  115. package/dist/input-group/style.css +39 -20
  116. package/dist/input-number/style.css +41 -21
  117. package/dist/input-otp/style.css +47 -20
  118. package/dist/input-password/style.css +40 -21
  119. package/dist/input-tags/style.css +48 -20
  120. package/dist/knob/style.css +39 -20
  121. package/dist/label/style.css +39 -20
  122. package/dist/layout/style.css +40 -21
  123. package/dist/list/index.js +1 -1
  124. package/dist/list/style.css +42 -22
  125. package/dist/listbox/style.css +42 -20
  126. package/dist/loading/style.css +39 -20
  127. package/dist/mega-menu/style.css +39 -20
  128. package/dist/mentions/style.css +52 -24
  129. package/dist/menu/style.css +39 -20
  130. package/dist/menubar/style.css +39 -20
  131. package/dist/message/style.css +39 -20
  132. package/dist/meter-group/style.css +39 -20
  133. package/dist/order-list/style.css +39 -20
  134. package/dist/page/style.css +41 -22
  135. package/dist/pagination/index.js +1 -1
  136. package/dist/pagination/style.css +50 -25
  137. package/dist/panel/style.css +39 -20
  138. package/dist/pick-list/style.css +39 -20
  139. package/dist/popover/style.css +39 -20
  140. package/dist/progress-bar/index.js +38 -35
  141. package/dist/progress-bar/style.css +39 -20
  142. package/dist/progress-spinner/style.css +39 -20
  143. package/dist/qr-code/style.css +40 -21
  144. package/dist/radio/style.css +41 -21
  145. package/dist/rating/style.css +39 -20
  146. package/dist/resolver-map.d.ts.map +1 -1
  147. package/dist/resolver.js +1 -0
  148. package/dist/result/style.css +40 -21
  149. package/dist/scroll-top/style.css +39 -20
  150. package/dist/scrollbar/style.css +39 -20
  151. package/dist/segmented/style.css +39 -20
  152. package/dist/select/index.js +1 -1
  153. package/dist/select/style.css +50 -24
  154. package/dist/select-button/style.css +41 -20
  155. package/dist/shared/styles/select-overlay.css +3 -1
  156. package/dist/sidebar/style.css +39 -20
  157. package/dist/skeleton/style.css +39 -20
  158. package/dist/slider/style.css +39 -20
  159. package/dist/space/index.js +7 -7
  160. package/dist/space/style.css +39 -20
  161. package/dist/speed-dial/style.css +39 -20
  162. package/dist/split-button/style.css +40 -21
  163. package/dist/splitter/style.css +39 -20
  164. package/dist/statistic/style.css +39 -20
  165. package/dist/status/style.css +39 -20
  166. package/dist/stepper/style.css +39 -20
  167. package/dist/styles/base.css +19 -7
  168. package/dist/styles.css +1 -1
  169. package/dist/switch/style.css +39 -20
  170. package/dist/table/index.js +1 -1
  171. package/dist/table/style.css +42 -22
  172. package/dist/tabs/style.css +39 -20
  173. package/dist/tag/index.js +57 -54
  174. package/dist/tag/style.css +49 -28
  175. package/dist/terminal/style.css +40 -20
  176. package/dist/textarea/style.css +57 -27
  177. package/dist/theme/color.d.ts +5 -0
  178. package/dist/theme/color.d.ts.map +1 -1
  179. package/dist/theme/derive.d.ts.map +1 -1
  180. package/dist/theme/seed.d.ts +2 -2
  181. package/dist/theme/styles.css +20 -13
  182. package/dist/tiered-menu/style.css +39 -20
  183. package/dist/time-picker/style.css +41 -21
  184. package/dist/timeline/style.css +39 -20
  185. package/dist/toast/style.css +40 -21
  186. package/dist/toggle-button/style.css +41 -21
  187. package/dist/toolbar/style.css +39 -20
  188. package/dist/tooltip/style.css +39 -20
  189. package/dist/tour/style.css +40 -21
  190. package/dist/tree/style.css +41 -21
  191. package/dist/tree-select/style.css +56 -23
  192. package/dist/typography/style.css +57 -27
  193. package/dist/virtual-scroller/style.css +39 -20
  194. package/dist/watermark/style.css +39 -20
  195. package/package.json +1 -1
@@ -9,6 +9,10 @@
9
9
  --m-color-border: #d9d9d9;
10
10
  --m-color-split: #f0f0f0;
11
11
  --m-color-focus-ring: #1677ff;
12
+ /* Soft translucent control-outline ring (primary bg composited over container) */
13
+ --m-color-control-outline: rgba(5, 145, 255, 0.1);
14
+ --m-color-control-outline-danger: rgba(255, 38, 5, 0.06);
15
+ --m-color-control-outline-warning: rgba(255, 215, 5, 0.1);
12
16
  /* Control sizing: medium control height 32px */
13
17
  --m-control-height-small: 24px;
14
18
  --m-control-height-medium: 32px;
@@ -22,12 +26,12 @@
22
26
 
23
27
  --m-radius-control: 6px;
24
28
  --m-border-width: 1px;
25
- --m-focus-shadow: 0 0 0 2px
26
- color-mix(in srgb, var(--m-color-primary) 45%, transparent);
27
- --m-focus-shadow-danger: 0 0 0 2px
28
- color-mix(in srgb, var(--m-color-danger) 45%, transparent);
29
- --m-focus-shadow-warning: 0 0 0 2px
30
- color-mix(in srgb, var(--m-color-warning) 45%, transparent);
29
+ --m-focus-outline-width: 2px;
30
+ --m-focus-shadow: 0 0 0 var(--m-focus-outline-width) var(--m-color-control-outline);
31
+ --m-focus-shadow-danger: 0 0 0 var(--m-focus-outline-width)
32
+ var(--m-color-control-outline-danger);
33
+ --m-focus-shadow-warning: 0 0 0 var(--m-focus-outline-width)
34
+ var(--m-color-control-outline-warning);
31
35
  --m-color-success: #52c41a;
32
36
  --m-color-info: #1677ff;
33
37
  --m-color-warning: #faad14;
@@ -253,7 +257,7 @@
253
257
  animation-play-state: paused !important;
254
258
  }
255
259
 
256
- /* Global density: scales spacing + control heights (Vuetify-inspired, WD tokens) */
260
+ /* Global density: scales spacing + control heights (WD tokens) */
257
261
  :root,
258
262
  [data-m-density="comfortable"] {
259
263
  --m-density-scale: 1;
@@ -348,12 +352,15 @@
348
352
  --m-color-border: #424242;
349
353
  --m-color-split: #303030;
350
354
  --m-color-focus-ring: #3c89e8;
351
- --m-focus-shadow: 0 0 0 2px
352
- color-mix(in srgb, var(--m-color-primary) 50%, transparent);
353
- --m-focus-shadow-danger: 0 0 0 2px
354
- color-mix(in srgb, var(--m-color-danger) 50%, transparent);
355
- --m-focus-shadow-warning: 0 0 0 2px
356
- color-mix(in srgb, var(--m-color-warning) 50%, transparent);
355
+ /* Dark: getAlphaColor(color*Bg, colorBgContainer) */
356
+ --m-color-control-outline: rgba(23, 117, 249, 0.31);
357
+ --m-color-control-outline-danger: rgba(249, 75, 78, 0.31);
358
+ --m-color-control-outline-warning: rgba(250, 173, 20, 0.3);
359
+ --m-focus-shadow: 0 0 0 var(--m-focus-outline-width) var(--m-color-control-outline);
360
+ --m-focus-shadow-danger: 0 0 0 var(--m-focus-outline-width)
361
+ var(--m-color-control-outline-danger);
362
+ --m-focus-shadow-warning: 0 0 0 var(--m-focus-outline-width)
363
+ var(--m-color-control-outline-warning);
357
364
  /* Mid solids: keep ≥~4.5:1 with --m-color-on-emphasis on dark surfaces */
358
365
  --m-color-success: #49aa19;
359
366
  --m-color-info: #1668dc;
@@ -893,8 +900,10 @@
893
900
  width: 100%;
894
901
  }
895
902
 
903
+ .m-textarea--invalid:focus,
896
904
  .m-textarea--invalid:focus-visible,
897
905
  .m-select--invalid.m-select--open,
906
+ .m-select--invalid:focus,
898
907
  .m-select--invalid:focus-visible {
899
908
  border-color: var(--m-color-danger);
900
909
  box-shadow: var(--m-focus-shadow-danger);
@@ -1103,20 +1112,28 @@
1103
1112
  opacity: var(--m-opacity-disabled);
1104
1113
  }
1105
1114
 
1106
- /* Shared Naive-like hover/focus for remaining form triggers */
1115
+ /* Shared hover/focus for remaining form triggers */
1107
1116
  .m-inputotp__input:hover:not(:disabled):not(:focus),
1108
- .m-cascadeselect__trigger:hover:not(:disabled):not(:focus-visible),
1109
- .m-treeselect__trigger:hover:not(:disabled):not(:focus-visible),
1117
+ .m-cascadeselect:not(.m-cascadeselect--open)
1118
+ .m-cascadeselect__trigger:hover:not(:disabled):not(:focus):not(:focus-visible),
1119
+ .m-treeselect:not(.m-treeselect--open)
1120
+ .m-treeselect__trigger:hover:not(:disabled):not(:focus):not(:focus-visible),
1110
1121
  .m-inputcolor__text:hover:not(:disabled):not(:focus),
1111
- .m-inputtags:hover:not(.m-inputtags--disabled),
1112
- .m-togglebutton:hover:not(:disabled):not(.m-togglebutton--checked),
1113
- .m-inplace__display:hover {
1122
+ .m-inputtags:hover:not(.m-inputtags--disabled):not(:focus-within),
1123
+ .m-togglebutton:hover:not(:disabled):not(.m-togglebutton--checked):not(:focus-visible),
1124
+ .m-inplace__display:hover:not(:focus-visible) {
1114
1125
  border-color: var(--m-color-primary-hover);
1115
1126
  }
1116
1127
 
1128
+ .m-inputotp__input:focus,
1117
1129
  .m-inputotp__input:focus-visible,
1130
+ .m-cascadeselect--open .m-cascadeselect__trigger,
1131
+ .m-cascadeselect__trigger:focus,
1118
1132
  .m-cascadeselect__trigger:focus-visible,
1133
+ .m-treeselect--open .m-treeselect__trigger,
1134
+ .m-treeselect__trigger:focus,
1119
1135
  .m-treeselect__trigger:focus-visible,
1136
+ .m-inputcolor__text:focus,
1120
1137
  .m-inputcolor__text:focus-visible,
1121
1138
  .m-inputtags:focus-within,
1122
1139
  .m-togglebutton:focus-visible,
@@ -1125,13 +1142,15 @@
1125
1142
  .m-splitbutton__trigger:focus-visible,
1126
1143
  .m-inplace__display:focus-visible,
1127
1144
  .m-pagination__button:focus-visible {
1128
- border-color: var(--m-color-primary-hover);
1145
+ border-color: var(--m-color-primary);
1129
1146
  box-shadow: var(--m-focus-shadow);
1130
1147
  outline: none;
1131
1148
  }
1132
1149
 
1150
+ .m-inputotp--invalid .m-inputotp__input:focus,
1133
1151
  .m-inputotp--invalid .m-inputotp__input:focus-visible,
1134
1152
  .m-inputtags--invalid:focus-within,
1153
+ .m-inputcolor--invalid .m-inputcolor__text:focus,
1135
1154
  .m-inputcolor--invalid .m-inputcolor__text:focus-visible {
1136
1155
  border-color: var(--m-color-danger);
1137
1156
  box-shadow: var(--m-focus-shadow-danger);
@@ -1186,153 +1205,1322 @@
1186
1205
  animation: none !important;
1187
1206
  }
1188
1207
 
1189
- .m-icon {
1190
- color: currentColor;
1191
- display: inline-flex;
1192
- flex-shrink: 0;
1193
- height: 1rem;
1194
- line-height: 0;
1195
- vertical-align: middle;
1196
- width: 1rem;
1197
- }
1198
-
1199
- .m-icon svg {
1200
- display: block;
1201
- height: 100%;
1202
- width: 100%;
1203
- }
1204
-
1205
- .m-icon--sm,
1206
- .m-icon--small {
1207
- height: 0.875rem;
1208
- width: 0.875rem;
1209
- }
1210
-
1211
- .m-icon--md,
1212
- .m-icon--normal {
1213
- height: 1rem;
1214
- width: 1rem;
1215
- }
1216
-
1217
- .m-icon--lg,
1218
- .m-icon--large {
1219
- height: 1.25rem;
1220
- width: 1.25rem;
1221
- }
1222
-
1223
- .m-icon--spin svg {
1224
- animation: m-icon-spin var(--m-motion-spin-fast) linear infinite;
1225
- }
1226
-
1227
- @keyframes m-icon-spin {
1228
- to {
1229
- transform: rotate(360deg);
1230
- }
1231
- }
1232
-
1233
- :root[data-m-motion='none'] .m-icon--spin svg,
1234
- :root[data-m-motion='reduced'] .m-icon--spin svg {
1235
- animation: none;
1236
- }
1208
+ .m-button {
1209
+ --m-button-padding-x-small: var(--m-control-padding-x-small);
1210
+ --m-button-padding-x-medium: calc(
1211
+ var(--m-control-padding-x-medium) + var(--m-space-1)
1212
+ );
1213
+ --m-button-padding-x-large: calc(
1214
+ var(--m-control-padding-x-large) + var(--m-space-1)
1215
+ );
1216
+ --m-button-icon-stack-min-height: 3.25rem;
1217
+ --m-button-badge-min-width: 1.15rem;
1218
+ --m-button-spinner-size: 0.875rem;
1219
+ --m-button-icon-size: 1rem;
1220
+ --m-button-bg: var(--m-color-primary);
1221
+ --m-button-fg: var(--m-color-on-emphasis);
1222
+ --m-button-border: var(--m-color-primary);
1223
+ --m-button-hover-bg: var(--m-color-primary-hover);
1224
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1225
+ --m-button-hover-border: var(--m-color-primary-hover);
1226
+ --m-button-active-bg: var(--m-color-primary-active);
1227
+ align-items: center;
1228
+ background: var(--m-button-bg);
1229
+ border: var(--m-border-width) solid var(--m-button-border);
1230
+ border-radius: var(--m-radius-control);
1231
+ color: var(--m-button-fg);
1232
+ cursor: pointer;
1233
+ display: inline-flex;
1234
+ flex-direction: row;
1235
+ font-family: var(--m-font-sans);
1236
+ font-size: var(--m-control-font-medium);
1237
+ font-weight: 400;
1238
+ gap: var(--m-space-2);
1239
+ justify-content: center;
1240
+ line-height: 1;
1241
+ min-height: var(--m-control-height-medium);
1242
+ padding: 0 var(--m-button-padding-x-medium);
1243
+ position: relative;
1244
+ transition:
1245
+ background-color var(--m-motion-fast) var(--m-motion-ease),
1246
+ border-color var(--m-motion-fast) var(--m-motion-ease),
1247
+ color var(--m-motion-fast) var(--m-motion-ease),
1248
+ box-shadow var(--m-motion-fast) var(--m-motion-ease),
1249
+ opacity var(--m-motion-fast) var(--m-motion-ease),
1250
+ transform 160ms var(--m-motion-ease);
1251
+ vertical-align: middle;
1252
+ white-space: nowrap;
1253
+ }
1254
+
1255
+ @media (hover: hover) and (pointer: fine) {
1256
+ .m-button:hover:not(:disabled) {
1257
+ background: var(--m-button-hover-bg);
1258
+ border-color: var(--m-button-hover-border);
1259
+ color: var(--m-button-hover-fg);
1260
+ }
1261
+ }
1262
+
1263
+ .m-button:active:not(:disabled) {
1264
+ background: var(--m-button-active-bg);
1265
+ }
1266
+
1267
+ .m-button--press:active:not(:disabled) {
1268
+ transform: scale(0.97);
1269
+ }
1270
+
1271
+ /* Soft glow focus, not outline-offset ring */
1272
+ .m-button:focus {
1273
+ outline: none;
1274
+ }
1275
+
1276
+ .m-button:focus-visible {
1277
+ box-shadow: var(--m-focus-shadow);
1278
+ outline: none;
1279
+ }
1280
+
1281
+ .m-button:disabled {
1282
+ background: color-mix(in srgb, var(--m-color-text) 4%, var(--m-color-surface));
1283
+ border-color: var(--m-color-border);
1284
+ color: color-mix(in srgb, var(--m-color-text) 35%, var(--m-color-surface));
1285
+ cursor: not-allowed;
1286
+ opacity: 1;
1287
+ }
1288
+
1289
+ .m-button--text:disabled,
1290
+ .m-button--link:disabled,
1291
+ .m-button--ghost:disabled,
1292
+ .m-button--quaternary:disabled {
1293
+ background: transparent;
1294
+ border-color: transparent;
1295
+ }
1296
+
1297
+ .m-button--primary {
1298
+ --m-button-bg: var(--m-color-primary);
1299
+ --m-button-fg: var(--m-color-on-emphasis);
1300
+ --m-button-border: var(--m-color-primary);
1301
+ --m-button-hover-bg: var(--m-color-primary-hover);
1302
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1303
+ --m-button-hover-border: var(--m-color-primary-hover);
1304
+ --m-button-active-bg: var(--m-color-primary-active);
1305
+ }
1306
+
1307
+ .m-button--secondary {
1308
+ --m-button-bg: var(--m-color-surface);
1309
+ --m-button-fg: var(--m-color-text);
1310
+ --m-button-border: var(--m-color-border);
1311
+ --m-button-hover-bg: var(--m-color-surface);
1312
+ --m-button-hover-fg: var(--m-color-primary-hover);
1313
+ --m-button-hover-border: var(--m-color-primary-hover);
1314
+ --m-button-active-bg: var(--m-color-surface);
1315
+ }
1316
+
1317
+ .m-button--success {
1318
+ --m-button-bg: var(--m-color-success);
1319
+ --m-button-fg: var(--m-color-on-emphasis);
1320
+ --m-button-border: var(--m-color-success);
1321
+ --m-button-hover-bg: color-mix(
1322
+ in srgb,
1323
+ var(--m-color-success) 85%,
1324
+ black
1325
+ );
1326
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1327
+ --m-button-hover-border: color-mix(
1328
+ in srgb,
1329
+ var(--m-color-success) 85%,
1330
+ black
1331
+ );
1332
+ --m-button-active-bg: color-mix(
1333
+ in srgb,
1334
+ var(--m-color-success) 75%,
1335
+ black
1336
+ );
1337
+ }
1338
+
1339
+ .m-button--info {
1340
+ --m-button-bg: var(--m-color-info);
1341
+ --m-button-fg: var(--m-color-on-emphasis);
1342
+ --m-button-border: var(--m-color-info);
1343
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-info) 85%, black);
1344
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1345
+ --m-button-hover-border: color-mix(
1346
+ in srgb,
1347
+ var(--m-color-info) 85%,
1348
+ black
1349
+ );
1350
+ --m-button-active-bg: color-mix(in srgb, var(--m-color-info) 75%, black);
1351
+ }
1352
+
1353
+ .m-button--warn {
1354
+ --m-button-bg: var(--m-color-warn);
1355
+ --m-button-fg: var(--m-color-on-emphasis);
1356
+ --m-button-border: var(--m-color-warn);
1357
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-warn) 85%, black);
1358
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1359
+ --m-button-hover-border: color-mix(
1360
+ in srgb,
1361
+ var(--m-color-warn) 85%,
1362
+ black
1363
+ );
1364
+ --m-button-active-bg: color-mix(in srgb, var(--m-color-warn) 75%, black);
1365
+ }
1366
+
1367
+ .m-button--help {
1368
+ --m-button-bg: var(--m-color-help);
1369
+ --m-button-fg: var(--m-color-on-emphasis);
1370
+ --m-button-border: var(--m-color-help);
1371
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-help) 85%, black);
1372
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1373
+ --m-button-hover-border: color-mix(
1374
+ in srgb,
1375
+ var(--m-color-help) 85%,
1376
+ black
1377
+ );
1378
+ --m-button-active-bg: color-mix(in srgb, var(--m-color-help) 75%, black);
1379
+ }
1380
+
1381
+ .m-button--danger {
1382
+ --m-button-bg: var(--m-color-danger);
1383
+ --m-button-fg: var(--m-color-on-emphasis);
1384
+ --m-button-border: var(--m-color-danger);
1385
+ --m-button-hover-bg: color-mix(in srgb, var(--m-color-danger) 85%, black);
1386
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1387
+ --m-button-hover-border: color-mix(
1388
+ in srgb,
1389
+ var(--m-color-danger) 85%,
1390
+ black
1391
+ );
1392
+ --m-button-active-bg: color-mix(
1393
+ in srgb,
1394
+ var(--m-color-danger) 75%,
1395
+ black
1396
+ );
1397
+ }
1398
+
1399
+ .m-button--contrast {
1400
+ --m-button-bg: var(--m-color-contrast);
1401
+ --m-button-fg: var(--m-color-contrast-fg);
1402
+ --m-button-border: var(--m-color-contrast);
1403
+ --m-button-hover-bg: var(--m-color-contrast-hover);
1404
+ --m-button-hover-fg: var(--m-color-contrast-fg);
1405
+ --m-button-hover-border: var(--m-color-contrast-hover);
1406
+ --m-button-active-bg: var(--m-color-contrast-active);
1407
+ }
1408
+
1409
+ .m-button--outlined {
1410
+ --m-button-bg: transparent;
1411
+ --m-button-fg: var(--m-button-border);
1412
+ --m-button-hover-bg: color-mix(
1413
+ in srgb,
1414
+ var(--m-button-border) 10%,
1415
+ transparent
1416
+ );
1417
+ --m-button-hover-fg: var(--m-button-border);
1418
+ --m-button-hover-border: var(--m-button-border);
1419
+ --m-button-active-bg: color-mix(
1420
+ in srgb,
1421
+ var(--m-button-border) 16%,
1422
+ transparent
1423
+ );
1424
+ }
1425
+
1426
+ /* Idle matches outlined hover; hover/active deepen the tint. */
1427
+ .m-button--plain {
1428
+ --m-button-bg: color-mix(
1429
+ in srgb,
1430
+ var(--m-button-border) 10%,
1431
+ transparent
1432
+ );
1433
+ --m-button-fg: var(--m-button-border);
1434
+ --m-button-hover-bg: color-mix(
1435
+ in srgb,
1436
+ var(--m-button-border) 16%,
1437
+ transparent
1438
+ );
1439
+ --m-button-hover-fg: var(--m-button-border);
1440
+ --m-button-hover-border: var(--m-button-border);
1441
+ --m-button-active-bg: color-mix(
1442
+ in srgb,
1443
+ var(--m-button-border) 22%,
1444
+ transparent
1445
+ );
1446
+ }
1447
+
1448
+ .m-button--secondary.m-button--outlined,
1449
+ .m-button--secondary.m-button--plain {
1450
+ --m-button-border: var(--m-color-border);
1451
+ --m-button-fg: var(--m-color-text);
1452
+ --m-button-hover-fg: var(--m-color-text);
1453
+ }
1454
+
1455
+ .m-button--text,
1456
+ .m-button--link {
1457
+ --m-button-bg: transparent;
1458
+ --m-button-border: transparent;
1459
+ --m-button-fg: var(--m-color-primary);
1460
+ --m-button-hover-fg: var(--m-color-primary);
1461
+ --m-button-hover-border: transparent;
1462
+ }
1463
+
1464
+ .m-button--text {
1465
+ --m-button-hover-bg: color-mix(
1466
+ in srgb,
1467
+ var(--m-color-primary) 10%,
1468
+ transparent
1469
+ );
1470
+ --m-button-active-bg: color-mix(
1471
+ in srgb,
1472
+ var(--m-color-primary) 16%,
1473
+ transparent
1474
+ );
1475
+ }
1476
+
1477
+ .m-button--link {
1478
+ --m-button-bg: transparent;
1479
+ --m-button-hover-bg: transparent;
1480
+ --m-button-active-bg: transparent;
1481
+ height: auto;
1482
+ min-height: 0;
1483
+ padding: 0;
1484
+ }
1485
+
1486
+ .m-button--link.m-button--link-underline:hover:not(:disabled) {
1487
+ text-decoration: underline;
1488
+ }
1489
+
1490
+ .m-button--link:not(.m-button--link-underline):hover:not(:disabled) {
1491
+ opacity: 0.8;
1492
+ }
1493
+
1494
+ .m-button--secondary.m-button--text {
1495
+ --m-button-fg: var(--m-color-text-muted);
1496
+ --m-button-hover-bg: color-mix(
1497
+ in srgb,
1498
+ var(--m-color-text-muted) 12%,
1499
+ transparent
1500
+ );
1501
+ --m-button-hover-fg: var(--m-color-text);
1502
+ }
1503
+
1504
+ .m-button--secondary.m-button--link {
1505
+ --m-button-fg: var(--m-color-text-muted);
1506
+ --m-button-hover-fg: var(--m-color-text);
1507
+ }
1508
+
1509
+ .m-button--success.m-button--text,
1510
+ .m-button--success.m-button--outlined {
1511
+ --m-button-fg: var(--m-color-success);
1512
+ --m-button-border: var(--m-color-success);
1513
+ --m-button-hover-bg: color-mix(
1514
+ in srgb,
1515
+ var(--m-color-success) 10%,
1516
+ transparent
1517
+ );
1518
+ --m-button-hover-fg: var(--m-color-success);
1519
+ --m-button-hover-border: var(--m-color-success);
1520
+ }
1521
+
1522
+ .m-button--success.m-button--link {
1523
+ --m-button-fg: var(--m-color-success);
1524
+ --m-button-hover-fg: var(--m-color-success);
1525
+ }
1526
+
1527
+ .m-button--info.m-button--text,
1528
+ .m-button--info.m-button--outlined {
1529
+ --m-button-fg: var(--m-color-info);
1530
+ --m-button-border: var(--m-color-info);
1531
+ --m-button-hover-bg: color-mix(
1532
+ in srgb,
1533
+ var(--m-color-info) 10%,
1534
+ transparent
1535
+ );
1536
+ --m-button-hover-fg: var(--m-color-info);
1537
+ --m-button-hover-border: var(--m-color-info);
1538
+ }
1539
+
1540
+ .m-button--info.m-button--link {
1541
+ --m-button-fg: var(--m-color-info);
1542
+ --m-button-hover-fg: var(--m-color-info);
1543
+ }
1544
+
1545
+ .m-button--warn.m-button--text,
1546
+ .m-button--warn.m-button--outlined {
1547
+ --m-button-fg: var(--m-color-warn);
1548
+ --m-button-border: var(--m-color-warn);
1549
+ --m-button-hover-bg: color-mix(
1550
+ in srgb,
1551
+ var(--m-color-warn) 10%,
1552
+ transparent
1553
+ );
1554
+ --m-button-hover-fg: var(--m-color-warn);
1555
+ --m-button-hover-border: var(--m-color-warn);
1556
+ }
1557
+
1558
+ .m-button--warn.m-button--link {
1559
+ --m-button-fg: var(--m-color-warn);
1560
+ --m-button-hover-fg: var(--m-color-warn);
1561
+ }
1562
+
1563
+ .m-button--help.m-button--text,
1564
+ .m-button--help.m-button--outlined {
1565
+ --m-button-fg: var(--m-color-help);
1566
+ --m-button-border: var(--m-color-help);
1567
+ --m-button-hover-bg: color-mix(
1568
+ in srgb,
1569
+ var(--m-color-help) 10%,
1570
+ transparent
1571
+ );
1572
+ --m-button-hover-fg: var(--m-color-help);
1573
+ --m-button-hover-border: var(--m-color-help);
1574
+ }
1575
+
1576
+ .m-button--help.m-button--link {
1577
+ --m-button-fg: var(--m-color-help);
1578
+ --m-button-hover-fg: var(--m-color-help);
1579
+ }
1580
+
1581
+ .m-button--danger.m-button--text,
1582
+ .m-button--danger.m-button--outlined {
1583
+ --m-button-fg: var(--m-color-danger);
1584
+ --m-button-border: var(--m-color-danger);
1585
+ --m-button-hover-bg: color-mix(
1586
+ in srgb,
1587
+ var(--m-color-danger) 10%,
1588
+ transparent
1589
+ );
1590
+ --m-button-hover-fg: var(--m-color-danger);
1591
+ --m-button-hover-border: var(--m-color-danger);
1592
+ }
1593
+
1594
+ .m-button--danger.m-button--link {
1595
+ --m-button-fg: var(--m-color-danger);
1596
+ --m-button-hover-fg: var(--m-color-danger);
1597
+ }
1598
+
1599
+ .m-button--contrast.m-button--text,
1600
+ .m-button--contrast.m-button--outlined {
1601
+ --m-button-fg: var(--m-color-contrast);
1602
+ --m-button-border: var(--m-color-contrast);
1603
+ --m-button-hover-bg: color-mix(
1604
+ in srgb,
1605
+ var(--m-color-contrast) 10%,
1606
+ transparent
1607
+ );
1608
+ --m-button-hover-fg: var(--m-color-contrast);
1609
+ --m-button-hover-border: var(--m-color-contrast);
1610
+ }
1611
+
1612
+ .m-button--contrast.m-button--link {
1613
+ --m-button-fg: var(--m-color-contrast);
1614
+ --m-button-hover-fg: var(--m-color-contrast);
1615
+ }
1616
+
1617
+ .m-button--plain.m-button--text,
1618
+ .m-button--plain.m-button--outlined {
1619
+ --m-button-bg: transparent;
1620
+ --m-button-fg: var(--m-color-text-muted);
1621
+ --m-button-border: var(--m-color-border);
1622
+ --m-button-hover-bg: color-mix(
1623
+ in srgb,
1624
+ var(--m-color-text-muted) 12%,
1625
+ transparent
1626
+ );
1627
+ --m-button-hover-fg: var(--m-color-text);
1628
+ --m-button-hover-border: var(--m-color-border);
1629
+ --m-button-active-bg: color-mix(
1630
+ in srgb,
1631
+ var(--m-color-text-muted) 18%,
1632
+ transparent
1633
+ );
1634
+ }
1635
+
1636
+ .m-button--plain.m-button--link {
1637
+ --m-button-fg: var(--m-color-text-muted);
1638
+ --m-button-hover-fg: var(--m-color-text);
1639
+ }
1640
+
1641
+ .m-button--ghost {
1642
+ --m-button-bg: color-mix(
1643
+ in srgb,
1644
+ var(--m-color-primary) 10%,
1645
+ transparent
1646
+ );
1647
+ --m-button-border: transparent;
1648
+ --m-button-fg: var(--m-color-primary);
1649
+ --m-button-hover-bg: color-mix(
1650
+ in srgb,
1651
+ var(--m-color-primary) 16%,
1652
+ transparent
1653
+ );
1654
+ --m-button-hover-fg: var(--m-color-primary);
1655
+ --m-button-hover-border: transparent;
1656
+ --m-button-active-bg: color-mix(
1657
+ in srgb,
1658
+ var(--m-color-primary) 22%,
1659
+ transparent
1660
+ );
1661
+ }
1662
+
1663
+ .m-button--secondary.m-button--ghost {
1664
+ --m-button-bg: color-mix(
1665
+ in srgb,
1666
+ var(--m-color-text-muted) 12%,
1667
+ transparent
1668
+ );
1669
+ --m-button-fg: var(--m-color-text);
1670
+ --m-button-hover-bg: color-mix(
1671
+ in srgb,
1672
+ var(--m-color-text-muted) 18%,
1673
+ transparent
1674
+ );
1675
+ --m-button-hover-fg: var(--m-color-text);
1676
+ --m-button-active-bg: color-mix(
1677
+ in srgb,
1678
+ var(--m-color-text-muted) 24%,
1679
+ transparent
1680
+ );
1681
+ }
1682
+
1683
+ .m-button--success.m-button--ghost {
1684
+ --m-button-bg: color-mix(
1685
+ in srgb,
1686
+ var(--m-color-success) 10%,
1687
+ transparent
1688
+ );
1689
+ --m-button-fg: var(--m-color-success);
1690
+ --m-button-hover-bg: color-mix(
1691
+ in srgb,
1692
+ var(--m-color-success) 16%,
1693
+ transparent
1694
+ );
1695
+ --m-button-hover-fg: var(--m-color-success);
1696
+ --m-button-active-bg: color-mix(
1697
+ in srgb,
1698
+ var(--m-color-success) 22%,
1699
+ transparent
1700
+ );
1701
+ }
1702
+
1703
+ .m-button--info.m-button--ghost {
1704
+ --m-button-bg: color-mix(
1705
+ in srgb,
1706
+ var(--m-color-info) 10%,
1707
+ transparent
1708
+ );
1709
+ --m-button-fg: var(--m-color-info);
1710
+ --m-button-hover-bg: color-mix(
1711
+ in srgb,
1712
+ var(--m-color-info) 16%,
1713
+ transparent
1714
+ );
1715
+ --m-button-hover-fg: var(--m-color-info);
1716
+ --m-button-active-bg: color-mix(
1717
+ in srgb,
1718
+ var(--m-color-info) 22%,
1719
+ transparent
1720
+ );
1721
+ }
1722
+
1723
+ .m-button--warn.m-button--ghost {
1724
+ --m-button-bg: color-mix(
1725
+ in srgb,
1726
+ var(--m-color-warn) 10%,
1727
+ transparent
1728
+ );
1729
+ --m-button-fg: var(--m-color-warn);
1730
+ --m-button-hover-bg: color-mix(
1731
+ in srgb,
1732
+ var(--m-color-warn) 16%,
1733
+ transparent
1734
+ );
1735
+ --m-button-hover-fg: var(--m-color-warn);
1736
+ --m-button-active-bg: color-mix(
1737
+ in srgb,
1738
+ var(--m-color-warn) 22%,
1739
+ transparent
1740
+ );
1741
+ }
1742
+
1743
+ .m-button--help.m-button--ghost {
1744
+ --m-button-bg: color-mix(
1745
+ in srgb,
1746
+ var(--m-color-help) 10%,
1747
+ transparent
1748
+ );
1749
+ --m-button-fg: var(--m-color-help);
1750
+ --m-button-hover-bg: color-mix(
1751
+ in srgb,
1752
+ var(--m-color-help) 16%,
1753
+ transparent
1754
+ );
1755
+ --m-button-hover-fg: var(--m-color-help);
1756
+ --m-button-active-bg: color-mix(
1757
+ in srgb,
1758
+ var(--m-color-help) 22%,
1759
+ transparent
1760
+ );
1761
+ }
1762
+
1763
+ .m-button--danger.m-button--ghost {
1764
+ --m-button-bg: color-mix(
1765
+ in srgb,
1766
+ var(--m-color-danger) 10%,
1767
+ transparent
1768
+ );
1769
+ --m-button-fg: var(--m-color-danger);
1770
+ --m-button-hover-bg: color-mix(
1771
+ in srgb,
1772
+ var(--m-color-danger) 16%,
1773
+ transparent
1774
+ );
1775
+ --m-button-hover-fg: var(--m-color-danger);
1776
+ --m-button-active-bg: color-mix(
1777
+ in srgb,
1778
+ var(--m-color-danger) 22%,
1779
+ transparent
1780
+ );
1781
+ }
1782
+
1783
+ .m-button--contrast.m-button--ghost {
1784
+ --m-button-bg: color-mix(
1785
+ in srgb,
1786
+ var(--m-color-contrast) 10%,
1787
+ transparent
1788
+ );
1789
+ --m-button-fg: var(--m-color-contrast);
1790
+ --m-button-hover-bg: color-mix(
1791
+ in srgb,
1792
+ var(--m-color-contrast) 16%,
1793
+ transparent
1794
+ );
1795
+ --m-button-hover-fg: var(--m-color-contrast);
1796
+ --m-button-active-bg: color-mix(
1797
+ in srgb,
1798
+ var(--m-color-contrast) 22%,
1799
+ transparent
1800
+ );
1801
+ }
1802
+
1803
+ .m-button--quaternary {
1804
+ --m-button-bg: transparent;
1805
+ --m-button-border: transparent;
1806
+ --m-button-fg: var(--m-color-text);
1807
+ --m-button-hover-bg: color-mix(
1808
+ in srgb,
1809
+ var(--m-color-text-muted) 10%,
1810
+ transparent
1811
+ );
1812
+ --m-button-hover-fg: var(--m-color-text);
1813
+ --m-button-hover-border: transparent;
1814
+ --m-button-active-bg: color-mix(
1815
+ in srgb,
1816
+ var(--m-color-text-muted) 16%,
1817
+ transparent
1818
+ );
1819
+ }
1820
+
1821
+ .m-button--custom {
1822
+ --m-button-bg: var(--m-button-color);
1823
+ --m-button-fg: var(--m-color-on-emphasis);
1824
+ --m-button-border: var(--m-button-color);
1825
+ --m-button-hover-bg: color-mix(in srgb, var(--m-button-color) 85%, black);
1826
+ --m-button-hover-fg: var(--m-color-on-emphasis);
1827
+ --m-button-hover-border: color-mix(
1828
+ in srgb,
1829
+ var(--m-button-color) 85%,
1830
+ black
1831
+ );
1832
+ --m-button-active-bg: color-mix(
1833
+ in srgb,
1834
+ var(--m-button-color) 75%,
1835
+ black
1836
+ );
1837
+ }
1838
+
1839
+ .m-button--custom.m-button--outlined {
1840
+ --m-button-bg: transparent;
1841
+ --m-button-fg: var(--m-button-color);
1842
+ --m-button-border: var(--m-button-color);
1843
+ --m-button-hover-bg: color-mix(
1844
+ in srgb,
1845
+ var(--m-button-color) 12%,
1846
+ transparent
1847
+ );
1848
+ --m-button-hover-fg: var(--m-button-color);
1849
+ --m-button-hover-border: var(--m-button-color);
1850
+ }
1851
+
1852
+ .m-button--custom.m-button--ghost {
1853
+ --m-button-bg: color-mix(
1854
+ in srgb,
1855
+ var(--m-button-color) 10%,
1856
+ transparent
1857
+ );
1858
+ --m-button-fg: var(--m-button-color);
1859
+ --m-button-border: transparent;
1860
+ --m-button-hover-bg: color-mix(
1861
+ in srgb,
1862
+ var(--m-button-color) 16%,
1863
+ transparent
1864
+ );
1865
+ --m-button-hover-fg: var(--m-button-color);
1866
+ --m-button-hover-border: transparent;
1867
+ --m-button-active-bg: color-mix(
1868
+ in srgb,
1869
+ var(--m-button-color) 22%,
1870
+ transparent
1871
+ );
1872
+ }
1873
+
1874
+ .m-button--custom.m-button--text,
1875
+ .m-button--custom.m-button--quaternary {
1876
+ --m-button-bg: transparent;
1877
+ --m-button-fg: var(--m-button-color);
1878
+ --m-button-border: transparent;
1879
+ --m-button-hover-bg: color-mix(
1880
+ in srgb,
1881
+ var(--m-button-color) 12%,
1882
+ transparent
1883
+ );
1884
+ --m-button-hover-fg: var(--m-button-color);
1885
+ --m-button-hover-border: transparent;
1886
+ }
1887
+
1888
+ .m-button--custom.m-button--plain {
1889
+ --m-button-bg: color-mix(
1890
+ in srgb,
1891
+ var(--m-button-color) 10%,
1892
+ transparent
1893
+ );
1894
+ --m-button-fg: var(--m-button-color);
1895
+ --m-button-border: var(--m-button-color);
1896
+ --m-button-hover-bg: color-mix(
1897
+ in srgb,
1898
+ var(--m-button-color) 16%,
1899
+ transparent
1900
+ );
1901
+ --m-button-hover-fg: var(--m-button-color);
1902
+ --m-button-hover-border: var(--m-button-color);
1903
+ --m-button-active-bg: color-mix(
1904
+ in srgb,
1905
+ var(--m-button-color) 22%,
1906
+ transparent
1907
+ );
1908
+ }
1909
+
1910
+ .m-button--custom.m-button--link {
1911
+ --m-button-bg: transparent;
1912
+ --m-button-fg: var(--m-button-color);
1913
+ --m-button-border: transparent;
1914
+ --m-button-hover-bg: transparent;
1915
+ --m-button-hover-fg: var(--m-button-color);
1916
+ --m-button-hover-border: transparent;
1917
+ --m-button-active-bg: transparent;
1918
+ }
1919
+
1920
+ .m-button-group {
1921
+ display: inline-flex;
1922
+ vertical-align: middle;
1923
+ }
1924
+
1925
+ .m-button-group--fluid {
1926
+ display: flex;
1927
+ width: 100%;
1928
+ }
1929
+
1930
+ .m-button-group--fluid > .m-button {
1931
+ flex: 1;
1932
+ }
1933
+
1934
+ .m-button-group > .m-button {
1935
+ border-radius: 0;
1936
+ margin: 0;
1937
+ }
1938
+
1939
+ .m-button-group > .m-button + .m-button {
1940
+ margin-left: calc(var(--m-border-width) * -1);
1941
+ }
1942
+
1943
+ .m-button-group > .m-button:hover,
1944
+ .m-button-group > .m-button:focus-visible,
1945
+ .m-button-group > .m-button:active {
1946
+ position: relative;
1947
+ z-index: 1;
1948
+ }
1949
+
1950
+ .m-button-group > .m-button:first-child {
1951
+ border-top-left-radius: var(--m-radius-control);
1952
+ border-bottom-left-radius: var(--m-radius-control);
1953
+ }
1954
+
1955
+ .m-button-group > .m-button:last-child {
1956
+ border-top-right-radius: var(--m-radius-control);
1957
+ border-bottom-right-radius: var(--m-radius-control);
1958
+ }
1959
+
1960
+ .m-button--raised {
1961
+ box-shadow: var(--m-shadow-raised);
1962
+ }
1963
+
1964
+ .m-button--raised:focus-visible {
1965
+ box-shadow: var(--m-focus-shadow), var(--m-shadow-raised);
1966
+ }
1967
+
1968
+ .m-button--rounded {
1969
+ border-radius: var(--m-radius-full);
1970
+ }
1971
+
1972
+ .m-button--shape-circle {
1973
+ border-radius: var(--m-radius-full);
1974
+ min-width: var(--m-control-height-medium);
1975
+ padding-inline: 0;
1976
+ width: var(--m-control-height-medium);
1977
+ }
1978
+
1979
+ .m-button--shape-circle.m-button--small {
1980
+ min-width: var(--m-control-height-small);
1981
+ width: var(--m-control-height-small);
1982
+ }
1983
+
1984
+ .m-button--shape-circle.m-button--large {
1985
+ min-width: var(--m-control-height-large);
1986
+ width: var(--m-control-height-large);
1987
+ }
1988
+
1989
+ .m-button--shape-round {
1990
+ border-radius: var(--m-radius-full);
1991
+ padding-inline: calc(var(--m-button-padding-x-medium) + var(--m-space-2));
1992
+ }
1993
+
1994
+ .m-button--shape-square {
1995
+ border-radius: 0;
1996
+ }
1997
+
1998
+ .m-button--dashed {
1999
+ background: var(--m-color-surface);
2000
+ border-style: dashed;
2001
+ color: var(--m-color-text);
2002
+ }
2003
+
2004
+ .m-button--dashed:not(:disabled):hover {
2005
+ border-color: var(--m-color-primary-hover);
2006
+ color: var(--m-color-primary-hover);
2007
+ }
2008
+
2009
+ .m-button--primary.m-button--dashed {
2010
+ --m-button-bg: var(--m-color-surface);
2011
+ --m-button-fg: var(--m-color-primary);
2012
+ --m-button-border: var(--m-color-primary);
2013
+ --m-button-hover-bg: var(--m-color-surface);
2014
+ --m-button-hover-fg: var(--m-color-primary-hover);
2015
+ --m-button-hover-border: var(--m-color-primary-hover);
2016
+ --m-button-active-bg: var(--m-color-surface);
2017
+ }
2018
+
2019
+ .m-button--secondary.m-button--dashed {
2020
+ --m-button-bg: var(--m-color-surface);
2021
+ --m-button-fg: var(--m-color-text);
2022
+ --m-button-border: var(--m-color-border);
2023
+ --m-button-hover-bg: var(--m-color-surface);
2024
+ --m-button-hover-fg: var(--m-color-primary-hover);
2025
+ --m-button-hover-border: var(--m-color-primary-hover);
2026
+ }
2027
+
2028
+ .m-button--icon-only {
2029
+ gap: 0;
2030
+ min-width: var(--m-control-height-medium);
2031
+ padding: 0;
2032
+ width: var(--m-control-height-medium);
2033
+ }
2034
+
2035
+ .m-button--icon-only.m-button--small {
2036
+ min-width: var(--m-control-height-small);
2037
+ width: var(--m-control-height-small);
2038
+ }
2039
+
2040
+ .m-button--icon-only.m-button--large {
2041
+ min-width: var(--m-control-height-large);
2042
+ width: var(--m-control-height-large);
2043
+ }
2044
+
2045
+ .m-button--icon-right {
2046
+ flex-direction: row-reverse;
2047
+ }
2048
+
2049
+ .m-button--icon-top {
2050
+ flex-direction: column;
2051
+ min-height: var(--m-button-icon-stack-min-height);
2052
+ padding-block: var(--m-space-2);
2053
+ }
2054
+
2055
+ .m-button--icon-bottom {
2056
+ flex-direction: column-reverse;
2057
+ min-height: var(--m-button-icon-stack-min-height);
2058
+ padding-block: var(--m-space-2);
2059
+ }
2060
+
2061
+ .m-button--fluid {
2062
+ display: flex;
2063
+ width: 100%;
2064
+ }
2065
+
2066
+ .m-button--small {
2067
+ --m-button-icon-size: 0.875rem;
2068
+ font-size: var(--m-control-font-small);
2069
+ min-height: var(--m-control-height-small);
2070
+ padding: 0 var(--m-button-padding-x-small);
2071
+ }
2072
+
2073
+ .m-button--large {
2074
+ --m-button-icon-size: 1.25rem;
2075
+ font-size: var(--m-control-font-large);
2076
+ min-height: var(--m-control-height-large);
2077
+ padding: 0 var(--m-button-padding-x-large);
2078
+ }
2079
+
2080
+ .m-button__icon,
2081
+ .m-button__label {
2082
+ align-items: center;
2083
+ display: inline-flex;
2084
+ justify-content: center;
2085
+ }
2086
+
2087
+ .m-button__icon,
2088
+ .m-button__label,
2089
+ .m-button__badge {
2090
+ position: relative;
2091
+ z-index: 1;
2092
+ }
2093
+
2094
+ .m-button__ripple {
2095
+ border-radius: inherit;
2096
+ inset: 0;
2097
+ overflow: hidden;
2098
+ pointer-events: none;
2099
+ position: absolute;
2100
+ z-index: 0;
2101
+ }
2102
+
2103
+ .m-button__ripple-wave {
2104
+ background: currentColor;
2105
+ border-radius: var(--m-radius-full);
2106
+ opacity: 0;
2107
+ pointer-events: none;
2108
+ position: absolute;
2109
+ transform: scale(0);
2110
+ will-change: transform, opacity;
2111
+ }
2112
+
2113
+ /* Used only when Web Animations API is unavailable. */
2114
+ .m-button__ripple-wave--fallback {
2115
+ animation: m-button-ripple 560ms var(--m-motion-ease) forwards;
2116
+ }
2117
+
2118
+ @keyframes m-button-ripple {
2119
+ 0% {
2120
+ opacity: 0.42;
2121
+ transform: scale(0);
2122
+ }
2123
+ 55% {
2124
+ opacity: 0.22;
2125
+ transform: scale(0.55);
2126
+ }
2127
+ 100% {
2128
+ opacity: 0;
2129
+ transform: scale(1);
2130
+ }
2131
+ }
2132
+
2133
+ .m-button__icon {
2134
+ flex: 0 0 auto;
2135
+ width: var(--m-button-icon-size);
2136
+ height: var(--m-button-icon-size);
2137
+ line-height: 0;
2138
+ }
2139
+
2140
+ .m-button__icon :is(.m-icon, .m-button__icon-graphic, svg) {
2141
+ display: block;
2142
+ flex-shrink: 0;
2143
+ width: 100%;
2144
+ height: 100%;
2145
+ }
2146
+
2147
+ .m-button__icon .m-icon {
2148
+ max-width: 100%;
2149
+ max-height: 100%;
2150
+ }
2151
+
2152
+ .m-button__badge {
2153
+ align-items: center;
2154
+ background: var(--m-color-contrast);
2155
+ border-radius: var(--m-radius-full);
2156
+ color: var(--m-color-contrast-fg);
2157
+ display: inline-flex;
2158
+ font-size: var(--m-font-size-xs);
2159
+ font-weight: 700;
2160
+ justify-content: center;
2161
+ line-height: 1;
2162
+ margin-inline-start: var(--m-space-1);
2163
+ min-width: var(--m-button-badge-min-width);
2164
+ padding: var(--m-space-1) var(--m-space-2);
2165
+ }
2166
+
2167
+ .m-button__badge--secondary {
2168
+ background: color-mix(
2169
+ in srgb,
2170
+ var(--m-color-text-muted) 25%,
2171
+ var(--m-color-surface)
2172
+ );
2173
+ color: var(--m-color-text);
2174
+ }
2175
+
2176
+ .m-button__badge--success {
2177
+ background: var(--m-color-success);
2178
+ color: var(--m-color-on-emphasis);
2179
+ }
2180
+
2181
+ .m-button__badge--info {
2182
+ background: var(--m-color-info);
2183
+ color: var(--m-color-on-emphasis);
2184
+ }
2185
+
2186
+ .m-button__badge--warn {
2187
+ background: var(--m-color-warn);
2188
+ color: var(--m-color-on-emphasis);
2189
+ }
2190
+
2191
+ .m-button__badge--danger {
2192
+ background: var(--m-color-danger);
2193
+ color: var(--m-color-on-emphasis);
2194
+ }
2195
+
2196
+ .m-button__badge--contrast {
2197
+ background: var(--m-color-contrast);
2198
+ color: var(--m-color-contrast-fg);
2199
+ }
2200
+
2201
+ .m-button__spinner {
2202
+ animation: m-button-spin var(--m-motion-spin-fast) linear infinite;
2203
+ border: 2px solid currentColor;
2204
+ border-right-color: transparent;
2205
+ border-radius: var(--m-radius-full);
2206
+ height: var(--m-button-spinner-size);
2207
+ width: var(--m-button-spinner-size);
2208
+ }
2209
+
2210
+ @keyframes m-button-spin {
2211
+ to {
2212
+ transform: rotate(360deg);
2213
+ }
2214
+ }
2215
+
2216
+ [data-m-motion="reduced"] .m-button__spinner,
2217
+ [data-m-motion="none"] .m-button__spinner {
2218
+ animation: none;
2219
+ }
2220
+
2221
+ [data-m-motion="none"] .m-button__ripple-wave {
2222
+ display: none;
2223
+ }
1237
2224
 
1238
2225
  /* —— Media: Carousel —— */
1239
2226
  .m-carousel {
1240
- --m-carousel-indicator-size: 0.45rem;
1241
- --m-carousel-gap: var(--m-space-2);
1242
- align-items: center;
1243
- display: flex;
1244
- gap: var(--m-space-2);
2227
+ --m-carousel-dot-size: 0.5rem;
2228
+ --m-carousel-dot-line-width: 1rem;
2229
+ --m-carousel-dot-line-width-active: 1.75rem;
2230
+ --m-carousel-dot-line-thickness: 0.25rem;
2231
+ --m-carousel-duration: 300ms;
2232
+ --m-carousel-gap: 0px;
2233
+ --m-carousel-arrow-inset: var(--m-space-3);
2234
+ --m-carousel-dots-inset: var(--m-space-3);
2235
+ box-sizing: border-box;
2236
+ display: block;
2237
+ height: 100%;
2238
+ max-width: 100%;
2239
+ min-width: 0;
2240
+ outline: none;
2241
+ overflow: hidden;
2242
+ position: relative;
2243
+ touch-action: pan-y;
1245
2244
  width: 100%;
1246
2245
  }
1247
2246
 
2247
+ .m-carousel--vertical {
2248
+ touch-action: pan-x;
2249
+ }
2250
+
1248
2251
  .m-carousel__viewport {
1249
- margin-inline: calc(var(--m-carousel-gap) / -2);
2252
+ height: 100%;
1250
2253
  overflow: hidden;
1251
- touch-action: pan-y;
1252
2254
  width: 100%;
1253
2255
  }
1254
2256
 
1255
- .m-carousel__track {
1256
- --m-carousel-page: 0;
1257
- --m-carousel-count: 1;
1258
- --m-carousel-visible: 1;
2257
+ .m-carousel__slides {
1259
2258
  display: flex;
1260
- transform: translate3d(
1261
- calc(-100% * var(--m-carousel-page) / var(--m-carousel-count)),
1262
- 0,
1263
- 0
1264
- );
1265
- transition: transform var(--m-motion-normal) var(--m-motion-ease);
1266
- width: calc(100% * var(--m-carousel-count) / var(--m-carousel-visible));
2259
+ gap: var(--m-carousel-gap);
2260
+ height: 100%;
2261
+ transition: transform var(--m-carousel-duration) var(--m-motion-ease);
1267
2262
  will-change: transform;
1268
2263
  }
1269
2264
 
1270
- .m-carousel__track--instant {
2265
+ .m-carousel__slides--instant {
1271
2266
  transition: none;
1272
2267
  }
1273
2268
 
1274
- .m-carousel__item {
2269
+ .m-carousel--vertical .m-carousel__slides {
2270
+ flex-direction: column;
2271
+ }
2272
+
2273
+ .m-carousel__slide {
1275
2274
  box-sizing: border-box;
1276
- flex: 0 0 calc(100% / var(--m-carousel-count));
2275
+ flex-shrink: 0;
2276
+ height: 100%;
1277
2277
  min-width: 0;
1278
- padding-inline: calc(var(--m-carousel-gap) / 2);
2278
+ outline: none;
2279
+ overflow: hidden;
2280
+ position: relative;
2281
+ width: 100%;
1279
2282
  }
1280
2283
 
1281
- .m-carousel__main {
1282
- display: flex;
1283
- flex: 1;
1284
- flex-direction: column;
1285
- gap: var(--m-space-2);
1286
- min-width: 0;
2284
+ .m-carousel__slide-content {
2285
+ height: 100%;
2286
+ width: 100%;
2287
+ }
2288
+
2289
+ .m-carousel__slide-content > img {
2290
+ display: block;
2291
+ height: 100%;
2292
+ object-fit: cover;
2293
+ width: 100%;
2294
+ }
2295
+
2296
+ /* fade */
2297
+ .m-carousel--fade .m-carousel__slides {
2298
+ display: block;
2299
+ height: 100%;
2300
+ position: relative;
2301
+ transform: none !important;
2302
+ width: 100%;
2303
+ }
2304
+
2305
+ .m-carousel--fade .m-carousel__slide {
2306
+ inset: 0;
2307
+ opacity: 0;
2308
+ pointer-events: none;
2309
+ position: absolute;
2310
+ transition: opacity var(--m-carousel-duration) var(--m-motion-ease);
2311
+ width: 100%;
2312
+ }
2313
+
2314
+ .m-carousel--fade .m-carousel__slide--current {
2315
+ height: 100%;
2316
+ opacity: 1;
2317
+ pointer-events: auto;
2318
+ position: relative;
2319
+ width: 100%;
1287
2320
  }
1288
2321
 
1289
- .m-carousel__indicators {
2322
+ /* card */
2323
+ .m-carousel--card .m-carousel__slides {
2324
+ height: 100%;
2325
+ perspective: 1000px;
2326
+ position: relative;
2327
+ transform: none !important;
2328
+ width: 100%;
2329
+ }
2330
+
2331
+ .m-carousel--card .m-carousel__slide {
2332
+ left: 50%;
2333
+ opacity: 0;
2334
+ position: absolute;
2335
+ top: 0;
2336
+ transform: translateX(-50%) translateZ(-400px);
2337
+ transition:
2338
+ opacity var(--m-carousel-duration) var(--m-motion-ease),
2339
+ transform var(--m-carousel-duration) var(--m-motion-ease);
2340
+ width: 60%;
2341
+ }
2342
+
2343
+ .m-carousel--card .m-carousel__slide--current {
2344
+ opacity: 1;
2345
+ transform: translateX(-50%) translateZ(0);
2346
+ z-index: 2;
2347
+ }
2348
+
2349
+ .m-carousel--card .m-carousel__slide--prev {
2350
+ opacity: 0.45;
2351
+ transform: translateX(-100%) translateZ(-200px);
2352
+ z-index: 1;
2353
+ }
2354
+
2355
+ .m-carousel--card .m-carousel__slide--next {
2356
+ opacity: 0.45;
2357
+ transform: translateX(0%) translateZ(-200px);
2358
+ z-index: 1;
2359
+ }
2360
+
2361
+ .m-carousel--card.m-carousel--vertical .m-carousel__slide {
2362
+ left: 0;
2363
+ top: 50%;
2364
+ transform: translateY(-50%) translateZ(-400px);
2365
+ width: 100%;
2366
+ }
2367
+
2368
+ .m-carousel--card.m-carousel--vertical .m-carousel__slide--current {
2369
+ transform: translateY(-50%) translateZ(0);
2370
+ }
2371
+
2372
+ .m-carousel--card.m-carousel--vertical .m-carousel__slide--prev {
2373
+ transform: translateY(-100%) translateZ(-200px);
2374
+ }
2375
+
2376
+ .m-carousel--card.m-carousel--vertical .m-carousel__slide--next {
2377
+ transform: translateY(0%) translateZ(-200px);
2378
+ }
2379
+
2380
+ /* arrows */
2381
+ .m-carousel__arrows {
2382
+ display: contents;
2383
+ }
2384
+
2385
+ .m-carousel__arrow {
2386
+ backdrop-filter: blur(6px);
2387
+ box-shadow: var(--m-shadow-sm);
2388
+ position: absolute;
2389
+ z-index: 3;
2390
+ }
2391
+
2392
+ .m-carousel--horizontal .m-carousel__arrow--prev {
2393
+ left: var(--m-carousel-arrow-inset);
2394
+ top: 50%;
2395
+ transform: translateY(-50%);
2396
+ }
2397
+
2398
+ .m-carousel--horizontal .m-carousel__arrow--next {
2399
+ right: var(--m-carousel-arrow-inset);
2400
+ top: 50%;
2401
+ transform: translateY(-50%);
2402
+ }
2403
+
2404
+ .m-carousel--vertical .m-carousel__arrow {
2405
+ left: 50%;
2406
+ }
2407
+
2408
+ .m-carousel--vertical .m-carousel__arrow--prev {
2409
+ top: var(--m-carousel-arrow-inset);
2410
+ transform: translateX(-50%) rotate(90deg);
2411
+ }
2412
+
2413
+ .m-carousel--vertical .m-carousel__arrow--next {
2414
+ bottom: var(--m-carousel-arrow-inset);
2415
+ top: auto;
2416
+ transform: translateX(-50%) rotate(90deg);
2417
+ }
2418
+
2419
+ /* dots */
2420
+ .m-carousel__dots {
1290
2421
  display: flex;
2422
+ flex-wrap: nowrap;
1291
2423
  gap: var(--m-space-1);
1292
- justify-content: center;
2424
+ position: absolute;
2425
+ z-index: 3;
1293
2426
  }
1294
2427
 
1295
- .m-carousel__indicator {
1296
- background: color-mix(in srgb, var(--m-color-text-muted) 40%, transparent);
2428
+ .m-carousel--dots-bottom .m-carousel__dots {
2429
+ bottom: var(--m-carousel-dots-inset);
2430
+ left: 50%;
2431
+ transform: translateX(-50%);
2432
+ }
2433
+
2434
+ .m-carousel--dots-top .m-carousel__dots {
2435
+ left: 50%;
2436
+ top: var(--m-carousel-dots-inset);
2437
+ transform: translateX(-50%);
2438
+ }
2439
+
2440
+ .m-carousel--dots-left .m-carousel__dots {
2441
+ flex-direction: column;
2442
+ left: var(--m-carousel-dots-inset);
2443
+ top: 50%;
2444
+ transform: translateY(-50%);
2445
+ }
2446
+
2447
+ .m-carousel--dots-right .m-carousel__dots {
2448
+ flex-direction: column;
2449
+ right: var(--m-carousel-dots-inset);
2450
+ top: 50%;
2451
+ transform: translateY(-50%);
2452
+ }
2453
+
2454
+ .m-carousel__dot {
2455
+ background: color-mix(in srgb, var(--m-color-text-muted) 45%, transparent);
1297
2456
  border: 0;
1298
- border-radius: var(--m-radius-full);
1299
2457
  cursor: pointer;
1300
- height: var(--m-carousel-indicator-size);
1301
2458
  padding: 0;
1302
2459
  position: relative;
1303
- width: var(--m-carousel-indicator-size);
2460
+ transition:
2461
+ background-color var(--m-motion-fast) var(--m-motion-ease),
2462
+ width var(--m-motion-fast) var(--m-motion-ease),
2463
+ height var(--m-motion-fast) var(--m-motion-ease),
2464
+ box-shadow var(--m-motion-fast) var(--m-motion-ease);
1304
2465
  }
1305
2466
 
1306
- .m-carousel__indicator::after {
2467
+ .m-carousel__dot::after {
1307
2468
  content: '';
1308
- inset: -0.45rem;
2469
+ inset: -0.4rem;
1309
2470
  position: absolute;
1310
2471
  }
1311
2472
 
1312
- .m-carousel__indicator:hover {
1313
- background: color-mix(in srgb, var(--m-color-text-muted) 70%, transparent);
2473
+ .m-carousel__dots--dot .m-carousel__dot {
2474
+ border-radius: var(--m-radius-full);
2475
+ height: var(--m-carousel-dot-size);
2476
+ width: var(--m-carousel-dot-size);
2477
+ }
2478
+
2479
+ .m-carousel__dots--line .m-carousel__dot {
2480
+ background: color-mix(in srgb, var(--m-color-text-muted) 40%, transparent);
2481
+ border-radius: var(--m-radius-full);
2482
+ height: var(--m-carousel-dot-line-thickness);
2483
+ width: var(--m-carousel-dot-line-width);
2484
+ }
2485
+
2486
+ .m-carousel--dots-left .m-carousel__dots--line .m-carousel__dot,
2487
+ .m-carousel--dots-right .m-carousel__dots--line .m-carousel__dot {
2488
+ height: var(--m-carousel-dot-line-width);
2489
+ width: var(--m-carousel-dot-line-thickness);
2490
+ }
2491
+
2492
+ .m-carousel__dot:hover {
2493
+ background: color-mix(in srgb, var(--m-color-text-muted) 75%, transparent);
1314
2494
  }
1315
2495
 
1316
- .m-carousel__indicator:focus-visible {
2496
+ .m-carousel__dot:focus-visible {
1317
2497
  box-shadow: var(--m-focus-shadow);
1318
2498
  outline: none;
1319
2499
  }
1320
2500
 
1321
- .m-carousel__indicator--active,
1322
- .m-carousel__indicator--active:hover {
2501
+ .m-carousel__dot--active,
2502
+ .m-carousel__dot--active:hover {
1323
2503
  background: var(--m-color-primary);
1324
2504
  }
1325
2505
 
1326
- .m-carousel__nav:hover:not(:disabled) {
1327
- background: color-mix(in srgb, var(--m-color-primary) 8%, transparent);
2506
+ .m-carousel__dots--line .m-carousel__dot--active {
2507
+ width: var(--m-carousel-dot-line-width-active);
1328
2508
  }
1329
2509
 
1330
- .m-carousel__nav:focus-visible {
1331
- box-shadow: var(--m-focus-shadow);
1332
- outline: none;
2510
+ .m-carousel--dots-left .m-carousel__dots--line .m-carousel__dot--active,
2511
+ .m-carousel--dots-right .m-carousel__dots--line .m-carousel__dot--active {
2512
+ height: var(--m-carousel-dot-line-width-active);
2513
+ width: var(--m-carousel-dot-line-thickness);
2514
+ }
2515
+
2516
+ .m-carousel--dragging {
2517
+ cursor: grabbing;
2518
+ user-select: none;
1333
2519
  }
1334
2520
 
1335
- [data-m-motion="reduced"] .m-carousel__track,
1336
- [data-m-motion="none"] .m-carousel__track {
2521
+ [data-m-motion='reduced'] .m-carousel__slides,
2522
+ [data-m-motion='none'] .m-carousel__slides,
2523
+ [data-m-motion='reduced'] .m-carousel__slide,
2524
+ [data-m-motion='none'] .m-carousel__slide {
1337
2525
  transition: none;
1338
2526
  }