@mison/ag-kit-cn 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.
Files changed (237) hide show
  1. package/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
  2. package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
  3. package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
  4. package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
  5. package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
  6. package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
  7. package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
  8. package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
  9. package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
  10. package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
  11. package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
  12. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
  13. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
  14. package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
  15. package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
  16. package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
  17. package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
  18. package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
  19. package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
  20. package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
  21. package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
  22. package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
  23. package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
  24. package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
  25. package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
  26. package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
  27. package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
  28. package/.agent/ARCHITECTURE.md +285 -0
  29. package/.agent/agents/backend-specialist.md +268 -0
  30. package/.agent/agents/code-archaeologist.md +106 -0
  31. package/.agent/agents/database-architect.md +225 -0
  32. package/.agent/agents/debugger.md +225 -0
  33. package/.agent/agents/devops-engineer.md +242 -0
  34. package/.agent/agents/documentation-writer.md +104 -0
  35. package/.agent/agents/explorer-agent.md +73 -0
  36. package/.agent/agents/frontend-specialist.md +618 -0
  37. package/.agent/agents/game-developer.md +162 -0
  38. package/.agent/agents/mobile-developer.md +382 -0
  39. package/.agent/agents/orchestrator.md +438 -0
  40. package/.agent/agents/penetration-tester.md +188 -0
  41. package/.agent/agents/performance-optimizer.md +187 -0
  42. package/.agent/agents/product-manager.md +112 -0
  43. package/.agent/agents/product-owner.md +95 -0
  44. package/.agent/agents/project-planner.md +405 -0
  45. package/.agent/agents/qa-automation-engineer.md +103 -0
  46. package/.agent/agents/security-auditor.md +170 -0
  47. package/.agent/agents/seo-specialist.md +111 -0
  48. package/.agent/agents/test-engineer.md +158 -0
  49. package/.agent/mcp_config.json +12 -0
  50. package/.agent/rules/GEMINI.md +273 -0
  51. package/.agent/scripts/auto_preview.py +148 -0
  52. package/.agent/scripts/checklist.py +217 -0
  53. package/.agent/scripts/session_manager.py +120 -0
  54. package/.agent/scripts/verify_all.py +327 -0
  55. package/.agent/skills/api-patterns/SKILL.md +84 -0
  56. package/.agent/skills/api-patterns/api-style.md +42 -0
  57. package/.agent/skills/api-patterns/auth.md +24 -0
  58. package/.agent/skills/api-patterns/documentation.md +26 -0
  59. package/.agent/skills/api-patterns/graphql.md +41 -0
  60. package/.agent/skills/api-patterns/rate-limiting.md +31 -0
  61. package/.agent/skills/api-patterns/response.md +37 -0
  62. package/.agent/skills/api-patterns/rest.md +40 -0
  63. package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
  64. package/.agent/skills/api-patterns/security-testing.md +122 -0
  65. package/.agent/skills/api-patterns/trpc.md +41 -0
  66. package/.agent/skills/api-patterns/versioning.md +22 -0
  67. package/.agent/skills/app-builder/SKILL.md +75 -0
  68. package/.agent/skills/app-builder/agent-coordination.md +74 -0
  69. package/.agent/skills/app-builder/feature-building.md +53 -0
  70. package/.agent/skills/app-builder/project-detection.md +34 -0
  71. package/.agent/skills/app-builder/scaffolding.md +118 -0
  72. package/.agent/skills/app-builder/tech-stack.md +40 -0
  73. package/.agent/skills/app-builder/templates/SKILL.md +39 -0
  74. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
  75. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
  76. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
  77. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
  78. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
  79. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
  80. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
  81. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
  82. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
  83. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
  84. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
  85. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
  86. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
  87. package/.agent/skills/architecture/SKILL.md +57 -0
  88. package/.agent/skills/architecture/context-discovery.md +43 -0
  89. package/.agent/skills/architecture/examples.md +94 -0
  90. package/.agent/skills/architecture/pattern-selection.md +68 -0
  91. package/.agent/skills/architecture/patterns-reference.md +50 -0
  92. package/.agent/skills/architecture/trade-off-analysis.md +77 -0
  93. package/.agent/skills/bash-linux/SKILL.md +201 -0
  94. package/.agent/skills/behavioral-modes/SKILL.md +264 -0
  95. package/.agent/skills/brainstorming/SKILL.md +164 -0
  96. package/.agent/skills/brainstorming/dynamic-questioning.md +359 -0
  97. package/.agent/skills/clean-code/SKILL.md +200 -0
  98. package/.agent/skills/code-review-checklist/SKILL.md +125 -0
  99. package/.agent/skills/database-design/SKILL.md +54 -0
  100. package/.agent/skills/database-design/database-selection.md +43 -0
  101. package/.agent/skills/database-design/indexing.md +39 -0
  102. package/.agent/skills/database-design/migrations.md +50 -0
  103. package/.agent/skills/database-design/optimization.md +36 -0
  104. package/.agent/skills/database-design/orm-selection.md +30 -0
  105. package/.agent/skills/database-design/schema-design.md +56 -0
  106. package/.agent/skills/database-design/scripts/schema_validator.py +172 -0
  107. package/.agent/skills/deployment-procedures/SKILL.md +241 -0
  108. package/.agent/skills/doc.md +177 -0
  109. package/.agent/skills/documentation-templates/SKILL.md +194 -0
  110. package/.agent/skills/frontend-design/SKILL.md +418 -0
  111. package/.agent/skills/frontend-design/animation-guide.md +331 -0
  112. package/.agent/skills/frontend-design/color-system.md +307 -0
  113. package/.agent/skills/frontend-design/decision-trees.md +418 -0
  114. package/.agent/skills/frontend-design/motion-graphics.md +306 -0
  115. package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
  116. package/.agent/skills/frontend-design/scripts/ux_audit.py +727 -0
  117. package/.agent/skills/frontend-design/typography-system.md +345 -0
  118. package/.agent/skills/frontend-design/ux-psychology.md +1118 -0
  119. package/.agent/skills/frontend-design/visual-effects.md +383 -0
  120. package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
  121. package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
  122. package/.agent/skills/game-development/SKILL.md +167 -0
  123. package/.agent/skills/game-development/game-art/SKILL.md +185 -0
  124. package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
  125. package/.agent/skills/game-development/game-design/SKILL.md +129 -0
  126. package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
  127. package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
  128. package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
  129. package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
  130. package/.agent/skills/game-development/web-games/SKILL.md +150 -0
  131. package/.agent/skills/geo-fundamentals/SKILL.md +155 -0
  132. package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
  133. package/.agent/skills/i18n-localization/SKILL.md +154 -0
  134. package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
  135. package/.agent/skills/intelligent-routing/SKILL.md +335 -0
  136. package/.agent/skills/lint-and-validate/SKILL.md +44 -0
  137. package/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
  138. package/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
  139. package/.agent/skills/mcp-builder/SKILL.md +176 -0
  140. package/.agent/skills/mobile-design/SKILL.md +394 -0
  141. package/.agent/skills/mobile-design/decision-trees.md +516 -0
  142. package/.agent/skills/mobile-design/mobile-backend.md +491 -0
  143. package/.agent/skills/mobile-design/mobile-color-system.md +420 -0
  144. package/.agent/skills/mobile-design/mobile-debugging.md +122 -0
  145. package/.agent/skills/mobile-design/mobile-design-thinking.md +355 -0
  146. package/.agent/skills/mobile-design/mobile-navigation.md +458 -0
  147. package/.agent/skills/mobile-design/mobile-performance.md +767 -0
  148. package/.agent/skills/mobile-design/mobile-testing.md +356 -0
  149. package/.agent/skills/mobile-design/mobile-typography.md +432 -0
  150. package/.agent/skills/mobile-design/platform-android.md +666 -0
  151. package/.agent/skills/mobile-design/platform-ios.md +561 -0
  152. package/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
  153. package/.agent/skills/mobile-design/touch-psychology.md +537 -0
  154. package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +311 -0
  155. package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +241 -0
  156. package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +489 -0
  157. package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +263 -0
  158. package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
  159. package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +431 -0
  160. package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +683 -0
  161. package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +149 -0
  162. package/.agent/skills/nextjs-react-expert/SKILL.md +286 -0
  163. package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
  164. package/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
  165. package/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
  166. package/.agent/skills/parallel-agents/SKILL.md +194 -0
  167. package/.agent/skills/performance-profiling/SKILL.md +149 -0
  168. package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
  169. package/.agent/skills/plan-writing/SKILL.md +152 -0
  170. package/.agent/skills/powershell-windows/SKILL.md +166 -0
  171. package/.agent/skills/python-patterns/SKILL.md +441 -0
  172. package/.agent/skills/red-team-tactics/SKILL.md +203 -0
  173. package/.agent/skills/rust-pro/SKILL.md +190 -0
  174. package/.agent/skills/seo-fundamentals/SKILL.md +135 -0
  175. package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +215 -0
  176. package/.agent/skills/server-management/SKILL.md +161 -0
  177. package/.agent/skills/systematic-debugging/SKILL.md +114 -0
  178. package/.agent/skills/tailwind-patterns/SKILL.md +269 -0
  179. package/.agent/skills/tdd-workflow/SKILL.md +149 -0
  180. package/.agent/skills/testing-patterns/SKILL.md +178 -0
  181. package/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
  182. package/.agent/skills/vulnerability-scanner/SKILL.md +276 -0
  183. package/.agent/skills/vulnerability-scanner/checklists.md +131 -0
  184. package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +459 -0
  185. package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
  186. package/.agent/skills/webapp-testing/SKILL.md +187 -0
  187. package/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
  188. package/.agent/workflows/brainstorm.md +113 -0
  189. package/.agent/workflows/create.md +59 -0
  190. package/.agent/workflows/debug.md +103 -0
  191. package/.agent/workflows/deploy.md +176 -0
  192. package/.agent/workflows/enhance.md +63 -0
  193. package/.agent/workflows/orchestrate.md +242 -0
  194. package/.agent/workflows/plan.md +89 -0
  195. package/.agent/workflows/preview.md +80 -0
  196. package/.agent/workflows/restore-localize-compat.md +525 -0
  197. package/.agent/workflows/status.md +86 -0
  198. package/.agent/workflows/test.md +144 -0
  199. package/.agent/workflows/ui-ux-pro-max.md +295 -0
  200. package/AGENT_FLOW.md +609 -0
  201. package/CHANGELOG.md +68 -0
  202. package/LICENSE +21 -0
  203. package/README.md +260 -0
  204. package/bin/adapters/base.js +63 -0
  205. package/bin/adapters/codex.js +391 -0
  206. package/bin/adapters/gemini.js +137 -0
  207. package/bin/ag-kit.js +1336 -0
  208. package/bin/core/builder.js +80 -0
  209. package/bin/core/generator.js +59 -0
  210. package/bin/core/resource-loader.js +64 -0
  211. package/bin/core/transformer.js +208 -0
  212. package/bin/interactive.js +65 -0
  213. package/bin/utils/atomic-writer.js +97 -0
  214. package/bin/utils/git-helper.js +68 -0
  215. package/bin/utils/managed-block.js +65 -0
  216. package/bin/utils/manifest.js +241 -0
  217. package/bin/utils.js +82 -0
  218. package/docs/codex-rules-template.md +36 -0
  219. package/docs/mapping-spec.md +68 -0
  220. package/docs/multi-target-adapter.md +80 -0
  221. package/docs/official/README.md +53 -0
  222. package/docs/official/antigravity/agent-modes-settings.md +64 -0
  223. package/docs/official/antigravity/rules-workflows.md +96 -0
  224. package/docs/official/antigravity/skills.md +147 -0
  225. package/docs/official/codex/agents-md.md +119 -0
  226. package/docs/official/codex/config-advanced.md +358 -0
  227. package/docs/official/codex/config-basic.md +141 -0
  228. package/docs/official/codex/config-reference.md +223 -0
  229. package/docs/official/codex/config-sample.md +216 -0
  230. package/docs/official/codex/mcp.md +107 -0
  231. package/docs/official/codex/rules.md +79 -0
  232. package/docs/official/codex/skills.md +114 -0
  233. package/docs/official/sources-index.md +32 -0
  234. package/docs/operations.md +145 -0
  235. package/docs/terminology-style-guide.md +69 -0
  236. package/package.json +51 -0
  237. package/scripts/postinstall-check.js +112 -0
@@ -0,0 +1,666 @@
1
+ # Android 平台指南(Android Platform Guidelines)
2
+
3
+ > Material Design 3 要点、Android 设计惯例、Roboto 排版与原生模式。
4
+ > **做 Android 必读。**
5
+
6
+ ---
7
+
8
+ ## 1. Material Design 3 哲学
9
+
10
+ ### 核心设计原则(Core Material Principles)
11
+
12
+ ```
13
+ MATERIAL AS METAPHOR:
14
+ ├── 表面存在于 3D 空间
15
+ ├── 光影定义层级
16
+ ├── 动效提供连续性
17
+ └── 大胆、图形化、有意图的设计
18
+
19
+ ADAPTIVE DESIGN:
20
+ ├── 响应设备能力
21
+ ├── 一套 UI 覆盖所有形态
22
+ ├── 动态颜色来自壁纸
23
+ └── 针对用户个性化
24
+
25
+ ACCESSIBLE BY DEFAULT:
26
+ ├── 大触控目标
27
+ ├── 清晰视觉层级
28
+ ├── 语义色
29
+ └── 动效尊重偏好
30
+ ```
31
+
32
+ ### Material 价值(Material Design Values)
33
+
34
+ | 价值 | 实现方式 |
35
+ |------|----------|
36
+ | **Dynamic Color** | 颜色随壁纸/偏好变化 |
37
+ | **Personalization** | 用户个性化主题 |
38
+ | **Accessibility** | 内建无障碍能力 |
39
+ | **Responsiveness** | 适配所有屏幕 |
40
+ | **Consistency** | 统一设计语言 |
41
+
42
+ ---
43
+
44
+ ## 2. Android 排版(Android Typography)
45
+
46
+ ### Roboto 字体家族
47
+
48
+ ```
49
+ Android 系统字体:
50
+ ├── Roboto:默认无衬线
51
+ ├── Roboto Flex:可变字体(API 33+)
52
+ ├── Roboto Serif:衬线替代
53
+ ├── Roboto Mono:等宽
54
+ └── Google Sans:Google 产品(需授权)
55
+ ```
56
+
57
+ ### Material 字号体系(Material Type Scale)
58
+
59
+ | Role | Size | Weight | Line Height | Usage |
60
+ |------|------|--------|-------------|-------|
61
+ | **Display Large** | 57sp | Regular | 64sp | 首屏大字、Splash |
62
+ | **Display Medium** | 45sp | Regular | 52sp | 大标题 |
63
+ | **Display Small** | 36sp | Regular | 44sp | 中标题 |
64
+ | **Headline Large** | 32sp | Regular | 40sp | 页面标题 |
65
+ | **Headline Medium** | 28sp | Regular | 36sp | 分区标题 |
66
+ | **Headline Small** | 24sp | Regular | 32sp | 子分区 |
67
+ | **Title Large** | 22sp | Regular | 28sp | 对话框、卡片 |
68
+ | **Title Medium** | 16sp | Medium | 24sp | 列表、导航 |
69
+ | **Title Small** | 14sp | Medium | 20sp | Tab、次级标题 |
70
+ | **Body Large** | 16sp | Regular | 24sp | 主体内容 |
71
+ | **Body Medium** | 14sp | Regular | 20sp | 次级内容 |
72
+ | **Body Small** | 12sp | Regular | 16sp | 注释 |
73
+ | **Label Large** | 14sp | Medium | 20sp | 按钮、FAB |
74
+ | **Label Medium** | 12sp | Medium | 16sp | 导航标签 |
75
+ | **Label Small** | 11sp | Medium | 16sp | 标签、徽标 |
76
+
77
+ ### 可缩放像素(sp)
78
+
79
+ ```
80
+ sp = Scale-independent pixels
81
+
82
+ sp 会随以下变化自动缩放:
83
+ ├── 用户字号偏好
84
+ ├── 屏幕密度
85
+ └── 无障碍设置
86
+
87
+ 规则:文字必须用 sp,其他布局用 dp。
88
+ ```
89
+
90
+ ### 字重使用(Font Weight Usage)
91
+
92
+ | 字重 | 场景 |
93
+ |------|------|
94
+ | Regular (400) | 正文、展示 |
95
+ | Medium (500) | 按钮、标签、强调 |
96
+ | Bold (700) | 很少用,只做强强调 |
97
+
98
+ ---
99
+
100
+ ## 3. Material 颜色系统(Material Color System)
101
+
102
+ ### 动态颜色(Material You)
103
+
104
+ ```
105
+ Android 12+ 动态颜色:
106
+
107
+ 用户壁纸 → 颜色抽取 → App 主题
108
+
109
+ 你的 App 会自动适配:
110
+ ├── Primary(主色)
111
+ ├── Secondary(辅色)
112
+ ├── Tertiary(强调色)
113
+ ├── Surface(表面色)
114
+ └── 全部语义色调整
115
+
116
+ 规则:应实现动态颜色以提供个性化体验。
117
+ ```
118
+
119
+ ### 语义颜色角色(Semantic Color Roles)
120
+
121
+ ```
122
+ Surface Colors:
123
+ ├── Surface → 主背景
124
+ ├── SurfaceVariant → 卡片/容器
125
+ ├── SurfaceTint → 高度覆盖
126
+ ├── InverseSurface → Snackbar/tooltip
127
+
128
+ On-Surface Colors:
129
+ ├── OnSurface → 主文本
130
+ ├── OnSurfaceVariant → 次级文本
131
+ ├── Outline → 边框、分割线
132
+ ├── OutlineVariant → 更弱分割线
133
+
134
+ Primary Colors:
135
+ ├── Primary → 关键操作、FAB
136
+ ├── OnPrimary → 主色上的文本
137
+ ├── PrimaryContainer → 低强调容器
138
+ ├── OnPrimaryContainer → 容器文本
139
+
140
+ Secondary/Tertiary 同理
141
+ ```
142
+
143
+ ### 错误/警告/成功色
144
+
145
+ | 角色 | Light | Dark | 用途 |
146
+ |------|-------|------|------|
147
+ | Error | #B3261E | #F2B8B5 | 错误/破坏性 |
148
+ | OnError | #FFFFFF | #601410 | 错误文本 |
149
+ | ErrorContainer | #F9DEDC | #8C1D18 | 错误背景 |
150
+
151
+ ### 暗色主题(Dark Theme)
152
+
153
+ ```
154
+ Material Dark Theme:
155
+
156
+ ├── Background:#121212(默认非纯黑)
157
+ ├── Surface:#1E1E1E/#232323 等(按高度)
158
+ ├── Elevation:高度越高,叠加越亮
159
+ ├── 降低饱和度
160
+ └── 必须检查对比度
161
+
162
+ Elevation overlays(暗色):
163
+ ├── 0dp → 0% overlay
164
+ ├── 1dp → 5% overlay
165
+ ├── 3dp → 8% overlay
166
+ ├── 6dp → 11% overlay
167
+ ├── 8dp → 12% overlay
168
+ ├── 12dp → 14% overlay
169
+ ```
170
+
171
+ ---
172
+
173
+ ## 4. Android 布局与间距(Android Layout & Spacing)
174
+
175
+ ### 布局网格(Layout Grid)
176
+
177
+ ```
178
+ Android 使用 8dp 基线网格:
179
+
180
+ 间距使用 8dp 倍数:
181
+ ├── 4dp:组件内部(半步)
182
+ ├── 8dp:最小间距
183
+ ├── 16dp:标准间距
184
+ ├── 24dp:区块间距
185
+ ├── 32dp:大间距
186
+
187
+ 边距:
188
+ ├── Compact(手机):16dp
189
+ ├── Medium(小平板):24dp
190
+ ├── Expanded(大屏):24dp+ 或多栏
191
+ ```
192
+
193
+ ### 响应式布局(Responsive Layout)
194
+
195
+ ```
196
+ Window Size Classes:
197
+
198
+ COMPACT(< 600dp):
199
+ ├── 手机竖屏
200
+ ├── 单列布局
201
+ ├── 底部导航
202
+
203
+ MEDIUM(600-840dp):
204
+ ├── 平板/折叠屏
205
+ ├── 可考虑双列
206
+ ├── Navigation rail 可用
207
+
208
+ EXPANDED(> 840dp):
209
+ ├── 大屏平板/桌面
210
+ ├── 多列布局
211
+ ├── Navigation drawer
212
+ ```
213
+
214
+ ### Canonical Layouts
215
+
216
+ | 布局 | 场景 | Window Class |
217
+ |------|------|--------------|
218
+ | **List-Detail** | 邮件、消息 | Medium, Expanded |
219
+ | **Feed** | 社交、新闻 | All |
220
+ | **Supporting Pane** | 参考内容 | Medium, Expanded |
221
+
222
+ ---
223
+
224
+ ## 5. Android 导航模式(Android Navigation Patterns)
225
+
226
+ ### 导航组件(Navigation Components)
227
+
228
+ | 组件 | 场景 | 位置 |
229
+ |------|------|------|
230
+ | **Bottom Navigation** | 3-5 顶层入口 | 底部 |
231
+ | **Navigation Rail** | 平板/折叠屏 | 左侧竖栏 |
232
+ | **Navigation Drawer** | 多入口/大屏 | 左侧抽屉 |
233
+ | **Top App Bar** | 当前上下文/操作 | 顶部 |
234
+
235
+ ### Bottom Navigation
236
+
237
+ ```
238
+ ┌─────────────────────────────────────┐
239
+ │ │
240
+ │ Content Area │
241
+ │ │
242
+ ├─────────────────────────────────────┤
243
+ │ 🏠 🔍 ➕ ❤️ 👤 │ ← 80dp height
244
+ │ Home Search FAB Saved Profile│
245
+ └─────────────────────────────────────┘
246
+
247
+ 规则:
248
+ ├── 3-5 个入口
249
+ ├── 图标:Material Symbols(24dp)
250
+ ├── 文本:必须显示(无障碍)
251
+ ├── 激活态:填充图标 + 指示 pill
252
+ ├── Badge:用于通知
253
+ ├── FAB 可嵌入(可选)
254
+ ```
255
+
256
+ ### Top App Bar
257
+
258
+ ```
259
+ 类型:
260
+ ├── Center-aligned:Logo 类应用
261
+ ├── Small:紧凑,可滚动隐藏
262
+ ├── Medium:标题 + 操作,折叠
263
+ ├── Large:大标题,折叠为小
264
+
265
+ ┌─────────────────────────────────────┐
266
+ │ ☰ App Title 🔔 ⋮ │ ← 64dp (small)
267
+ ├─────────────────────────────────────┤
268
+ │ │
269
+ │ Content Area │
270
+ └─────────────────────────────────────┘
271
+
272
+ 操作:最多 3 个 icon,更多放溢出菜单(⋮)
273
+ ```
274
+
275
+ ### Navigation Rail(平板)
276
+
277
+ ```
278
+ ┌───────┬─────────────────────────────┐
279
+ │ ≡ │ │
280
+ │ │ │
281
+ │ 🏠 │ │
282
+ │ Home │ Content Area │
283
+ │ │ │
284
+ │ 🔍 │ │
285
+ │Search │ │
286
+ │ │ │
287
+ │ 👤 │ │
288
+ │Profile│ │
289
+ └───────┴─────────────────────────────┘
290
+
291
+ 宽度:80dp
292
+ 图标:24dp
293
+ 文本:在图标下方
294
+ FAB:可置顶
295
+ ```
296
+
297
+ ### 返回导航(Back Navigation)
298
+
299
+ ```
300
+ Android 提供系统返回:
301
+ ├── Back 按钮(三键导航)
302
+ ├── Back 手势(边缘滑动)
303
+ ├── Predictive back(Android 14+)
304
+
305
+ 你的 App 必须:
306
+ ├── 正确处理返回(pop stack)
307
+ ├── 支持预测性返回动画
308
+ ├── 不可劫持返回行为
309
+ └── 丢弃未保存内容前必须确认
310
+ ```
311
+
312
+ ---
313
+
314
+ ## 6. Material 组件(Material Components)
315
+
316
+ ### Buttons
317
+
318
+ ```
319
+ 按钮类型:
320
+
321
+ ┌──────────────────────┐
322
+ │ Filled Button │ ← 主操作
323
+ └──────────────────────┘
324
+
325
+ ┌──────────────────────┐
326
+ │ Tonal Button │ ← 次操作(更弱)
327
+ └──────────────────────┘
328
+
329
+ ┌──────────────────────┐
330
+ │ Outlined Button │ ← 三级操作
331
+ └──────────────────────┘
332
+
333
+ Text Button ← 最低强调
334
+
335
+ 高度:
336
+ ├── Small:40dp(空间受限)
337
+ ├── Standard:40dp
338
+ ├── Large:56dp(与 FAB 接近)
339
+
340
+ 最小触控目标:48dp(视觉更小也必须补足)
341
+ ```
342
+
343
+ ### Floating Action Button(FAB)
344
+
345
+ ```
346
+ FAB 类型:
347
+ ├── Standard:56dp 直径
348
+ ├── Small:40dp 直径
349
+ ├── Large:96dp 直径
350
+ ├── Extended:图标 + 文本
351
+
352
+ 位置:右下,距离边缘 16dp
353
+ 高度:悬浮于内容之上
354
+
355
+ ┌─────────────────────────────────────┐
356
+ │ │
357
+ │ Content │
358
+ │ │
359
+ │ ┌────┐ │
360
+ │ │ ➕ │ │ ← FAB
361
+ │ └────┘ │
362
+ ├─────────────────────────────────────┤
363
+ │ Bottom Navigation │
364
+ └─────────────────────────────────────┘
365
+ ```
366
+
367
+ ### Cards
368
+
369
+ ```
370
+ Card 类型:
371
+ ├── Elevated:阴影
372
+ ├── Filled:背景色
373
+ ├── Outlined:描边
374
+
375
+ Card 结构:
376
+ ┌─────────────────────────────────────┐
377
+ │ Header Image │ ← 可选
378
+ ├─────────────────────────────────────┤
379
+ │ Title / Headline │
380
+ │ Subhead / Supporting text │
381
+ ├─────────────────────────────────────┤
382
+ │ [ Action ] [ Action ] │ ← 可选操作
383
+ └─────────────────────────────────────┘
384
+
385
+ 圆角:12dp(M3 默认)
386
+ Padding:16dp
387
+ ```
388
+
389
+ ### Text Fields
390
+
391
+ ```
392
+ 类型:
393
+ ├── Filled:有背景填充 + 下划线
394
+ ├── Outlined:全边框
395
+
396
+ ┌─────────────────────────────────────┐
397
+ │ Label │ ← 聚焦时浮到上方
398
+ │ ________________________________________________
399
+ │ │ Input text here... │ ← 前后图标
400
+ │ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
401
+ │ Supporting text or error │
402
+ └─────────────────────────────────────┘
403
+
404
+ 高度:56dp
405
+ Label:placeholder → 顶部
406
+ Error:红色 + 图标 + 文本
407
+ ```
408
+
409
+ ### Chips
410
+
411
+ ```
412
+ 类型:
413
+ ├── Assist:快速动作(导航/拨打)
414
+ ├── Filter:筛选切换
415
+ ├── Input:实体标签(Tag/联系人)
416
+ ├── Suggestion:推荐
417
+
418
+ ┌───────────────┐
419
+ │ 🏷️ Filter │ ← 高度 32dp,圆角 8dp
420
+ └───────────────┘
421
+
422
+ 状态:未选/选中/禁用
423
+ ```
424
+
425
+ ---
426
+
427
+ ## 7. Android 特有模式(Android-Specific Patterns)
428
+
429
+ ### Snackbars
430
+
431
+ ```
432
+ 位置:底部,位于导航上方
433
+ 时长:4-10 秒
434
+ 操作:一个可选文字按钮
435
+
436
+ ┌─────────────────────────────────────────────────┐
437
+ │ Archived 1 item [ UNDO ] │
438
+ └─────────────────────────────────────────────────┘
439
+
440
+ 规则:
441
+ ├── 简短信息,尽量单行
442
+ ├── 最多 2 行
443
+ ├── 仅 1 个动作(文字,不用图标)
444
+ ├── 可滑动关闭
445
+ └── 不叠加,队列显示
446
+ ```
447
+
448
+ ### Bottom Sheets
449
+
450
+ ```
451
+ 类型:
452
+ ├── Standard:可交互内容
453
+ ├── Modal:遮罩背景
454
+
455
+ Modal Bottom Sheet:
456
+ ┌─────────────────────────────────────┐
457
+ │ │
458
+ │ (Scrim over content) │
459
+ │ │
460
+ ├═════════════════════════════════════┤
461
+ │ ───── (Drag handle, optional) │
462
+ │ │
463
+ │ Sheet Content │
464
+ │ │
465
+ │ Actions / Options │
466
+ │ │
467
+ └─────────────────────────────────────┘
468
+
469
+ 圆角:28dp(顶部)
470
+ ```
471
+
472
+ ### Dialogs
473
+
474
+ ```
475
+ 类型:
476
+ ├── Basic:标题 + 内容 + 操作
477
+ ├── Full-screen:复杂编辑(移动端)
478
+ ├── 日期/时间选择
479
+ ├── 确认对话框
480
+
481
+ ┌─────────────────────────────────────┐
482
+ │ Title │
483
+ │ │
484
+ │ Supporting text that │
485
+ │ explains the dialog │
486
+ │ │
487
+ │ [ Cancel ] [ Confirm ] │
488
+ └─────────────────────────────────────┘
489
+
490
+ 规则:
491
+ ├── 居中显示
492
+ ├── 背后 Scrim
493
+ ├── 最多 2 个操作,右侧对齐
494
+ ├── 破坏性操作可置左
495
+ ```
496
+
497
+ ### Pull to Refresh
498
+
499
+ ```
500
+ Android 使用 SwipeRefreshLayout 模式:
501
+
502
+ ┌─────────────────────────────────────┐
503
+ │ ○ (Spinner) │ ← 圆形进度
504
+ ├─────────────────────────────────────┤
505
+ │ │
506
+ │ Content │
507
+ │ │
508
+ └─────────────────────────────────────┘
509
+
510
+ Spinner:Material 圆形指示
511
+ 位置:顶部居中,下拉随内容移动
512
+ ```
513
+
514
+ ### Ripple Effect
515
+
516
+ ```
517
+ 所有可点元素必须有 Ripple:
518
+
519
+ 按下 → Ripple 从触点扩散
520
+ 抬起 → Ripple 完成后淡出
521
+
522
+ 颜色:
523
+ ├── 亮色背景:黑色 12% 透明
524
+ ├── 暗色背景:白色 12% 透明
525
+ ├── 有色背景:保证对比度
526
+
527
+ 这是 Android 体验的强制要求。
528
+ ```
529
+
530
+ ---
531
+
532
+ ## 8. Material Symbols
533
+
534
+ ### 使用指南(Usage Guidelines)
535
+
536
+ ```
537
+ Material Symbols:Google 图标库
538
+
539
+ 样式:
540
+ ├── Outlined:默认,最常见
541
+ ├── Rounded:更柔和
542
+ ├── Sharp:更锐利
543
+
544
+ 变量字体轴:
545
+ ├── FILL:0(描边)到 1(填充)
546
+ ├── wght:100-700(字重)
547
+ ├── GRAD:-25 到 200(强调)
548
+ ├── opsz:20/24/40/48(光学尺寸)
549
+ ```
550
+
551
+ ### 图标尺寸(Icon Sizes)
552
+
553
+ | 尺寸 | 场景 |
554
+ |------|------|
555
+ | 20dp | 密集 UI / 内联 |
556
+ | 24dp | 标准(最常用) |
557
+ | 40dp | 大触控目标 |
558
+ | 48dp | 强调/独立图标 |
559
+
560
+ ### 状态(States)
561
+
562
+ ```
563
+ Icon 状态:
564
+ ├── Default:全不透明
565
+ ├── Disabled:38% 透明
566
+ ├── Hover/Focus:容器高亮
567
+ ├── Selected:填充 + tint
568
+
569
+ Active vs Inactive:
570
+ ├── Inactive:Outlined
571
+ ├── Active:Filled + indicator
572
+ ```
573
+
574
+ ---
575
+
576
+ ## 9. Android 无障碍(Android Accessibility)
577
+
578
+ ### TalkBack 要求
579
+
580
+ ```
581
+ 每个交互元素必须:
582
+ ├── contentDescription(是什么)
583
+ ├── 正确语义(button/checkbox 等)
584
+ ├── 状态说明(selected/disabled)
585
+ └── 逻辑分组
586
+
587
+ Jetpack Compose:
588
+ Modifier.semantics {
589
+ contentDescription = "Play button"
590
+ role = Role.Button
591
+ }
592
+
593
+ React Native:
594
+ accessibilityLabel="Play button"
595
+ accessibilityRole="button"
596
+ accessibilityState={{ disabled: false }}
597
+ ```
598
+
599
+ ### 触控目标尺寸
600
+
601
+ ```
602
+ 必须:48dp × 48dp 最小
603
+
604
+ 即使视觉更小:
605
+ ├── 图标:24dp 视觉,48dp 触控
606
+ ├── 复选框:20dp 视觉,48dp 触控
607
+ └── 用 padding 补足
608
+
609
+ 目标间距:至少 8dp
610
+ ```
611
+
612
+ ### 字体缩放
613
+
614
+ ```
615
+ Android 支持字体缩放:
616
+ ├── 85%(更小)
617
+ ├── 100%(默认)
618
+ ├── 115%、130%、145%...
619
+ ├── 最多 200%
620
+
621
+ 规则:UI 必须在 200% 下可用。
622
+ 使用 sp 单位,避免固定高度。
623
+ ```
624
+
625
+ ### Reduce Motion
626
+
627
+ ```kotlin
628
+ // 检查动效偏好
629
+ val reduceMotion = Settings.Global.getFloat(
630
+ contentResolver,
631
+ Settings.Global.ANIMATOR_DURATION_SCALE,
632
+ 1f
633
+ ) == 0f
634
+
635
+ if (reduceMotion) {
636
+ // 禁用或减少动画
637
+ }
638
+ ```
639
+
640
+ ---
641
+
642
+ ## 10. Android 检查清单(Android Checklist)
643
+
644
+ ### 每个 Android 页面前
645
+
646
+ - [ ] 使用 Material 3 组件
647
+ - [ ] 触控目标 ≥ 48dp
648
+ - [ ] 所有可点元素有 Ripple
649
+ - [ ] Roboto 或 Material 字号体系
650
+ - [ ] 语义色(支持动态颜色)
651
+ - [ ] 返回导航正确
652
+
653
+ ### Android 发布前
654
+
655
+ - [ ] 暗色主题已测试
656
+ - [ ] 动态颜色已测试(支持时)
657
+ - [ ] 所有字号测试(200%)
658
+ - [ ] TalkBack 已测试
659
+ - [ ] Predictive back 已实现(Android 14+)
660
+ - [ ] Edge-to-edge(Android 15+)
661
+ - [ ] 不同尺寸设备测试(手机/平板)
662
+ - [ ] 导航符合平台惯例(返回/手势)
663
+
664
+ ---
665
+
666
+ > **记住(Remember)**:Android 用户期待 Material Design 体验。无视 Material 的自定义设计会显得“异类且不可靠”。以 Material 组件为基础,再有意识地定制。