@tinkcarlos/skillora 0.2.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.
Files changed (234) hide show
  1. package/.claude/skills/.temp-skill-index.md +245 -0
  2. package/.claude/skills/SKILL.md +264 -0
  3. package/.claude/skills/api-scaffolding/SKILL.md +431 -0
  4. package/.claude/skills/api-scaffolding/agents/backend-architect.md +282 -0
  5. package/.claude/skills/api-scaffolding/agents/django-pro.md +144 -0
  6. package/.claude/skills/api-scaffolding/agents/fastapi-pro.md +156 -0
  7. package/.claude/skills/api-scaffolding/agents/graphql-architect.md +146 -0
  8. package/.claude/skills/api-scaffolding/skills/fastapi-templates/SKILL.md +171 -0
  9. package/.claude/skills/api-testing-observability/SKILL.md +583 -0
  10. package/.claude/skills/api-testing-observability/agents/api-documenter.md +146 -0
  11. package/.claude/skills/api-testing-observability/commands/api-mock.md +1320 -0
  12. package/.claude/skills/brainstorming/SKILL.md +283 -0
  13. package/.claude/skills/bug-fixing/SKILL.md +382 -0
  14. package/.claude/skills/bug-fixing/references/backend-guide.md +132 -0
  15. package/.claude/skills/bug-fixing/references/bug-guide.md +354 -0
  16. package/.claude/skills/bug-fixing/references/bug-record-template.md +134 -0
  17. package/.claude/skills/bug-fixing/references/bug-records.md +88 -0
  18. package/.claude/skills/bug-fixing/references/code-review-gate.md +81 -0
  19. package/.claude/skills/bug-fixing/references/common-bugs.md +140 -0
  20. package/.claude/skills/bug-fixing/references/complete-workflow.md +361 -0
  21. package/.claude/skills/bug-fixing/references/config-driven-fixes.md +136 -0
  22. package/.claude/skills/bug-fixing/references/context-isolation-protocol.md +268 -0
  23. package/.claude/skills/bug-fixing/references/cross-surface-regression.md +120 -0
  24. package/.claude/skills/bug-fixing/references/database-investigation.md +129 -0
  25. package/.claude/skills/bug-fixing/references/dependency-and-integrity-protocol.md +369 -0
  26. package/.claude/skills/bug-fixing/references/fix-completeness-checklist.md +239 -0
  27. package/.claude/skills/bug-fixing/references/frontend-guide.md +219 -0
  28. package/.claude/skills/bug-fixing/references/fullstack-joint-guide.md +123 -0
  29. package/.claude/skills/bug-fixing/references/functional-breakage.md +117 -0
  30. package/.claude/skills/bug-fixing/references/ide-lint-errors-guide.md +176 -0
  31. package/.claude/skills/bug-fixing/references/impact-analysis.md +511 -0
  32. package/.claude/skills/bug-fixing/references/investigation-checklist.md +263 -0
  33. package/.claude/skills/bug-fixing/references/knowledge-extraction-guide.md +531 -0
  34. package/.claude/skills/bug-fixing/references/knowledge-workflow.md +212 -0
  35. package/.claude/skills/bug-fixing/references/post-edit-quality-gate.md +30 -0
  36. package/.claude/skills/bug-fixing/references/python-env-and-testing.md +126 -0
  37. package/.claude/skills/bug-fixing/references/rca-guide.md +428 -0
  38. package/.claude/skills/bug-fixing/references/similar-bug-patterns.md +113 -0
  39. package/.claude/skills/bug-fixing/references/skill-delegation-guide.md +350 -0
  40. package/.claude/skills/bug-fixing/references/skill-orchestration.md +155 -0
  41. package/.claude/skills/bug-fixing/references/testing-strategy.md +350 -0
  42. package/.claude/skills/bug-fixing/references/tooling-build-scripts.md +162 -0
  43. package/.claude/skills/bug-fixing/references/user-input-validation.md +77 -0
  44. package/.claude/skills/bug-fixing/references/ux-patterns.md +158 -0
  45. package/.claude/skills/bug-fixing/references/windows-terminal-hygiene.md +106 -0
  46. package/.claude/skills/bug-fixing/references/zero-regression-matrix.md +239 -0
  47. package/.claude/skills/bug-fixing/references/zero-risk-protocol.md +102 -0
  48. package/.claude/skills/bug-fixing/scripts/format_code.py +611 -0
  49. package/.claude/skills/bug-fixing/scripts/generate_report_template.py +74 -0
  50. package/.claude/skills/bug-fixing/scripts/lint_check.py +816 -0
  51. package/.claude/skills/bug-fixing/scripts/requirements.txt +36 -0
  52. package/.claude/skills/cicd-pipeline/SKILL.md +300 -0
  53. package/.claude/skills/code-review/SKILL.md +535 -0
  54. package/.claude/skills/code-review/references/anti-pattern-scan.md +102 -0
  55. package/.claude/skills/code-review/references/automated-analysis.md +456 -0
  56. package/.claude/skills/code-review/references/backend-common-issues.md +589 -0
  57. package/.claude/skills/code-review/references/backend-expert-guide.md +415 -0
  58. package/.claude/skills/code-review/references/backend-review.md +868 -0
  59. package/.claude/skills/code-review/references/batch-processing-strategy.md +198 -0
  60. package/.claude/skills/code-review/references/call-chain-analysis-protocol.md +166 -0
  61. package/.claude/skills/code-review/references/common-patterns.md +321 -0
  62. package/.claude/skills/code-review/references/configuration-review.md +425 -0
  63. package/.claude/skills/code-review/references/control-flow-completeness.md +114 -0
  64. package/.claude/skills/code-review/references/database-review.md +298 -0
  65. package/.claude/skills/code-review/references/dependency-and-integrity-protocol.md +313 -0
  66. package/.claude/skills/code-review/references/external-standards.md +51 -0
  67. package/.claude/skills/code-review/references/feature-review.md +329 -0
  68. package/.claude/skills/code-review/references/file-review-template.md +326 -0
  69. package/.claude/skills/code-review/references/frontend-advanced.md +654 -0
  70. package/.claude/skills/code-review/references/frontend-common-issues.md +482 -0
  71. package/.claude/skills/code-review/references/frontend-expert-guide.md +342 -0
  72. package/.claude/skills/code-review/references/frontend-review.md +783 -0
  73. package/.claude/skills/code-review/references/fullstack-consistency.md +418 -0
  74. package/.claude/skills/code-review/references/fullstack-review.md +477 -0
  75. package/.claude/skills/code-review/references/functional-completeness.md +386 -0
  76. package/.claude/skills/code-review/references/hidden-bugs-detection.md +473 -0
  77. package/.claude/skills/code-review/references/ide-lint-errors-guide.md +173 -0
  78. package/.claude/skills/code-review/references/infrastructure-review.md +453 -0
  79. package/.claude/skills/code-review/references/iteration-review.md +264 -0
  80. package/.claude/skills/code-review/references/job-review.md +335 -0
  81. package/.claude/skills/code-review/references/layered-checklist-protocol.md +157 -0
  82. package/.claude/skills/code-review/references/logic-completeness.md +535 -0
  83. package/.claude/skills/code-review/references/mandatory-checklist.md +288 -0
  84. package/.claude/skills/code-review/references/multi-language-guide.md +800 -0
  85. package/.claude/skills/code-review/references/new-project-review.md +226 -0
  86. package/.claude/skills/code-review/references/non-code-files-review.md +451 -0
  87. package/.claude/skills/code-review/references/overlooked-issues.md +657 -0
  88. package/.claude/skills/code-review/references/platform-specific-review.md +195 -0
  89. package/.claude/skills/code-review/references/precision-analysis-protocol.md +260 -0
  90. package/.claude/skills/code-review/references/python-patterns.md +494 -0
  91. package/.claude/skills/code-review/references/rca-techniques.md +362 -0
  92. package/.claude/skills/code-review/references/report-template.md +430 -0
  93. package/.claude/skills/code-review/references/resource-limits-and-degradation.md +137 -0
  94. package/.claude/skills/code-review/references/review-dimensions.md +311 -0
  95. package/.claude/skills/code-review/references/review-guide.md +202 -0
  96. package/.claude/skills/code-review/references/review-knowledge-workflow.md +257 -0
  97. package/.claude/skills/code-review/references/review-progress-tracker-protocol.md +172 -0
  98. package/.claude/skills/code-review/references/review-record-template.md +195 -0
  99. package/.claude/skills/code-review/references/skill-orchestration.md +143 -0
  100. package/.claude/skills/code-review/references/ui-ux-review.md +470 -0
  101. package/.claude/skills/containerization/SKILL.md +313 -0
  102. package/.claude/skills/database-migrations/agents/database-admin.md +142 -0
  103. package/.claude/skills/database-migrations/agents/database-optimizer.md +144 -0
  104. package/.claude/skills/database-migrations/commands/migration-observability.md +408 -0
  105. package/.claude/skills/database-migrations/commands/sql-migrations.md +492 -0
  106. package/.claude/skills/finishing-a-development-branch/SKILL.md +319 -0
  107. package/.claude/skills/frontend-design/LICENSE.txt +177 -0
  108. package/.claude/skills/frontend-design/SKILL.md +587 -0
  109. package/.claude/skills/frontend-design/references/color-consistency.md +487 -0
  110. package/.claude/skills/frontend-design/references/color-palettes-full.md +657 -0
  111. package/.claude/skills/frontend-design/references/design-system-generator.md +285 -0
  112. package/.claude/skills/frontend-design/references/font-pairings-full.md +705 -0
  113. package/.claude/skills/frontend-design/references/industry-anti-patterns.md +281 -0
  114. package/.claude/skills/frontend-design/references/layout-anti-patterns.md +582 -0
  115. package/.claude/skills/frontend-design/references/motion-patterns.md +659 -0
  116. package/.claude/skills/frontend-design/references/pre-delivery-checklist.md +153 -0
  117. package/.claude/skills/frontend-design/references/responsive-design.md +555 -0
  118. package/.claude/skills/frontend-design/references/style-modification-rules.md +335 -0
  119. package/.claude/skills/frontend-design/references/ui-styles-full.md +383 -0
  120. package/.claude/skills/frontend-design/references/ui-styles-rating.md +191 -0
  121. package/.claude/skills/frontend-design/references/ux-guidelines.md +640 -0
  122. package/.claude/skills/fullstack-developer/SKILL.md +512 -0
  123. package/.claude/skills/fullstack-developer/references/api-contract-guide.md +312 -0
  124. package/.claude/skills/fullstack-developer/references/api-response-patterns.md +223 -0
  125. package/.claude/skills/fullstack-developer/references/async-patterns.md +220 -0
  126. package/.claude/skills/fullstack-developer/references/bug-prevention.md +914 -0
  127. package/.claude/skills/fullstack-developer/references/code-quality-checklist.md +271 -0
  128. package/.claude/skills/fullstack-developer/references/complete-development-workflow.md +278 -0
  129. package/.claude/skills/fullstack-developer/references/context-isolation-protocol.md +256 -0
  130. package/.claude/skills/fullstack-developer/references/database-migration.md +331 -0
  131. package/.claude/skills/fullstack-developer/references/dependency-and-integrity-protocol.md +390 -0
  132. package/.claude/skills/fullstack-developer/references/development-phases.md +333 -0
  133. package/.claude/skills/fullstack-developer/references/expert-guide.md +214 -0
  134. package/.claude/skills/fullstack-developer/references/file-import-patterns.md +114 -0
  135. package/.claude/skills/fullstack-developer/references/graceful-degradation-patterns.md +78 -0
  136. package/.claude/skills/fullstack-developer/references/ide-lint-errors-guide.md +183 -0
  137. package/.claude/skills/fullstack-developer/references/integration-testing.md +301 -0
  138. package/.claude/skills/fullstack-developer/references/mock-api-patterns.md +307 -0
  139. package/.claude/skills/fullstack-developer/references/phase-gate-template.md +249 -0
  140. package/.claude/skills/fullstack-developer/references/post-edit-quality-gate.md +30 -0
  141. package/.claude/skills/fullstack-developer/references/python-engineering.md +79 -0
  142. package/.claude/skills/fullstack-developer/references/skill-orchestration.md +214 -0
  143. package/.claude/skills/fullstack-developer/references/skill-router-table.md +304 -0
  144. package/.claude/skills/fullstack-developer/references/state-sync.md +217 -0
  145. package/.claude/skills/fullstack-developer/references/ui-testing-checklist.md +292 -0
  146. package/.claude/skills/fullstack-developer/scripts/format_code.py +611 -0
  147. package/.claude/skills/fullstack-developer/scripts/lint_check.py +816 -0
  148. package/.claude/skills/fullstack-developer/scripts/requirements.txt +36 -0
  149. package/.claude/skills/performance-optimization/SKILL.md +250 -0
  150. package/.claude/skills/product-requirements/SKILL.md +357 -0
  151. package/.claude/skills/product-requirements/references/acceptance-criteria.md +335 -0
  152. package/.claude/skills/product-requirements/references/answer-first-questioning-protocol.md +299 -0
  153. package/.claude/skills/product-requirements/references/competitive-analysis-guide.md +183 -0
  154. package/.claude/skills/product-requirements/references/document-accuracy-protocol.md +253 -0
  155. package/.claude/skills/product-requirements/references/document-management-protocol.md +278 -0
  156. package/.claude/skills/product-requirements/references/external-standards.md +62 -0
  157. package/.claude/skills/product-requirements/references/feature-spec-template.md +359 -0
  158. package/.claude/skills/product-requirements/references/knowledge-acquisition-protocol.md +251 -0
  159. package/.claude/skills/product-requirements/references/plan-execution-protocol.md +334 -0
  160. package/.claude/skills/product-requirements/references/plan-generation-protocol.md +264 -0
  161. package/.claude/skills/product-requirements/references/prioritization-frameworks.md +80 -0
  162. package/.claude/skills/product-requirements/references/requirement-decomposition-protocol.md +291 -0
  163. package/.claude/skills/product-requirements/references/user-story-examples.md +297 -0
  164. package/.claude/skills/product-requirements/references/workflow-templates.md +266 -0
  165. package/.claude/skills/react-best-practices/SKILL.md +198 -0
  166. package/.claude/skills/react-best-practices/references/advanced-patterns.md +94 -0
  167. package/.claude/skills/react-best-practices/references/bundle-optimization.md +182 -0
  168. package/.claude/skills/react-best-practices/references/client-data-fetching.md +112 -0
  169. package/.claude/skills/react-best-practices/references/complete-guide.md +2249 -0
  170. package/.claude/skills/react-best-practices/references/eliminating-waterfalls.md +169 -0
  171. package/.claude/skills/react-best-practices/references/javascript-performance.md +256 -0
  172. package/.claude/skills/react-best-practices/references/rendering-performance.md +230 -0
  173. package/.claude/skills/react-best-practices/references/rerender-optimization.md +214 -0
  174. package/.claude/skills/react-best-practices/references/server-performance.md +182 -0
  175. package/.claude/skills/security-audit/SKILL.md +226 -0
  176. package/.claude/skills/shared-references/advanced-debugging-techniques.md +186 -0
  177. package/.claude/skills/shared-references/code-quality-checklist.md +218 -0
  178. package/.claude/skills/shared-references/code-review-efficiency-guide.md +125 -0
  179. package/.claude/skills/shared-references/mcp-dependency-compatibility-protocol.md +276 -0
  180. package/.claude/skills/shared-references/skill-call-graph.md +230 -0
  181. package/.claude/skills/shared-references/skill-orchestration-protocol.md +281 -0
  182. package/.claude/skills/shared-references/subagent-dispatch-templates.md +199 -0
  183. package/.claude/skills/skill-expert-skills/LICENSE.txt +204 -0
  184. package/.claude/skills/skill-expert-skills/QUICK_NAVIGATION.md +374 -0
  185. package/.claude/skills/skill-expert-skills/SKILL.md +247 -0
  186. package/.claude/skills/skill-expert-skills/docs/_index.md +91 -0
  187. package/.claude/skills/skill-expert-skills/references/deep-research-methodology.md +389 -0
  188. package/.claude/skills/skill-expert-skills/references/docs-generation-workflow.md +398 -0
  189. package/.claude/skills/skill-expert-skills/references/domain-expertise-protocol.md +343 -0
  190. package/.claude/skills/skill-expert-skills/references/domain-knowledge/_index.md +54 -0
  191. package/.claude/skills/skill-expert-skills/references/domain-knowledge/backend-expertise.md +517 -0
  192. package/.claude/skills/skill-expert-skills/references/domain-knowledge/bug-fixing-expertise.md +363 -0
  193. package/.claude/skills/skill-expert-skills/references/domain-knowledge/code-review-expertise.md +392 -0
  194. package/.claude/skills/skill-expert-skills/references/domain-knowledge/frontend-expertise.md +410 -0
  195. package/.claude/skills/skill-expert-skills/references/domain-knowledge-template.md +503 -0
  196. package/.claude/skills/skill-expert-skills/references/examples.md +782 -0
  197. package/.claude/skills/skill-expert-skills/references/integration-examples.md +655 -0
  198. package/.claude/skills/skill-expert-skills/references/knowledge-validation-checklist.md +246 -0
  199. package/.claude/skills/skill-expert-skills/references/latest-knowledge-acquisition.md +461 -0
  200. package/.claude/skills/skill-expert-skills/references/mcp-tools-guide.md +439 -0
  201. package/.claude/skills/skill-expert-skills/references/official-best-practices.md +616 -0
  202. package/.claude/skills/skill-expert-skills/references/patterns.md +218 -0
  203. package/.claude/skills/skill-expert-skills/references/plugin-skills-guide.md +432 -0
  204. package/.claude/skills/skill-expert-skills/references/requirement-elicitation-protocol.md +290 -0
  205. package/.claude/skills/skill-expert-skills/references/skill-creator-SKILL.md +353 -0
  206. package/.claude/skills/skill-expert-skills/references/skill-templates.md +583 -0
  207. package/.claude/skills/skill-expert-skills/references/skills-knowledge-base.md +561 -0
  208. package/.claude/skills/skill-expert-skills/references/tools-guide.md +379 -0
  209. package/.claude/skills/skill-expert-skills/references/troubleshooting.md +378 -0
  210. package/.claude/skills/skill-expert-skills/references/universality-guide.md +205 -0
  211. package/.claude/skills/skill-expert-skills/references/writing-style-guide.md +466 -0
  212. package/.claude/skills/skill-expert-skills/scripts/__pycache__/quick_validate.cpython-313.pyc +0 -0
  213. package/.claude/skills/skill-expert-skills/scripts/__pycache__/universal_validate.cpython-313.pyc +0 -0
  214. package/.claude/skills/skill-expert-skills/scripts/analyze_trigger.py +425 -0
  215. package/.claude/skills/skill-expert-skills/scripts/diff_with_official.py +188 -0
  216. package/.claude/skills/skill-expert-skills/scripts/init_skill.py +349 -0
  217. package/.claude/skills/skill-expert-skills/scripts/package_skill.py +156 -0
  218. package/.claude/skills/skill-expert-skills/scripts/quick_validate.py +493 -0
  219. package/.claude/skills/skill-expert-skills/scripts/requirements.txt +2 -0
  220. package/.claude/skills/skill-expert-skills/scripts/universal_validate.py +182 -0
  221. package/.claude/skills/skill-expert-skills/scripts/upgrade_skill.py +431 -0
  222. package/.claude/skills/subagent-driven-development/SKILL.md +268 -0
  223. package/.claude/skills/test-driven-development/SKILL.md +246 -0
  224. package/.claude/skills/test-driven-development/references/testing-anti-patterns.md +192 -0
  225. package/.claude/skills/using-git-worktrees/SKILL.md +266 -0
  226. package/.claude/skills/using-skillstack/SKILL.md +127 -0
  227. package/.claude/skills/vercel-deploy/SKILL.md +166 -0
  228. package/.claude/skills/vercel-deploy/scripts/deploy.sh +249 -0
  229. package/.claude/skills/verification-before-completion/SKILL.md +305 -0
  230. package/.claude/skills/writing-plans/SKILL.md +259 -0
  231. package/README.md +69 -0
  232. package/bin/cli.js +468 -0
  233. package/lib/init.js +333 -0
  234. package/package.json +29 -0
@@ -0,0 +1,153 @@
1
+ # Pre-Delivery Checklist
2
+
3
+ 专业 UI 交付前的强制检查清单,按优先级分类。
4
+
5
+ ---
6
+
7
+ ## 🔴 CRITICAL - 可访问性 (Accessibility)
8
+
9
+ 必须 100% 通过,否则不能交付。
10
+
11
+ | # | 检查项 | 验证方法 |
12
+ |---|--------|----------|
13
+ | 1 | 颜色对比度 ≥ 4.5:1 (正文) / ≥ 3:1 (大文本) | Chrome DevTools > Lighthouse |
14
+ | 2 | 所有图片有 alt 属性 | `img:not([alt])` 选择器检查 |
15
+ | 3 | 所有表单元素有关联 label | `input:not([id])` 或缺少 for 属性 |
16
+ | 4 | 键盘可完全导航 | Tab 键遍历所有交互元素 |
17
+ | 5 | 焦点状态可见 | 检查 :focus 样式 |
18
+ | 6 | 不仅依赖颜色传达信息 | 图标+文字组合 |
19
+ | 7 | 语义化 HTML 结构 | header, nav, main, footer |
20
+ | 8 | 标题层级正确 (H1→H2→H3) | 每页一个 H1 |
21
+
22
+ ---
23
+
24
+ ## 🔴 CRITICAL - 触摸与交互 (Touch & Interaction)
25
+
26
+ | # | 检查项 | 标准 |
27
+ |---|--------|------|
28
+ | 1 | 触摸目标尺寸 | ≥ 44x44px |
29
+ | 2 | 按钮有 cursor: pointer | 所有可点击元素 |
30
+ | 3 | 悬停状态 | 所有交互元素有 :hover |
31
+ | 4 | 禁用状态 | opacity: 0.5 + cursor: not-allowed |
32
+ | 5 | 加载状态 | 异步操作显示 spinner |
33
+ | 6 | 点击反馈 | :active 状态或动画 |
34
+
35
+ ---
36
+
37
+ ## 🟠 HIGH - 性能 (Performance)
38
+
39
+ | # | 检查项 | 目标值 |
40
+ |---|--------|--------|
41
+ | 1 | First Contentful Paint | < 1.8s |
42
+ | 2 | Largest Contentful Paint | < 2.5s |
43
+ | 3 | Cumulative Layout Shift | < 0.1 |
44
+ | 4 | First Input Delay | < 100ms |
45
+ | 5 | 图片懒加载 | loading="lazy" |
46
+ | 6 | 图片尺寸预留 | width/height 属性 |
47
+
48
+ ---
49
+
50
+ ## 🟠 HIGH - 布局 (Layout)
51
+
52
+ | # | 检查项 | 验证方法 |
53
+ |---|--------|----------|
54
+ | 1 | 响应式断点测试 | 320px, 768px, 1024px, 1440px |
55
+ | 2 | 无水平滚动 | 所有断点检查 |
56
+ | 3 | 内容不溢出 | overflow 检查 |
57
+ | 4 | 间距一致 | 使用设计系统 spacing |
58
+ | 5 | 对齐正确 | 网格/Flexbox 对齐 |
59
+
60
+ ---
61
+
62
+ ## 🟡 MEDIUM - 视觉一致性 (Visual Consistency)
63
+
64
+ | # | 检查项 | 标准 |
65
+ |---|--------|------|
66
+ | 1 | 颜色使用设计系统变量 | CSS 变量 |
67
+ | 2 | 字体使用设计系统 | font-family 变量 |
68
+ | 3 | 圆角一致 | border-radius 变量 |
69
+ | 4 | 阴影一致 | box-shadow 变量 |
70
+ | 5 | 图标风格统一 | 同一图标库 |
71
+
72
+ ---
73
+
74
+ ## 🟡 MEDIUM - 表单 (Forms)
75
+
76
+ | # | 检查项 | 标准 |
77
+ |---|--------|------|
78
+ | 1 | 错误状态样式 | 红色边框 + 错误消息 |
79
+ | 2 | 成功状态样式 | 绿色确认 |
80
+ | 3 | 占位符不作为标签 | 有独立 label |
81
+ | 4 | 必填字段标记 | * 或 "required" |
82
+ | 5 | 输入类型正确 | email, tel, number |
83
+
84
+ ---
85
+
86
+ ## 🟢 LOW - 微交互 (Micro-interactions)
87
+
88
+ | # | 检查项 | 标准 |
89
+ |---|--------|------|
90
+ | 1 | 过渡动画 | transition: 0.2-0.3s |
91
+ | 2 | 骨架屏加载 | 替代 spinner |
92
+ | 3 | 空状态设计 | 友好提示 + 操作引导 |
93
+ | 4 | Toast 通知 | 3-5s 自动消失 |
94
+
95
+ ---
96
+
97
+ ## 🟢 LOW - 图表 (Charts)
98
+
99
+ | # | 检查项 | 标准 |
100
+ |---|--------|------|
101
+ | 1 | 图例可见 | 不遮挡数据 |
102
+ | 2 | 颜色可区分 | 色盲友好 |
103
+ | 3 | 数据标签 | 关键数据点标注 |
104
+ | 4 | 响应式 | 小屏幕适配 |
105
+
106
+ ---
107
+
108
+ ## ❌ 绝对禁止 (NEVER DO)
109
+
110
+ | # | 禁止项 | 原因 |
111
+ |---|--------|------|
112
+ | 1 | Emoji 作为功能图标 | 跨平台不一致 |
113
+ | 2 | 纯图标按钮无 tooltip | 可访问性问题 |
114
+ | 3 | 自动播放视频/音频 | 用户体验差 |
115
+ | 4 | 禁用浏览器缩放 | 可访问性违规 |
116
+ | 5 | 移除焦点轮廓 | 键盘用户无法导航 |
117
+ | 6 | 闪烁内容 (>3次/秒) | 可能引发癫痫 |
118
+ | 7 | 固定像素字体大小 | 无法缩放 |
119
+ | 8 | 无限滚动无"回到顶部" | 用户体验差 |
120
+
121
+ ---
122
+
123
+ ## 快速验证命令
124
+
125
+ ```bash
126
+ # Lighthouse 审计
127
+ npx lighthouse http://localhost:3000 --view
128
+
129
+ # 可访问性检查
130
+ npx axe http://localhost:3000
131
+
132
+ # 对比度检查
133
+ # Chrome DevTools > Elements > Styles > 点击颜色值
134
+ ```
135
+
136
+ ---
137
+
138
+ ## 交付前最终确认
139
+
140
+ ```markdown
141
+ ## 交付检查清单
142
+
143
+ - [ ] 🔴 可访问性检查全部通过
144
+ - [ ] 🔴 触摸目标 ≥ 44px
145
+ - [ ] 🔴 所有按钮有 cursor: pointer
146
+ - [ ] 🔴 所有交互元素有 hover 状态
147
+ - [ ] 🟠 Lighthouse 性能分数 ≥ 90
148
+ - [ ] 🟠 响应式测试通过 (320px-1440px)
149
+ - [ ] 🟡 设计系统变量使用一致
150
+ - [ ] 🟡 表单验证状态完整
151
+ - [ ] 🟢 过渡动画流畅
152
+ - [ ] ❌ 无禁止项违规
153
+ ```
@@ -0,0 +1,555 @@
1
+ # Responsive Design Guide
2
+
3
+ 防止窗口大小变化导致元素错乱、重叠、变形的完整指南。
4
+
5
+ ## 🔴 核心原则
6
+
7
+ ```
8
+ ┌─────────────────────────────────────────────────────────────┐
9
+ │ 响应式设计黄金法则 │
10
+ ├─────────────────────────────────────────────────────────────┤
11
+ │ ✅ 使用相对单位 (%, rem, vw, vh, fr) │
12
+ │ ✅ 使用弹性布局 (Flexbox, Grid) │
13
+ │ ✅ 使用 CSS 函数 (clamp, min, max, minmax) │
14
+ │ ✅ 使用 Container Queries (@container) │
15
+ │ ❌ 避免固定宽高 (px) │
16
+ │ ❌ 避免绝对定位 (position: absolute) │
17
+ │ ❌ 避免 overflow: hidden 隐藏问题 │
18
+ └─────────────────────────────────────────────────────────────┘
19
+ ```
20
+
21
+ ## 1. 防止元素重叠
22
+
23
+ ### 问题原因
24
+ - 使用固定宽度 + 绝对定位
25
+ - 多个元素竞争同一空间
26
+ - z-index 管理混乱
27
+
28
+ ### 解决方案
29
+
30
+ ```css
31
+ /* ❌ 错误: 固定宽度 + 绝对定位 */
32
+ .sidebar { width: 300px; position: absolute; left: 0; }
33
+ .content { margin-left: 300px; }
34
+
35
+ /* ✅ 正确: Flexbox 自动分配 */
36
+ .container { display: flex; }
37
+ .sidebar { flex: 0 0 auto; min-width: 200px; max-width: 300px; }
38
+ .content { flex: 1 1 auto; min-width: 0; }
39
+
40
+ /* ✅ 正确: Grid 自动分配 */
41
+ .container {
42
+ display: grid;
43
+ grid-template-columns: minmax(200px, 300px) 1fr;
44
+ }
45
+ ```
46
+
47
+ ## 2. 防止元素变形
48
+
49
+ ### 问题原因
50
+ - 图片/视频没有设置 aspect-ratio
51
+ - 容器被内容撑破
52
+ - 文字溢出
53
+
54
+ ### 解决方案
55
+
56
+ ```css
57
+ /* 图片保持比例 */
58
+ img {
59
+ max-width: 100%;
60
+ height: auto;
61
+ object-fit: cover; /* 或 contain */
62
+ aspect-ratio: 16 / 9; /* 固定比例 */
63
+ }
64
+
65
+ /* 容器防止撑破 */
66
+ .card {
67
+ min-width: 0; /* Flexbox 子元素必须 */
68
+ overflow-wrap: break-word;
69
+ word-break: break-word;
70
+ }
71
+
72
+ /* 文字截断 */
73
+ .title {
74
+ overflow: hidden;
75
+ text-overflow: ellipsis;
76
+ white-space: nowrap;
77
+ }
78
+
79
+ /* 多行截断 */
80
+ .description {
81
+ display: -webkit-box;
82
+ -webkit-line-clamp: 3;
83
+ -webkit-box-orient: vertical;
84
+ overflow: hidden;
85
+ }
86
+ ```
87
+
88
+ ## 3. 防止元素错乱
89
+
90
+ ### 问题原因
91
+ - 断点设置不合理
92
+ - 没有使用 min/max 约束
93
+ - 布局没有降级方案
94
+
95
+ ### 解决方案
96
+
97
+ ```css
98
+ /* ✅ 使用 clamp() 自适应 */
99
+ .container {
100
+ width: clamp(320px, 90vw, 1200px);
101
+ padding: clamp(1rem, 3vw, 3rem);
102
+ font-size: clamp(14px, 2vw, 18px);
103
+ }
104
+
105
+ /* ✅ Grid 自动换行 */
106
+ .grid {
107
+ display: grid;
108
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
109
+ gap: 1rem;
110
+ }
111
+
112
+ /* ✅ Flexbox 自动换行 */
113
+ .flex-wrap {
114
+ display: flex;
115
+ flex-wrap: wrap;
116
+ gap: 1rem;
117
+ }
118
+ .flex-wrap > * {
119
+ flex: 1 1 280px; /* 最小 280px,自动增长 */
120
+ max-width: 100%;
121
+ }
122
+ ```
123
+
124
+ ## 4. Container Queries (2024+ 推荐)
125
+
126
+ 基于容器大小而非视口大小响应:
127
+
128
+ ```css
129
+ /* 定义容器 */
130
+ .card-container {
131
+ container-type: inline-size;
132
+ container-name: card;
133
+ }
134
+
135
+ /* 基于容器宽度响应 */
136
+ @container card (min-width: 400px) {
137
+ .card { flex-direction: row; }
138
+ }
139
+
140
+ @container card (max-width: 399px) {
141
+ .card { flex-direction: column; }
142
+ }
143
+ ```
144
+
145
+ **Tailwind CSS 语法**:
146
+ ```html
147
+ <div class="@container">
148
+ <div class="flex flex-col @md:flex-row">
149
+ <!-- 容器 >= 448px 时变为横向 -->
150
+ </div>
151
+ </div>
152
+ ```
153
+
154
+ ## 5. 断点策略
155
+
156
+ ### 推荐断点 (Mobile-First)
157
+
158
+ ```css
159
+ /* 基础样式 (移动端) */
160
+ .element { ... }
161
+
162
+ /* 平板 */
163
+ @media (min-width: 640px) { ... }
164
+
165
+ /* 小桌面 */
166
+ @media (min-width: 768px) { ... }
167
+
168
+ /* 桌面 */
169
+ @media (min-width: 1024px) { ... }
170
+
171
+ /* 大桌面 */
172
+ @media (min-width: 1280px) { ... }
173
+ ```
174
+
175
+ ### Tailwind 断点
176
+
177
+ | 前缀 | 最小宽度 | 典型设备 |
178
+ |------|----------|----------|
179
+ | (无) | 0px | 手机 |
180
+ | `sm:` | 640px | 大手机 |
181
+ | `md:` | 768px | 平板 |
182
+ | `lg:` | 1024px | 笔记本 |
183
+ | `xl:` | 1280px | 桌面 |
184
+ | `2xl:` | 1536px | 大桌面 |
185
+
186
+ ## 6. 常见布局模式
187
+
188
+ ### 圣杯布局 (Header + Sidebar + Content + Footer)
189
+
190
+ ```css
191
+ .layout {
192
+ display: grid;
193
+ grid-template-rows: auto 1fr auto;
194
+ grid-template-columns: minmax(200px, 250px) 1fr;
195
+ min-height: 100vh;
196
+ }
197
+
198
+ .header { grid-column: 1 / -1; }
199
+ .footer { grid-column: 1 / -1; }
200
+
201
+ @media (max-width: 768px) {
202
+ .layout { grid-template-columns: 1fr; }
203
+ .sidebar { display: none; } /* 或改为抽屉 */
204
+ }
205
+ ```
206
+
207
+ ### 卡片网格 (自适应列数)
208
+
209
+ ```css
210
+ .card-grid {
211
+ display: grid;
212
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
213
+ gap: 1.5rem;
214
+ }
215
+ ```
216
+
217
+ ### 居中容器
218
+
219
+ ```css
220
+ .container {
221
+ width: min(90%, 1200px);
222
+ margin-inline: auto;
223
+ padding-inline: 1rem;
224
+ }
225
+ ```
226
+
227
+ ## 7. 防止大片空白 & 动态高度
228
+
229
+ ### 问题原因
230
+ - 固定高度导致内容少时出现空白
231
+ - 容器高度不随内容变化
232
+ - 长内容拉长整个页面
233
+
234
+ ### 解决方案
235
+
236
+ ```css
237
+ /* ✅ 动态高度: 根据内容自适应 */
238
+ .card {
239
+ height: auto; /* 默认自适应 */
240
+ min-height: fit-content; /* 至少容纳内容 */
241
+ }
242
+
243
+ /* ✅ 限制最大高度 + 滚动 */
244
+ .content-area {
245
+ max-height: 60vh; /* 最大占视口 60% */
246
+ overflow-y: auto; /* 超出时滚动 */
247
+ }
248
+
249
+ /* ✅ 弹性填充剩余空间 */
250
+ .layout {
251
+ display: flex;
252
+ flex-direction: column;
253
+ min-height: 100vh;
254
+ }
255
+ .main { flex: 1; } /* 自动填充剩余空间 */
256
+ .footer { flex-shrink: 0; }
257
+
258
+ /* ✅ Grid 自动行高 */
259
+ .grid {
260
+ display: grid;
261
+ grid-template-rows: auto 1fr auto; /* header/main/footer */
262
+ grid-auto-rows: min-content; /* 其他行按内容 */
263
+ }
264
+ ```
265
+
266
+ ### Tailwind CSS 语法
267
+
268
+ ```html
269
+ <!-- 动态高度 -->
270
+ <div class="h-auto min-h-fit">...</div>
271
+
272
+ <!-- 限制高度 + 滚动 -->
273
+ <div class="max-h-[60vh] overflow-y-auto">...</div>
274
+
275
+ <!-- 弹性填充 -->
276
+ <div class="flex flex-col min-h-screen">
277
+ <header class="shrink-0">...</header>
278
+ <main class="flex-1">...</main>
279
+ <footer class="shrink-0">...</footer>
280
+ </div>
281
+ ```
282
+
283
+ ## 8. 滚动容器最佳实践
284
+
285
+ ### 何时使用滚动
286
+
287
+ | 场景 | 方案 |
288
+ |------|------|
289
+ | 长列表 (>10项) | `max-height` + `overflow-y: auto` |
290
+ | 聊天/日志 | 固定高度 + 滚动 + `scroll-snap` |
291
+ | 表格数据 | 表头固定 + 表体滚动 |
292
+ | 侧边栏 | `max-height: 100vh` + `overflow-y: auto` |
293
+
294
+ ### 滚动容器模式
295
+
296
+ ```css
297
+ /* ✅ 基础滚动容器 */
298
+ .scroll-container {
299
+ max-height: 400px; /* 或 50vh */
300
+ overflow-y: auto;
301
+ overscroll-behavior: contain; /* 防止滚动穿透 */
302
+ }
303
+
304
+ /* ✅ 平滑滚动 */
305
+ .smooth-scroll {
306
+ scroll-behavior: smooth;
307
+ }
308
+
309
+ /* ✅ 滚动吸附 (卡片/轮播) */
310
+ .snap-container {
311
+ overflow-x: auto;
312
+ scroll-snap-type: x mandatory;
313
+ -webkit-overflow-scrolling: touch; /* iOS 惯性滚动 */
314
+ }
315
+ .snap-item {
316
+ scroll-snap-align: start;
317
+ }
318
+
319
+ /* ✅ 自定义滚动条 */
320
+ .custom-scrollbar::-webkit-scrollbar {
321
+ width: 6px;
322
+ }
323
+ .custom-scrollbar::-webkit-scrollbar-thumb {
324
+ background: rgba(0,0,0,0.2);
325
+ border-radius: 3px;
326
+ }
327
+ ```
328
+
329
+ ### Tailwind CSS 滚动
330
+
331
+ ```html
332
+ <!-- 基础滚动 -->
333
+ <div class="max-h-96 overflow-y-auto overscroll-contain">...</div>
334
+
335
+ <!-- 横向滚动吸附 -->
336
+ <div class="overflow-x-auto snap-x snap-mandatory">
337
+ <div class="snap-start">...</div>
338
+ </div>
339
+
340
+ <!-- 平滑滚动 -->
341
+ <div class="scroll-smooth">...</div>
342
+ ```
343
+
344
+ ## 9. 浏览器缩放适配 (Zoom Adaptation)
345
+
346
+ ### 🔴 缩放级别测试要求
347
+
348
+ 必须在以下缩放级别测试 UI 正常显示:
349
+
350
+ | 缩放级别 | 测试重点 |
351
+ |----------|----------|
352
+ | 50% | 元素是否过小、文字是否可读 |
353
+ | 75% | 布局是否完整、间距是否合理 |
354
+ | 100% | 基准测试 |
355
+ | 125% | 常见 Windows 缩放,元素是否溢出 |
356
+ | 150% | 高 DPI 显示器,布局是否错乱 |
357
+ | 200% | 极端测试,是否出现重叠 |
358
+
359
+ ### 缩放安全 CSS 模式
360
+
361
+ ```css
362
+ /* ✅ 缩放安全的基础设置 */
363
+ html {
364
+ font-size: 100%; /* 不要用 px,让浏览器缩放生效 */
365
+ -webkit-text-size-adjust: 100%;
366
+ text-size-adjust: 100%;
367
+ }
368
+
369
+ /* ✅ 使用 rem 而非 px */
370
+ .container {
371
+ padding: 1.5rem; /* 随缩放变化 */
372
+ margin: 2rem auto;
373
+ max-width: 75rem; /* 1200px at 100% */
374
+ }
375
+
376
+ /* ✅ 缩放安全的最小尺寸 */
377
+ .button {
378
+ min-height: 2.75rem; /* 44px 触摸目标 */
379
+ min-width: 2.75rem;
380
+ padding: 0.5rem 1rem;
381
+ }
382
+
383
+ /* ✅ 缩放安全的间距系统 */
384
+ :root {
385
+ --space-xs: 0.25rem; /* 4px */
386
+ --space-sm: 0.5rem; /* 8px */
387
+ --space-md: 1rem; /* 16px */
388
+ --space-lg: 1.5rem; /* 24px */
389
+ --space-xl: 2rem; /* 32px */
390
+ --space-2xl: 3rem; /* 48px */
391
+ }
392
+
393
+ /* ✅ 缩放安全的字体大小 */
394
+ :root {
395
+ --text-xs: 0.75rem; /* 12px */
396
+ --text-sm: 0.875rem; /* 14px */
397
+ --text-base: 1rem; /* 16px */
398
+ --text-lg: 1.125rem; /* 18px */
399
+ --text-xl: 1.25rem; /* 20px */
400
+ --text-2xl: 1.5rem; /* 24px */
401
+ --text-3xl: 1.875rem; /* 30px */
402
+ }
403
+ ```
404
+
405
+ ### 缩放问题排查
406
+
407
+ ```css
408
+ /* ❌ 问题: 固定 px 值在高缩放下过小 */
409
+ .icon { width: 16px; height: 16px; }
410
+
411
+ /* ✅ 解决: 使用 rem 或 em */
412
+ .icon { width: 1rem; height: 1rem; }
413
+
414
+ /* ❌ 问题: 固定视口单位在缩放时不变 */
415
+ .hero { height: 100vh; font-size: 5vw; }
416
+
417
+ /* ✅ 解决: 结合 clamp 限制范围 */
418
+ .hero {
419
+ min-height: 100vh;
420
+ font-size: clamp(1.5rem, 5vw, 4rem);
421
+ }
422
+
423
+ /* ❌ 问题: 绝对定位在缩放时错位 */
424
+ .tooltip { position: absolute; top: 30px; left: 50px; }
425
+
426
+ /* ✅ 解决: 使用 transform 或相对单位 */
427
+ .tooltip {
428
+ position: absolute;
429
+ top: 1.875rem;
430
+ left: 3.125rem;
431
+ transform: translateX(-50%);
432
+ }
433
+ ```
434
+
435
+ ## 10. 8px 间距系统
436
+
437
+ ### 为什么使用 8px 系统
438
+
439
+ - 8 可被 2、4 整除,适合各种缩放
440
+ - 与常见屏幕分辨率对齐
441
+ - 视觉一致性更强
442
+
443
+ ### 间距比例表
444
+
445
+ | 级别 | rem | px (100%) | 用途 |
446
+ |------|-----|-----------|------|
447
+ | 0 | 0 | 0 | 无间距 |
448
+ | 1 | 0.25rem | 4px | 图标与文字 |
449
+ | 2 | 0.5rem | 8px | 紧凑元素间 |
450
+ | 3 | 0.75rem | 12px | 表单元素间 |
451
+ | 4 | 1rem | 16px | 段落间 |
452
+ | 5 | 1.25rem | 20px | 卡片内边距 |
453
+ | 6 | 1.5rem | 24px | 区块间 |
454
+ | 8 | 2rem | 32px | 大区块间 |
455
+ | 10 | 2.5rem | 40px | 页面区域间 |
456
+ | 12 | 3rem | 48px | 主要分隔 |
457
+ | 16 | 4rem | 64px | 页面顶部/底部 |
458
+
459
+ ### Tailwind 间距映射
460
+
461
+ ```html
462
+ <!-- 8px 系统对应 Tailwind -->
463
+ <div class="p-2">8px padding</div>
464
+ <div class="p-4">16px padding</div>
465
+ <div class="p-6">24px padding</div>
466
+ <div class="p-8">32px padding</div>
467
+
468
+ <div class="gap-2">8px gap</div>
469
+ <div class="gap-4">16px gap</div>
470
+ <div class="gap-6">24px gap</div>
471
+
472
+ <div class="space-y-2">8px vertical spacing</div>
473
+ <div class="space-y-4">16px vertical spacing</div>
474
+ ```
475
+
476
+ ## 11. 响应式断点测试矩阵
477
+
478
+ ### 必测断点
479
+
480
+ | 断点 | 宽度 | 设备类型 | 测试重点 |
481
+ |------|------|----------|----------|
482
+ | xs | 320px | iPhone SE | 最小可用宽度 |
483
+ | sm | 375px | iPhone 12/13 | 主流手机 |
484
+ | md | 768px | iPad | 平板竖屏 |
485
+ | lg | 1024px | iPad Pro/笔记本 | 平板横屏/小桌面 |
486
+ | xl | 1280px | 桌面 | 标准桌面 |
487
+ | 2xl | 1440px | 大桌面 | 设计稿基准 |
488
+ | 3xl | 1920px | 全高清 | 大屏测试 |
489
+
490
+ ### 测试检查表
491
+
492
+ ```
493
+ ┌─────────────────────────────────────────────────────────────────┐
494
+ │ 响应式测试检查表 (每个断点都要检查) │
495
+ ├─────────────────────────────────────────────────────────────────┤
496
+ │ □ 导航栏: 是否正确折叠/展开 │
497
+ │ □ 卡片网格: 列数是否正确变化 │
498
+ │ □ 表格: 是否有横向滚动或响应式处理 │
499
+ │ □ 表单: 输入框宽度是否合适 │
500
+ │ □ 图片: 是否正确缩放,无变形 │
501
+ │ □ 文字: 是否可读,无溢出 │
502
+ │ □ 按钮: 是否可点击,间距足够 │
503
+ │ □ 模态框: 是否居中,不超出屏幕 │
504
+ │ □ 侧边栏: 是否正确隐藏/显示 │
505
+ │ □ 页脚: 是否在底部,内容完整 │
506
+ └─────────────────────────────────────────────────────────────────┘
507
+ ```
508
+
509
+ ## 12. 完整检查清单
510
+
511
+ 每次实现 UI 时必须检查:
512
+
513
+ ### 布局检查
514
+ - [ ] 所有宽度使用相对单位或 clamp/min/max
515
+ - [ ] 图片设置 max-width: 100% 和 aspect-ratio
516
+ - [ ] Flexbox 子元素设置 min-width: 0
517
+ - [ ] 长文本有截断或换行策略
518
+ - [ ] Grid 使用 auto-fit/auto-fill + minmax
519
+ - [ ] 无大片空白区域
520
+ - [ ] 动态高度随内容变化
521
+
522
+ ### 响应式检查
523
+ - [ ] 测试 320px ~ 1920px 全范围
524
+ - [ ] 测试窗口缩放时无元素重叠
525
+ - [ ] 测试内容过长时无溢出
526
+ - [ ] 长内容区域使用 max-height + 滚动
527
+
528
+ ### 缩放检查 (新增)
529
+ - [ ] 测试浏览器缩放 50% - 200%
530
+ - [ ] 所有尺寸使用 rem 而非 px
531
+ - [ ] 间距遵循 8px 系统
532
+ - [ ] 字体大小使用相对单位
533
+ - [ ] 触摸目标至少 44px (2.75rem)
534
+
535
+ ### 间距检查 (新增)
536
+ - [ ] 内边距遵循 8px 倍数
537
+ - [ ] 外边距遵循 8px 倍数
538
+ - [ ] 元素间距一致
539
+ - [ ] 无过大或过小的间距
540
+
541
+ ## 13. 调试技巧
542
+
543
+ ```css
544
+ /* 临时显示所有元素边界 */
545
+ * { outline: 1px solid red !important; }
546
+
547
+ /* 检查溢出 */
548
+ * { outline: 1px solid rgba(255,0,0,0.2); }
549
+ body { overflow-x: hidden; } /* 如果出现横向滚动条,说明有溢出 */
550
+ ```
551
+
552
+ **浏览器工具**:
553
+ - Chrome DevTools → 设备模式 → 响应式测试
554
+ - Firefox → 响应式设计模式
555
+ - 拖动窗口边缘测试实时响应