@manohub/ui 0.10.5 → 1.0.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 (86) hide show
  1. package/README.md +155 -155
  2. package/dist/components/form/index.js +8 -1
  3. package/dist/components/input/bordered.d.ts +15 -0
  4. package/dist/components/input/bordered.js +8 -0
  5. package/dist/components/input/index.d.ts +82 -31
  6. package/dist/components/input/index.js +16 -6
  7. package/dist/components/input/number-input.d.ts +239 -0
  8. package/dist/components/input/number-input.js +240 -0
  9. package/dist/components/select/index.d.ts +19 -0
  10. package/dist/components/select/index.js +10 -0
  11. package/dist/components/select/select-tree.d.ts +11 -0
  12. package/dist/components/select/select-tree.js +6 -0
  13. package/dist/components/select/select-trigger.d.ts +17 -0
  14. package/dist/components/select/select-trigger.js +9 -0
  15. package/dist/components/table/index.d.ts +85 -10
  16. package/dist/components/table/index.js +38 -9
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.js +2 -0
  19. package/dist/styles/components/avatar.css +131 -131
  20. package/dist/styles/components/avatar.tokens.css +24 -24
  21. package/dist/styles/components/badge.css +266 -266
  22. package/dist/styles/components/badge.tokens.css +24 -24
  23. package/dist/styles/components/button.css +460 -460
  24. package/dist/styles/components/capsule.css +128 -128
  25. package/dist/styles/components/capsule.tokens.css +27 -27
  26. package/dist/styles/components/card.css +198 -198
  27. package/dist/styles/components/checkbox.css +145 -145
  28. package/dist/styles/components/checkbox.tokens.css +26 -26
  29. package/dist/styles/components/code-block.css +216 -216
  30. package/dist/styles/components/code-block.tokens.css +40 -40
  31. package/dist/styles/components/collapse.css +62 -62
  32. package/dist/styles/components/collapse.tokens.css +20 -20
  33. package/dist/styles/components/dialog.css +158 -158
  34. package/dist/styles/components/dialog.tokens.css +24 -24
  35. package/dist/styles/components/divider.css +75 -75
  36. package/dist/styles/components/divider.tokens.css +22 -22
  37. package/dist/styles/components/drawer.css +143 -143
  38. package/dist/styles/components/drawer.tokens.css +22 -22
  39. package/dist/styles/components/filter.css +29 -29
  40. package/dist/styles/components/form.css +456 -425
  41. package/dist/styles/components/form.tokens.css +19 -15
  42. package/dist/styles/components/input.css +659 -538
  43. package/dist/styles/components/input.tokens.css +43 -43
  44. package/dist/styles/components/layout.css +200 -200
  45. package/dist/styles/components/list-view.css +244 -244
  46. package/dist/styles/components/loading.css +76 -76
  47. package/dist/styles/components/loading.tokens.css +23 -23
  48. package/dist/styles/components/nav.css +48 -48
  49. package/dist/styles/components/notice.css +153 -153
  50. package/dist/styles/components/notice.tokens.css +17 -17
  51. package/dist/styles/components/notification.css +159 -159
  52. package/dist/styles/components/notification.tokens.css +37 -37
  53. package/dist/styles/components/page.css +473 -473
  54. package/dist/styles/components/pagination.css +303 -303
  55. package/dist/styles/components/pagination.tokens.css +32 -32
  56. package/dist/styles/components/panel.css +77 -77
  57. package/dist/styles/components/query-state.css +88 -88
  58. package/dist/styles/components/radio.css +271 -271
  59. package/dist/styles/components/radio.tokens.css +26 -26
  60. package/dist/styles/components/search.css +34 -34
  61. package/dist/styles/components/select.css +326 -326
  62. package/dist/styles/components/select.tokens.css +44 -44
  63. package/dist/styles/components/skeleton.css +60 -60
  64. package/dist/styles/components/skeleton.tokens.css +27 -27
  65. package/dist/styles/components/steps.css +205 -205
  66. package/dist/styles/components/steps.tokens.css +44 -44
  67. package/dist/styles/components/switch.css +165 -165
  68. package/dist/styles/components/switch.tokens.css +26 -26
  69. package/dist/styles/components/tabbar.css +235 -235
  70. package/dist/styles/components/tabbar.tokens.css +30 -30
  71. package/dist/styles/components/table.css +510 -504
  72. package/dist/styles/components/table.tokens.css +44 -44
  73. package/dist/styles/components/tag.css +127 -127
  74. package/dist/styles/components/tag.tokens.css +24 -24
  75. package/dist/styles/components/toast.css +185 -185
  76. package/dist/styles/components/toast.tokens.css +26 -26
  77. package/dist/styles/components/tooltip.css +89 -89
  78. package/dist/styles/components/tooltip.tokens.css +25 -25
  79. package/dist/styles/components/tree.css +173 -173
  80. package/dist/styles/components/upload.css +151 -151
  81. package/dist/styles/components/upload.tokens.css +27 -27
  82. package/dist/styles/index.css +153 -153
  83. package/dist/styles/operations/collapse.css +84 -84
  84. package/dist/styles/operations/popup.css +193 -193
  85. package/dist/styles/operations/tabs.css +82 -82
  86. package/package.json +62 -62
@@ -1,205 +1,205 @@
1
- /**
2
- * Steps —— 步骤条(横向节点式 + 条形燕尾段式 + 进度条)。
3
- *
4
- * 出处:`@aihub/theme` 的 `playground/components/steps.css` 与 `src/components/steps.css`
5
- * (节点 30 圆、字号 14、节点与标题**同行**、标题间距 12;连线是 2px **点线** + 末端 6px 方盒转 45°
6
- * 的 `>` 折角箭头、最小长 58.383、弹性撑开;段 140×30、相邻**重叠 10**、整条 inline-flex 收宽;
7
- * 进度条高 9)。
8
- *
9
- * **当前步之后那一段才转蓝**(已完成步之后仍是灰线)—— 这是规范实测的取向,别做成"已完成段全蓝"。
10
- *
11
- * 状态来源是**单一来源**(组件下发的 `--done` / `--current` / `--active`):步骤序号不是原生元素能表达的状态,
12
- * 故这里没有「三源等价」可言 —— 与勾选/开关那类不同,别照抄那份写法。
13
- *
14
- * 连线用**独立空元素**(`.mh-steps__connector`)而不是 `.mh-steps__step + ::after`:折角箭头要撑开弹性余量,
15
- * 且 N 个节点配 N-1 条线,独立元素才能让两端节点各自保持自己的标题宽度。
16
- *
17
- * 可点档(`clickable`)下步元素是**原生 `<button>`** —— 归零、焦点环、禁用态见文件中间那节。
18
- */
19
-
20
- /* 几何只挂在 node 档根件上:令牌在同名 `.tokens.css`(锚 `[data-manohub-ui]`),几何若跟着挂会给 bar / 进度条多套一层 flex */
21
- .mh-steps {
22
- display: flex;
23
- align-items: center;
24
- }
25
-
26
- /* ===== 横向节点式 ===== */
27
- .mh-steps__step {
28
- display: flex;
29
- align-items: center;
30
- gap: var(--ui-steps-title-gap);
31
- flex: none;
32
- }
33
- .mh-steps__node {
34
- display: flex;
35
- align-items: center;
36
- justify-content: center;
37
- flex: none;
38
- width: var(--ui-steps-node-size);
39
- height: var(--ui-steps-node-size);
40
- border-radius: var(--ui-radius-full);
41
- background: var(--ui-steps-node-undone);
42
- color: var(--ui-steps-node-text);
43
- font-size: var(--ui-font-caption);
44
- line-height: 1;
45
- }
46
- .mh-steps__node-icon {
47
- width: var(--ui-steps-node-icon-size);
48
- height: var(--ui-steps-node-icon-size);
49
- }
50
- .mh-steps__step--done .mh-steps__node,
51
- .mh-steps__step--current .mh-steps__node {
52
- background: var(--ui-steps-node-bg);
53
- }
54
- .mh-steps__title {
55
- font-size: var(--ui-font-body); /* 规范字号档 md(14) */
56
- line-height: var(--ui-line-body);
57
- color: var(--ui-base-content);
58
- white-space: nowrap;
59
- }
60
-
61
- /* 连线:本体是 ::before 的点线,箭头是 ::after 的方盒去左下两边后转 45°(不是实心三角) */
62
- .mh-steps__connector {
63
- display: flex;
64
- align-items: center;
65
- flex: 1;
66
- min-width: var(--ui-steps-connector-length);
67
- margin: 0 var(--ui-space-3);
68
- color: var(--ui-steps-connector-line);
69
- }
70
- .mh-steps__connector::before {
71
- content: '';
72
- flex: 1;
73
- height: 0;
74
- border-top: var(--ui-steps-connector-width) dotted currentColor;
75
- }
76
- .mh-steps__connector::after {
77
- content: '';
78
- flex: none;
79
- width: var(--ui-steps-connector-arrow);
80
- height: var(--ui-steps-connector-arrow);
81
- border-top: var(--ui-steps-connector-width) solid currentColor;
82
- border-right: var(--ui-steps-connector-width) solid currentColor;
83
- transform: rotate(45deg);
84
- }
85
- .mh-steps__connector--active {
86
- color: var(--ui-steps-connector-line-active);
87
- }
88
-
89
- /* ===== 条形燕尾段式 ===== */
90
- .mh-steps__bar {
91
- display: inline-flex; /* 整条宽度收在段总宽上(块级 flex 会撑满整行) */
92
- align-items: center;
93
- }
94
- .mh-steps__seg {
95
- display: flex;
96
- align-items: center;
97
- gap: var(--ui-space-1);
98
- width: var(--ui-steps-seg-width);
99
- height: var(--ui-steps-seg-height);
100
- /* 让开左尖 + 相邻段重叠:段是裁形,靠重叠咬合而不是留缝 */
101
- padding-left: calc(var(--ui-steps-seg-overlap) + var(--ui-space-1));
102
- margin-left: calc(var(--ui-steps-seg-overlap) * -1);
103
- font-size: var(--ui-font-caption);
104
- color: var(--ui-base-content);
105
- background: var(--ui-steps-seg-bg);
106
- clip-path: polygon(
107
- 0 50%,
108
- var(--ui-steps-seg-overlap) 0,
109
- calc(100% - var(--ui-steps-seg-overlap)) 0,
110
- 100% 50%,
111
- calc(100% - var(--ui-steps-seg-overlap)) 100%,
112
- var(--ui-steps-seg-overlap) 100%
113
- );
114
- }
115
- .mh-steps__seg:first-child {
116
- margin-left: 0;
117
- clip-path: polygon(
118
- 0 0,
119
- calc(100% - var(--ui-steps-seg-overlap)) 0,
120
- 100% 50%,
121
- calc(100% - var(--ui-steps-seg-overlap)) 100%,
122
- 0 100%
123
- );
124
- }
125
- .mh-steps__seg:last-child {
126
- clip-path: polygon(0 50%, var(--ui-steps-seg-overlap) 0, 100% 0, 100% 100%, var(--ui-steps-seg-overlap) 100%);
127
- }
128
- .mh-steps__seg--active {
129
- position: relative;
130
- z-index: 1; /* 压住左右相邻段 */
131
- background: var(--ui-steps-seg-bg-active);
132
- color: var(--ui-steps-seg-text-active);
133
- /* 段是裁形,光晕只能用 drop-shadow 跟随形状(box-shadow 会露方角) */
134
- filter: drop-shadow(0 4px 5px color-mix(in srgb, var(--ui-primary) 30%, transparent));
135
- }
136
-
137
- /* ===== 可点档与禁用态(`clickable`)=====
138
- 可点档把步元素换成**原生 `<button>`**(键盘 Tab/Enter、`:focus-visible`、`disabled` 都交浏览器),
139
- 于是这里只剩两件事:把 UA 默认外观归零、给禁用与焦点一份视觉。 */
140
-
141
- /* 归零。**用 `:where()` 把本档特异性压到 0**:它只该清掉 UA 的 button 默认外观,
142
- 件自己的几何 / 字号 / 配色(上面 `.mh-steps__seg` 那几条)必须原样生效。
143
- 若用普通类选择器(0-1-0),这里的 `padding: 0` 会与 `.mh-steps__seg` 的
144
- `padding-left`(让开燕尾尖)打平、靠源序决胜 —— `:where()` 让那条稳赢,也省得以后
145
- 调文件顺序就把段条弄坏。 */
146
- :where(.mh-steps__step--clickable, .mh-steps__seg--clickable) {
147
- appearance: none;
148
- border: 0;
149
- padding: 0;
150
- margin: 0;
151
- background: none;
152
- font: inherit;
153
- color: inherit;
154
- text-align: inherit;
155
- cursor: pointer;
156
- }
157
-
158
- /* 键盘焦点环(与 button / radio / tag 同一句)。
159
- 外扩 2px 而不是按钮那套 `-2px`:步元素没内距,内缩会把环画在节点圆与标题上 */
160
- .mh-steps__step--clickable:focus-visible,
161
- .mh-steps__seg--clickable:focus-visible {
162
- outline: 2px solid var(--ui-primary);
163
- outline-offset: 2px;
164
- border-radius: var(--ui-radius-sm);
165
- }
166
-
167
- /* 禁用态:原生 `disabled` 已经挡住了点击与键盘序列,这里只补视觉。
168
- 节点 / 段底**不动** —— 它的「已完成 / 当前」状态语义仍然成立,禁用只表示
169
- 「这一步现在不能跳」,不是「这一步不存在」。
170
- 段条另排 `:not(--active)`:当前段本来是主色底 + 反白字,把它的字色降成 subtle 会读不清;
171
- 而且「当前段」本来也不该被画成禁用。 */
172
- .mh-steps__step--disabled,
173
- .mh-steps__seg--disabled {
174
- cursor: not-allowed;
175
- }
176
- .mh-steps__step--disabled .mh-steps__title {
177
- color: var(--ui-base-content-subtle);
178
- }
179
- .mh-steps__seg--disabled:not(.mh-steps__seg--active) {
180
- color: var(--ui-base-content-subtle);
181
- }
182
-
183
- /* ===== 进度条(规范只有令牌、无标记示例;与对话框的进程条共用) ===== */
184
- .mh-steps__progress {
185
- height: var(--ui-steps-progress-height);
186
- border-radius: var(--ui-radius-full);
187
- background: var(--ui-steps-node-undone);
188
- overflow: hidden;
189
- }
190
- .mh-steps__progress-fill {
191
- display: block;
192
- height: 100%;
193
- border-radius: var(--ui-radius-full);
194
- background: var(--ui-primary);
195
- }
196
-
197
- /* ===== 尺寸档(只覆盖令牌,几何规则只有一份) ===== */
198
- .mh-steps--sm {
199
- --ui-steps-node-size: calc(var(--ui-steps-node-size-base) * 0.8);
200
- font-size: var(--ui-font-caption);
201
- }
202
- .mh-steps--lg {
203
- --ui-steps-node-size: calc(var(--ui-steps-node-size-base) * 1.15);
204
- font-size: var(--ui-font-heading);
205
- }
1
+ /**
2
+ * Steps —— 步骤条(横向节点式 + 条形燕尾段式 + 进度条)。
3
+ *
4
+ * 出处:`@aihub/theme` 的 `playground/components/steps.css` 与 `src/components/steps.css`
5
+ * (节点 30 圆、字号 14、节点与标题**同行**、标题间距 12;连线是 2px **点线** + 末端 6px 方盒转 45°
6
+ * 的 `>` 折角箭头、最小长 58.383、弹性撑开;段 140×30、相邻**重叠 10**、整条 inline-flex 收宽;
7
+ * 进度条高 9)。
8
+ *
9
+ * **当前步之后那一段才转蓝**(已完成步之后仍是灰线)—— 这是规范实测的取向,别做成"已完成段全蓝"。
10
+ *
11
+ * 状态来源是**单一来源**(组件下发的 `--done` / `--current` / `--active`):步骤序号不是原生元素能表达的状态,
12
+ * 故这里没有「三源等价」可言 —— 与勾选/开关那类不同,别照抄那份写法。
13
+ *
14
+ * 连线用**独立空元素**(`.mh-steps__connector`)而不是 `.mh-steps__step + ::after`:折角箭头要撑开弹性余量,
15
+ * 且 N 个节点配 N-1 条线,独立元素才能让两端节点各自保持自己的标题宽度。
16
+ *
17
+ * 可点档(`clickable`)下步元素是**原生 `<button>`** —— 归零、焦点环、禁用态见文件中间那节。
18
+ */
19
+
20
+ /* 几何只挂在 node 档根件上:令牌在同名 `.tokens.css`(锚 `[data-manohub-ui]`),几何若跟着挂会给 bar / 进度条多套一层 flex */
21
+ .mh-steps {
22
+ display: flex;
23
+ align-items: center;
24
+ }
25
+
26
+ /* ===== 横向节点式 ===== */
27
+ .mh-steps__step {
28
+ display: flex;
29
+ align-items: center;
30
+ gap: var(--ui-steps-title-gap);
31
+ flex: none;
32
+ }
33
+ .mh-steps__node {
34
+ display: flex;
35
+ align-items: center;
36
+ justify-content: center;
37
+ flex: none;
38
+ width: var(--ui-steps-node-size);
39
+ height: var(--ui-steps-node-size);
40
+ border-radius: var(--ui-radius-full);
41
+ background: var(--ui-steps-node-undone);
42
+ color: var(--ui-steps-node-text);
43
+ font-size: var(--ui-font-caption);
44
+ line-height: 1;
45
+ }
46
+ .mh-steps__node-icon {
47
+ width: var(--ui-steps-node-icon-size);
48
+ height: var(--ui-steps-node-icon-size);
49
+ }
50
+ .mh-steps__step--done .mh-steps__node,
51
+ .mh-steps__step--current .mh-steps__node {
52
+ background: var(--ui-steps-node-bg);
53
+ }
54
+ .mh-steps__title {
55
+ font-size: var(--ui-font-body); /* 规范字号档 md(14) */
56
+ line-height: var(--ui-line-body);
57
+ color: var(--ui-base-content);
58
+ white-space: nowrap;
59
+ }
60
+
61
+ /* 连线:本体是 ::before 的点线,箭头是 ::after 的方盒去左下两边后转 45°(不是实心三角) */
62
+ .mh-steps__connector {
63
+ display: flex;
64
+ align-items: center;
65
+ flex: 1;
66
+ min-width: var(--ui-steps-connector-length);
67
+ margin: 0 var(--ui-space-3);
68
+ color: var(--ui-steps-connector-line);
69
+ }
70
+ .mh-steps__connector::before {
71
+ content: '';
72
+ flex: 1;
73
+ height: 0;
74
+ border-top: var(--ui-steps-connector-width) dotted currentColor;
75
+ }
76
+ .mh-steps__connector::after {
77
+ content: '';
78
+ flex: none;
79
+ width: var(--ui-steps-connector-arrow);
80
+ height: var(--ui-steps-connector-arrow);
81
+ border-top: var(--ui-steps-connector-width) solid currentColor;
82
+ border-right: var(--ui-steps-connector-width) solid currentColor;
83
+ transform: rotate(45deg);
84
+ }
85
+ .mh-steps__connector--active {
86
+ color: var(--ui-steps-connector-line-active);
87
+ }
88
+
89
+ /* ===== 条形燕尾段式 ===== */
90
+ .mh-steps__bar {
91
+ display: inline-flex; /* 整条宽度收在段总宽上(块级 flex 会撑满整行) */
92
+ align-items: center;
93
+ }
94
+ .mh-steps__seg {
95
+ display: flex;
96
+ align-items: center;
97
+ gap: var(--ui-space-1);
98
+ width: var(--ui-steps-seg-width);
99
+ height: var(--ui-steps-seg-height);
100
+ /* 让开左尖 + 相邻段重叠:段是裁形,靠重叠咬合而不是留缝 */
101
+ padding-left: calc(var(--ui-steps-seg-overlap) + var(--ui-space-1));
102
+ margin-left: calc(var(--ui-steps-seg-overlap) * -1);
103
+ font-size: var(--ui-font-caption);
104
+ color: var(--ui-base-content);
105
+ background: var(--ui-steps-seg-bg);
106
+ clip-path: polygon(
107
+ 0 50%,
108
+ var(--ui-steps-seg-overlap) 0,
109
+ calc(100% - var(--ui-steps-seg-overlap)) 0,
110
+ 100% 50%,
111
+ calc(100% - var(--ui-steps-seg-overlap)) 100%,
112
+ var(--ui-steps-seg-overlap) 100%
113
+ );
114
+ }
115
+ .mh-steps__seg:first-child {
116
+ margin-left: 0;
117
+ clip-path: polygon(
118
+ 0 0,
119
+ calc(100% - var(--ui-steps-seg-overlap)) 0,
120
+ 100% 50%,
121
+ calc(100% - var(--ui-steps-seg-overlap)) 100%,
122
+ 0 100%
123
+ );
124
+ }
125
+ .mh-steps__seg:last-child {
126
+ clip-path: polygon(0 50%, var(--ui-steps-seg-overlap) 0, 100% 0, 100% 100%, var(--ui-steps-seg-overlap) 100%);
127
+ }
128
+ .mh-steps__seg--active {
129
+ position: relative;
130
+ z-index: 1; /* 压住左右相邻段 */
131
+ background: var(--ui-steps-seg-bg-active);
132
+ color: var(--ui-steps-seg-text-active);
133
+ /* 段是裁形,光晕只能用 drop-shadow 跟随形状(box-shadow 会露方角) */
134
+ filter: drop-shadow(0 4px 5px color-mix(in srgb, var(--ui-primary) 30%, transparent));
135
+ }
136
+
137
+ /* ===== 可点档与禁用态(`clickable`)=====
138
+ 可点档把步元素换成**原生 `<button>`**(键盘 Tab/Enter、`:focus-visible`、`disabled` 都交浏览器),
139
+ 于是这里只剩两件事:把 UA 默认外观归零、给禁用与焦点一份视觉。 */
140
+
141
+ /* 归零。**用 `:where()` 把本档特异性压到 0**:它只该清掉 UA 的 button 默认外观,
142
+ 件自己的几何 / 字号 / 配色(上面 `.mh-steps__seg` 那几条)必须原样生效。
143
+ 若用普通类选择器(0-1-0),这里的 `padding: 0` 会与 `.mh-steps__seg` 的
144
+ `padding-left`(让开燕尾尖)打平、靠源序决胜 —— `:where()` 让那条稳赢,也省得以后
145
+ 调文件顺序就把段条弄坏。 */
146
+ :where(.mh-steps__step--clickable, .mh-steps__seg--clickable) {
147
+ appearance: none;
148
+ border: 0;
149
+ padding: 0;
150
+ margin: 0;
151
+ background: none;
152
+ font: inherit;
153
+ color: inherit;
154
+ text-align: inherit;
155
+ cursor: pointer;
156
+ }
157
+
158
+ /* 键盘焦点环(与 button / radio / tag 同一句)。
159
+ 外扩 2px 而不是按钮那套 `-2px`:步元素没内距,内缩会把环画在节点圆与标题上 */
160
+ .mh-steps__step--clickable:focus-visible,
161
+ .mh-steps__seg--clickable:focus-visible {
162
+ outline: 2px solid var(--ui-primary);
163
+ outline-offset: 2px;
164
+ border-radius: var(--ui-radius-sm);
165
+ }
166
+
167
+ /* 禁用态:原生 `disabled` 已经挡住了点击与键盘序列,这里只补视觉。
168
+ 节点 / 段底**不动** —— 它的「已完成 / 当前」状态语义仍然成立,禁用只表示
169
+ 「这一步现在不能跳」,不是「这一步不存在」。
170
+ 段条另排 `:not(--active)`:当前段本来是主色底 + 反白字,把它的字色降成 subtle 会读不清;
171
+ 而且「当前段」本来也不该被画成禁用。 */
172
+ .mh-steps__step--disabled,
173
+ .mh-steps__seg--disabled {
174
+ cursor: not-allowed;
175
+ }
176
+ .mh-steps__step--disabled .mh-steps__title {
177
+ color: var(--ui-base-content-subtle);
178
+ }
179
+ .mh-steps__seg--disabled:not(.mh-steps__seg--active) {
180
+ color: var(--ui-base-content-subtle);
181
+ }
182
+
183
+ /* ===== 进度条(规范只有令牌、无标记示例;与对话框的进程条共用) ===== */
184
+ .mh-steps__progress {
185
+ height: var(--ui-steps-progress-height);
186
+ border-radius: var(--ui-radius-full);
187
+ background: var(--ui-steps-node-undone);
188
+ overflow: hidden;
189
+ }
190
+ .mh-steps__progress-fill {
191
+ display: block;
192
+ height: 100%;
193
+ border-radius: var(--ui-radius-full);
194
+ background: var(--ui-primary);
195
+ }
196
+
197
+ /* ===== 尺寸档(只覆盖令牌,几何规则只有一份) ===== */
198
+ .mh-steps--sm {
199
+ --ui-steps-node-size: calc(var(--ui-steps-node-size-base) * 0.8);
200
+ font-size: var(--ui-font-caption);
201
+ }
202
+ .mh-steps--lg {
203
+ --ui-steps-node-size: calc(var(--ui-steps-node-size-base) * 1.15);
204
+ font-size: var(--ui-font-heading);
205
+ }
@@ -1,44 +1,44 @@
1
- /**
2
- * steps —— 单件令牌(**基础值**)。
3
- *
4
- * 本件自己的几何 / 尺寸 / 色彩槽位;只服务本件,故不随主题进 `@manohub/theme`。
5
- *
6
- * ## 抽出说明
7
- * 本文件从面文件里抽出(原先混写在 `steps.css` 顶部):这些是**基础值**,锚在
8
- * `[data-manohub-ui]` —— 跨包唯一作用域锚,由入口层无条件写在应用容器上,因此**任何落在
9
- * 容器里的分件都取得到值**,不再依赖「声明在某个组件根类上」这条脆弱假设
10
- * (历史症状:跨件消费的 `--ui-*-group-*` 取不到值,组内间距变 0)。
11
- *
12
- * ⚠️ `.mh-<件>--<档>` 这类**档位改写**留在面文件的修饰符块里 —— 它们靠「同一元素上两个
13
- * 选择器改写同一个令牌」生效,搬到本文件会让档位失效。
14
- * ⚠️ 新增组件要登记两处:本文件 + `src/styles/index.css`(见其文件头「五处齐备」)。
15
- */
16
- [data-manohub-ui] {
17
- /* bar 档与独立进度条都是**自己的根节点**(无 `.mh-steps` 祖先)—— 靠容器锚取到值 */
18
- /* 单件令牌 */
19
- /* 基准尺寸与「当前档尺寸」分开:尺寸档要用基准做 calc,直接自引用会构成环形引用
20
- (自定义属性引用自身 → 整条在计算值阶段作废 → 连子节点都继承不到) */
21
- --ui-steps-node-size-base: 30px;
22
- --ui-steps-node-size: var(--ui-steps-node-size-base);
23
- --ui-steps-node-undone: var(--ui-base-300); /* 规范 Ne05 未开始底(节点内也是白字,不是灰字) */
24
- --ui-steps-node-text: var(--ui-base-100); /* 反白字:序号 / 勾 / 图标 */
25
- --ui-steps-node-icon-size: 16px;
26
- --ui-steps-node-bg: var(--ui-primary); /* 规范是近乎平色的主色渐变(#2a83ff→#2a87ff),本仓取主色平色 */
27
- --ui-steps-connector-length: 58.383px; /* 规范实测最小段长(其余由 flex 撑开) */
28
- --ui-steps-connector-width: 2px;
29
- --ui-steps-connector-arrow: 6px;
30
- /* 连接线取 base-300(全库唯一的「线 / 框」色,见 `@manohub/theme` 的 `default/colors.css`
31
- 头「三条口径」第 2 条)—— 改前取的是 base-400。设计稿里**只有三个向导页**画了连接线
32
- (`#cdd2de`)而向导页已判定为旧稿,四个品牌页没有步骤条样张 → 按库级口径取线色,
33
- 不做推测性改动(这枚令牌的档位语义与连接线宽度 / 燕尾尺寸一样,只在「线」这一族内变)。 */
34
- --ui-steps-connector-line: var(--ui-base-300);
35
- --ui-steps-connector-line-active: var(--ui-primary); /* 规范 #4999fe */
36
- --ui-steps-title-gap: var(--ui-space-3); /* 节点与标题间距 12 */
37
- --ui-steps-seg-width: 140px;
38
- --ui-steps-seg-height: 30px;
39
- --ui-steps-seg-overlap: 10px; /* 相邻段重叠(燕尾尖咬合) */
40
- --ui-steps-seg-bg: var(--ui-base-200); /* 规范 #e9edf7 */
41
- --ui-steps-seg-bg-active: var(--ui-primary);
42
- --ui-steps-seg-text-active: var(--ui-base-100);
43
- --ui-steps-progress-height: 9px; /* 规范令牌;供进度条形态用 */
44
- }
1
+ /**
2
+ * steps —— 单件令牌(**基础值**)。
3
+ *
4
+ * 本件自己的几何 / 尺寸 / 色彩槽位;只服务本件,故不随主题进 `@manohub/theme`。
5
+ *
6
+ * ## 抽出说明
7
+ * 本文件从面文件里抽出(原先混写在 `steps.css` 顶部):这些是**基础值**,锚在
8
+ * `[data-manohub-ui]` —— 跨包唯一作用域锚,由入口层无条件写在应用容器上,因此**任何落在
9
+ * 容器里的分件都取得到值**,不再依赖「声明在某个组件根类上」这条脆弱假设
10
+ * (历史症状:跨件消费的 `--ui-*-group-*` 取不到值,组内间距变 0)。
11
+ *
12
+ * ⚠️ `.mh-<件>--<档>` 这类**档位改写**留在面文件的修饰符块里 —— 它们靠「同一元素上两个
13
+ * 选择器改写同一个令牌」生效,搬到本文件会让档位失效。
14
+ * ⚠️ 新增组件要登记两处:本文件 + `src/styles/index.css`(见其文件头「五处齐备」)。
15
+ */
16
+ [data-manohub-ui] {
17
+ /* bar 档与独立进度条都是**自己的根节点**(无 `.mh-steps` 祖先)—— 靠容器锚取到值 */
18
+ /* 单件令牌 */
19
+ /* 基准尺寸与「当前档尺寸」分开:尺寸档要用基准做 calc,直接自引用会构成环形引用
20
+ (自定义属性引用自身 → 整条在计算值阶段作废 → 连子节点都继承不到) */
21
+ --ui-steps-node-size-base: 30px;
22
+ --ui-steps-node-size: var(--ui-steps-node-size-base);
23
+ --ui-steps-node-undone: var(--ui-base-300); /* 规范 Ne05 未开始底(节点内也是白字,不是灰字) */
24
+ --ui-steps-node-text: var(--ui-base-100); /* 反白字:序号 / 勾 / 图标 */
25
+ --ui-steps-node-icon-size: 16px;
26
+ --ui-steps-node-bg: var(--ui-primary); /* 规范是近乎平色的主色渐变(#2a83ff→#2a87ff),本仓取主色平色 */
27
+ --ui-steps-connector-length: 58.383px; /* 规范实测最小段长(其余由 flex 撑开) */
28
+ --ui-steps-connector-width: 2px;
29
+ --ui-steps-connector-arrow: 6px;
30
+ /* 连接线取 base-300(全库唯一的「线 / 框」色,见 `@manohub/theme` 的 `default/colors.css`
31
+ 头「三条口径」第 2 条)—— 改前取的是 base-400。设计稿里**只有三个向导页**画了连接线
32
+ (`#cdd2de`)而向导页已判定为旧稿,四个品牌页没有步骤条样张 → 按库级口径取线色,
33
+ 不做推测性改动(这枚令牌的档位语义与连接线宽度 / 燕尾尺寸一样,只在「线」这一族内变)。 */
34
+ --ui-steps-connector-line: var(--ui-base-300);
35
+ --ui-steps-connector-line-active: var(--ui-primary); /* 规范 #4999fe */
36
+ --ui-steps-title-gap: var(--ui-space-3); /* 节点与标题间距 12 */
37
+ --ui-steps-seg-width: 140px;
38
+ --ui-steps-seg-height: 30px;
39
+ --ui-steps-seg-overlap: 10px; /* 相邻段重叠(燕尾尖咬合) */
40
+ --ui-steps-seg-bg: var(--ui-base-200); /* 规范 #e9edf7 */
41
+ --ui-steps-seg-bg-active: var(--ui-primary);
42
+ --ui-steps-seg-text-active: var(--ui-base-100);
43
+ --ui-steps-progress-height: 9px; /* 规范令牌;供进度条形态用 */
44
+ }