pda-kit-mcp-server 2.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.
- package/README.md +107 -0
- package/bin/pda-kit-mcp.js +35 -0
- package/dist/file-reader.d.ts +83 -0
- package/dist/file-reader.d.ts.map +1 -0
- package/dist/file-reader.js +170 -0
- package/dist/file-reader.js.map +1 -0
- package/dist/http-entry.d.ts +12 -0
- package/dist/http-entry.d.ts.map +1 -0
- package/dist/http-entry.js +149 -0
- package/dist/http-entry.js.map +1 -0
- package/dist/http-server.d.ts +5 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +114 -0
- package/dist/http-server.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +90 -0
- package/dist/index.js.map +1 -0
- package/dist/paths.d.ts +37 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +52 -0
- package/dist/paths.js.map +1 -0
- package/dist/server.d.ts +12 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +308 -0
- package/dist/server.js.map +1 -0
- package/dist/stdio-server.d.ts +8 -0
- package/dist/stdio-server.d.ts.map +1 -0
- package/dist/stdio-server.js +83 -0
- package/dist/stdio-server.js.map +1 -0
- package/dist/tools/generate-component.d.ts +54 -0
- package/dist/tools/generate-component.d.ts.map +1 -0
- package/dist/tools/generate-component.js +80 -0
- package/dist/tools/generate-component.js.map +1 -0
- package/dist/tools/get-component-spec.d.ts +70 -0
- package/dist/tools/get-component-spec.d.ts.map +1 -0
- package/dist/tools/get-component-spec.js +95 -0
- package/dist/tools/get-component-spec.js.map +1 -0
- package/dist/tools/get-global-rules.d.ts +42 -0
- package/dist/tools/get-global-rules.d.ts.map +1 -0
- package/dist/tools/get-global-rules.js +83 -0
- package/dist/tools/get-global-rules.js.map +1 -0
- package/dist/tools/list-components.d.ts +52 -0
- package/dist/tools/list-components.d.ts.map +1 -0
- package/dist/tools/list-components.js +104 -0
- package/dist/tools/list-components.js.map +1 -0
- package/dist/tools/search-components.d.ts +54 -0
- package/dist/tools/search-components.d.ts.map +1 -0
- package/dist/tools/search-components.js +124 -0
- package/dist/tools/search-components.js.map +1 -0
- package/dist/tools/validate-html.d.ts +43 -0
- package/dist/tools/validate-html.d.ts.map +1 -0
- package/dist/tools/validate-html.js +116 -0
- package/dist/tools/validate-html.js.map +1 -0
- package/package.json +59 -0
- package/spec-data/badge.md +461 -0
- package/spec-data/button.md +148 -0
- package/spec-data/camera.md +622 -0
- package/spec-data/dialog.md +419 -0
- package/spec-data/divider.md +208 -0
- package/spec-data/drawer.md +301 -0
- package/spec-data/empty-state.md +336 -0
- package/spec-data/home-page.md +352 -0
- package/spec-data/input-row.md +346 -0
- package/spec-data/layout-page.md +317 -0
- package/spec-data/list-item.md +128 -0
- package/spec-data/location-selector.md +630 -0
- package/spec-data/more-actions.md +427 -0
- package/spec-data/navbar.md +482 -0
- package/spec-data/photo-list.md +461 -0
- package/spec-data/picker-single.md +199 -0
- package/spec-data/picker.md +586 -0
- package/spec-data/scan-input.md +304 -0
- package/spec-data/section-heading.md +268 -0
- package/spec-data/selectable-list.md +331 -0
- package/spec-data/stepper.md +247 -0
- package/spec-data/tab-bar.md +254 -0
- package/spec-data/tab.md +349 -0
- package/spec-data/tag.md +363 -0
- package/spec-data/tooltip.md +202 -0
- package/spec-data/waybill-number.md +257 -0
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "109-弹窗"
|
|
3
|
+
name: "Dialog"
|
|
4
|
+
category: "反馈/Feedback"
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
source: "MasterGo"
|
|
7
|
+
source_url: "https://mastergo.ky-tech.com.cn/goto/UgXxpJD6"
|
|
8
|
+
tokens:
|
|
9
|
+
colors:
|
|
10
|
+
- --color-mask
|
|
11
|
+
- --color-grey-1
|
|
12
|
+
- --color-grey-2
|
|
13
|
+
- --color-black-2
|
|
14
|
+
- --color-black-6
|
|
15
|
+
- --color-grey-6
|
|
16
|
+
- --color-main-6
|
|
17
|
+
- --color-green-6
|
|
18
|
+
- --color-red-6
|
|
19
|
+
- --color-yellow-6
|
|
20
|
+
spacing:
|
|
21
|
+
- --spacing-4dp
|
|
22
|
+
- --spacing-8dp
|
|
23
|
+
- --spacing-16dp
|
|
24
|
+
- --spacing-24dp
|
|
25
|
+
- --spacing-40dp
|
|
26
|
+
typography:
|
|
27
|
+
- 正文/【20】Text_Bold
|
|
28
|
+
- 辅助文本/【14】Auxiliary_Normal_S
|
|
29
|
+
- 按钮/【22】Button_Normal
|
|
30
|
+
- 按钮/【22】Button_Bold
|
|
31
|
+
variants:
|
|
32
|
+
header_types:
|
|
33
|
+
- 正文单行
|
|
34
|
+
- 正文带勾选
|
|
35
|
+
- 无描述-有输入框
|
|
36
|
+
- 有描述-有输入框
|
|
37
|
+
- 带图标
|
|
38
|
+
- 带插图
|
|
39
|
+
- 区间输入
|
|
40
|
+
- 头部插图
|
|
41
|
+
- 正文带提示
|
|
42
|
+
- 输入框(新)
|
|
43
|
+
- 带单位
|
|
44
|
+
footer_types:
|
|
45
|
+
- 两个按钮
|
|
46
|
+
- 单个按钮
|
|
47
|
+
- 多个按钮
|
|
48
|
+
status_types:
|
|
49
|
+
- 成功
|
|
50
|
+
- 失败
|
|
51
|
+
- 警告
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
# Dialog 弹窗组件
|
|
55
|
+
|
|
56
|
+
> 居中展示的模态框,用于提醒、拦截、确认等交互场景。
|
|
57
|
+
> 基于 PDA Kit 基础组件库,结合 MasterGo 设计稿整理。
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## AI 指令
|
|
62
|
+
|
|
63
|
+
```yaml
|
|
64
|
+
NEGATIVE_PROMPTS:
|
|
65
|
+
- "⛔ 禁止在 Dialog 内使用渐变背景"
|
|
66
|
+
- "⛔ 禁止按钮区超过 3 个按钮"
|
|
67
|
+
- "⛔ 禁止按钮文字使用非标准颜色"
|
|
68
|
+
- "⛔ 禁止修改 16px 圆角(组件级例外)"
|
|
69
|
+
- "⛔ 禁止内容区 padding ≠ 36px 40px"
|
|
70
|
+
|
|
71
|
+
MANDATORY:
|
|
72
|
+
- "✅ 遮罩层必须用 --color-mask(rgba(0,0,0,0.6))"
|
|
73
|
+
- "✅ 主按钮颜色使用 --color-main-6"
|
|
74
|
+
- "✅ 所有颜色必须使用 --color-* Token,禁止裸 Hex"
|
|
75
|
+
- "✅ 按钮高度固定 54px,字体 按钮/【22】Button_*"
|
|
76
|
+
- "✅ 状态图标 48px 圆形,背景用对应色系 --color-*-1"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 1. 组件概览
|
|
82
|
+
|
|
83
|
+
| 属性 | 值 |
|
|
84
|
+
|------|-----|
|
|
85
|
+
| 组件名称 | 弹窗(Dialog) |
|
|
86
|
+
| 组件 ID | `109-弹窗` |
|
|
87
|
+
| 设计宽度 | **400px** |
|
|
88
|
+
| 圆角 | **16px**(组件级例外,非 `--radius-4dp`) |
|
|
89
|
+
| 投影 | `0px 8px 32px 0px rgba(0,0,0,0.12)` |
|
|
90
|
+
| 展示位置 | 页面居中 |
|
|
91
|
+
| 关闭按钮 | 可选(`关闭`: boolean) |
|
|
92
|
+
| 变体 | 默认 |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## 2. 组件结构
|
|
97
|
+
|
|
98
|
+
弹窗由以下子组件组合而成:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
┌──────────────────────────────┐
|
|
102
|
+
│ 遮罩层 (Mask) │
|
|
103
|
+
│ ┌────────────────────────┐ │
|
|
104
|
+
│ │ 弹窗容器 (400px) │ │
|
|
105
|
+
│ │ ┌──────────────────┐ │ │
|
|
106
|
+
│ │ │ 弹窗内容区 │ │ │
|
|
107
|
+
│ │ │ (头部类型) │ │ │
|
|
108
|
+
│ │ └──────────────────┘ │ │
|
|
109
|
+
│ │ ┌──────────────────┐ │ │
|
|
110
|
+
│ │ │ 弹窗按钮区 │ │ │
|
|
111
|
+
│ │ │ (底部类型) │ │ │
|
|
112
|
+
│ │ └──────────────────┘ │ │
|
|
113
|
+
│ └────────────────────────┘ │
|
|
114
|
+
└──────────────────────────────┘
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### 2.1 遮罩层(`067-遮罩层`)
|
|
118
|
+
|
|
119
|
+
| 属性 | 值 |
|
|
120
|
+
|------|-----|
|
|
121
|
+
| 类型 | **弹窗浮层遮罩60%** / 新手引导遮罩80% / 下拉菜单遮罩50% |
|
|
122
|
+
| 弹窗默认遮罩色 | `var(--color-mask)` |
|
|
123
|
+
| 定位 | fixed,全屏覆盖 |
|
|
124
|
+
| 内容对齐 | flex,水平垂直居中 |
|
|
125
|
+
| 入场动画 | fadeIn,0.2s ease |
|
|
126
|
+
|
|
127
|
+
### 2.2 弹窗内容区(`106-弹窗内容区`)
|
|
128
|
+
|
|
129
|
+
| 属性 | 说明 |
|
|
130
|
+
|------|------|
|
|
131
|
+
| 组件尺寸 | 440 × 2899px |
|
|
132
|
+
| **最小高度** | **158px** |
|
|
133
|
+
| **内边距** | **36px 40px** |
|
|
134
|
+
| **内容对齐** | flex column,垂直居中,水平居中 |
|
|
135
|
+
| **元素间距** | 8px(`var(--spacing-8dp)`) |
|
|
136
|
+
| **标题** | 弹窗主标题文本 |
|
|
137
|
+
| **副标题** | 弹窗副标题/描述文本 |
|
|
138
|
+
| **副文本** | 是否显示副文本(boolean) |
|
|
139
|
+
| **属性1(头部类型)** | 见下方变体列表 |
|
|
140
|
+
|
|
141
|
+
### 2.3 弹窗按钮区(`107-弹窗按钮区`)
|
|
142
|
+
|
|
143
|
+
| 属性 | 说明 |
|
|
144
|
+
|------|------|
|
|
145
|
+
| 组件尺寸 | 440 × 428px |
|
|
146
|
+
| **属性1(底部类型)** | `两个按钮` / `单个按钮` / `多个按钮` |
|
|
147
|
+
|
|
148
|
+
#### 按钮样式
|
|
149
|
+
|
|
150
|
+
| 属性 | 值 |
|
|
151
|
+
|------|-----|
|
|
152
|
+
| 按钮高度 | **54px** |
|
|
153
|
+
| 字体 | PingFang SC,18px |
|
|
154
|
+
| 背景 | 透明(文本按钮) |
|
|
155
|
+
| 顶部边框 | `1px solid var(--color-grey-2)`(分隔内容区与按钮区) |
|
|
156
|
+
|
|
157
|
+
#### 底部类型详解
|
|
158
|
+
|
|
159
|
+
| 类型 | 布局 | 说明 |
|
|
160
|
+
|------|------|------|
|
|
161
|
+
| **两个按钮** | 水平排列 | 左右均分,按钮间竖线分隔(`1px × 24px`,`var(--color-grey-2)`) |
|
|
162
|
+
| **单个按钮** | 水平撑满 | 单个按钮占满整行 |
|
|
163
|
+
| **多个按钮** | 竖向堆叠 | 最多 3 个按钮,一行一个,分割线隔开;主按钮在第一行 |
|
|
164
|
+
|
|
165
|
+
> **多个按钮** 规则:主按钮(primary)置顶,其余按钮按优先级排列;按钮间用 `border-bottom: 1px solid var(--color-grey-2)` 分割,无竖线分隔符。
|
|
166
|
+
|
|
167
|
+
#### 按钮状态色
|
|
168
|
+
|
|
169
|
+
| 状态 | 文字颜色 | 字重 |
|
|
170
|
+
|------|---------|------|
|
|
171
|
+
| `.primary`(主按钮) | `var(--color-main-6)` | Semibold 600 |
|
|
172
|
+
| `.default`(次要按钮) | `var(--color-grey-6)` | Regular |
|
|
173
|
+
| `.danger`(危险按钮) | `var(--color-red-6)` | Regular |
|
|
174
|
+
|
|
175
|
+
### 2.4 弹窗状态(`108-弹窗状态`)
|
|
176
|
+
|
|
177
|
+
| 属性 | 说明 |
|
|
178
|
+
|------|------|
|
|
179
|
+
| 组件尺寸 | 360 × 462px |
|
|
180
|
+
| **属性1** | `成功` / `失败` / `警告` |
|
|
181
|
+
|
|
182
|
+
#### 状态图标
|
|
183
|
+
|
|
184
|
+
| 状态 | 背景色 | 图标色 | 图标尺寸 |
|
|
185
|
+
|------|--------|--------|---------|
|
|
186
|
+
| 成功 | `var(--color-green-1)` | `var(--color-green-6)` | 48px 圆形, 24px 字号 |
|
|
187
|
+
| 失败 | `var(--color-red-1)` | `var(--color-red-6)` | 48px 圆形, 24px 字号 |
|
|
188
|
+
| 警告 | `var(--color-yellow-1)` | `var(--color-yellow-6)` | 48px 圆形, 24px 字号 |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 3. 头部类型变体(11 种)
|
|
193
|
+
|
|
194
|
+
| 序号 | 变体名称 | 说明 |
|
|
195
|
+
|------|---------|------|
|
|
196
|
+
| 1 | **正文单行** | 标题 + 单行正文描述 |
|
|
197
|
+
| 2 | **正文带勾选** | 标题 + 正文 + 勾选框 |
|
|
198
|
+
| 3 | **无描述-有输入框** | 标题 + 输入框(无描述文本) |
|
|
199
|
+
| 4 | **有描述-有输入框** | 标题 + 描述文本 + 输入框 |
|
|
200
|
+
| 5 | **带图标** | 标题 + 状态图标 |
|
|
201
|
+
| 6 | **带插图** | 标题 + 插图区域 |
|
|
202
|
+
| 7 | **区间输入** | 标题 + 区间范围输入 |
|
|
203
|
+
| 8 | **头部插图** | 顶部插图 + 标题 |
|
|
204
|
+
| 9 | **正文带提示** | 标题 + 提示信息文本 |
|
|
205
|
+
| 10 | **输入框(新)** | 标题 + 副标题 + 新型输入框 |
|
|
206
|
+
| 11 | **带单位** | 标题 + 副标题 + 带单位的输入 |
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 4. 设计稿实际变体尺寸
|
|
211
|
+
|
|
212
|
+
设计稿画布(组 669)中展示的实际组合:
|
|
213
|
+
|
|
214
|
+
| 组合 | 宽度 | 高度 |
|
|
215
|
+
|------|------|------|
|
|
216
|
+
| 正文单行 + 两个按钮 | 400px | 228px |
|
|
217
|
+
| 正文单行(仅头部) | 400px | 158px |
|
|
218
|
+
| 正文带勾选 + 两个按钮 | 400px | 268px |
|
|
219
|
+
| 区间输入 + 两个按钮 | 400px | 254px |
|
|
220
|
+
| 输入框(新)+ 两个按钮 | 400px | 305px |
|
|
221
|
+
| 带单位 + 两个按钮 | 400px | 306px |
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 5. 样式规格
|
|
226
|
+
|
|
227
|
+
### 5.1 弹窗容器
|
|
228
|
+
|
|
229
|
+
| 属性 | 值 |
|
|
230
|
+
|------|-----|
|
|
231
|
+
| 宽度 | 400px |
|
|
232
|
+
| 背景 | `var(--color-grey-1)` |
|
|
233
|
+
| 圆角 | 16px(组件级例外) |
|
|
234
|
+
| 投影 | `0px 8px 32px 0px rgba(0,0,0,0.12)` |
|
|
235
|
+
| 溢出 | hidden |
|
|
236
|
+
| 入场动画 | scale(0.9)→scale(1) + translateY(20px)→0,0.25s cubic-bezier |
|
|
237
|
+
|
|
238
|
+
### 5.2 内容区
|
|
239
|
+
|
|
240
|
+
| 属性 | 值 |
|
|
241
|
+
|------|-----|
|
|
242
|
+
| 最小高度 | 158px |
|
|
243
|
+
| 内边距 | 36px 40px |
|
|
244
|
+
| 布局 | flex column,居中 |
|
|
245
|
+
| 元素间距 | 8px |
|
|
246
|
+
|
|
247
|
+
### 5.3 标题
|
|
248
|
+
|
|
249
|
+
| 属性 | 值 |
|
|
250
|
+
|------|-----|
|
|
251
|
+
| 字体 | PingFang SC Semibold |
|
|
252
|
+
| 字号 | 20px |
|
|
253
|
+
| 行高 | 28px |
|
|
254
|
+
| 颜色 | `var(--color-black-6)` |
|
|
255
|
+
| 对齐 | 居中 |
|
|
256
|
+
|
|
257
|
+
### 5.4 副标题
|
|
258
|
+
|
|
259
|
+
| 属性 | 值 |
|
|
260
|
+
|------|-----|
|
|
261
|
+
| 字体 | PingFang SC Regular |
|
|
262
|
+
| 字号 | 14px |
|
|
263
|
+
| 行高 | 20px |
|
|
264
|
+
| 颜色 | `var(--color-grey-6)` |
|
|
265
|
+
| 对齐 | 居中 |
|
|
266
|
+
|
|
267
|
+
### 5.5 输入框
|
|
268
|
+
|
|
269
|
+
| 属性 | 值 |
|
|
270
|
+
|------|-----|
|
|
271
|
+
| 高度 | 40px |
|
|
272
|
+
| 内边距 | 0 8px |
|
|
273
|
+
| 边框 | `1px solid var(--color-black-2)` |
|
|
274
|
+
| 圆角 | 4px(`var(--radius-4dp)`) |
|
|
275
|
+
| 字号 | 16px |
|
|
276
|
+
| 聚焦边框 | `var(--color-main-6)` |
|
|
277
|
+
|
|
278
|
+
### 5.6 勾选框
|
|
279
|
+
|
|
280
|
+
| 属性 | 值 |
|
|
281
|
+
|------|-----|
|
|
282
|
+
| 尺寸 | 18px × 18px |
|
|
283
|
+
| 强调色 | `var(--color-main-6)` |
|
|
284
|
+
| 文字 | 14px, `var(--color-grey-6)` |
|
|
285
|
+
|
|
286
|
+
### 5.7 按钮区
|
|
287
|
+
|
|
288
|
+
| 属性 | 值 |
|
|
289
|
+
|------|-----|
|
|
290
|
+
| 按钮高度 | 54px |
|
|
291
|
+
| 顶部边框 | `1px solid var(--color-grey-2)` |
|
|
292
|
+
| 按钮字号 | 18px |
|
|
293
|
+
| 按钮间竖线 | `1px × 24px`, `var(--color-grey-2)`(仅水平双按钮) |
|
|
294
|
+
| 竖向按钮间分割线 | `border-bottom: 1px solid var(--color-grey-2)` |
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## 6. 设计变量(Design Tokens)
|
|
299
|
+
|
|
300
|
+
### 6.1 颜色
|
|
301
|
+
|
|
302
|
+
| Token | 色值 | 用途 |
|
|
303
|
+
|-------|------|------|
|
|
304
|
+
| `--color-mask` | `rgba(0, 0, 0, 0.6)` | 弹窗遮罩 |
|
|
305
|
+
| `--color-grey-1` | `#ffffff` | 弹窗背景 |
|
|
306
|
+
| `--color-grey-2` | `#f3f4f6` | 浅灰背景 / 分割线 |
|
|
307
|
+
| `--color-black-2` | `#dddddd` | 输入框边框 |
|
|
308
|
+
| `--color-black-6` | `#333333` | 正文标题文字 |
|
|
309
|
+
| `--color-grey-6` | `#52567b` | 辅助灰色文字 |
|
|
310
|
+
| `--color-main-6` | `#6445d1` | 主色 / 按钮文字 / 聚焦色 |
|
|
311
|
+
| `--color-green-6` | `#03c15f` | 成功状态 |
|
|
312
|
+
| `--color-red-6` | `#fb5251` | 失败 / 错误状态 |
|
|
313
|
+
| `--color-yellow-6` | `#ff9f02` | 警告状态 |
|
|
314
|
+
| `--color-green-1` | `#e9fff0` | 成功状态背景 |
|
|
315
|
+
| `--color-red-1` | `#ffece8` | 失败状态背景 |
|
|
316
|
+
| `--color-yellow-1` | `#fffae7` | 警告状态背景 |
|
|
317
|
+
|
|
318
|
+
### 6.2 字体
|
|
319
|
+
|
|
320
|
+
| Token | 字体 | 字号 | 字重 | 行高 |
|
|
321
|
+
|-------|------|------|------|------|
|
|
322
|
+
| `标题文本/【22】Title_Bold_S` | PingFang SC | 22px | Semibold | 30px |
|
|
323
|
+
| `正文/【20】Text_Normal` | PingFang SC | 20px | Regular | 28px |
|
|
324
|
+
| `正文/【20】Text_Bold` | PingFang SC | 20px | Semibold | 28px |
|
|
325
|
+
| `辅助文本/【16】Auxiliary_Normal_M` | PingFang SC | 16px | Regular | 22px |
|
|
326
|
+
| `辅助文本/【14】Auxiliary_Normal_S` | PingFang SC | 14px | Regular | 20px |
|
|
327
|
+
| `按钮/【22】Button_Bold` | PingFang SC | 22px | Semibold | 30px |
|
|
328
|
+
| `按钮/【22】Button_Normal` | PingFang SC | 22px | Regular | 30px |
|
|
329
|
+
|
|
330
|
+
### 6.3 间距
|
|
331
|
+
|
|
332
|
+
| Token | 值 | 说明 |
|
|
333
|
+
|-------|-----|------|
|
|
334
|
+
| `--spacing-4dp` | 4px | S 间距 |
|
|
335
|
+
| `--spacing-8dp` | 8px | M 间距,最常用 |
|
|
336
|
+
| `--spacing-16dp` | 16px | L 间距,最常用 |
|
|
337
|
+
| `--spacing-24dp` | 24px | XL 间距 |
|
|
338
|
+
| `--spacing-40dp` | 40px | XXL 间距,最大 |
|
|
339
|
+
|
|
340
|
+
### 6.4 圆角
|
|
341
|
+
|
|
342
|
+
| Token | 值 | 说明 |
|
|
343
|
+
|-------|-----|------|
|
|
344
|
+
| `--radius-2dp` | 2px | 极小圆角 |
|
|
345
|
+
| `--radius-4dp` | 4px | 通用圆角(上限) |
|
|
346
|
+
| `--radius-full` | 9999px | 仅 Badge/头像 |
|
|
347
|
+
|
|
348
|
+
> **注意**:Dialog 组件级的 16px 圆角不在 Token 体系中,为组件级例外。生成代码时必须写 `border-radius: 16px`。
|
|
349
|
+
|
|
350
|
+
### 6.5 投影
|
|
351
|
+
|
|
352
|
+
| Token | 值 | 说明 |
|
|
353
|
+
|-------|-----|------|
|
|
354
|
+
| Dialog 投影(无对应 Token) | `0px 8px 32px 0px rgba(0,0,0,0.12)` | 弹窗浮层阴影 |
|
|
355
|
+
|
|
356
|
+
---
|
|
357
|
+
|
|
358
|
+
## 7. 动画规范
|
|
359
|
+
|
|
360
|
+
| 元素 | 动画 | 时长 | 缓动 |
|
|
361
|
+
|------|------|------|------|
|
|
362
|
+
| 遮罩层 | fadeIn(opacity 0→1) | 0.2s | ease |
|
|
363
|
+
| 弹窗容器 | scale(0.9)+translateY(20px) → scale(1)+translateY(0) | 0.25s | cubic-bezier(0.175,0.885,0.32,1.275) |
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## 8. 使用说明
|
|
368
|
+
|
|
369
|
+
### 基本用法
|
|
370
|
+
弹窗组件居中展示,通常包含三个部分:
|
|
371
|
+
1. **遮罩层** — 覆盖全屏,`var(--color-mask)`
|
|
372
|
+
2. **内容区** — 承载标题、描述、输入框、图标等,padding `36px 40px`,最小高度 `158px`
|
|
373
|
+
3. **按钮区** — 承载操作按钮(单按钮 / 双按钮 / 多按钮),高度 `54px`
|
|
374
|
+
|
|
375
|
+
### 底部按钮规则
|
|
376
|
+
- **两个按钮**:水平排列,取消在左(default),确定在右(primary),竖线分隔
|
|
377
|
+
- **单个按钮**:撑满整行,primary 样式
|
|
378
|
+
- **多个按钮**:竖向堆叠,主按钮置顶,其余用分割线隔开,最多 3 个
|
|
379
|
+
|
|
380
|
+
### 状态提示
|
|
381
|
+
通过弹窗状态组件可展示操作结果:
|
|
382
|
+
- **成功** — 绿色圆形图标 + 成功标题 + 描述
|
|
383
|
+
- **失败** — 红色圆形图标 + 失败标题 + 描述
|
|
384
|
+
- **警告** — 黄色圆形图标 + 警告标题 + 描述
|
|
385
|
+
|
|
386
|
+
---
|
|
387
|
+
|
|
388
|
+
## 9. 相关组件
|
|
389
|
+
|
|
390
|
+
| 组件 | ID | 说明 |
|
|
391
|
+
|------|-----|------|
|
|
392
|
+
| 弹窗 | `109-弹窗` | 弹窗主组件 |
|
|
393
|
+
| 弹窗内容区 | `106-弹窗内容区` | 弹窗头部内容 |
|
|
394
|
+
| 弹窗按钮区 | `107-弹窗按钮区` | 弹窗底部按钮 |
|
|
395
|
+
| 弹窗状态 | `108-弹窗状态` | 状态提示(成功/失败/警告) |
|
|
396
|
+
| 弹窗插图 | `110-弹窗插图` | 弹窗内插图 |
|
|
397
|
+
| 遮罩层 | `067-遮罩层` | 弹窗遮罩 |
|
|
398
|
+
| 更新提示弹窗 | `111-更新提示弹窗` | 应用更新提示弹窗 |
|
|
399
|
+
|
|
400
|
+
---
|
|
401
|
+
|
|
402
|
+
## 10. 🔴 AI 错误对照表
|
|
403
|
+
|
|
404
|
+
生成 Dialog 代码后,逐项自检以下条目:
|
|
405
|
+
|
|
406
|
+
| # | 检查项 | 正确 | 常见错误 |
|
|
407
|
+
|---|--------|------|---------|
|
|
408
|
+
| 1 | 遮罩层颜色 | `var(--color-mask)` | `rgba(0,0,0,0.5)` 或裸 Hex |
|
|
409
|
+
| 2 | 弹窗圆角 | `16px`(组件例外) | `var(--radius-4dp)` 或 `4px` |
|
|
410
|
+
| 3 | 内容区 padding | `36px 40px` | `24px 24px` |
|
|
411
|
+
| 4 | 按钮高度 | `54px` | `44px` 或 `48px` |
|
|
412
|
+
| 5 | 主按钮颜色 | `var(--color-main-6)` | `#1677ff`(Ant Design 蓝) |
|
|
413
|
+
| 6 | 按钮区顶部边框 | `1px solid var(--color-grey-2)` | 无边框 |
|
|
414
|
+
| 7 | 按钮字体 | `18px` / `按钮/【22】Button_*` | `14px` 或 `16px` |
|
|
415
|
+
| 8 | 状态图标尺寸 | `48px` 圆形 | `32px` 或 `64px` |
|
|
416
|
+
| 9 | 分割线颜色 | `var(--color-grey-2)` | `#e5e5e5` |
|
|
417
|
+
| 10 | 内容区最小高度 | `158px` | 无最小高度,内容撑开 |
|
|
418
|
+
| 11 | 替换颜色 Token | 全用 `--color-*` | 残留裸 Hex(如 `#333`、`#333333`) |
|
|
419
|
+
| 12 | 按钮区按钮数 | ≤ 3 个 | 超过 3 个按钮 |
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: divider
|
|
3
|
+
name: 分割线
|
|
4
|
+
category: "布局/Layout"
|
|
5
|
+
version: "1.0.0"
|
|
6
|
+
source: PDAKit-基础组件
|
|
7
|
+
source_url: https://mastergo.ky-tech.com.cn/goto/TXmtB2FI
|
|
8
|
+
source_doc_id: 103417331857122
|
|
9
|
+
component_count: 3
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 分割线 Divider
|
|
13
|
+
|
|
14
|
+
PDAKit 分割线体系:**横向 2 类型 × 2 样式 / 纵向 1 类型 × 2 样式**,用于信息分区。
|
|
15
|
+
|
|
16
|
+
> **状态命名统一**:分割线无交互状态,仅区分 `solid`(直线)/ `dashed`(虚线)。
|
|
17
|
+
> **颜色规则**:全部使用 Token(`--color-{色系}-{色阶}`),禁止 Hex。Token 定义见文末 [附录](#附录-a颜色-token)。
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 组件总览
|
|
22
|
+
|
|
23
|
+
| 组件 | Key | 变体数 |
|
|
24
|
+
|------|-----|--------|
|
|
25
|
+
| 分割线/横向-默认 | `002-分割线-横向-默认` | 2 样式 = 2 |
|
|
26
|
+
| 分割线/横向-标题 | `003-分割线-横向-标题` | 2 样式 = 2 |
|
|
27
|
+
| 分割线/纵向 | `004-分割线-纵向` | 2 样式 = 2 |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 1. 分割线/横向-默认
|
|
32
|
+
|
|
33
|
+
**描述**: 信息分割使用,通栏水平细线。需带标题时切换为「分割线/横向-标题」。
|
|
34
|
+
|
|
35
|
+
### Props
|
|
36
|
+
|
|
37
|
+
| Prop | 类型 | 值 |
|
|
38
|
+
|------|------|-----|
|
|
39
|
+
| 类型 | enum | `直线` / `虚线` |
|
|
40
|
+
|
|
41
|
+
### 规格
|
|
42
|
+
|
|
43
|
+
| 属性 | 值 |
|
|
44
|
+
|------|------|
|
|
45
|
+
| 线条颜色 | `--color-black-2` |
|
|
46
|
+
| 线条高度 | `1px` |
|
|
47
|
+
| 线条宽度 | 撑满容器(`self-stretch`) |
|
|
48
|
+
|
|
49
|
+
### CSS 示例
|
|
50
|
+
|
|
51
|
+
```css
|
|
52
|
+
/* 分割线 横向-直线 */
|
|
53
|
+
.divider-h-solid {
|
|
54
|
+
width: 100%;
|
|
55
|
+
height: 1px;
|
|
56
|
+
background: var(--color-black-2);
|
|
57
|
+
border: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* 分割线 横向-虚线 */
|
|
61
|
+
.divider-h-dashed {
|
|
62
|
+
width: 100%;
|
|
63
|
+
height: 0;
|
|
64
|
+
border: none;
|
|
65
|
+
border-bottom: 1px dashed var(--color-black-2);
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 2. 分割线/横向-标题
|
|
72
|
+
|
|
73
|
+
**描述**: 带标题的水平分割线,标题居中,左右各一条线。可切换直线/虚线。
|
|
74
|
+
|
|
75
|
+
### Props
|
|
76
|
+
|
|
77
|
+
| Prop | 类型 | 值 |
|
|
78
|
+
|------|------|-----|
|
|
79
|
+
| 文本 | string | 任意(默认 `请输入标题`) |
|
|
80
|
+
| 类型 | enum | `直线` / `虚线` |
|
|
81
|
+
|
|
82
|
+
### 规格
|
|
83
|
+
|
|
84
|
+
| 属性 | 值 |
|
|
85
|
+
|------|------|
|
|
86
|
+
| 线条颜色 | `--color-black-2` |
|
|
87
|
+
| 线条高度 | `1px` |
|
|
88
|
+
| 标题颜色 | `--color-black-5` |
|
|
89
|
+
| 标题字体 | `text/16/22`,PingFang SC Regular |
|
|
90
|
+
| 线-标题间距 | `--spacing-8` |
|
|
91
|
+
| 顶部内边距 | `--spacing-16` |
|
|
92
|
+
| 底部内边距 | `--spacing-8` |
|
|
93
|
+
|
|
94
|
+
### 颜色
|
|
95
|
+
|
|
96
|
+
| 样式 | state | 线条 | 标题 |
|
|
97
|
+
|------|-------|------|------|
|
|
98
|
+
| 直线 | solid | `--color-black-2` | `--color-black-5` |
|
|
99
|
+
| 虚线 | dashed | `--color-black-2` | `--color-black-5` |
|
|
100
|
+
|
|
101
|
+
### CSS 示例
|
|
102
|
+
|
|
103
|
+
```css
|
|
104
|
+
/* 分割线 横向-标题 直线 */
|
|
105
|
+
.divider-title-solid {
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
gap: var(--spacing-8);
|
|
109
|
+
padding: var(--spacing-16) 0 var(--spacing-8);
|
|
110
|
+
}
|
|
111
|
+
.divider-title-solid::before,
|
|
112
|
+
.divider-title-solid::after {
|
|
113
|
+
content: '';
|
|
114
|
+
flex: 1;
|
|
115
|
+
height: 1px;
|
|
116
|
+
background: var(--color-black-2);
|
|
117
|
+
}
|
|
118
|
+
.divider-title-solid .title {
|
|
119
|
+
color: var(--color-black-5);
|
|
120
|
+
font-size: 16px;
|
|
121
|
+
line-height: 22px;
|
|
122
|
+
font-family: PingFang SC;
|
|
123
|
+
white-space: nowrap;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/* 分割线 横向-标题 虚线 */
|
|
127
|
+
.divider-title-dashed::before,
|
|
128
|
+
.divider-title-dashed::after {
|
|
129
|
+
content: '';
|
|
130
|
+
flex: 1;
|
|
131
|
+
height: 0;
|
|
132
|
+
border-bottom: 1px dashed var(--color-black-2);
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 3. 分割线/纵向
|
|
139
|
+
|
|
140
|
+
**描述**: 垂直分割线,用于左右信息分区。
|
|
141
|
+
|
|
142
|
+
### Props
|
|
143
|
+
|
|
144
|
+
| Prop | 类型 | 值 |
|
|
145
|
+
|------|------|-----|
|
|
146
|
+
| 属性 3 | enum | `直线` / `虚线` |
|
|
147
|
+
|
|
148
|
+
### 规格
|
|
149
|
+
|
|
150
|
+
| 属性 | 值 |
|
|
151
|
+
|------|------|
|
|
152
|
+
| 线条颜色 | `--color-black-2` |
|
|
153
|
+
| 线条宽度 | `1px` |
|
|
154
|
+
| 线条高度 | 撑满容器(`self-stretch`) |
|
|
155
|
+
|
|
156
|
+
### CSS 示例
|
|
157
|
+
|
|
158
|
+
```css
|
|
159
|
+
/* 分割线 纵向-直线 */
|
|
160
|
+
.divider-v-solid {
|
|
161
|
+
width: 1px;
|
|
162
|
+
align-self: stretch;
|
|
163
|
+
background: var(--color-black-2);
|
|
164
|
+
border: none;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/* 分割线 纵向-虚线 */
|
|
168
|
+
.divider-v-dashed {
|
|
169
|
+
width: 0;
|
|
170
|
+
align-self: stretch;
|
|
171
|
+
border-left: 1px dashed var(--color-black-2);
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 附录 A:颜色 Token
|
|
178
|
+
|
|
179
|
+
| Token | 色值 | 使用场景 |
|
|
180
|
+
|-------|------|---------|
|
|
181
|
+
| `--color-black-2` | `#dddddd` | 分割线颜色(直线/虚线通用) |
|
|
182
|
+
| `--color-black-5` | `#666666` | 横向-标题的文字颜色 |
|
|
183
|
+
|
|
184
|
+
> 详见 [tokens/colors.md](../tokens/colors.md)
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 附录 B:字体 Token
|
|
189
|
+
|
|
190
|
+
| Token | 字号 | 行高 | 对齐 | 适用组件 |
|
|
191
|
+
|-------|------|------|------|---------|
|
|
192
|
+
| `text/16/22` | 16px | 22px | left | 分割线/横向-标题 |
|
|
193
|
+
|
|
194
|
+
> 字体统一 PingFang SC,字重 Regular。详见 [tokens/typography.md](../tokens/typography.md)
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## 使用规则(AI 必读)
|
|
199
|
+
|
|
200
|
+
1. **颜色用 Token**:禁止裸 Hex,线条用 `--color-black-2`,标题用 `--color-black-5`
|
|
201
|
+
2. **类型选型**:
|
|
202
|
+
| 场景 | 组件 |
|
|
203
|
+
|------|------|
|
|
204
|
+
| 段落/区块间通用分割 | 分割线/横向-默认 |
|
|
205
|
+
| 带分类标题的分割 | 分割线/横向-标题 |
|
|
206
|
+
| 左右内容分区 | 分割线/纵向 |
|
|
207
|
+
3. **样式切换**:直线(`solid`)用于常规场景,虚线(`dashed`)用于弱化分割感
|
|
208
|
+
4. **引用命名**:使用 `❖PDAKit™:分割线/横向-默认` 格式
|