@devflow-tools/plugin-ui-layout 0.3.2 → 0.5.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/README.md ADDED
@@ -0,0 +1,21 @@
1
+ # @devflow-tools/plugin-ui-layout
2
+
3
+ UI Layout expert plugin for DevFlow — layout patterns, component composition, responsive architecture, and design systems.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @devflow-tools/plugin-ui-layout
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ devflow init
15
+ # Then in Claude Code:
16
+ # /devflow:ui-layout 审查项目的布局模式
17
+ ```
18
+
19
+ ## License
20
+
21
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,cAAc,EAAE,aAiI5B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,cAAc,EAAE,aAw0B5B,CAAC"}
package/dist/index.js CHANGED
@@ -67,43 +67,754 @@ export const uiLayoutPlugin = {
67
67
  {
68
68
  name: "layout-audit",
69
69
  description: "布局审计:一致性检查 → 响应式问题 → 可访问性评估",
70
- version: "1.0.0",
70
+ version: "2.0.0",
71
71
  steps: [
72
- { id: "scan-layouts", description: "扫描页面中所有布局结构(Grid/Flex/定位)", type: "simple", timeout: 10000 },
73
- { id: "check-consistency", description: "检查布局一致性(间距、列数、断点是否统一)", type: "simple", depends: ["scan-layouts"], timeout: 10000 },
74
- { id: "check-spacing", description: "检查间距是否符合 Scale 体系", type: "simple", depends: ["scan-layouts"], timeout: 10000 },
75
- { id: "check-responsive", description: "检查各断点下布局是否正常", type: "simple", depends: ["scan-layouts"], timeout: 15000 },
76
- { id: "check-a11y", description: "检查语义化结构和 Landmark 角色", type: "simple", depends: ["scan-layouts"], timeout: 10000 },
77
- { id: "generate-report", description: "生成布局审计报告(分级问题 + 修复建议)", type: "llm", depends: ["check-consistency", "check-spacing", "check-responsive", "check-a11y"], timeout: 15000 },
78
- { id: "generate-fix", description: "生成布局修复代码", type: "llm", depends: ["generate-report"], timeout: 20000 },
72
+ {
73
+ id: "scan-layouts",
74
+ title: "扫描布局结构",
75
+ instruction: [
76
+ "## 扫描页面中所有布局结构",
77
+ "",
78
+ "**执行动作**:",
79
+ "1. 搜索所有使用 CSS Grid、Flexbox 和定位的文件",
80
+ "2. 提取 display 属性值(grid、flex、inline-grid、inline-flex)",
81
+ "3. 识别 grid-template-columns/rows、flex-direction、position 等关键属性",
82
+ "",
83
+ "**产出格式**:",
84
+ "```json",
85
+ "[",
86
+ " { \"file\": \"src/App.css\", \"line\": 15, \"type\": \"grid\", \"props\": \"grid-template-columns: repeat(3, 1fr)\" },",
87
+ " { \"file\": \"src/components/Card.css\", \"line\": 8, \"type\": \"flex\", \"props\": \"flex-direction: column\" }",
88
+ "]",
89
+ "```",
90
+ ].join("\n"),
91
+ suggestedTools: ["Bash", "Read"],
92
+ output: "layout-structures.json",
93
+ },
94
+ {
95
+ id: "check-consistency",
96
+ title: "检查布局一致性",
97
+ instruction: [
98
+ "## 检查布局一致性",
99
+ "",
100
+ "**执行动作**:",
101
+ "1. 检查 grid-template-columns 是否统一(如 12 列系统 vs 随意列数)",
102
+ "2. 检查 gap 值是否遵循间距 Scale(4/8/12/16/24/32/48/64px)",
103
+ "3. 检查断点定义是否一致(mobile/tablet/desktop/wide)",
104
+ "4. 识别不规范的布局模式",
105
+ "",
106
+ "**产出格式**:",
107
+ "```markdown",
108
+ "## 一致性问题",
109
+ "",
110
+ "### 网格系统",
111
+ "- ❌ 发现 3 个不同的 grid-template-columns 定义",
112
+ "- ✅ 统一使用 12 列系统",
113
+ "",
114
+ "### 间距规范",
115
+ "- ⚠️ 5 处使用非标准间距(如 10px、15px)",
116
+ "- 建议改为 8px 或 16px",
117
+ "```",
118
+ ].join("\n"),
119
+ suggestedTools: ["Bash", "Read"],
120
+ output: "consistency-issues.md",
121
+ depends: ["scan-layouts"],
122
+ },
123
+ {
124
+ id: "check-spacing",
125
+ title: "检查间距 Scale 体系",
126
+ instruction: [
127
+ "## 检查间距是否符合 Scale 体系",
128
+ "",
129
+ "**执行动作**:",
130
+ "1. 提取所有 margin、padding、gap 值",
131
+ "2. 验证是否符合 4px 倍数 Scale:4/8/12/16/24/32/48/64",
132
+ "3. 识别偏离标准的值(如 10px、15px、20px)",
133
+ "4. 统计每个非标准值出现的次数",
134
+ "",
135
+ "**Bash 命令示例**:",
136
+ "```bash",
137
+ "grep -rE '(margin|padding|gap):\\s*[0-9]+px' src/ --include='*.css' | \\",
138
+ " grep -vE '(4|8|12|16|24|32|48|64)px'",
139
+ "```",
140
+ "",
141
+ "**产出格式**:",
142
+ "```json",
143
+ "{",
144
+ " \"non-standard\": [",
145
+ " { \"value\": \"10px\", \"count\": 12, \"files\": [\"Button.css\", \"Card.css\"] },",
146
+ " { \"value\": \"15px\", \"count\": 5, \"files\": [\"Header.css\"] }",
147
+ " ],",
148
+ " \"compliance-rate\": \"87%\"",
149
+ "}",
150
+ "```",
151
+ ].join("\n"),
152
+ suggestedTools: ["Bash", "Read"],
153
+ output: "spacing-analysis.json",
154
+ depends: ["scan-layouts"],
155
+ },
156
+ {
157
+ id: "check-responsive",
158
+ title: "检查响应式布局",
159
+ instruction: [
160
+ "## 检查各断点下布局是否正常",
161
+ "",
162
+ "**执行动作**:",
163
+ "1. 提取所有 @media 查询及其断点值",
164
+ "2. 验证是否覆盖标准断点:mobile(<768px)、tablet(768-1024px)、desktop(>1024px)、wide(>1440px)",
165
+ "3. 检查移动优先策略(min-width vs max-width)",
166
+ "4. 识别缺失的断点或不一致的媒体查询",
167
+ "",
168
+ "**Bash 命令示例**:",
169
+ "```bash",
170
+ "grep -rE '@media.*\\(.*width:' src/ --include='*.css' -h | \\",
171
+ " grep -oE '[0-9]+px' | sort | uniq -c",
172
+ "```",
173
+ "",
174
+ "**产出格式**:",
175
+ "```markdown",
176
+ "## 响应式检查结果",
177
+ "",
178
+ "### 断点覆盖",
179
+ "- ✅ Mobile: 15 个查询",
180
+ "- ✅ Tablet: 12 个查询",
181
+ "- ⚠️ Desktop: 仅 3 个查询",
182
+ "- ❌ Wide: 缺失",
183
+ "",
184
+ "### 策略分析",
185
+ "- 移动优先(min-width): 80%",
186
+ "- 桌面优先(max-width): 20%",
187
+ "- 建议统一为移动优先",
188
+ "```",
189
+ ].join("\n"),
190
+ suggestedTools: ["Bash", "Read"],
191
+ output: "responsive-issues.md",
192
+ depends: ["scan-layouts"],
193
+ },
194
+ {
195
+ id: "check-a11y",
196
+ title: "检查无障碍布局",
197
+ instruction: [
198
+ "## 检查语义化结构和 Landmark 角色",
199
+ "",
200
+ "**执行动作**:",
201
+ "1. 检查是否使用语义化 HTML 标签:header、nav、main、aside、footer",
202
+ "2. 验证 Landmark 角色是否正确(role 属性或标签语义)",
203
+ "3. 检查 Tab 顺序是否符合视觉流",
204
+ "4. 验证触控目标尺寸(≥ 44×44px)",
205
+ "5. 检查颜色对比度(≥ 4.5:1)",
206
+ "",
207
+ "**Bash 命令示例**:",
208
+ "```bash",
209
+ "# 检查语义化标签",
210
+ "grep -rE '<(header|nav|main|aside|footer)' src/ --include='*.tsx' --include='*.jsx' | wc -l",
211
+ "",
212
+ "# 检查触控目标尺寸",
213
+ "grep -rE 'min-(w|h):.*44' src/ --include='*.css' | wc -l",
214
+ "```",
215
+ "",
216
+ "**产出格式**:",
217
+ "```markdown",
218
+ "## 无障碍检查结果",
219
+ "",
220
+ "### 语义化 HTML",
221
+ "- ✅ 使用 header 标签: 5 处",
222
+ "- ✅ 使用 nav 标签: 3 处",
223
+ "- ⚠️ 使用 div 代替 main: 2 处",
224
+ "",
225
+ "### Landmark 角色",
226
+ "- ✅ 正确定义: 8 处",
227
+ "- ❌ 缺失或错误: 3 处",
228
+ "",
229
+ "### 触控目标",
230
+ "- ✅ ≥ 44×44px: 90%",
231
+ "- ⚠️ 过小目标: 10%",
232
+ "```",
233
+ ].join("\n"),
234
+ suggestedTools: ["Bash", "Read"],
235
+ output: "a11y-issues.md",
236
+ depends: ["scan-layouts"],
237
+ },
238
+ { id: "generate-report", stepTemplate: "generate-report", depends: ["check-consistency", "check-spacing", "check-responsive", "check-a11y"] },
239
+ { id: "generate-fix", stepTemplate: "generate-fix", depends: ["generate-report"] },
79
240
  ],
80
241
  triggers: [{ type: "cli", command: "audit:layout" }],
81
242
  },
82
243
  {
83
244
  name: "responsive-design",
84
245
  description: "响应式改造:断点分析 → 移动适配 → Container Queries",
85
- version: "1.0.0",
246
+ version: "2.0.0",
86
247
  steps: [
87
- { id: "audit-breakpoints", description: "审计当前断点使用情况", type: "simple", timeout: 10000 },
88
- { id: "check-mobile-first", description: "检查是否为移动优先策略", type: "simple", depends: ["audit-breakpoints"], timeout: 5000 },
89
- { id: "identify-breakpoints", description: "在哪些组件需要组件级响应(Container Queries)", type: "llm", depends: ["audit-breakpoints"], timeout: 10000 },
90
- { id: "refactor-layout", description: "重构布局为移动优先 + 渐进增强", type: "llm", depends: ["check-mobile-first", "identify-breakpoints"], timeout: 20000 },
91
- { id: "add-container-queries", description: "为独立组件添加 Container Queries", type: "llm", depends: ["identify-breakpoints"], timeout: 15000 },
92
- { id: "multi-viewport-test", description: "多视口截图验证", type: "simple", depends: ["refactor-layout", "add-container-queries"], timeout: 15000 },
248
+ {
249
+ id: "audit-breakpoints",
250
+ title: "审计断点使用情况",
251
+ instruction: [
252
+ "## 审计当前断点使用情况",
253
+ "",
254
+ "**执行动作**:",
255
+ "1. 搜索所有 @media 查询及其断点值",
256
+ "2. 统计每个断点的使用频率",
257
+ "3. 识别 min-width(移动优先)和 max-width(桌面优先)的比例",
258
+ "4. 检查断点是否覆盖标准范围:mobile/tablet/desktop/wide",
259
+ "",
260
+ "**Bash 命令示例**:",
261
+ "```bash",
262
+ "# 提取所有媒体查询断点",
263
+ "grep -rE '@media.*\\((min|max)-width:\\s*[0-9]+px\\)' src/ --include='*.css' -h | \\",
264
+ " grep -oE '(min|max)-width:\\s*[0-9]+px' | \\",
265
+ " sort | uniq -c | sort -rn",
266
+ "```",
267
+ "",
268
+ "**产出格式**:",
269
+ "```json",
270
+ "{",
271
+ " \"total-queries\": 45,",
272
+ " \"breakpoints\": {",
273
+ " \"768px\": { \"count\": 18, \"type\": \"min-width\" },",
274
+ " \"1024px\": { \"count\": 15, \"type\": \"min-width\" },",
275
+ " \"480px\": { \"count\": 8, \"type\": \"max-width\" },",
276
+ " \"1440px\": { \"count\": 4, \"type\": \"min-width\" }",
277
+ " },",
278
+ " \"strategy\": {",
279
+ " \"mobile-first\": 82,",
280
+ " \"desktop-first\": 18",
281
+ " }",
282
+ "}",
283
+ "```",
284
+ ].join("\n"),
285
+ suggestedTools: ["Bash", "Read"],
286
+ output: "breakpoint-audit.json",
287
+ },
288
+ {
289
+ id: "check-mobile-first",
290
+ title: "检查移动优先策略",
291
+ instruction: [
292
+ "## 检查是否为移动优先策略",
293
+ "",
294
+ "**执行动作**:",
295
+ "1. 统计 min-width vs max-width 的使用比例",
296
+ "2. 分析基础样式是否面向移动端(无媒体查询的默认样式)",
297
+ "3. 检查是否通过 min-width 渐进增强到更大屏幕",
298
+ "4. 识别违反移动优先原则的地方",
299
+ "",
300
+ "**Bash 命令示例**:",
301
+ "```bash",
302
+ "# 计算移动优先比例",
303
+ "min_width=$(grep -rE '@media.*min-width' src/ --include='*.css' | wc -l)",
304
+ "max_width=$(grep -rE '@media.*max-width' src/ --include='*.css' | wc -l)",
305
+ "echo \"Mobile-first: $min_width, Desktop-first: $max_width\"",
306
+ "```",
307
+ "",
308
+ "**产出格式**:",
309
+ "```markdown",
310
+ "## 移动优先检查结果",
311
+ "",
312
+ "### 策略分析",
313
+ "- ✅ 移动优先(min-width): 82% (37 个查询)",
314
+ "- ⚠️ 桌面优先(max-width): 18% (8 个查询)",
315
+ "",
316
+ "### 基础样式",
317
+ "- ✅ 默认样式面向移动端",
318
+ "- ✅ 通过 min-width 渐进增强",
319
+ "",
320
+ "### 改进建议",
321
+ "- 将 8 个 max-width 查询改为 min-width",
322
+ "- 调整断点顺序:从小到大",
323
+ "```",
324
+ ].join("\n"),
325
+ suggestedTools: ["Bash", "Read"],
326
+ output: "mobile-first-check.md",
327
+ depends: ["audit-breakpoints"],
328
+ },
329
+ {
330
+ id: "identify-breakpoints",
331
+ title: "识别需要 Container Queries 的组件",
332
+ instruction: [
333
+ "## 识别需要组件级响应的组件",
334
+ "",
335
+ "**执行动作**:",
336
+ "1. 分析哪些组件在不同容器宽度下需要调整布局",
337
+ "2. 识别依赖视口宽度但应该依赖容器宽度的组件",
338
+ "3. 查找可复用的独立组件(Card、Sidebar、Widget 等)",
339
+ "4. 评估哪些组件适合使用 @container",
340
+ "",
341
+ "**Bash 命令示例**:",
342
+ "```bash",
343
+ "# 查找独立组件",
344
+ "find src/components -name '*.tsx' -o -name '*.jsx' | \\",
345
+ " xargs grep -l '@media' | \\",
346
+ " grep -vE '(Layout|Page|App)' ",
347
+ "```",
348
+ "",
349
+ "**产出格式**:",
350
+ "```json",
351
+ "{",
352
+ " \"container-query-candidates\": [",
353
+ " { \"component\": \"Card\", \"reason\": \"在不同宽度容器中需调整布局\", \"priority\": \"high\" },",
354
+ " { \"component\": \"Sidebar\", \"reason\": \"可折叠/展开,依赖容器宽度\", \"priority\": \"high\" },",
355
+ " { \"component\": \"ProductGrid\", \"reason\": \"自适应列数\", \"priority\": \"medium\" }",
356
+ " ],",
357
+ " \"viewport-dependent\": [",
358
+ " { \"component\": \"Header\", \"reason\": \"全局导航,应依赖视口\" },",
359
+ " { \"component\": \"Footer\", \"reason\": \"全局页脚,应依赖视口\" }",
360
+ " ]",
361
+ "}",
362
+ "```",
363
+ ].join("\n"),
364
+ suggestedTools: ["Bash", "Read"],
365
+ output: "container-query-analysis.json",
366
+ depends: ["audit-breakpoints"],
367
+ },
368
+ {
369
+ id: "refactor-layout",
370
+ title: "重构布局为移动优先",
371
+ instruction: [
372
+ "## 重构布局为移动优先 + 渐进增强",
373
+ "",
374
+ "**执行动作**:",
375
+ "1. 将桌面优先的 max-width 查询改为移动优先的 min-width",
376
+ "2. 调整基础样式为移动端默认样式",
377
+ "3. 使用 min-width 渐进增强到 tablet、desktop、wide",
378
+ "4. 确保断点顺序从小到大",
379
+ "",
380
+ "**Bash 命令示例**:",
381
+ "```bash",
382
+ "# 查找需要重构的文件",
383
+ "grep -rlE '@media.*max-width' src/ --include='*.css'",
384
+ "```",
385
+ "",
386
+ "**代码转换示例**:",
387
+ "```css",
388
+ "/* ❌ 桌面优先 */",
389
+ ".container { width: 1200px; }",
390
+ "@media (max-width: 1024px) { .container { width: 960px; } }",
391
+ "@media (max-width: 768px) { .container { width: 100%; } }",
392
+ "",
393
+ "/* ✅ 移动优先 */",
394
+ ".container { width: 100%; }",
395
+ "@media (min-width: 768px) { .container { width: 960px; } }",
396
+ "@media (min-width: 1024px) { .container { width: 1200px; } }",
397
+ "```",
398
+ "",
399
+ "**产出格式**:",
400
+ "```markdown",
401
+ "## 重构完成",
402
+ "",
403
+ "### 修改文件",
404
+ "- src/styles/layout.css: 转换 5 个媒体查询",
405
+ "- src/components/Header.css: 转换 3 个媒体查询",
406
+ "",
407
+ "### 验证",
408
+ "- ✅ 所有查询改为 min-width",
409
+ "- ✅ 断点顺序:mobile → tablet → desktop → wide",
410
+ "- ✅ 基础样式面向移动端",
411
+ "```",
412
+ ].join("\n"),
413
+ suggestedTools: ["Bash", "Read", "Write"],
414
+ output: "refactor-summary.md",
415
+ depends: ["check-mobile-first", "identify-breakpoints"],
416
+ },
417
+ {
418
+ id: "add-container-queries",
419
+ title: "添加 Container Queries",
420
+ instruction: [
421
+ "## 为独立组件添加 Container Queries",
422
+ "",
423
+ "**执行动作**:",
424
+ "1. 为候选组件添加 container-type: inline-size",
425
+ "2. 将依赖容器宽度的 @media 改为 @container",
426
+ "3. 使用 @container (min-width: X) 实现组件级响应",
427
+ "4. 确保父元素定义 container 上下文",
428
+ "",
429
+ "**代码示例**:",
430
+ "```css",
431
+ "/* 父容器定义 */",
432
+ ".card-container {",
433
+ " container-type: inline-size;",
434
+ " container-name: card;",
435
+ "}",
436
+ "",
437
+ "/* 组件响应容器宽度 */",
438
+ ".card {",
439
+ " display: flex;",
440
+ " flex-direction: column;",
441
+ "}",
442
+ "",
443
+ "@container card (min-width: 400px) {",
444
+ " .card {",
445
+ " flex-direction: row;",
446
+ " }",
447
+ "}",
448
+ "```",
449
+ "",
450
+ "**产出格式**:",
451
+ "```markdown",
452
+ "## Container Queries 添加完成",
453
+ "",
454
+ "### 修改组件",
455
+ "- Card: 添加 container-type,转换 2 个媒体查询",
456
+ "- Sidebar: 添加 container-type,转换 3 个媒体查询",
457
+ "",
458
+ "### 浏览器兼容性",
459
+ "- ✅ Chrome 105+, Firefox 110+, Safari 16+",
460
+ "- ⚠️ 需要 @supports 降级方案",
461
+ "```",
462
+ ].join("\n"),
463
+ suggestedTools: ["Bash", "Read", "Write"],
464
+ output: "container-queries-added.md",
465
+ depends: ["identify-breakpoints"],
466
+ },
467
+ {
468
+ id: "multi-viewport-test",
469
+ title: "多视口测试验证",
470
+ instruction: [
471
+ "## 多视口截图验证",
472
+ "",
473
+ "**执行动作**:",
474
+ "1. 在关键断点下截图验证布局",
475
+ "2. 测试断点:320px(mobile)、768px(tablet)、1024px(desktop)、1440px(wide)",
476
+ "3. 检查布局是否正确响应",
477
+ "4. 验证 Container Queries 组件在不同容器宽度下的表现",
478
+ "",
479
+ "**Bash 命令示例**:",
480
+ "```bash",
481
+ "# 使用 Puppeteer 或 Playwright 截图",
482
+ "npx playwright screenshot --viewport-size=320,568 http://localhost:3000 mobile.png",
483
+ "npx playwright screenshot --viewport-size=768,1024 http://localhost:3000 tablet.png",
484
+ "npx playwright screenshot --viewport-size=1024,768 http://localhost:3000 desktop.png",
485
+ "npx playwright screenshot --viewport-size=1440,900 http://localhost:3000 wide.png",
486
+ "```",
487
+ "",
488
+ "**产出格式**:",
489
+ "```markdown",
490
+ "## 多视口测试结果",
491
+ "",
492
+ "### 截图",
493
+ "- ✅ mobile-320px.png: 布局正常",
494
+ "- ✅ tablet-768px.png: 布局正常",
495
+ "- ✅ desktop-1024px.png: 布局正常",
496
+ "- ✅ wide-1440px.png: 布局正常",
497
+ "",
498
+ "### Container Queries 测试",
499
+ "- ✅ Card 组件: 在 300px 容器中垂直排列",
500
+ "- ✅ Card 组件: 在 500px 容器中水平排列",
501
+ "- ✅ Sidebar 组件: 正常折叠/展开",
502
+ "```",
503
+ ].join("\n"),
504
+ suggestedTools: ["Bash"],
505
+ output: "viewport-test-results.md",
506
+ depends: ["refactor-layout", "add-container-queries"],
507
+ },
93
508
  ],
94
509
  triggers: [{ type: "cli", command: "design:responsive" }],
95
510
  },
96
511
  {
97
512
  name: "design-token-setup",
98
513
  description: "Design Token 体系建设:提取 → 分层 → 代码化",
99
- version: "1.0.0",
514
+ version: "2.0.0",
100
515
  steps: [
101
- { id: "extract-colors", description: "从现有代码提取所有颜色值", type: "simple", timeout: 10000 },
102
- { id: "extract-spacing", description: "提取所有间距和尺寸值", type: "simple", timeout: 10000 },
103
- { id: "group-tokens", description: "按 Global/Alias/Component 三层分组", type: "llm", depends: ["extract-colors", "extract-spacing"], timeout: 15000 },
104
- { id: "generate-tokens", description: "生成 CSS 变量 Token 文件", type: "llm", depends: ["group-tokens"], timeout: 10000 },
105
- { id: "replace-hardcoded", description: "替换硬编码值为 Token 引用", type: "llm", depends: ["generate-tokens"], timeout: 20000 },
106
- { id: "visual-regression", description: "视觉回归测试确认无差异", type: "simple", depends: ["replace-hardcoded"], timeout: 30000 },
516
+ {
517
+ id: "extract-colors",
518
+ title: "提取颜色值",
519
+ instruction: [
520
+ "## 从现有代码提取所有颜色值",
521
+ "",
522
+ "**执行动作**:",
523
+ "1. 搜索所有十六进制颜色值(#fff、#ffffff、#ffffffcc)",
524
+ "2. 搜索所有 rgb/rgba/hsl/hsla 颜色值",
525
+ "3. 搜索所有命名颜色(red、blue 等)",
526
+ "4. 统计每个颜色值的出现次数和文件位置",
527
+ "",
528
+ "**Bash 命令示例**:",
529
+ "```bash",
530
+ "# 提取十六进制颜色",
531
+ "grep -rEo '#[0-9a-fA-F]{3,8}' src/ --include='*.css' --include='*.scss' | \\",
532
+ " awk -F: '{print $2}' | sort | uniq -c | sort -rn",
533
+ "",
534
+ "# 提取 rgb/rgba 颜色",
535
+ "grep -rEo 'rgba?\\([^)]+\\)' src/ --include='*.css' | \\",
536
+ " awk -F: '{print $2}' | sort | uniq -c | sort -rn",
537
+ "```",
538
+ "",
539
+ "**产出格式**:",
540
+ "```json",
541
+ "{",
542
+ " \"hex-colors\": [",
543
+ " { \"value\": \"#3b82f6\", \"count\": 24, \"files\": [\"Button.css\", \"Link.css\"] },",
544
+ " { \"value\": \"#1f2937\", \"count\": 18, \"files\": [\"Text.css\", \"Card.css\"] },",
545
+ " { \"value\": \"#ffffff\", \"count\": 35, \"files\": [\"multiple\"] }",
546
+ " ],",
547
+ " \"rgb-colors\": [",
548
+ " { \"value\": \"rgba(0, 0, 0, 0.5)\", \"count\": 8, \"files\": [\"Overlay.css\"] }",
549
+ " ],",
550
+ " \"total-unique\": 42",
551
+ "}",
552
+ "```",
553
+ ].join("\n"),
554
+ suggestedTools: ["Bash", "Read"],
555
+ output: "color-tokens.json",
556
+ },
557
+ {
558
+ id: "extract-spacing",
559
+ title: "提取间距和尺寸值",
560
+ instruction: [
561
+ "## 提取所有间距和尺寸值",
562
+ "",
563
+ "**执行动作**:",
564
+ "1. 提取所有 margin、padding 值",
565
+ "2. 提取所有 width、height、max-width、min-width 值",
566
+ "3. 提取所有 gap、top、right、bottom、left 值",
567
+ "4. 统计每个数值的出现频率",
568
+ "",
569
+ "**Bash 命令示例**:",
570
+ "```bash",
571
+ "# 提取 margin/padding 值",
572
+ "grep -rE '(margin|padding)(-top|-right|-bottom|-left)?:\\s*[0-9]+px' src/ --include='*.css' | \\",
573
+ " grep -oE '[0-9]+px' | sort -n | uniq -c | sort -rn",
574
+ "",
575
+ "# 提取 gap 值",
576
+ "grep -rE 'gap:\\s*[0-9]+px' src/ --include='*.css' | \\",
577
+ " grep -oE '[0-9]+px' | sort -n | uniq -c | sort -rn",
578
+ "```",
579
+ "",
580
+ "**产出格式**:",
581
+ "```json",
582
+ "{",
583
+ " \"spacing-values\": [",
584
+ " { \"value\": \"16px\", \"count\": 45, \"usage\": [\"margin\", \"padding\", \"gap\"] },",
585
+ " { \"value\": \"8px\", \"count\": 38, \"usage\": [\"margin\", \"padding\"] },",
586
+ " { \"value\": \"24px\", \"count\": 22, \"usage\": [\"margin\", \"padding\"] },",
587
+ " { \"value\": \"32px\", \"count\": 15, \"usage\": [\"margin\", \"padding\"] }",
588
+ " ],",
589
+ " \"sizing-values\": [",
590
+ " { \"value\": \"100%\", \"count\": 28 },",
591
+ " { \"value\": \"auto\", \"count\": 20 },",
592
+ " { \"value\": \"1200px\", \"count\": 5 }",
593
+ " ],",
594
+ " \"scale-compliance\": {",
595
+ " \"4px-multiple\": 85,",
596
+ " \"non-standard\": 15",
597
+ " }",
598
+ "}",
599
+ "```",
600
+ ].join("\n"),
601
+ suggestedTools: ["Bash", "Read"],
602
+ output: "spacing-tokens.json",
603
+ depends: [],
604
+ },
605
+ {
606
+ id: "group-tokens",
607
+ title: "按三层架构分组 Token",
608
+ instruction: [
609
+ "## 按 Global/Alias/Component 三层分组",
610
+ "",
611
+ "**执行动作**:",
612
+ "1. 将颜色、间距值分类为 Global Token(基础值)",
613
+ "2. 创建 Alias Token(语义化名称如 color-primary、spacing-md)",
614
+ "3. 识别 Component Token(组件级如 button-bg、card-padding)",
615
+ "4. 建立 Token 命名规范",
616
+ "",
617
+ "**Token 分层示例**:",
618
+ "```",
619
+ "Global Token(基础值):",
620
+ "- blue-500: #3b82f6",
621
+ "- gray-900: #1f2937",
622
+ "- spacing-4: 16px",
623
+ "",
624
+ "Alias Token(语义化):",
625
+ "- color-primary: {blue-500}",
626
+ "- color-text: {gray-900}",
627
+ "- spacing-md: {spacing-4}",
628
+ "",
629
+ "Component Token(组件级):",
630
+ "- button-bg-primary: {color-primary}",
631
+ "- card-padding: {spacing-md}",
632
+ "```",
633
+ "",
634
+ "**产出格式**:",
635
+ "```json",
636
+ "{",
637
+ " \"global\": {",
638
+ " \"colors\": { \"blue-500\": \"#3b82f6\", \"gray-900\": \"#1f2937\" },",
639
+ " \"spacing\": { \"spacing-4\": \"16px\", \"spacing-6\": \"24px\" }",
640
+ " },",
641
+ " \"alias\": {",
642
+ " \"color-primary\": \"{blue-500}\",",
643
+ " \"color-text\": \"{gray-900}\",",
644
+ " \"spacing-md\": \"{spacing-4}\"",
645
+ " },",
646
+ " \"component\": {",
647
+ " \"button-bg-primary\": \"{color-primary}\",",
648
+ " \"card-padding\": \"{spacing-md}\"",
649
+ " }",
650
+ "}",
651
+ "```",
652
+ ].join("\n"),
653
+ suggestedTools: ["Read"],
654
+ output: "token-hierarchy.json",
655
+ depends: ["extract-colors", "extract-spacing"],
656
+ },
657
+ {
658
+ id: "generate-tokens",
659
+ title: "生成 CSS 变量 Token 文件",
660
+ instruction: [
661
+ "## 生成 CSS 变量 Token 文件",
662
+ "",
663
+ "**执行动作**:",
664
+ "1. 将 Token 分层转换为 CSS 变量",
665
+ "2. 在 :root 中定义 Global 和 Alias Token",
666
+ "3. 为 Dark 主题创建 [data-theme=\"dark\"] 变量覆盖",
667
+ "4. 添加 Component Token 到对应组件文件",
668
+ "",
669
+ "**代码生成示例**:",
670
+ "```css",
671
+ "/* src/styles/tokens.css */",
672
+ ":root {",
673
+ " /* Global Tokens */",
674
+ " --color-blue-500: #3b82f6;",
675
+ " --color-gray-900: #1f2937;",
676
+ " --spacing-4: 16px;",
677
+ " --spacing-6: 24px;",
678
+ "",
679
+ " /* Alias Tokens */",
680
+ " --color-primary: var(--color-blue-500);",
681
+ " --color-text: var(--color-gray-900);",
682
+ " --spacing-md: var(--spacing-4);",
683
+ "}",
684
+ "",
685
+ "[data-theme=\"dark\"] {",
686
+ " --color-primary: #60a5fa;",
687
+ " --color-text: #f9fafb;",
688
+ "}",
689
+ "```",
690
+ "",
691
+ "**产出格式**:",
692
+ "```markdown",
693
+ "## Token 文件生成完成",
694
+ "",
695
+ "### 生成文件",
696
+ "- src/styles/tokens.css: 45 个 CSS 变量",
697
+ " - Global: 20 个",
698
+ " - Alias: 15 个",
699
+ " - Component: 10 个",
700
+ "",
701
+ "### Dark 主题",
702
+ "- ✅ 已生成 [data-theme=\"dark\"] 覆盖",
703
+ "- ✅ 覆盖 8 个 Alias Token",
704
+ "```",
705
+ ].join("\n"),
706
+ suggestedTools: ["Write"],
707
+ output: "tokens-generated.md",
708
+ depends: ["group-tokens"],
709
+ },
710
+ {
711
+ id: "replace-hardcoded",
712
+ title: "替换硬编码值为 Token 引用",
713
+ instruction: [
714
+ "## 替换硬编码值为 Token 引用",
715
+ "",
716
+ "**执行动作**:",
717
+ "1. 搜索所有硬编码的颜色值",
718
+ "2. 搜索所有硬编码的间距值",
719
+ "3. 将硬编码值替换为对应的 CSS 变量",
720
+ "4. 确保替换后样式不变",
721
+ "",
722
+ "**Bash 命令示例**:",
723
+ "```bash",
724
+ "# 查找硬编码颜色",
725
+ "grep -rn '#3b82f6' src/ --include='*.css'",
726
+ "",
727
+ "# 查找硬编码间距",
728
+ "grep -rn 'padding: 16px' src/ --include='*.css'",
729
+ "```",
730
+ "",
731
+ "**代码替换示例**:",
732
+ "```css",
733
+ "/* ❌ 硬编码 */",
734
+ ".button {",
735
+ " background: #3b82f6;",
736
+ " padding: 16px;",
737
+ "}",
738
+ "",
739
+ "/* ✅ Token 引用 */",
740
+ ".button {",
741
+ " background: var(--color-primary);",
742
+ " padding: var(--spacing-md);",
743
+ "}",
744
+ "```",
745
+ "",
746
+ "**产出格式**:",
747
+ "```markdown",
748
+ "## Token 替换完成",
749
+ "",
750
+ "### 替换统计",
751
+ "- 颜色值替换: 42 处",
752
+ "- 间距值替换: 68 处",
753
+ "- 总替换: 110 处",
754
+ "",
755
+ "### 修改文件",
756
+ "- src/components/Button.css: 8 处",
757
+ "- src/components/Card.css: 12 处",
758
+ "- src/styles/layout.css: 15 处",
759
+ "- ... (其他 25 个文件)",
760
+ "",
761
+ "### 验证",
762
+ "- ✅ 所有硬编码值已替换",
763
+ "- ✅ 样式无变化",
764
+ "```",
765
+ ].join("\n"),
766
+ suggestedTools: ["Bash", "Read", "Write"],
767
+ output: "token-replacement.md",
768
+ depends: ["generate-tokens"],
769
+ },
770
+ {
771
+ id: "visual-regression",
772
+ title: "视觉回归测试",
773
+ instruction: [
774
+ "## 视觉回归测试确认无差异",
775
+ "",
776
+ "**执行动作**:",
777
+ "1. 在替换前后分别截图",
778
+ "2. 使用像素对比工具检测差异",
779
+ "3. 确认所有页面视觉无变化",
780
+ "4. 记录任何意外差异并修复",
781
+ "",
782
+ "**Bash 命令示例**:",
783
+ "```bash",
784
+ "# 使用 Playwright 截图对比",
785
+ "npx playwright screenshot --viewport-size=1440,900 http://localhost:3000 before.png",
786
+ "",
787
+ "# 替换后再次截图",
788
+ "npx playwright screenshot --viewport-size=1440,900 http://localhost:3000 after.png",
789
+ "",
790
+ "# 使用像素对比工具",
791
+ "npx pixelmatch before.png after.png diff.png --threshold=0.1",
792
+ "```",
793
+ "",
794
+ "**产出格式**:",
795
+ "```markdown",
796
+ "## 视觉回归测试结果",
797
+ "",
798
+ "### 测试结果",
799
+ "- ✅ 首页: 无差异 (0% 像素变化)",
800
+ "- ✅ 产品页: 无差异 (0% 像素变化)",
801
+ "- ✅ 联系页: 无差异 (0% 像素变化)",
802
+ "- ✅ 所有页面: 视觉完全一致",
803
+ "",
804
+ "### 截图对比",
805
+ "- before-home.png vs after-home.png: ✅ 匹配",
806
+ "- before-product.png vs after-product.png: ✅ 匹配",
807
+ "",
808
+ "### 结论",
809
+ "- ✅ Token 替换成功",
810
+ "- ✅ 样式无变化",
811
+ "- ✅ 可以安全部署",
812
+ "```",
813
+ ].join("\n"),
814
+ suggestedTools: ["Bash"],
815
+ output: "visual-regression-results.md",
816
+ depends: ["replace-hardcoded"],
817
+ },
107
818
  ],
108
819
  triggers: [{ type: "cli", command: "setup:design-tokens" }],
109
820
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devflow-tools/plugin-ui-layout",
3
- "version": "0.3.2",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -17,7 +17,7 @@
17
17
  "clean": "rm -rf dist"
18
18
  },
19
19
  "dependencies": {
20
- "@devflow-tools/sdk": "^0.3.2"
20
+ "@devflow-tools/sdk": "^0.5.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "typescript": "^5.5.0",
@@ -26,5 +26,5 @@
26
26
  "files": [
27
27
  "dist"
28
28
  ],
29
- "gitHead": "8bd4fe5d195782d3e5a5357fc9bff5998561c956"
29
+ "gitHead": "431c0f26e14d476c08d543ef5cd65367413dbc98"
30
30
  }