ai-spec-tool 0.1.0
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/LICENSE +21 -0
- package/README.md +35 -0
- package/assets/.agents/skills/bugfix/SKILL.md +32 -0
- package/assets/.agents/skills/plan/SKILL.md +323 -0
- package/assets/.agents/skills/plan-executor/SKILL.md +310 -0
- package/assets/.agents/skills/rules-creator/SKILL.md +19 -0
- package/assets/.agents/skills/rules-creator/assets/architecture-gen.md +214 -0
- package/assets/.agents/skills/rules-creator/assets/naming-rule-gen.md +77 -0
- package/assets/.agents/skills/rules-creator/assets/ui-architecture-gen.md +332 -0
- package/assets/.agents/skills/rules-creator/assets/ui-template-gen.md +127 -0
- package/assets/.agents/skills/rules-creator/assets/vision-gen.md +613 -0
- package/assets/.agents/skills/spec-executor/SKILL.md +120 -0
- package/assets/AGENTS.md +30 -0
- package/bin/ai-spec-tool.js +150 -0
- package/package.json +25 -0
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
# UI 规范生成器(适合非 UI 专业)
|
|
2
|
+
|
|
3
|
+
## 1) 开场说明(固定)
|
|
4
|
+
|
|
5
|
+
> 我们要建立一套 UI 规范,让后续设计与开发都一致。
|
|
6
|
+
> 我会一步步提问,你按自己的想法回答即可。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Q1. 你想要什么风格(我会整理成具体设定)
|
|
11
|
+
|
|
12
|
+
<输出以下内容>
|
|
13
|
+
> 你可以用以下方式告诉我风格方向:
|
|
14
|
+
> A) 描述想要的 UI 风格(关键词)
|
|
15
|
+
> B) 提供想参考的网站链接
|
|
16
|
+
> C) 提供参考截图
|
|
17
|
+
<输出以上内容>
|
|
18
|
+
|
|
19
|
+
说明:
|
|
20
|
+
- 若提供网站,仅作为风格参考,不复制具体内容
|
|
21
|
+
- 若提供截图,仅作为风格参考,不复刻具体布局
|
|
22
|
+
- 若仅提供关键词,需补充:氛围、情绪、密度(紧凑/舒展)
|
|
23
|
+
- 若有不想要的风格或气质,请列出 1–3 条 (非必要)
|
|
24
|
+
|
|
25
|
+
### 系统整理(你确认后才会继续)
|
|
26
|
+
|
|
27
|
+
系统必须基于用户线索整理出以下资讯,并请用户确认:
|
|
28
|
+
- 主色与辅助色倾向(如:冷色/暖色、饱和/低饱和)
|
|
29
|
+
- 明暗基调(浅色为主 / 深色为主 / 双模式)
|
|
30
|
+
- 字体风格倾向(严谨 / 中性 / 活泼 / 极简)
|
|
31
|
+
- 圆角偏好(小/中/大)
|
|
32
|
+
- 阴影倾向(无/轻/中/强)
|
|
33
|
+
- 动效倾向(无/少量/明显)
|
|
34
|
+
|
|
35
|
+
确认方式:
|
|
36
|
+
> A) 接受
|
|
37
|
+
> B) 修改(请直接改)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Q2. 需要哪些「文字/背景/状态」层级
|
|
42
|
+
|
|
43
|
+
> 这一步是为了避免后续样式缺漏,请确认模板是否适用。
|
|
44
|
+
|
|
45
|
+
我会根据 Q1 的风格线索给出一份 **排版建议**,包含:
|
|
46
|
+
|
|
47
|
+
- 文字层级:标题 / 副标题 / 正文 / 辅助 / 禁用
|
|
48
|
+
- 背景层级:画布 / 表面 / 强调
|
|
49
|
+
- 交互状态:默认 / 悬停 / 按下 / 禁用 / 焦点
|
|
50
|
+
- 反馈语义:成功 / 警告 / 错误 / 信息
|
|
51
|
+
|
|
52
|
+
确认方式:
|
|
53
|
+
> A) 接受
|
|
54
|
+
> B) 调整(请直接改)
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Q3. 页面排版方向(我会给建议)
|
|
59
|
+
|
|
60
|
+
我会根据 Q1 的风格线索给出一份 **排版建议**,包含:
|
|
61
|
+
|
|
62
|
+
- 页面类型倾向(营销/内容/应用型/混合/...)
|
|
63
|
+
- 页面内容整体会偏「紧凑」还是「留白多」?(紧凑/中等/舒展/...)
|
|
64
|
+
- 页面内容想怎么分成几块并排?(例如:整页一列、左右两列、更多栏位...)
|
|
65
|
+
- 内容区域通常最大到多宽?(例如 1200/1440/不限制...)
|
|
66
|
+
- 主要的内容会以哪种形式排列?(例如:单列往下、两列并排、卡片一块块、混合...)
|
|
67
|
+
|
|
68
|
+
确认方式:
|
|
69
|
+
> A) 接受
|
|
70
|
+
> B) 调整(请直接改)
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Q4. 不同屏幕怎么显示(我会给建议)
|
|
75
|
+
|
|
76
|
+
我会根据 Q1 的风格线索给出一份 **多屏幕建议**,包含:
|
|
77
|
+
|
|
78
|
+
- 需要区分几种屏幕尺寸(建议 4–6)
|
|
79
|
+
- 优先照顾手机还是电脑(小屏优先 / 桌面优先)
|
|
80
|
+
- 小屏时导航要怎么出现?(比如:收起来点一下再展开 / 从侧边滑出来 / 底部按钮列)
|
|
81
|
+
- 小屏时内容要怎么挪动或收起来?(比如:改成一列、折叠起来、必要时隐藏)
|
|
82
|
+
- 小屏必须保留哪些内容、哪些可隐藏
|
|
83
|
+
|
|
84
|
+
确认方式:
|
|
85
|
+
> A) 接受
|
|
86
|
+
> B) 调整(请直接改)
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Q5. 需要覆盖哪些页面与交互(我会给建议)
|
|
91
|
+
|
|
92
|
+
我会根据 Q1 的风格线索给出一份 **覆盖建议**,包含:
|
|
93
|
+
|
|
94
|
+
- 页面类型(首页/列表/详情/表单/空状态/错误页等)
|
|
95
|
+
- 常见操作方式会有哪些?(例如:导航、筛选、搜索、翻页、主要行动按钮)
|
|
96
|
+
- 主要行动按钮通常放在哪里?(例如:页面顶部、右上角、底部、固定在画面上)
|
|
97
|
+
- 主要组件组合方式(卡片/区块/分栏/时间线)
|
|
98
|
+
|
|
99
|
+
确认方式:
|
|
100
|
+
> A) 接受
|
|
101
|
+
> B) 调整(请直接改)
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## Q6. 无障碍基础规范(可选)
|
|
106
|
+
|
|
107
|
+
> 是否要建立无障碍基础规范?
|
|
108
|
+
> A) 是(立即生成)
|
|
109
|
+
> B) 否(未来再补齐)
|
|
110
|
+
|
|
111
|
+
说明:
|
|
112
|
+
- 若选择 A:生成固定内容的 `./docs/global/ui/accessibility.md`
|
|
113
|
+
- 若选择 B:跳过本文件
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 2) 颜色/字体/间距等基础规范(Design Tokens)
|
|
118
|
+
|
|
119
|
+
你**必须**生成符合以下结构的 `design-tokens.md`:
|
|
120
|
+
|
|
121
|
+
```md
|
|
122
|
+
# Design Tokens
|
|
123
|
+
|
|
124
|
+
## 基础 Tokens
|
|
125
|
+
|
|
126
|
+
### 颜色(Base Colors)
|
|
127
|
+
- color.base.<name>.<scale>
|
|
128
|
+
|
|
129
|
+
### 字体(Typography)
|
|
130
|
+
- font.family.primary
|
|
131
|
+
- font.size.<scale>
|
|
132
|
+
- font.weight.<scale>
|
|
133
|
+
- line.height.<scale>
|
|
134
|
+
|
|
135
|
+
### 间距(Spacing)
|
|
136
|
+
- space.<scale>
|
|
137
|
+
|
|
138
|
+
### 圆角(Radius)
|
|
139
|
+
- radius.<scale>
|
|
140
|
+
|
|
141
|
+
### 阴影(Shadow)
|
|
142
|
+
- shadow.<scale>
|
|
143
|
+
|
|
144
|
+
### 动效(Motion)
|
|
145
|
+
- motion.duration.<scale>
|
|
146
|
+
- motion.easing.<name>
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## 语义 Tokens
|
|
151
|
+
|
|
152
|
+
### 文字
|
|
153
|
+
- color.text.primary
|
|
154
|
+
- color.text.secondary
|
|
155
|
+
- color.text.muted
|
|
156
|
+
- color.text.disabled
|
|
157
|
+
|
|
158
|
+
### 背景
|
|
159
|
+
- color.bg.canvas
|
|
160
|
+
- color.bg.surface
|
|
161
|
+
- color.bg.elevated
|
|
162
|
+
- color.bg.accent
|
|
163
|
+
|
|
164
|
+
### 边框
|
|
165
|
+
- color.border.default
|
|
166
|
+
- color.border.subtle
|
|
167
|
+
- color.border.focus
|
|
168
|
+
|
|
169
|
+
### 交互
|
|
170
|
+
- color.interactive.default
|
|
171
|
+
- color.interactive.hover
|
|
172
|
+
- color.interactive.active
|
|
173
|
+
- color.interactive.disabled
|
|
174
|
+
|
|
175
|
+
### 反馈
|
|
176
|
+
- color.feedback.success
|
|
177
|
+
- color.feedback.warning
|
|
178
|
+
- color.feedback.error
|
|
179
|
+
- color.feedback.info
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 3) 生成规则(硬规则)
|
|
185
|
+
|
|
186
|
+
* 基础 Tokens 以“中性可复用”为核心
|
|
187
|
+
* 语义 Tokens 必须映射到基础 Tokens
|
|
188
|
+
* 颜色需提供 5–9 个刻度(如 50–900)
|
|
189
|
+
* 字体、间距、圆角、阴影、动效需提供 4–8 个刻度
|
|
190
|
+
* 若用户提供参考网站,需总结其风格特征并转化为 tokens
|
|
191
|
+
* 所有 tokens **必须使用统一命名规范**
|
|
192
|
+
* Layout / 不同屏幕规则里的间距与字号 **必须引用 design-tokens 的命名**,不得出现未定义的新数值
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 4) 输出要求(固定)
|
|
197
|
+
|
|
198
|
+
* 必须生成并保存 `./docs/global/ui/design-tokens.md`
|
|
199
|
+
* 不得将文件内容直接输出在对话中
|
|
200
|
+
* 对话中只允许输出:
|
|
201
|
+
|
|
202
|
+
> 已完成 Design Tokens 文件的生成:
|
|
203
|
+
> `<文件名>`(需为可点击超链接)
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 5) 页面排版与不同屏幕规范(Layout + Responsive)
|
|
208
|
+
|
|
209
|
+
你**必须**生成并保存 `./docs/global/ui/layout-and-responsive.md`,结构如下:
|
|
210
|
+
|
|
211
|
+
```md
|
|
212
|
+
# Layout + Responsive 规范
|
|
213
|
+
|
|
214
|
+
## 布局策略
|
|
215
|
+
## 栅格系统
|
|
216
|
+
## 容器与内容宽度
|
|
217
|
+
## 间距与对齐
|
|
218
|
+
## 典型布局结构
|
|
219
|
+
## 断点定义
|
|
220
|
+
## 侧重手机或电脑
|
|
221
|
+
## 导航在小屏的处理
|
|
222
|
+
## 关键区块的重排规则
|
|
223
|
+
## 字体与间距缩放规则
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 6) 常见页面与交互规则(Patterns)
|
|
229
|
+
|
|
230
|
+
你**必须**生成并保存 `./docs/global/ui/patterns.md`,结构如下:
|
|
231
|
+
|
|
232
|
+
```md
|
|
233
|
+
# UI Patterns
|
|
234
|
+
|
|
235
|
+
## 页面模式
|
|
236
|
+
## 交互模式
|
|
237
|
+
## 组件组合规则
|
|
238
|
+
## 空状态与错误态
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 7) 无障碍基础规范(固定内容模板)
|
|
244
|
+
|
|
245
|
+
若用户选择建立,必须使用以下固定结构与内容生成:
|
|
246
|
+
|
|
247
|
+
```md
|
|
248
|
+
# Accessibility Baseline
|
|
249
|
+
|
|
250
|
+
## 目标
|
|
251
|
+
- 保证核心内容可被键盘与屏幕阅读器访问
|
|
252
|
+
- 保证文本与背景对比度满足基础可读性
|
|
253
|
+
|
|
254
|
+
## 键盘可用性
|
|
255
|
+
- 所有可交互元素必须可聚焦
|
|
256
|
+
- 焦点顺序需符合视觉阅读顺序
|
|
257
|
+
- 必须提供可见的焦点样式
|
|
258
|
+
|
|
259
|
+
## 语义与标注
|
|
260
|
+
- 交互控件必须使用语义化元素或等效标注
|
|
261
|
+
- 图片必须提供替代文本
|
|
262
|
+
- 表单元素必须有可识别的标签
|
|
263
|
+
|
|
264
|
+
## 颜色与对比
|
|
265
|
+
- 文字与背景对比度需至少达到 4.5:1(大字号可适当放宽)
|
|
266
|
+
- 不得仅以颜色传达关键信息
|
|
267
|
+
|
|
268
|
+
## 动效与可控性
|
|
269
|
+
- 动效应可被降低或关闭
|
|
270
|
+
- 不得使用强闪烁或易引发不适的效果
|
|
271
|
+
|
|
272
|
+
## 反馈与错误提示
|
|
273
|
+
- 错误信息必须可被读取与理解
|
|
274
|
+
- 错误状态需提供明确的恢复路径
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
## 8) 最终输出要求(固定)
|
|
278
|
+
|
|
279
|
+
1.文件输出
|
|
280
|
+
* 必须生成并保存以下文件:
|
|
281
|
+
- `./docs/global/ui/design-tokens.md`
|
|
282
|
+
- `./docs/global/ui/layout-and-responsive.md`
|
|
283
|
+
- `./docs/global/ui/patterns.md`
|
|
284
|
+
- `./docs/global/ui/module-ui-types.md`
|
|
285
|
+
* 若用户选择建立 Accessibility Baseline,还需生成:
|
|
286
|
+
- `./docs/global/ui/accessibility.md`
|
|
287
|
+
* 不得将文件内容直接输出在对话中
|
|
288
|
+
* 格式:Markdown
|
|
289
|
+
* 语言:中文
|
|
290
|
+
|
|
291
|
+
2.对话输出
|
|
292
|
+
* 对话中只允许输出:
|
|
293
|
+
> 已完成 UI 规范文件的生成:
|
|
294
|
+
> 1.`design-tokens.md`
|
|
295
|
+
> 2.`layout-and-responsive.md`
|
|
296
|
+
> 3.`patterns.md`
|
|
297
|
+
> 4.`module-ui-types.md`
|
|
298
|
+
> 5.`accessibility.md`(若有建立)
|
|
299
|
+
* 禁止输出:
|
|
300
|
+
* 具体组件实现
|
|
301
|
+
* 具体框架代码
|
|
302
|
+
* 具体 CSS 选择器与样式规则
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## 9) UI Module Types 标记(强制)
|
|
307
|
+
|
|
308
|
+
在生成 UI 规范时,必须读取 `./docs/global/architecture.md` 的分层/模块分类,
|
|
309
|
+
并输出一份 **UI 显示组件类型清单**,用于后续生成 Component Rules。
|
|
310
|
+
|
|
311
|
+
文件:`./docs/global/ui/module-ui-types.md`,结构如下:
|
|
312
|
+
|
|
313
|
+
```md
|
|
314
|
+
# UI Module Types
|
|
315
|
+
|
|
316
|
+
## 说明
|
|
317
|
+
- 本文件用于标记哪些 module type 属于「UI 显示组件」
|
|
318
|
+
- plan-executor 将据此判断哪些模块需要生成 Component Rules
|
|
319
|
+
|
|
320
|
+
## UI 显示组件类型
|
|
321
|
+
- <ModuleTypeA>
|
|
322
|
+
- <ModuleTypeB>
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
## 10) 后续询问(固定)
|
|
328
|
+
|
|
329
|
+
在完成以上所有 UI 规范与输出后,**必须询问用户是否执行 `ui-template-gen`**:
|
|
330
|
+
> 是否执行范例界面生成(ui-template-gen)?
|
|
331
|
+
> A) 是(继续执行)
|
|
332
|
+
> B) 否(结束)
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
# 范例界面生成器
|
|
2
|
+
|
|
3
|
+
## 1) 说明(固定)
|
|
4
|
+
|
|
5
|
+
> 我们将生成一个「常见页面」的范例界面。
|
|
6
|
+
> 页面从上到下划分为多个单元,用来展示 UI 规范如何影响排版、颜色、间距与响应式。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 2) 执行前置条件(强制)
|
|
11
|
+
|
|
12
|
+
执行前**必须确认**:
|
|
13
|
+
* `/project` 目录存在
|
|
14
|
+
* `./docs/global/architecture.md` 已明确技术框架且已完成基础工程初始化
|
|
15
|
+
* 已基于 `./docs/global/ui/` 生成可被页面直接使用的视觉定义
|
|
16
|
+
- 固定输出:`./src/styles/ui-tokens.css`(CSS 变量)
|
|
17
|
+
|
|
18
|
+
若任一条件不满足:**停止并要求补齐**。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 3) 生成触发(固定)
|
|
23
|
+
|
|
24
|
+
在完成所有 UI 规范后,**必须询问用户是否创建「范例界面」文件**:
|
|
25
|
+
> 是否创建一个范例界面(常见页面,自上而下多个单元),用来展示哪些 UI 规范如何影响排版、颜色、间距与响应式?
|
|
26
|
+
> A) 是(立即生成)
|
|
27
|
+
> B) 否(先跳过)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 4) 可渲染界面输出(强制)
|
|
32
|
+
|
|
33
|
+
若 `architecture.md` 指定为网页前端框架(如 Next.js),**必须额外生成一个可直接渲染的范例界面页面**:
|
|
34
|
+
* 使用当前技术框架的默认页面结构与目录(例如 Next.js App Router:`./src/app/example-screen/page.tsx`)
|
|
35
|
+
* 页面内容与样式必须严格引用 UI 规范(design-tokens / layout-and-responsive / patterns)
|
|
36
|
+
* 仅展示范例界面,不引入业务逻辑
|
|
37
|
+
* **单文件产出**:不得拆分或创建任何额外的组件文件(如 `src/components`)
|
|
38
|
+
* 除 UI 规范定义文件外,不得依赖任何外部组件或资源
|
|
39
|
+
* **必须显式引入并使用** `./src/styles/ui-tokens.css`
|
|
40
|
+
* 页面中所有颜色/字体/间距/圆角/阴影/动效 **必须使用 tokens 变量**,不得出现未定义的硬编码值
|
|
41
|
+
* 必须在页面中体现响应式断点变化(至少覆盖 XS/S 与 L/XL 的差异)
|
|
42
|
+
* 必须展示交互状态的可视差异(hover / active / disabled / focus),且在页面中可直接观察
|
|
43
|
+
* **禁止使用内联样式**(如 `style={{ ... }}`),必须通过类名与样式规则实现
|
|
44
|
+
* `./src/styles/ui-tokens.css` 必须采用 **两层结构**:
|
|
45
|
+
- Base Tokens:仅定义原子数值(颜色刻度/字号/间距/圆角/阴影/动效)
|
|
46
|
+
- Semantic Tokens:将 Base Tokens 映射到语义(文字/背景/边框/交互/反馈)
|
|
47
|
+
* 页面样式**优先使用语义层 tokens**,仅在必要时使用 Base Tokens
|
|
48
|
+
* `./src/styles/ui-tokens.css` 必须使用 `:root {}` 包裹,并按以下分区注释顺序输出:
|
|
49
|
+
- `/* Base Tokens - Colors */`
|
|
50
|
+
- `/* Base Tokens - Typography */`
|
|
51
|
+
- `/* Base Tokens - Spacing */`
|
|
52
|
+
- `/* Base Tokens - Radius */`
|
|
53
|
+
- `/* Base Tokens - Shadow */`
|
|
54
|
+
- `/* Base Tokens - Motion */`
|
|
55
|
+
- `/* Semantic Tokens - Text */`
|
|
56
|
+
- `/* Semantic Tokens - Background */`
|
|
57
|
+
- `/* Semantic Tokens - Border */`
|
|
58
|
+
- `/* Semantic Tokens - Interactive */`
|
|
59
|
+
- `/* Semantic Tokens - Feedback */`
|
|
60
|
+
* 若框架尚未初始化或目录不存在:**停止并要求先完成工程初始化**
|
|
61
|
+
* 范例界面页面内需包含以下说明区块(可以是页面中的说明模块):
|
|
62
|
+
- 页面定位(页面类型、主要场景)
|
|
63
|
+
- 整体结构(Header / Main / Footer 与 Main 分区)
|
|
64
|
+
- 以下为**强制单元清单**,需按自上而下顺序呈现:
|
|
65
|
+
1. Header + 主行动区
|
|
66
|
+
2. Hero / 关键摘要
|
|
67
|
+
3. 筛选/搜索工具栏
|
|
68
|
+
4. 内容列表(卡片或表格)
|
|
69
|
+
5. 表单分组 / 分步校验区
|
|
70
|
+
6. 侧边信息区
|
|
71
|
+
7. 进度 / 时间线区
|
|
72
|
+
8. 状态与反馈区
|
|
73
|
+
9. 空状态 / 错误态
|
|
74
|
+
10. 分页 / 继续加载
|
|
75
|
+
11. Footer
|
|
76
|
+
- 每个单元区块必须:
|
|
77
|
+
- 使用真实布局与颜色展示(不可只用文字描述)
|
|
78
|
+
- 标注该单元受哪些 UI 规范影响(layout-and-responsive / design-tokens / patterns)
|
|
79
|
+
- 说明具体影响点(排版、颜色、间距、交互或响应式)
|
|
80
|
+
- 响应式要点(导航、小屏重排、间距字号缩放)
|
|
81
|
+
- 交互与状态示例(主要/次要行动、空状态/错误态)
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 5) 硬规则(强制)
|
|
86
|
+
|
|
87
|
+
* 范例界面为“常见页面”,结构从上到下按单元划分
|
|
88
|
+
* 每个单元**必须明确写出**对应引用了哪些 UI 规范(layout-and-responsive / design-tokens / patterns)
|
|
89
|
+
* 可渲染页面文件可包含必要的 HTML/CSS/框架代码
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 6) 自检(强制)
|
|
94
|
+
|
|
95
|
+
生成后**必须执行**以下检查,若命中任一项:立即修正后再输出:
|
|
96
|
+
|
|
97
|
+
* 页面文件不得包含:
|
|
98
|
+
- 内联样式(`style=`)
|
|
99
|
+
- 任何 `rgba(...)` / `rgb(...)` / 十六进制颜色(`#fff` 等)
|
|
100
|
+
* 除 `./src/styles/ui-tokens.css` 外,其它样式文件不得包含硬编码颜色值
|
|
101
|
+
* 页面文件所有颜色/字体/间距/圆角/阴影/动效必须来自 tokens(`var(--*)` 或对应语义类)
|
|
102
|
+
|
|
103
|
+
建议检查命令(可直接使用 `rg`):
|
|
104
|
+
* `rg -n "style=" ./src/app/example-screen/page.tsx`
|
|
105
|
+
* `rg -n "rgba\\(|rgb\\(|#[0-9a-fA-F]{3,8}" ./src/app/example-screen/page.tsx`
|
|
106
|
+
* `rg -n "rgba\\(|rgb\\(|#[0-9a-fA-F]{3,8}" ./src/app -g \"*.css\" -g \"!ui-tokens.css\"`
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 7) 展示与调整流程(强制)
|
|
111
|
+
|
|
112
|
+
在生成范例界面后,**必须基于当前环境给出查看方式**,并进入调整阶段:
|
|
113
|
+
|
|
114
|
+
1. 告知用户如何启动与访问页面(必须给出具体命令与访问地址)
|
|
115
|
+
- 以当前工程为准:`/project` 为 Next.js 项目
|
|
116
|
+
- 示例指令:
|
|
117
|
+
- `cd /project`
|
|
118
|
+
- `npm run dev`
|
|
119
|
+
- 示例地址:`http://localhost:3000/example-screen`
|
|
120
|
+
|
|
121
|
+
2. 进入调整阶段:
|
|
122
|
+
- 等待用户指出要调整的单元
|
|
123
|
+
- 根据反馈同时修改:
|
|
124
|
+
- 对应的 UI 规范说明(若需要,更新 `docs/global/ui` 的相关规范)
|
|
125
|
+
- 实际页面代码与样式(如 `page.tsx` 与相关样式)
|
|
126
|
+
|
|
127
|
+
3. 重复调整直到用户满意
|