morya-ui 0.3.3 → 0.3.5

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 (260) hide show
  1. package/CHANGELOG.md +530 -516
  2. package/LICENSE +21 -21
  3. package/README.md +150 -150
  4. package/README.zh-CN.md +150 -150
  5. package/dist/{Button-gBiRj7wz.js → Button-3vJoiEQC.js} +1 -1
  6. package/dist/{Checkbox-BzbAUfyZ.js → Checkbox-B2gcDJHM.js} +1 -1
  7. package/dist/{Empty-C5tndBOm.js → Empty-5pTDp3ZM.js} +1 -1
  8. package/dist/{FlyoutSubmenu-H_741alW.js → FlyoutSubmenu-C_OrDaPN.js} +1 -1
  9. package/dist/{Loading-qS2Yv_gm.js → Loading-Ba-Js5-u.js} +3 -3
  10. package/dist/{Pagination-Bvv2qvEK.js → Pagination-lJ7cce6g.js} +2 -2
  11. package/dist/{Popover-rnZG_ap0.js → Popover-CQ2VYpFJ.js} +2 -2
  12. package/dist/{Radio-rF6zdR5Y.js → Radio-BbJ_Jyil.js} +1 -1
  13. package/dist/{Select-CiXd074W.js → Select-DyxORH6Q.js} +3 -3
  14. package/dist/{Tooltip-B02o9BOW.js → Tooltip-D3WUemno.js} +2 -2
  15. package/dist/accordion/style.css +1148 -1148
  16. package/dist/auto-complete/index.js +3 -3
  17. package/dist/auto-complete/style.css +1690 -1690
  18. package/dist/avatar/style.css +1261 -1261
  19. package/dist/badge/style.css +1315 -1315
  20. package/dist/block-ui/index.js +1 -1
  21. package/dist/block-ui/style.css +1148 -1148
  22. package/dist/breadcrumb/index.js +1 -1
  23. package/dist/breadcrumb/style.css +1148 -1148
  24. package/dist/button/index.js +1 -1
  25. package/dist/button/style.css +2134 -2134
  26. package/dist/card/style.css +1148 -1148
  27. package/dist/carousel/index.js +1 -1
  28. package/dist/carousel/style.css +1249 -1249
  29. package/dist/cascade-select/index.js +3 -3
  30. package/dist/cascade-select/style.css +1839 -1839
  31. package/dist/checkbox/index.js +1 -1
  32. package/dist/checkbox/style.css +1148 -1148
  33. package/dist/chip/index.js +1 -1
  34. package/dist/chip/style.css +1292 -1292
  35. package/dist/command-menu/index.js +3 -3
  36. package/dist/command-menu/style.css +1381 -1381
  37. package/dist/components/AutoComplete/styles.css +209 -209
  38. package/dist/components/Avatar/styles.css +113 -113
  39. package/dist/components/Badge/styles.css +165 -165
  40. package/dist/components/Button/styles.css +962 -962
  41. package/dist/components/Carousel/styles.css +101 -101
  42. package/dist/components/CascadeSelect/styles.css +157 -157
  43. package/dist/components/Chip/styles.css +144 -144
  44. package/dist/components/CommandMenu/styles.css +102 -102
  45. package/dist/components/ConfigProvider/styles.css +6 -6
  46. package/dist/components/ConfirmDialog/styles.css +24 -24
  47. package/dist/components/ConfirmPopup/styles.css +35 -35
  48. package/dist/components/ContextMenu/styles.css +138 -138
  49. package/dist/components/DatePicker/styles.css +335 -335
  50. package/dist/components/Dialog/styles.css +421 -421
  51. package/dist/components/Dock/styles.css +84 -84
  52. package/dist/components/Drawer/styles.css +334 -334
  53. package/dist/components/Dropdown/styles.css +130 -130
  54. package/dist/components/Empty/styles.css +146 -146
  55. package/dist/components/FileUpload/styles.css +359 -359
  56. package/dist/components/Form/styles.css +114 -114
  57. package/dist/components/Gallery/styles.css +100 -100
  58. package/dist/components/Input/styles.css +356 -356
  59. package/dist/components/InputColor/styles.css +129 -129
  60. package/dist/components/InputNumber/styles.css +261 -261
  61. package/dist/components/InputPassword/styles.css +178 -178
  62. package/dist/components/InputTags/styles.css +112 -112
  63. package/dist/components/Layout/styles.css +433 -433
  64. package/dist/components/Loading/styles.css +378 -378
  65. package/dist/components/MegaMenu/styles.css +97 -97
  66. package/dist/components/Menu/styles.css +564 -564
  67. package/dist/components/Menubar/styles.css +144 -144
  68. package/dist/components/Message/styles.css +250 -250
  69. package/dist/components/MeterGroup/styles.css +49 -49
  70. package/dist/components/Page/PageContent.vue.d.ts +1 -0
  71. package/dist/components/Page/PageContent.vue.d.ts.map +1 -1
  72. package/dist/components/Page/PageFilters.vue.d.ts +5 -3
  73. package/dist/components/Page/PageFilters.vue.d.ts.map +1 -1
  74. package/dist/components/Page/styles.css +430 -394
  75. package/dist/components/Page/types.d.ts +7 -2
  76. package/dist/components/Page/types.d.ts.map +1 -1
  77. package/dist/components/Pagination/styles.css +105 -105
  78. package/dist/components/Popover/styles.css +92 -92
  79. package/dist/components/Result/styles.css +146 -146
  80. package/dist/components/Scrollbar/styles.css +131 -131
  81. package/dist/components/Select/styles.css +192 -192
  82. package/dist/components/SelectButton/styles.css +105 -105
  83. package/dist/components/Sidebar/styles.css +74 -74
  84. package/dist/components/Slider/styles.css +211 -211
  85. package/dist/components/SplitButton/styles.css +216 -216
  86. package/dist/components/Status/styles.css +191 -191
  87. package/dist/components/Stepper/styles.css +135 -135
  88. package/dist/components/Switch/styles.css +129 -129
  89. package/dist/components/Table/Table.vue.d.ts +1 -0
  90. package/dist/components/Table/Table.vue.d.ts.map +1 -1
  91. package/dist/components/Table/styles.css +28 -0
  92. package/dist/components/Table/types.d.ts +6 -0
  93. package/dist/components/Table/types.d.ts.map +1 -1
  94. package/dist/components/Tabs/styles.css +131 -131
  95. package/dist/components/Terminal/styles.css +74 -74
  96. package/dist/components/Textarea/styles.css +126 -126
  97. package/dist/components/TieredMenu/styles.css +125 -125
  98. package/dist/components/Timeline/styles.css +159 -159
  99. package/dist/components/TreeSelect/styles.css +161 -161
  100. package/dist/components/TreeTable/styles.css +97 -97
  101. package/dist/components/VirtualScroller/styles.css +27 -27
  102. package/dist/{config-CapALqt3.js → config-De8ueCY-.js} +2 -0
  103. package/dist/config-provider/index.js +1 -1
  104. package/dist/config-provider/style.css +2472 -2472
  105. package/dist/confirm-dialog/index.js +4 -4
  106. package/dist/confirm-dialog/style.css +2555 -2555
  107. package/dist/confirm-popup/index.js +4 -4
  108. package/dist/confirm-popup/style.css +2145 -2145
  109. package/dist/context-menu/index.js +3 -3
  110. package/dist/context-menu/style.css +1417 -1417
  111. package/dist/data-view/index.js +3 -3
  112. package/dist/data-view/style.css +1631 -1631
  113. package/dist/date-picker/index.js +3 -3
  114. package/dist/date-picker/style.css +1483 -1483
  115. package/dist/dialog/index.js +4 -4
  116. package/dist/dialog/style.css +2531 -2531
  117. package/dist/divider/style.css +1148 -1148
  118. package/dist/dock/style.css +1232 -1232
  119. package/dist/drawer/index.js +3 -3
  120. package/dist/drawer/style.css +1482 -1482
  121. package/dist/dropdown/index.js +4 -4
  122. package/dist/dropdown/style.css +1409 -1409
  123. package/dist/empty/index.js +1 -1
  124. package/dist/empty/style.css +1294 -1294
  125. package/dist/fieldset/style.css +1148 -1148
  126. package/dist/file-upload/index.js +1 -1
  127. package/dist/file-upload/style.css +1507 -1507
  128. package/dist/flex/index.js +2 -2
  129. package/dist/flex/style.css +1148 -1148
  130. package/dist/float-label/style.css +1148 -1148
  131. package/dist/fluid/style.css +1148 -1148
  132. package/dist/form/index.js +1 -1
  133. package/dist/form/style.css +1264 -1264
  134. package/dist/gallery/index.js +1 -1
  135. package/dist/gallery/style.css +1379 -1379
  136. package/dist/grid/index.js +1 -1
  137. package/dist/grid/style.css +1148 -1148
  138. package/dist/icon/style.css +1148 -1148
  139. package/dist/icon-field/style.css +1504 -1504
  140. package/dist/index.js +1235 -1215
  141. package/dist/inplace/style.css +1148 -1148
  142. package/dist/input/index.js +2 -2
  143. package/dist/input/style.css +1504 -1504
  144. package/dist/input-color/index.js +2 -2
  145. package/dist/input-color/style.css +1279 -1279
  146. package/dist/input-group/style.css +1148 -1148
  147. package/dist/input-number/index.js +2 -2
  148. package/dist/input-number/style.css +1409 -1409
  149. package/dist/input-otp/index.js +2 -2
  150. package/dist/input-otp/style.css +1148 -1148
  151. package/dist/input-password/index.js +2 -2
  152. package/dist/input-password/style.css +1326 -1326
  153. package/dist/input-tags/index.js +2 -2
  154. package/dist/input-tags/style.css +1260 -1260
  155. package/dist/knob/style.css +1148 -1148
  156. package/dist/label/style.css +1148 -1148
  157. package/dist/layout/index.js +1 -1
  158. package/dist/layout/style.css +1712 -1712
  159. package/dist/listbox/index.js +2 -2
  160. package/dist/listbox/style.css +1306 -1306
  161. package/dist/loading/index.js +1 -1
  162. package/dist/loading/style.css +1528 -1528
  163. package/dist/locale/en-US.d.ts.map +1 -1
  164. package/dist/locale/types.d.ts +4 -0
  165. package/dist/locale/types.d.ts.map +1 -1
  166. package/dist/locale/zh-CN.d.ts.map +1 -1
  167. package/dist/{locale-Bzm2nbEp.js → locale-xavS6-Hw.js} +1 -1
  168. package/dist/mega-menu/index.js +3 -3
  169. package/dist/mega-menu/style.css +1245 -1245
  170. package/dist/menu/index.js +4 -4
  171. package/dist/menu/style.css +2001 -2001
  172. package/dist/menubar/index.js +3 -3
  173. package/dist/menubar/style.css +1423 -1423
  174. package/dist/message/index.js +3 -3
  175. package/dist/message/style.css +1398 -1398
  176. package/dist/meter-group/style.css +1199 -1199
  177. package/dist/order-list/index.js +1 -1
  178. package/dist/order-list/style.css +1148 -1148
  179. package/dist/page/index.js +70 -54
  180. package/dist/page/style.css +2803 -2767
  181. package/dist/pagination/index.js +1 -1
  182. package/dist/pagination/style.css +1445 -1445
  183. package/dist/panel/index.js +1 -1
  184. package/dist/panel/style.css +1148 -1148
  185. package/dist/pick-list/index.js +1 -1
  186. package/dist/pick-list/style.css +1148 -1148
  187. package/dist/popover/index.js +1 -1
  188. package/dist/popover/style.css +1242 -1242
  189. package/dist/progress-bar/style.css +1148 -1148
  190. package/dist/progress-spinner/index.js +1 -1
  191. package/dist/progress-spinner/style.css +1148 -1148
  192. package/dist/radio/index.js +1 -1
  193. package/dist/radio/style.css +1148 -1148
  194. package/dist/rating/index.js +2 -2
  195. package/dist/rating/style.css +1148 -1148
  196. package/dist/result/index.js +1 -1
  197. package/dist/result/style.css +1294 -1294
  198. package/dist/scroll-top/index.js +2 -2
  199. package/dist/scroll-top/style.css +1279 -1279
  200. package/dist/scrollbar/style.css +1281 -1281
  201. package/dist/select/index.js +1 -1
  202. package/dist/select/style.css +1901 -1901
  203. package/dist/select-button/index.js +1 -1
  204. package/dist/select-button/style.css +1255 -1255
  205. package/dist/shared/gap.d.ts +4 -1
  206. package/dist/shared/gap.d.ts.map +1 -1
  207. package/dist/shared/styles/control-affix-icon.css +110 -110
  208. package/dist/shared/styles/control-suffix.css +118 -118
  209. package/dist/shared/styles/select-overlay.css +175 -175
  210. package/dist/sidebar/index.js +1 -1
  211. package/dist/sidebar/style.css +1222 -1222
  212. package/dist/skeleton/style.css +1148 -1148
  213. package/dist/slider/index.js +2 -2
  214. package/dist/slider/style.css +1361 -1361
  215. package/dist/space/index.js +2 -2
  216. package/dist/space/style.css +1148 -1148
  217. package/dist/speed-dial/index.js +3 -3
  218. package/dist/speed-dial/style.css +1148 -1148
  219. package/dist/split-button/index.js +3 -3
  220. package/dist/split-button/style.css +2326 -2326
  221. package/dist/splitter/index.js +1 -1
  222. package/dist/splitter/style.css +1148 -1148
  223. package/dist/status/index.js +1 -1
  224. package/dist/status/style.css +1339 -1339
  225. package/dist/stepper/style.css +1283 -1283
  226. package/dist/styles/base.css +790 -790
  227. package/dist/styles.css +1 -1
  228. package/dist/switch/index.js +1 -1
  229. package/dist/switch/style.css +1279 -1279
  230. package/dist/table/index.js +249 -244
  231. package/dist/table/style.css +1840 -1812
  232. package/dist/tabs/index.js +1 -1
  233. package/dist/tabs/style.css +1410 -1410
  234. package/dist/tag/index.js +2 -2
  235. package/dist/tag/style.css +1148 -1148
  236. package/dist/terminal/index.js +1 -1
  237. package/dist/terminal/style.css +1224 -1224
  238. package/dist/textarea/index.js +2 -2
  239. package/dist/textarea/style.css +1274 -1274
  240. package/dist/theme/styles.css +358 -358
  241. package/dist/tiered-menu/index.js +3 -3
  242. package/dist/tiered-menu/style.css +1404 -1404
  243. package/dist/timeline/style.css +1438 -1438
  244. package/dist/toast/index.js +3 -3
  245. package/dist/toast/style.css +1148 -1148
  246. package/dist/toggle-button/index.js +1 -1
  247. package/dist/toggle-button/style.css +1148 -1148
  248. package/dist/toolbar/style.css +1148 -1148
  249. package/dist/tooltip/index.js +1 -1
  250. package/dist/tooltip/style.css +1148 -1148
  251. package/dist/tree/index.js +2 -2
  252. package/dist/tree/style.css +1148 -1148
  253. package/dist/tree-select/index.js +4 -4
  254. package/dist/tree-select/style.css +1843 -1843
  255. package/dist/tree-table/index.js +1 -1
  256. package/dist/tree-table/style.css +1245 -1245
  257. package/dist/{useMotionTransition-95Y79FoL.js → useMotionTransition-tW0yeJsy.js} +1 -1
  258. package/dist/virtual-scroller/style.css +1309 -1309
  259. package/dist/{vnode-C7Y1SjKB.js → vnode-CmdNQlN7.js} +18 -23
  260. package/package.json +1 -1
@@ -1,74 +1,74 @@
1
- /* —— Navigation: Sidebar —— */
2
- .m-sidebar {
3
- --m-sidebar-width: var(--m-nav-rail-width);
4
- --m-sidebar-collapsed-width: var(--m-nav-rail-collapsed-width);
5
- background: var(--m-color-surface);
6
- border: var(--m-border-width) solid var(--m-color-border);
7
- border-radius: var(--m-radius-md);
8
- min-width: 0;
9
- overflow: hidden;
10
- padding: var(--m-space-2);
11
- /* Instant width change — avoid layout thrashing on nav chrome */
12
- width: var(--m-sidebar-width);
13
- }
14
-
15
- .m-sidebar--collapsed {
16
- width: var(--m-sidebar-collapsed-width);
17
- }
18
-
19
- .m-sidebar__list,
20
- .m-sidebar__children {
21
- list-style: none;
22
- margin: 0;
23
- padding: 0;
24
- }
25
-
26
- .m-sidebar__children {
27
- margin-left: var(--m-space-4);
28
- }
29
-
30
- .m-sidebar__link {
31
- align-items: center;
32
- background: transparent;
33
- border: 0;
34
- border-radius: var(--m-radius-sm);
35
- color: inherit;
36
- cursor: pointer;
37
- display: flex;
38
- font-family: var(--m-font-sans);
39
- gap: var(--m-space-2);
40
- padding: var(--m-space-2);
41
- text-align: left;
42
- transition:
43
- background-color var(--m-motion-fast) var(--m-motion-ease),
44
- opacity var(--m-motion-fast) var(--m-motion-ease);
45
- width: 100%;
46
- }
47
-
48
- .m-sidebar__link:hover:not(:disabled) {
49
- background: color-mix(in srgb, var(--m-color-primary) 10%, transparent);
50
- }
51
-
52
- .m-sidebar__link:focus-visible {
53
- box-shadow: var(--m-focus-shadow);
54
- outline: none;
55
- }
56
-
57
- .m-sidebar__link:disabled {
58
- cursor: not-allowed;
59
- opacity: var(--m-opacity-disabled);
60
- }
61
-
62
- .m-sidebar__link--child {
63
- font-size: var(--m-font-size-md);
64
- }
65
-
66
- .m-sidebar__icon {
67
- flex: 0 0 var(--m-space-5);
68
- text-align: center;
69
- }
70
-
71
- [data-m-motion="reduced"] .m-sidebar__link,
72
- [data-m-motion="none"] .m-sidebar__link {
73
- transition: none;
74
- }
1
+ /* —— Navigation: Sidebar —— */
2
+ .m-sidebar {
3
+ --m-sidebar-width: var(--m-nav-rail-width);
4
+ --m-sidebar-collapsed-width: var(--m-nav-rail-collapsed-width);
5
+ background: var(--m-color-surface);
6
+ border: var(--m-border-width) solid var(--m-color-border);
7
+ border-radius: var(--m-radius-md);
8
+ min-width: 0;
9
+ overflow: hidden;
10
+ padding: var(--m-space-2);
11
+ /* Instant width change — avoid layout thrashing on nav chrome */
12
+ width: var(--m-sidebar-width);
13
+ }
14
+
15
+ .m-sidebar--collapsed {
16
+ width: var(--m-sidebar-collapsed-width);
17
+ }
18
+
19
+ .m-sidebar__list,
20
+ .m-sidebar__children {
21
+ list-style: none;
22
+ margin: 0;
23
+ padding: 0;
24
+ }
25
+
26
+ .m-sidebar__children {
27
+ margin-left: var(--m-space-4);
28
+ }
29
+
30
+ .m-sidebar__link {
31
+ align-items: center;
32
+ background: transparent;
33
+ border: 0;
34
+ border-radius: var(--m-radius-sm);
35
+ color: inherit;
36
+ cursor: pointer;
37
+ display: flex;
38
+ font-family: var(--m-font-sans);
39
+ gap: var(--m-space-2);
40
+ padding: var(--m-space-2);
41
+ text-align: left;
42
+ transition:
43
+ background-color var(--m-motion-fast) var(--m-motion-ease),
44
+ opacity var(--m-motion-fast) var(--m-motion-ease);
45
+ width: 100%;
46
+ }
47
+
48
+ .m-sidebar__link:hover:not(:disabled) {
49
+ background: color-mix(in srgb, var(--m-color-primary) 10%, transparent);
50
+ }
51
+
52
+ .m-sidebar__link:focus-visible {
53
+ box-shadow: var(--m-focus-shadow);
54
+ outline: none;
55
+ }
56
+
57
+ .m-sidebar__link:disabled {
58
+ cursor: not-allowed;
59
+ opacity: var(--m-opacity-disabled);
60
+ }
61
+
62
+ .m-sidebar__link--child {
63
+ font-size: var(--m-font-size-md);
64
+ }
65
+
66
+ .m-sidebar__icon {
67
+ flex: 0 0 var(--m-space-5);
68
+ text-align: center;
69
+ }
70
+
71
+ [data-m-motion="reduced"] .m-sidebar__link,
72
+ [data-m-motion="none"] .m-sidebar__link {
73
+ transition: none;
74
+ }
@@ -1,211 +1,211 @@
1
- /* —— Form: Slider —— */
2
- .m-slider-field {
3
- display: grid;
4
- gap: var(--m-space-2);
5
- width: 100%;
6
- }
7
-
8
- .m-slider-field__label {
9
- color: var(--m-color-text);
10
- font-family: var(--m-font-sans);
11
- font-size: var(--m-font-size-md);
12
- font-weight: 600;
13
- }
14
-
15
- .m-slider-field__help {
16
- color: var(--m-color-text-muted);
17
- font-size: var(--m-font-size-xs);
18
- }
19
-
20
- .m-slider-field__help--invalid {
21
- color: var(--m-color-danger);
22
- }
23
-
24
- .m-slider {
25
- --m-slider-track-height: 0.35rem;
26
- --m-slider-thumb-size: 1rem;
27
- --m-slider-vertical-height: 12rem;
28
- --m-slider-vertical-width: 2.5rem;
29
- --m-slider-tooltip-offset: 1.5rem;
30
- --m-slider-marks-inset-block: 0.9rem;
31
- --m-slider-marks-inset-inline: 0.5rem;
32
- align-items: center;
33
- display: flex;
34
- min-height: var(--m-slider-thumb-size);
35
- position: relative;
36
- width: 100%;
37
- }
38
-
39
- .m-slider--range {
40
- height: var(--m-slider-thumb-size);
41
- }
42
-
43
- .m-slider__input {
44
- -webkit-appearance: none;
45
- appearance: none;
46
- background: transparent;
47
- cursor: pointer;
48
- height: var(--m-slider-thumb-size);
49
- margin: 0;
50
- width: 100%;
51
- }
52
-
53
- .m-slider--range .m-slider__input {
54
- left: 0;
55
- pointer-events: none;
56
- position: absolute;
57
- top: 0;
58
- }
59
-
60
- .m-slider--range .m-slider__input::-webkit-slider-thumb {
61
- pointer-events: auto;
62
- }
63
-
64
- .m-slider--range .m-slider__input::-moz-range-thumb {
65
- pointer-events: auto;
66
- }
67
-
68
- /* range 模式下 end 输入框绘制在上层,其滑轨会盖住 start 的滚顶点,因此隐藏它的滑轨 */
69
- .m-slider--range .m-slider__input--end::-webkit-slider-runnable-track {
70
- background: transparent;
71
- }
72
-
73
- .m-slider--range .m-slider__input--end::-moz-range-track {
74
- background: transparent;
75
- }
76
-
77
- .m-slider__input::-webkit-slider-runnable-track {
78
- background: color-mix(
79
- in srgb,
80
- var(--m-color-text-muted) 28%,
81
- var(--m-color-surface)
82
- );
83
- border-radius: var(--m-radius-full);
84
- height: var(--m-slider-track-height);
85
- }
86
-
87
- .m-slider__input::-moz-range-track {
88
- background: color-mix(
89
- in srgb,
90
- var(--m-color-text-muted) 28%,
91
- var(--m-color-surface)
92
- );
93
- border-radius: var(--m-radius-full);
94
- height: var(--m-slider-track-height);
95
- }
96
-
97
- .m-slider__input::-webkit-slider-thumb {
98
- -webkit-appearance: none;
99
- appearance: none;
100
- background: var(--m-color-primary);
101
- border: var(--m-border-width) solid var(--m-color-surface);
102
- border-radius: 50%;
103
- box-shadow: 0 0 0 var(--m-border-width)
104
- color-mix(in srgb, var(--m-color-primary) 40%, transparent);
105
- height: var(--m-slider-thumb-size);
106
- margin-top: calc(
107
- (var(--m-slider-track-height) - var(--m-slider-thumb-size)) / 2
108
- );
109
- transition: box-shadow var(--m-motion-fast) var(--m-motion-ease);
110
- width: var(--m-slider-thumb-size);
111
- }
112
-
113
- .m-slider__input::-moz-range-thumb {
114
- background: var(--m-color-primary);
115
- border: var(--m-border-width) solid var(--m-color-surface);
116
- border-radius: 50%;
117
- box-shadow: 0 0 0 var(--m-border-width)
118
- color-mix(in srgb, var(--m-color-primary) 40%, transparent);
119
- height: var(--m-slider-thumb-size);
120
- transition: box-shadow var(--m-motion-fast) var(--m-motion-ease);
121
- width: var(--m-slider-thumb-size);
122
- }
123
-
124
- .m-slider__input:focus-visible {
125
- outline: none;
126
- }
127
-
128
- .m-slider__input:focus-visible::-webkit-slider-thumb {
129
- box-shadow: var(--m-focus-shadow);
130
- outline: none;
131
- }
132
-
133
- .m-slider__input:focus-visible::-moz-range-thumb {
134
- box-shadow: var(--m-focus-shadow);
135
- outline: none;
136
- }
137
-
138
- .m-slider--disabled {
139
- cursor: not-allowed;
140
- opacity: var(--m-opacity-disabled);
141
- pointer-events: none;
142
- }
143
-
144
- .m-slider--vertical {
145
- flex-direction: column;
146
- height: var(--m-slider-vertical-height);
147
- min-height: var(--m-slider-vertical-height);
148
- width: var(--m-slider-vertical-width);
149
- }
150
-
151
- .m-slider--vertical .m-slider__input {
152
- direction: rtl;
153
- height: 100%;
154
- width: var(--m-slider-thumb-size);
155
- writing-mode: vertical-lr;
156
- }
157
-
158
- .m-slider__tooltip {
159
- background: var(--m-color-text);
160
- border-radius: var(--m-radius-sm);
161
- color: var(--m-color-surface);
162
- font-family: var(--m-font-sans);
163
- font-size: var(--m-font-size-xs);
164
- left: 50%;
165
- padding: var(--m-slider-tooltip-padding-block) var(--m-slider-tooltip-padding-inline);
166
- position: absolute;
167
- top: calc(-1 * var(--m-slider-tooltip-offset));
168
- transform: translateX(-50%);
169
- white-space: nowrap;
170
- }
171
-
172
- .m-slider__marks {
173
- inset: var(--m-slider-marks-inset-block) var(--m-slider-marks-inset-inline) auto;
174
- position: absolute;
175
- }
176
-
177
- .m-slider--vertical .m-slider__marks {
178
- inset: var(--m-space-2) auto var(--m-space-2) var(--m-space-6);
179
- }
180
-
181
- .m-slider__mark {
182
- color: var(--m-color-text-muted);
183
- font-family: var(--m-font-sans);
184
- font-size: var(--m-font-size-xs);
185
- position: absolute;
186
- transform: translateX(-50%);
187
- }
188
-
189
- .m-slider--vertical .m-slider__mark {
190
- transform: translateY(50%);
191
- }
192
-
193
- .m-slider--small {
194
- --m-slider-thumb-size: 0.85rem;
195
- }
196
-
197
- .m-slider--large {
198
- --m-slider-thumb-size: 1.15rem;
199
- }
200
-
201
- .m-slider--invalid .m-slider__input {
202
- accent-color: var(--m-color-danger);
203
- }
204
-
205
- .m-slider--invalid .m-slider__input:focus-visible::-webkit-slider-thumb {
206
- box-shadow: var(--m-focus-shadow-danger);
207
- }
208
-
209
- .m-slider--invalid .m-slider__input:focus-visible::-moz-range-thumb {
210
- box-shadow: var(--m-focus-shadow-danger);
211
- }
1
+ /* —— Form: Slider —— */
2
+ .m-slider-field {
3
+ display: grid;
4
+ gap: var(--m-space-2);
5
+ width: 100%;
6
+ }
7
+
8
+ .m-slider-field__label {
9
+ color: var(--m-color-text);
10
+ font-family: var(--m-font-sans);
11
+ font-size: var(--m-font-size-md);
12
+ font-weight: 600;
13
+ }
14
+
15
+ .m-slider-field__help {
16
+ color: var(--m-color-text-muted);
17
+ font-size: var(--m-font-size-xs);
18
+ }
19
+
20
+ .m-slider-field__help--invalid {
21
+ color: var(--m-color-danger);
22
+ }
23
+
24
+ .m-slider {
25
+ --m-slider-track-height: 0.35rem;
26
+ --m-slider-thumb-size: 1rem;
27
+ --m-slider-vertical-height: 12rem;
28
+ --m-slider-vertical-width: 2.5rem;
29
+ --m-slider-tooltip-offset: 1.5rem;
30
+ --m-slider-marks-inset-block: 0.9rem;
31
+ --m-slider-marks-inset-inline: 0.5rem;
32
+ align-items: center;
33
+ display: flex;
34
+ min-height: var(--m-slider-thumb-size);
35
+ position: relative;
36
+ width: 100%;
37
+ }
38
+
39
+ .m-slider--range {
40
+ height: var(--m-slider-thumb-size);
41
+ }
42
+
43
+ .m-slider__input {
44
+ -webkit-appearance: none;
45
+ appearance: none;
46
+ background: transparent;
47
+ cursor: pointer;
48
+ height: var(--m-slider-thumb-size);
49
+ margin: 0;
50
+ width: 100%;
51
+ }
52
+
53
+ .m-slider--range .m-slider__input {
54
+ left: 0;
55
+ pointer-events: none;
56
+ position: absolute;
57
+ top: 0;
58
+ }
59
+
60
+ .m-slider--range .m-slider__input::-webkit-slider-thumb {
61
+ pointer-events: auto;
62
+ }
63
+
64
+ .m-slider--range .m-slider__input::-moz-range-thumb {
65
+ pointer-events: auto;
66
+ }
67
+
68
+ /* range 模式下 end 输入框绘制在上层,其滑轨会盖住 start 的滚顶点,因此隐藏它的滑轨 */
69
+ .m-slider--range .m-slider__input--end::-webkit-slider-runnable-track {
70
+ background: transparent;
71
+ }
72
+
73
+ .m-slider--range .m-slider__input--end::-moz-range-track {
74
+ background: transparent;
75
+ }
76
+
77
+ .m-slider__input::-webkit-slider-runnable-track {
78
+ background: color-mix(
79
+ in srgb,
80
+ var(--m-color-text-muted) 28%,
81
+ var(--m-color-surface)
82
+ );
83
+ border-radius: var(--m-radius-full);
84
+ height: var(--m-slider-track-height);
85
+ }
86
+
87
+ .m-slider__input::-moz-range-track {
88
+ background: color-mix(
89
+ in srgb,
90
+ var(--m-color-text-muted) 28%,
91
+ var(--m-color-surface)
92
+ );
93
+ border-radius: var(--m-radius-full);
94
+ height: var(--m-slider-track-height);
95
+ }
96
+
97
+ .m-slider__input::-webkit-slider-thumb {
98
+ -webkit-appearance: none;
99
+ appearance: none;
100
+ background: var(--m-color-primary);
101
+ border: var(--m-border-width) solid var(--m-color-surface);
102
+ border-radius: 50%;
103
+ box-shadow: 0 0 0 var(--m-border-width)
104
+ color-mix(in srgb, var(--m-color-primary) 40%, transparent);
105
+ height: var(--m-slider-thumb-size);
106
+ margin-top: calc(
107
+ (var(--m-slider-track-height) - var(--m-slider-thumb-size)) / 2
108
+ );
109
+ transition: box-shadow var(--m-motion-fast) var(--m-motion-ease);
110
+ width: var(--m-slider-thumb-size);
111
+ }
112
+
113
+ .m-slider__input::-moz-range-thumb {
114
+ background: var(--m-color-primary);
115
+ border: var(--m-border-width) solid var(--m-color-surface);
116
+ border-radius: 50%;
117
+ box-shadow: 0 0 0 var(--m-border-width)
118
+ color-mix(in srgb, var(--m-color-primary) 40%, transparent);
119
+ height: var(--m-slider-thumb-size);
120
+ transition: box-shadow var(--m-motion-fast) var(--m-motion-ease);
121
+ width: var(--m-slider-thumb-size);
122
+ }
123
+
124
+ .m-slider__input:focus-visible {
125
+ outline: none;
126
+ }
127
+
128
+ .m-slider__input:focus-visible::-webkit-slider-thumb {
129
+ box-shadow: var(--m-focus-shadow);
130
+ outline: none;
131
+ }
132
+
133
+ .m-slider__input:focus-visible::-moz-range-thumb {
134
+ box-shadow: var(--m-focus-shadow);
135
+ outline: none;
136
+ }
137
+
138
+ .m-slider--disabled {
139
+ cursor: not-allowed;
140
+ opacity: var(--m-opacity-disabled);
141
+ pointer-events: none;
142
+ }
143
+
144
+ .m-slider--vertical {
145
+ flex-direction: column;
146
+ height: var(--m-slider-vertical-height);
147
+ min-height: var(--m-slider-vertical-height);
148
+ width: var(--m-slider-vertical-width);
149
+ }
150
+
151
+ .m-slider--vertical .m-slider__input {
152
+ direction: rtl;
153
+ height: 100%;
154
+ width: var(--m-slider-thumb-size);
155
+ writing-mode: vertical-lr;
156
+ }
157
+
158
+ .m-slider__tooltip {
159
+ background: var(--m-color-text);
160
+ border-radius: var(--m-radius-sm);
161
+ color: var(--m-color-surface);
162
+ font-family: var(--m-font-sans);
163
+ font-size: var(--m-font-size-xs);
164
+ left: 50%;
165
+ padding: var(--m-slider-tooltip-padding-block) var(--m-slider-tooltip-padding-inline);
166
+ position: absolute;
167
+ top: calc(-1 * var(--m-slider-tooltip-offset));
168
+ transform: translateX(-50%);
169
+ white-space: nowrap;
170
+ }
171
+
172
+ .m-slider__marks {
173
+ inset: var(--m-slider-marks-inset-block) var(--m-slider-marks-inset-inline) auto;
174
+ position: absolute;
175
+ }
176
+
177
+ .m-slider--vertical .m-slider__marks {
178
+ inset: var(--m-space-2) auto var(--m-space-2) var(--m-space-6);
179
+ }
180
+
181
+ .m-slider__mark {
182
+ color: var(--m-color-text-muted);
183
+ font-family: var(--m-font-sans);
184
+ font-size: var(--m-font-size-xs);
185
+ position: absolute;
186
+ transform: translateX(-50%);
187
+ }
188
+
189
+ .m-slider--vertical .m-slider__mark {
190
+ transform: translateY(50%);
191
+ }
192
+
193
+ .m-slider--small {
194
+ --m-slider-thumb-size: 0.85rem;
195
+ }
196
+
197
+ .m-slider--large {
198
+ --m-slider-thumb-size: 1.15rem;
199
+ }
200
+
201
+ .m-slider--invalid .m-slider__input {
202
+ accent-color: var(--m-color-danger);
203
+ }
204
+
205
+ .m-slider--invalid .m-slider__input:focus-visible::-webkit-slider-thumb {
206
+ box-shadow: var(--m-focus-shadow-danger);
207
+ }
208
+
209
+ .m-slider--invalid .m-slider__input:focus-visible::-moz-range-thumb {
210
+ box-shadow: var(--m-focus-shadow-danger);
211
+ }