@jakkrichm/create-nexus-devflow 2.0.0 → 2.0.2

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 (398) hide show
  1. package/README.md +96 -50
  2. package/package.json +1 -1
  3. package/template/.agents/skills/20-spec/SKILL.md +136 -136
  4. package/template/.agents/skills/30-plan/SKILL.md +206 -206
  5. package/template/.agents/skills/40-implement/SKILL.md +152 -152
  6. package/template/.agents/skills/50-verify/SKILL.md +174 -174
  7. package/template/.agents/skills/60-report/SKILL.md +168 -168
  8. package/template/.agents/skills/70-release/SKILL.md +141 -141
  9. package/template/.agents/skills/9arm-skills/README.md +51 -51
  10. package/template/.agents/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  11. package/template/.agents/skills/9arm-skills/management-talk/SKILL.md +79 -79
  12. package/template/.agents/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  13. package/template/.agents/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  14. package/template/.agents/skills/agent/SKILL.md +164 -164
  15. package/template/.agents/skills/api-and-interface-design/SKILL.md +294 -294
  16. package/template/.agents/skills/app-builder/SKILL.md +75 -75
  17. package/template/.agents/skills/app-builder/agent-coordination.md +71 -71
  18. package/template/.agents/skills/app-builder/feature-building.md +53 -53
  19. package/template/.agents/skills/app-builder/project-detection.md +34 -34
  20. package/template/.agents/skills/app-builder/scaffolding.md +118 -118
  21. package/template/.agents/skills/app-builder/tech-stack.md +40 -40
  22. package/template/.agents/skills/app-builder/templates/SKILL.md +39 -39
  23. package/template/.agents/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  24. package/template/.agents/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  25. package/template/.agents/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  26. package/template/.agents/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  27. package/template/.agents/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  28. package/template/.agents/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  29. package/template/.agents/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  30. package/template/.agents/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  31. package/template/.agents/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  32. package/template/.agents/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  33. package/template/.agents/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  34. package/template/.agents/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  35. package/template/.agents/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  36. package/template/.agents/skills/architecture/SKILL.md +55 -55
  37. package/template/.agents/skills/architecture/context-discovery.md +43 -43
  38. package/template/.agents/skills/architecture/examples.md +94 -94
  39. package/template/.agents/skills/architecture/pattern-selection.md +68 -68
  40. package/template/.agents/skills/architecture/patterns-reference.md +50 -50
  41. package/template/.agents/skills/architecture/trade-off-analysis.md +77 -77
  42. package/template/.agents/skills/bash-linux/SKILL.md +199 -199
  43. package/template/.agents/skills/behavioral-modes/SKILL.md +242 -242
  44. package/template/.agents/skills/brainstorm/SKILL.md +157 -157
  45. package/template/.agents/skills/browser-testing-with-devtools/SKILL.md +302 -302
  46. package/template/.agents/skills/changelog/SKILL.md +108 -108
  47. package/template/.agents/skills/ci-cd-and-automation/SKILL.md +390 -390
  48. package/template/.agents/skills/code-review-and-quality/SKILL.md +392 -392
  49. package/template/.agents/skills/code-simplification/SKILL.md +331 -331
  50. package/template/.agents/skills/commit/SKILL.md +62 -62
  51. package/template/.agents/skills/competitor-analysis/SKILL.md +66 -66
  52. package/template/.agents/skills/context-engineering/SKILL.md +290 -290
  53. package/template/.agents/skills/database-design/SKILL.md +52 -52
  54. package/template/.agents/skills/database-design/database-selection.md +43 -43
  55. package/template/.agents/skills/database-design/indexing.md +39 -39
  56. package/template/.agents/skills/database-design/migrations.md +48 -48
  57. package/template/.agents/skills/database-design/optimization.md +36 -36
  58. package/template/.agents/skills/database-design/orm-selection.md +30 -30
  59. package/template/.agents/skills/database-design/schema-design.md +56 -56
  60. package/template/.agents/skills/database-design/scripts/schema_validator.py +172 -172
  61. package/template/.agents/skills/debug/SKILL.md +116 -116
  62. package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +298 -298
  63. package/template/.agents/skills/deploy/SKILL.md +90 -90
  64. package/template/.agents/skills/deployment-procedures/SKILL.md +241 -241
  65. package/template/.agents/skills/deprecation-and-migration/SKILL.md +206 -206
  66. package/template/.agents/skills/documentation-and-adrs/SKILL.md +278 -278
  67. package/template/.agents/skills/followup/SKILL.md +78 -78
  68. package/template/.agents/skills/frontend-ui-engineering/SKILL.md +326 -326
  69. package/template/.agents/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  70. package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +300 -300
  71. package/template/.agents/skills/goal/SKILL.md +132 -132
  72. package/template/.agents/skills/help/SKILL.md +242 -242
  73. package/template/.agents/skills/human-review-decisions/SKILL.md +74 -74
  74. package/template/.agents/skills/i18n-localization/SKILL.md +154 -154
  75. package/template/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  76. package/template/.agents/skills/idea-refine/SKILL.md +178 -178
  77. package/template/.agents/skills/idea-refine/examples.md +238 -238
  78. package/template/.agents/skills/idea-refine/frameworks.md +99 -99
  79. package/template/.agents/skills/idea-refine/refinement-criteria.md +113 -113
  80. package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +15 -15
  81. package/template/.agents/skills/incremental-implementation/SKILL.md +248 -248
  82. package/template/.agents/skills/insight/SKILL.md +130 -130
  83. package/template/.agents/skills/insight-capture/SKILL.md +84 -84
  84. package/template/.agents/skills/intelligent-routing/SKILL.md +171 -171
  85. package/template/.agents/skills/issue-triage/SKILL.md +106 -106
  86. package/template/.agents/skills/lint-and-validate/SKILL.md +45 -45
  87. package/template/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  88. package/template/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  89. package/template/.agents/skills/mcp-builder/SKILL.md +176 -176
  90. package/template/.agents/skills/md2html/SKILL.md +154 -154
  91. package/template/.agents/skills/md2html/components.md +505 -505
  92. package/template/.agents/skills/md2html/template.html +1152 -1152
  93. package/template/.agents/skills/merge/SKILL.md +75 -75
  94. package/template/.agents/skills/mobile-design/SKILL.md +394 -394
  95. package/template/.agents/skills/mobile-design/decision-trees.md +516 -516
  96. package/template/.agents/skills/mobile-design/mobile-backend.md +491 -491
  97. package/template/.agents/skills/mobile-design/mobile-color-system.md +420 -420
  98. package/template/.agents/skills/mobile-design/mobile-debugging.md +122 -122
  99. package/template/.agents/skills/mobile-design/mobile-design-thinking.md +357 -357
  100. package/template/.agents/skills/mobile-design/mobile-navigation.md +458 -458
  101. package/template/.agents/skills/mobile-design/mobile-performance.md +767 -767
  102. package/template/.agents/skills/mobile-design/mobile-testing.md +356 -356
  103. package/template/.agents/skills/mobile-design/mobile-typography.md +433 -433
  104. package/template/.agents/skills/mobile-design/platform-android.md +666 -666
  105. package/template/.agents/skills/mobile-design/platform-ios.md +561 -561
  106. package/template/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -670
  107. package/template/.agents/skills/mobile-design/touch-psychology.md +537 -537
  108. package/template/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  109. package/template/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  110. package/template/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  111. package/template/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  112. package/template/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  113. package/template/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  114. package/template/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  115. package/template/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  116. package/template/.agents/skills/nextjs-react-expert/SKILL.md +286 -286
  117. package/template/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  118. package/template/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  119. package/template/.agents/skills/nodejs-best-practices/SKILL.md +333 -333
  120. package/template/.agents/skills/package-json-generator/SKILL.md +60 -60
  121. package/template/.agents/skills/package-json-generator/scripts/generate.js +120 -120
  122. package/template/.agents/skills/package-json-generator/scripts/run.sh +19 -19
  123. package/template/.agents/skills/parallel-agents/SKILL.md +144 -144
  124. package/template/.agents/skills/performance-optimization/SKILL.md +299 -299
  125. package/template/.agents/skills/performance-optimization/performance-checklist.md +113 -113
  126. package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +239 -239
  127. package/template/.agents/skills/powershell-windows/SKILL.md +167 -167
  128. package/template/.agents/skills/pr/SKILL.md +92 -92
  129. package/template/.agents/skills/pr-review/SKILL.md +142 -142
  130. package/template/.agents/skills/pr-review-analysis/SKILL.md +89 -89
  131. package/template/.agents/skills/prd/SKILL.md +112 -112
  132. package/template/.agents/skills/preview/SKILL.md +116 -116
  133. package/template/.agents/skills/preview-local-check/SKILL.md +59 -59
  134. package/template/.agents/skills/python-patterns/SKILL.md +441 -441
  135. package/template/.agents/skills/release-git-operations/SKILL.md +97 -97
  136. package/template/.agents/skills/research/SKILL.md +127 -127
  137. package/template/.agents/skills/review/SKILL.md +55 -55
  138. package/template/.agents/skills/review-followup-routing/SKILL.md +98 -98
  139. package/template/.agents/skills/roadmap-strategy/SKILL.md +97 -97
  140. package/template/.agents/skills/security-and-hardening/SKILL.md +349 -349
  141. package/template/.agents/skills/security-and-hardening/security-checklist.md +134 -134
  142. package/template/.agents/skills/security-review/SKILL.md +164 -164
  143. package/template/.agents/skills/seo-fundamentals/SKILL.md +129 -129
  144. package/template/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  145. package/template/.agents/skills/server-management/SKILL.md +161 -161
  146. package/template/.agents/skills/shipping-and-launch/SKILL.md +311 -311
  147. package/template/.agents/skills/silent-failure-audit/SKILL.md +73 -73
  148. package/template/.agents/skills/simplify/SKILL.md +74 -74
  149. package/template/.agents/skills/skill-development/SKILL.md +86 -86
  150. package/template/.agents/skills/spec-driven-development/SKILL.md +207 -207
  151. package/template/.agents/skills/spec-orchestration/SKILL.md +91 -91
  152. package/template/.agents/skills/specialist-agent-routing/SKILL.md +107 -107
  153. package/template/.agents/skills/tailwind-patterns/SKILL.md +269 -269
  154. package/template/.agents/skills/test/SKILL.md +77 -77
  155. package/template/.agents/skills/test-driven-development/SKILL.md +422 -422
  156. package/template/.agents/skills/test-driven-development/testing-patterns.md +236 -236
  157. package/template/.agents/skills/test-execution-and-coverage/SKILL.md +56 -56
  158. package/template/.agents/skills/type-design/SKILL.md +84 -84
  159. package/template/.agents/skills/ui-ux-pro-max/SKILL.md +75 -75
  160. package/template/.agents/skills/using-agent-skills/SKILL.md +171 -171
  161. package/template/.agents/skills/verification-orchestration/SKILL.md +68 -68
  162. package/template/.agents/skills/vulnerability-scanner/SKILL.md +276 -276
  163. package/template/.agents/skills/vulnerability-scanner/checklists.md +121 -121
  164. package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  165. package/template/.agents/skills/wiki/SKILL.md +148 -148
  166. package/template/.agents/skills/workflow-documentation-sync/SKILL.md +87 -87
  167. package/template/.claude/skills/20-spec/SKILL.md +136 -136
  168. package/template/.claude/skills/30-plan/SKILL.md +206 -206
  169. package/template/.claude/skills/40-implement/SKILL.md +152 -152
  170. package/template/.claude/skills/50-verify/SKILL.md +174 -174
  171. package/template/.claude/skills/60-report/SKILL.md +168 -168
  172. package/template/.claude/skills/70-release/SKILL.md +141 -141
  173. package/template/.claude/skills/9arm-skills/README.md +51 -51
  174. package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  175. package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +79 -79
  176. package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  177. package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  178. package/template/.claude/skills/agent/SKILL.md +164 -164
  179. package/template/.claude/skills/api-and-interface-design/SKILL.md +294 -294
  180. package/template/.claude/skills/app-builder/SKILL.md +75 -75
  181. package/template/.claude/skills/app-builder/agent-coordination.md +71 -71
  182. package/template/.claude/skills/app-builder/feature-building.md +53 -53
  183. package/template/.claude/skills/app-builder/project-detection.md +34 -34
  184. package/template/.claude/skills/app-builder/scaffolding.md +118 -118
  185. package/template/.claude/skills/app-builder/tech-stack.md +40 -40
  186. package/template/.claude/skills/app-builder/templates/SKILL.md +39 -39
  187. package/template/.claude/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  188. package/template/.claude/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  189. package/template/.claude/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  190. package/template/.claude/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  191. package/template/.claude/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  192. package/template/.claude/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  193. package/template/.claude/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  194. package/template/.claude/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  195. package/template/.claude/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  196. package/template/.claude/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  197. package/template/.claude/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  198. package/template/.claude/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  199. package/template/.claude/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  200. package/template/.claude/skills/architecture/SKILL.md +55 -55
  201. package/template/.claude/skills/architecture/context-discovery.md +43 -43
  202. package/template/.claude/skills/architecture/examples.md +94 -94
  203. package/template/.claude/skills/architecture/pattern-selection.md +68 -68
  204. package/template/.claude/skills/architecture/patterns-reference.md +50 -50
  205. package/template/.claude/skills/architecture/trade-off-analysis.md +77 -77
  206. package/template/.claude/skills/bash-linux/SKILL.md +199 -199
  207. package/template/.claude/skills/behavioral-modes/SKILL.md +242 -242
  208. package/template/.claude/skills/brainstorm/SKILL.md +157 -157
  209. package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +302 -302
  210. package/template/.claude/skills/changelog/SKILL.md +108 -108
  211. package/template/.claude/skills/ci-cd-and-automation/SKILL.md +390 -390
  212. package/template/.claude/skills/code-review-and-quality/SKILL.md +392 -392
  213. package/template/.claude/skills/code-simplification/SKILL.md +331 -331
  214. package/template/.claude/skills/commit/SKILL.md +62 -62
  215. package/template/.claude/skills/competitor-analysis/SKILL.md +66 -66
  216. package/template/.claude/skills/context-engineering/SKILL.md +290 -290
  217. package/template/.claude/skills/database-design/SKILL.md +52 -52
  218. package/template/.claude/skills/database-design/database-selection.md +43 -43
  219. package/template/.claude/skills/database-design/indexing.md +39 -39
  220. package/template/.claude/skills/database-design/migrations.md +48 -48
  221. package/template/.claude/skills/database-design/optimization.md +36 -36
  222. package/template/.claude/skills/database-design/orm-selection.md +30 -30
  223. package/template/.claude/skills/database-design/schema-design.md +56 -56
  224. package/template/.claude/skills/database-design/scripts/schema_validator.py +172 -172
  225. package/template/.claude/skills/debug/SKILL.md +116 -116
  226. package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +298 -298
  227. package/template/.claude/skills/deploy/SKILL.md +90 -90
  228. package/template/.claude/skills/deployment-procedures/SKILL.md +241 -241
  229. package/template/.claude/skills/deprecation-and-migration/SKILL.md +206 -206
  230. package/template/.claude/skills/documentation-and-adrs/SKILL.md +278 -278
  231. package/template/.claude/skills/followup/SKILL.md +78 -78
  232. package/template/.claude/skills/frontend-ui-engineering/SKILL.md +326 -326
  233. package/template/.claude/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  234. package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +300 -300
  235. package/template/.claude/skills/goal/SKILL.md +132 -132
  236. package/template/.claude/skills/help/SKILL.md +242 -242
  237. package/template/.claude/skills/human-review-decisions/SKILL.md +74 -74
  238. package/template/.claude/skills/i18n-localization/SKILL.md +154 -154
  239. package/template/.claude/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  240. package/template/.claude/skills/idea-refine/SKILL.md +178 -178
  241. package/template/.claude/skills/idea-refine/examples.md +238 -238
  242. package/template/.claude/skills/idea-refine/frameworks.md +99 -99
  243. package/template/.claude/skills/idea-refine/refinement-criteria.md +113 -113
  244. package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +15 -15
  245. package/template/.claude/skills/incremental-implementation/SKILL.md +248 -248
  246. package/template/.claude/skills/insight/SKILL.md +130 -130
  247. package/template/.claude/skills/insight-capture/SKILL.md +84 -84
  248. package/template/.claude/skills/intelligent-routing/SKILL.md +171 -171
  249. package/template/.claude/skills/issue-triage/SKILL.md +106 -106
  250. package/template/.claude/skills/lint-and-validate/SKILL.md +45 -45
  251. package/template/.claude/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  252. package/template/.claude/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  253. package/template/.claude/skills/mcp-builder/SKILL.md +176 -176
  254. package/template/.claude/skills/md2html/SKILL.md +154 -154
  255. package/template/.claude/skills/md2html/components.md +505 -505
  256. package/template/.claude/skills/md2html/template.html +1152 -1152
  257. package/template/.claude/skills/merge/SKILL.md +75 -75
  258. package/template/.claude/skills/mobile-design/SKILL.md +394 -394
  259. package/template/.claude/skills/mobile-design/decision-trees.md +516 -516
  260. package/template/.claude/skills/mobile-design/mobile-backend.md +491 -491
  261. package/template/.claude/skills/mobile-design/mobile-color-system.md +420 -420
  262. package/template/.claude/skills/mobile-design/mobile-debugging.md +122 -122
  263. package/template/.claude/skills/mobile-design/mobile-design-thinking.md +357 -357
  264. package/template/.claude/skills/mobile-design/mobile-navigation.md +458 -458
  265. package/template/.claude/skills/mobile-design/mobile-performance.md +767 -767
  266. package/template/.claude/skills/mobile-design/mobile-testing.md +356 -356
  267. package/template/.claude/skills/mobile-design/mobile-typography.md +433 -433
  268. package/template/.claude/skills/mobile-design/platform-android.md +666 -666
  269. package/template/.claude/skills/mobile-design/platform-ios.md +561 -561
  270. package/template/.claude/skills/mobile-design/scripts/mobile_audit.py +670 -670
  271. package/template/.claude/skills/mobile-design/touch-psychology.md +537 -537
  272. package/template/.claude/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  273. package/template/.claude/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  274. package/template/.claude/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  275. package/template/.claude/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  276. package/template/.claude/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  277. package/template/.claude/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  278. package/template/.claude/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  279. package/template/.claude/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  280. package/template/.claude/skills/nextjs-react-expert/SKILL.md +286 -286
  281. package/template/.claude/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  282. package/template/.claude/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  283. package/template/.claude/skills/nodejs-best-practices/SKILL.md +333 -333
  284. package/template/.claude/skills/package-json-generator/SKILL.md +60 -60
  285. package/template/.claude/skills/package-json-generator/scripts/generate.js +120 -120
  286. package/template/.claude/skills/package-json-generator/scripts/run.sh +19 -19
  287. package/template/.claude/skills/parallel-agents/SKILL.md +144 -144
  288. package/template/.claude/skills/performance-optimization/SKILL.md +299 -299
  289. package/template/.claude/skills/performance-optimization/performance-checklist.md +113 -113
  290. package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +239 -239
  291. package/template/.claude/skills/powershell-windows/SKILL.md +167 -167
  292. package/template/.claude/skills/pr/SKILL.md +92 -92
  293. package/template/.claude/skills/pr-review/SKILL.md +142 -142
  294. package/template/.claude/skills/pr-review-analysis/SKILL.md +89 -89
  295. package/template/.claude/skills/prd/SKILL.md +112 -112
  296. package/template/.claude/skills/preview/SKILL.md +116 -116
  297. package/template/.claude/skills/preview-local-check/SKILL.md +59 -59
  298. package/template/.claude/skills/python-patterns/SKILL.md +441 -441
  299. package/template/.claude/skills/release-git-operations/SKILL.md +97 -97
  300. package/template/.claude/skills/research/SKILL.md +127 -127
  301. package/template/.claude/skills/review/SKILL.md +55 -55
  302. package/template/.claude/skills/review-followup-routing/SKILL.md +98 -98
  303. package/template/.claude/skills/roadmap-strategy/SKILL.md +97 -97
  304. package/template/.claude/skills/security-and-hardening/SKILL.md +349 -349
  305. package/template/.claude/skills/security-and-hardening/security-checklist.md +134 -134
  306. package/template/.claude/skills/security-review/SKILL.md +164 -164
  307. package/template/.claude/skills/seo-fundamentals/SKILL.md +129 -129
  308. package/template/.claude/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  309. package/template/.claude/skills/server-management/SKILL.md +161 -161
  310. package/template/.claude/skills/shipping-and-launch/SKILL.md +311 -311
  311. package/template/.claude/skills/silent-failure-audit/SKILL.md +73 -73
  312. package/template/.claude/skills/simplify/SKILL.md +74 -74
  313. package/template/.claude/skills/skill-development/SKILL.md +86 -86
  314. package/template/.claude/skills/spec-driven-development/SKILL.md +207 -207
  315. package/template/.claude/skills/spec-orchestration/SKILL.md +91 -91
  316. package/template/.claude/skills/specialist-agent-routing/SKILL.md +107 -107
  317. package/template/.claude/skills/tailwind-patterns/SKILL.md +269 -269
  318. package/template/.claude/skills/test/SKILL.md +77 -77
  319. package/template/.claude/skills/test-driven-development/SKILL.md +422 -422
  320. package/template/.claude/skills/test-driven-development/testing-patterns.md +236 -236
  321. package/template/.claude/skills/test-execution-and-coverage/SKILL.md +56 -56
  322. package/template/.claude/skills/type-design/SKILL.md +84 -84
  323. package/template/.claude/skills/ui-ux-pro-max/SKILL.md +75 -75
  324. package/template/.claude/skills/using-agent-skills/SKILL.md +171 -171
  325. package/template/.claude/skills/verification-orchestration/SKILL.md +68 -68
  326. package/template/.claude/skills/vulnerability-scanner/SKILL.md +276 -276
  327. package/template/.claude/skills/vulnerability-scanner/checklists.md +121 -121
  328. package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  329. package/template/.claude/skills/wiki/SKILL.md +148 -148
  330. package/template/.claude/skills/workflow-documentation-sync/SKILL.md +87 -87
  331. package/template/.nexus/nexus-devflow.json +1 -1
  332. package/template/AGENTS.md +3 -3
  333. package/template/LICENSE +21 -21
  334. package/template/devflow/context/project_index.json +108 -0
  335. package/template/.agents/skills/check-for-updates/SKILL.md +0 -117
  336. package/template/.agents/skills/devflow-concept-intake/SKILL.md +0 -150
  337. package/template/.agents/skills/devflow-concept-intake/agents/openai.yaml +0 -4
  338. package/template/.agents/skills/devflow-concept-intake/references/adoption-proposal-template.md +0 -60
  339. package/template/.agents/skills/devflow-concept-intake/references/concept-report-template.md +0 -47
  340. package/template/.agents/skills/devflow-concept-intake/references/upstream-tracking-template.md +0 -51
  341. package/template/.agents/skills/devflow-wiki/SKILL.md +0 -75
  342. package/template/.agents/skills/english-to-thai-translator/SKILL.md +0 -125
  343. package/template/.agents/skills/obsidian-bases/SKILL.md +0 -506
  344. package/template/.agents/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -173
  345. package/template/.agents/skills/obsidian-cli/SKILL.md +0 -115
  346. package/template/.agents/skills/obsidian-clipper-template-creator/SKILL.md +0 -73
  347. package/template/.agents/skills/obsidian-clipper-template-creator/assets/clipping-template.json +0 -51
  348. package/template/.agents/skills/obsidian-clipper-template-creator/assets/recipe-template.json +0 -48
  349. package/template/.agents/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +0 -79
  350. package/template/.agents/skills/obsidian-clipper-template-creator/references/bases-workflow.md +0 -44
  351. package/template/.agents/skills/obsidian-clipper-template-creator/references/filters.md +0 -51
  352. package/template/.agents/skills/obsidian-clipper-template-creator/references/json-schema.md +0 -77
  353. package/template/.agents/skills/obsidian-clipper-template-creator/references/logic.md +0 -67
  354. package/template/.agents/skills/obsidian-clipper-template-creator/references/variables.md +0 -64
  355. package/template/.agents/skills/obsidian-markdown/SKILL.md +0 -205
  356. package/template/.agents/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
  357. package/template/.agents/skills/obsidian-markdown/references/EMBEDS.md +0 -63
  358. package/template/.agents/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
  359. package/template/.agents/skills/prompt-addons/SKILL.md +0 -99
  360. package/template/.agents/skills/prp-dev-fastapi/SKILL.md +0 -114
  361. package/template/.agents/skills/prp-dev-multiplatform/SKILL.md +0 -36
  362. package/template/.agents/skills/prp-dev-odoo/SKILL.md +0 -71
  363. package/template/.agents/skills/prp-dev-php/SKILL.md +0 -63
  364. package/template/.agents/skills/prp-sa-ba/SKILL.md +0 -52
  365. package/template/.agents/skills/red-team-tactics/SKILL.md +0 -199
  366. package/template/.agents/skills/writing-great-skills/SKILL.md +0 -65
  367. package/template/.claude/skills/check-for-updates/SKILL.md +0 -117
  368. package/template/.claude/skills/devflow-concept-intake/SKILL.md +0 -150
  369. package/template/.claude/skills/devflow-concept-intake/agents/openai.yaml +0 -4
  370. package/template/.claude/skills/devflow-concept-intake/references/adoption-proposal-template.md +0 -60
  371. package/template/.claude/skills/devflow-concept-intake/references/concept-report-template.md +0 -47
  372. package/template/.claude/skills/devflow-concept-intake/references/upstream-tracking-template.md +0 -51
  373. package/template/.claude/skills/devflow-wiki/SKILL.md +0 -75
  374. package/template/.claude/skills/english-to-thai-translator/SKILL.md +0 -125
  375. package/template/.claude/skills/obsidian-bases/SKILL.md +0 -506
  376. package/template/.claude/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +0 -173
  377. package/template/.claude/skills/obsidian-cli/SKILL.md +0 -115
  378. package/template/.claude/skills/obsidian-clipper-template-creator/SKILL.md +0 -73
  379. package/template/.claude/skills/obsidian-clipper-template-creator/assets/clipping-template.json +0 -51
  380. package/template/.claude/skills/obsidian-clipper-template-creator/assets/recipe-template.json +0 -48
  381. package/template/.claude/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +0 -79
  382. package/template/.claude/skills/obsidian-clipper-template-creator/references/bases-workflow.md +0 -44
  383. package/template/.claude/skills/obsidian-clipper-template-creator/references/filters.md +0 -51
  384. package/template/.claude/skills/obsidian-clipper-template-creator/references/json-schema.md +0 -77
  385. package/template/.claude/skills/obsidian-clipper-template-creator/references/logic.md +0 -67
  386. package/template/.claude/skills/obsidian-clipper-template-creator/references/variables.md +0 -64
  387. package/template/.claude/skills/obsidian-markdown/SKILL.md +0 -205
  388. package/template/.claude/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
  389. package/template/.claude/skills/obsidian-markdown/references/EMBEDS.md +0 -63
  390. package/template/.claude/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
  391. package/template/.claude/skills/prompt-addons/SKILL.md +0 -99
  392. package/template/.claude/skills/prp-dev-fastapi/SKILL.md +0 -114
  393. package/template/.claude/skills/prp-dev-multiplatform/SKILL.md +0 -36
  394. package/template/.claude/skills/prp-dev-odoo/SKILL.md +0 -71
  395. package/template/.claude/skills/prp-dev-php/SKILL.md +0 -63
  396. package/template/.claude/skills/prp-sa-ba/SKILL.md +0 -52
  397. package/template/.claude/skills/red-team-tactics/SKILL.md +0 -199
  398. package/template/.claude/skills/writing-great-skills/SKILL.md +0 -65
@@ -1,666 +1,666 @@
1
- # Android Platform Guidelines
2
-
3
- > Material Design 3 essentials, Android design conventions, Roboto typography, and native patterns.
4
- > **Read this file when building for Android devices.**
5
-
6
- ---
7
-
8
- ## 1. Material Design 3 Philosophy
9
-
10
- ### Core Material Principles
11
-
12
- ```
13
- MATERIAL AS METAPHOR:
14
- ├── Surfaces exist in 3D space
15
- ├── Light and shadow define hierarchy
16
- ├── Motion provides continuity
17
- └── Bold, graphic, intentional design
18
-
19
- ADAPTIVE DESIGN:
20
- ├── Responds to device capabilities
21
- ├── One UI for all form factors
22
- ├── Dynamic color from wallpaper
23
- └── Personalized per user
24
-
25
- ACCESSIBLE BY DEFAULT:
26
- ├── Large touch targets
27
- ├── Clear visual hierarchy
28
- ├── Semantic colors
29
- └── Motion respects preferences
30
- ```
31
-
32
- ### Material Design Values
33
-
34
- | Value | Implementation |
35
- |-------|----------------|
36
- | **Dynamic Color** | Colors adapt to wallpaper/user preference |
37
- | **Personalization** | User-specific themes |
38
- | **Accessibility** | Built into every component |
39
- | **Responsiveness** | Works on all screen sizes |
40
- | **Consistency** | Unified design language |
41
-
42
- ---
43
-
44
- ## 2. Android Typography
45
-
46
- ### Roboto Font Family
47
-
48
- ```
49
- Android System Fonts:
50
- ├── Roboto: Default sans-serif
51
- ├── Roboto Flex: Variable font (API 33+)
52
- ├── Roboto Serif: Serif alternative
53
- ├── Roboto Mono: Monospace
54
- └── Google Sans: Google products (special license)
55
- ```
56
-
57
- ### Material Type Scale
58
-
59
- | Role | Size | Weight | Line Height | Usage |
60
- |------|------|--------|-------------|-------|
61
- | **Display Large** | 57sp | Regular | 64sp | Hero text, splash |
62
- | **Display Medium** | 45sp | Regular | 52sp | Large headers |
63
- | **Display Small** | 36sp | Regular | 44sp | Medium headers |
64
- | **Headline Large** | 32sp | Regular | 40sp | Page titles |
65
- | **Headline Medium** | 28sp | Regular | 36sp | Section headers |
66
- | **Headline Small** | 24sp | Regular | 32sp | Subsections |
67
- | **Title Large** | 22sp | Regular | 28sp | Dialogs, cards |
68
- | **Title Medium** | 16sp | Medium | 24sp | Lists, navigation |
69
- | **Title Small** | 14sp | Medium | 20sp | Tabs, secondary |
70
- | **Body Large** | 16sp | Regular | 24sp | Primary content |
71
- | **Body Medium** | 14sp | Regular | 20sp | Secondary content |
72
- | **Body Small** | 12sp | Regular | 16sp | Captions |
73
- | **Label Large** | 14sp | Medium | 20sp | Buttons, FAB |
74
- | **Label Medium** | 12sp | Medium | 16sp | Navigation |
75
- | **Label Small** | 11sp | Medium | 16sp | Chips, badges |
76
-
77
- ### Scalable Pixels (sp)
78
-
79
- ```
80
- sp = Scale-independent pixels
81
-
82
- sp automatically scales with:
83
- ├── User font size preference
84
- ├── Display density
85
- └── Accessibility settings
86
-
87
- RULE: ALWAYS use sp for text, dp for everything else.
88
- ```
89
-
90
- ### Font Weight Usage
91
-
92
- | Weight | Use Case |
93
- |--------|----------|
94
- | Regular (400) | Body text, display |
95
- | Medium (500) | Buttons, labels, emphasis |
96
- | Bold (700) | Rarely, strong emphasis only |
97
-
98
- ---
99
-
100
- ## 3. Material Color System
101
-
102
- ### Dynamic Color (Material You)
103
-
104
- ```
105
- Android 12+ Dynamic Color:
106
-
107
- User's wallpaper → Color extraction → App theme
108
-
109
- Your app automatically adapts to:
110
- ├── Primary color (from wallpaper)
111
- ├── Secondary color (complementary)
112
- ├── Tertiary color (accent)
113
- ├── Surface colors (derived)
114
- └── All semantic colors adjust
115
-
116
- RULE: Implement dynamic color for personalized feel.
117
- ```
118
-
119
- ### Semantic Color Roles
120
-
121
- ```
122
- Surface Colors:
123
- ├── Surface → Main background
124
- ├── SurfaceVariant → Cards, containers
125
- ├── SurfaceTint → Elevation overlay
126
- ├── InverseSurface → Snackbars, tooltips
127
-
128
- On-Surface Colors:
129
- ├── OnSurface → Primary text
130
- ├── OnSurfaceVariant → Secondary text
131
- ├── Outline → Borders, dividers
132
- ├── OutlineVariant → Subtle dividers
133
-
134
- Primary Colors:
135
- ├── Primary → Key actions, FAB
136
- ├── OnPrimary → Text on primary
137
- ├── PrimaryContainer → Less emphasis
138
- ├── OnPrimaryContainer → Text on container
139
-
140
- Secondary/Tertiary: Similar pattern
141
- ```
142
-
143
- ### Error, Warning, Success Colors
144
-
145
- | Role | Light | Dark | Usage |
146
- |------|-------|------|-------|
147
- | Error | #B3261E | #F2B8B5 | Errors, destructive |
148
- | OnError | #FFFFFF | #601410 | Text on error |
149
- | ErrorContainer | #F9DEDC | #8C1D18 | Error backgrounds |
150
-
151
- ### Dark Theme
152
-
153
- ```
154
- Material Dark Theme:
155
-
156
- ├── Background: #121212 (not pure black by default)
157
- ├── Surface: #1E1E1E, #232323, etc. (elevation)
158
- ├── Elevation: Higher = lighter overlay
159
- ├── Reduce saturation on colors
160
- └── Check contrast ratios
161
-
162
- Elevation overlays (dark mode):
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 Layout & Spacing
174
-
175
- ### Layout Grid
176
-
177
- ```
178
- Android uses 8dp baseline grid:
179
-
180
- All spacing in multiples of 8dp:
181
- ├── 4dp: Component internal (half-step)
182
- ├── 8dp: Minimum spacing
183
- ├── 16dp: Standard spacing
184
- ├── 24dp: Section spacing
185
- ├── 32dp: Large spacing
186
-
187
- Margins:
188
- ├── Compact (phone): 16dp
189
- ├── Medium (small tablet): 24dp
190
- ├── Expanded (large): 24dp+ or columns
191
- ```
192
-
193
- ### Responsive Layout
194
-
195
- ```
196
- Window Size Classes:
197
-
198
- COMPACT (< 600dp width):
199
- ├── Phones in portrait
200
- ├── Single column layout
201
- ├── Bottom navigation
202
-
203
- MEDIUM (600-840dp width):
204
- ├── Tablets, foldables
205
- ├── Consider 2 columns
206
- ├── Navigation rail option
207
-
208
- EXPANDED (> 840dp width):
209
- ├── Large tablets, desktop
210
- ├── Multi-column layouts
211
- ├── Navigation drawer
212
- ```
213
-
214
- ### Canonical Layouts
215
-
216
- | Layout | Use Case | Window Class |
217
- |--------|----------|--------------|
218
- | **List-Detail** | Email, messages | Medium, Expanded |
219
- | **Feed** | Social, news | All |
220
- | **Supporting Pane** | Reference content | Medium, Expanded |
221
-
222
- ---
223
-
224
- ## 5. Android Navigation Patterns
225
-
226
- ### Navigation Components
227
-
228
- | Component | Use Case | Position |
229
- |-----------|----------|----------|
230
- | **Bottom Navigation** | 3-5 top-level destinations | Bottom |
231
- | **Navigation Rail** | Tablets, foldables | Left side, vertical |
232
- | **Navigation Drawer** | Many destinations, large screens | Left side, hidden/visible |
233
- | **Top App Bar** | Current context, actions | Top |
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
- Rules:
248
- ├── 3-5 destinations
249
- ├── Icons: Material Symbols (24dp)
250
- ├── Labels: Always visible (accessibility)
251
- ├── Active: Filled icon + indicator pill
252
- ├── Badge: For notifications
253
- ├── FAB can integrate (optional)
254
- ```
255
-
256
- ### Top App Bar
257
-
258
- ```
259
- Types:
260
- ├── Center-aligned: Logo apps, simple
261
- ├── Small: Compact, scrolls away
262
- ├── Medium: Title + actions, collapses
263
- ├── Large: Display title, collapses to small
264
-
265
- ┌─────────────────────────────────────┐
266
- │ ☰ App Title 🔔 ⋮ │ ← 64dp (small)
267
- ├─────────────────────────────────────┤
268
- │ │
269
- │ Content Area │
270
- └─────────────────────────────────────┘
271
-
272
- Actions: Max 3 icons, overflow menu ( ⋮ ) for more
273
- ```
274
-
275
- ### Navigation Rail (Tablets)
276
-
277
- ```
278
- ┌───────┬─────────────────────────────┐
279
- │ ≡ │ │
280
- │ │ │
281
- │ 🏠 │ │
282
- │ Home │ Content Area │
283
- │ │ │
284
- │ 🔍 │ │
285
- │Search │ │
286
- │ │ │
287
- │ 👤 │ │
288
- │Profile│ │
289
- └───────┴─────────────────────────────┘
290
-
291
- Width: 80dp
292
- Icons: 24dp
293
- Labels: Below icon
294
- FAB: Can be at top
295
- ```
296
-
297
- ### Back Navigation
298
-
299
- ```
300
- Android provides system back:
301
- ├── Back button (3-button nav)
302
- ├── Back gesture (swipe from edge)
303
- ├── Predictive back (Android 14+)
304
-
305
- Your app must:
306
- ├── Handle back correctly (pop stack)
307
- ├── Support predictive back animation
308
- ├── Never hijack/override back unexpectedly
309
- └── Confirm before discarding unsaved work
310
- ```
311
-
312
- ---
313
-
314
- ## 6. Material Components
315
-
316
- ### Buttons
317
-
318
- ```
319
- Button Types:
320
-
321
- ┌──────────────────────┐
322
- │ Filled Button │ ← Primary action
323
- └──────────────────────┘
324
-
325
- ┌──────────────────────┐
326
- │ Tonal Button │ ← Secondary, less emphasis
327
- └──────────────────────┘
328
-
329
- ┌──────────────────────┐
330
- │ Outlined Button │ ← Tertiary, lower emphasis
331
- └──────────────────────┘
332
-
333
- Text Button ← Lowest emphasis
334
-
335
- Heights:
336
- ├── Small: 40dp (when constrained)
337
- ├── Standard: 40dp
338
- ├── Large: 56dp (FAB size when needed)
339
-
340
- Min touch target: 48dp (even if visual is smaller)
341
- ```
342
-
343
- ### Floating Action Button (FAB)
344
-
345
- ```
346
- FAB Types:
347
- ├── Standard: 56dp diameter
348
- ├── Small: 40dp diameter
349
- ├── Large: 96dp diameter
350
- ├── Extended: Icon + text, variable width
351
-
352
- Position: Bottom right, 16dp from edges
353
- Elevation: Floats above content
354
-
355
- ┌─────────────────────────────────────┐
356
- │ │
357
- │ Content │
358
- │ │
359
- │ ┌────┐ │
360
- │ │ ➕ │ │ ← FAB
361
- │ └────┘ │
362
- ├─────────────────────────────────────┤
363
- │ Bottom Navigation │
364
- └─────────────────────────────────────┘
365
- ```
366
-
367
- ### Cards
368
-
369
- ```
370
- Card Types:
371
- ├── Elevated: Shadow, resting state
372
- ├── Filled: Background color, no shadow
373
- ├── Outlined: Border, no shadow
374
-
375
- Card Anatomy:
376
- ┌─────────────────────────────────────┐
377
- │ Header Image │ ← Optional
378
- ├─────────────────────────────────────┤
379
- │ Title / Headline │
380
- │ Subhead / Supporting text │
381
- ├─────────────────────────────────────┤
382
- │ [ Action ] [ Action ] │ ← Optional actions
383
- └─────────────────────────────────────┘
384
-
385
- Corner radius: 12dp (M3 default)
386
- Padding: 16dp
387
- ```
388
-
389
- ### Text Fields
390
-
391
- ```
392
- Types:
393
- ├── Filled: Background fill, underline
394
- ├── Outlined: Border all around
395
-
396
- ┌─────────────────────────────────────┐
397
- │ Label │ ← Floats up on focus
398
- │ ________________________________________________
399
- │ │ Input text here... │ ← Leading/trailing icons
400
- │ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
401
- │ Supporting text or error │
402
- └─────────────────────────────────────┘
403
-
404
- Height: 56dp
405
- Label: Animates from placeholder to top
406
- Error: Red color + icon + message
407
- ```
408
-
409
- ### Chips
410
-
411
- ```
412
- Types:
413
- ├── Assist: Smart actions (directions, call)
414
- ├── Filter: Toggle filters
415
- ├── Input: Represent entities (tags, contacts)
416
- ├── Suggestion: Dynamic recommendations
417
-
418
- ┌───────────────┐
419
- │ 🏷️ Filter │ ← 32dp height, 8dp corner radius
420
- └───────────────┘
421
-
422
- States: Unselected, Selected, Disabled
423
- ```
424
-
425
- ---
426
-
427
- ## 7. Android-Specific Patterns
428
-
429
- ### Snackbars
430
-
431
- ```
432
- Position: Bottom, above navigation
433
- Duration: 4-10 seconds
434
- Action: One optional text action
435
-
436
- ┌─────────────────────────────────────────────────┐
437
- │ Archived 1 item [ UNDO ] │
438
- └─────────────────────────────────────────────────┘
439
-
440
- Rules:
441
- ├── Brief message, single line if possible
442
- ├── Max 2 lines
443
- ├── One action (text, not icon)
444
- ├── Can be dismissed by swipe
445
- └── Don't stack, queue them
446
- ```
447
-
448
- ### Bottom Sheets
449
-
450
- ```
451
- Types:
452
- ├── Standard: Interactive content
453
- ├── Modal: Blocks background (with scrim)
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
- Corner radius: 28dp (top corners)
470
- ```
471
-
472
- ### Dialogs
473
-
474
- ```
475
- Types:
476
- ├── Basic: Title + content + actions
477
- ├── Full-screen: Complex editing (mobile)
478
- ├── Date/Time picker
479
- ├── Confirmation dialog
480
-
481
- ┌─────────────────────────────────────┐
482
- │ Title │
483
- │ │
484
- │ Supporting text that │
485
- │ explains the dialog │
486
- │ │
487
- │ [ Cancel ] [ Confirm ] │
488
- └─────────────────────────────────────┘
489
-
490
- Rules:
491
- ├── Centered on screen
492
- ├── Scrim behind (dim background)
493
- ├── Max 2 actions aligned right
494
- ├── Destructive action can be on left
495
- ```
496
-
497
- ### Pull to Refresh
498
-
499
- ```
500
- Android uses SwipeRefreshLayout pattern:
501
-
502
- ┌─────────────────────────────────────┐
503
- │ ○ (Spinner) │ ← Circular progress
504
- ├─────────────────────────────────────┤
505
- │ │
506
- │ Content │
507
- │ │
508
- └─────────────────────────────────────┘
509
-
510
- Spinner: Material circular indicator
511
- Position: Top center, pulls down with content
512
- ```
513
-
514
- ### Ripple Effect
515
-
516
- ```
517
- Every touchable element needs ripple:
518
-
519
- Touch down → Ripple expands from touch point
520
- Touch up → Ripple completes and fades
521
-
522
- Color:
523
- ├── On light: Black at ~12% opacity
524
- ├── On dark: White at ~12% opacity
525
- ├── On colored: Appropriate contrast
526
-
527
- This is MANDATORY for Android feel.
528
- ```
529
-
530
- ---
531
-
532
- ## 8. Material Symbols
533
-
534
- ### Usage Guidelines
535
-
536
- ```
537
- Material Symbols: Google's icon library
538
-
539
- Styles:
540
- ├── Outlined: Default, most common
541
- ├── Rounded: Softer, friendly
542
- ├── Sharp: Angular, precise
543
-
544
- Variable font axes:
545
- ├── FILL: 0 (outline) to 1 (filled)
546
- ├── wght: 100-700 (weight)
547
- ├── GRAD: -25 to 200 (emphasis)
548
- ├── opsz: 20, 24, 40, 48 (optical size)
549
- ```
550
-
551
- ### Icon Sizes
552
-
553
- | Size | Usage |
554
- |------|-------|
555
- | 20dp | Dense UI, inline |
556
- | 24dp | Standard (most common) |
557
- | 40dp | Larger touch targets |
558
- | 48dp | Emphasis, standalone |
559
-
560
- ### States
561
-
562
- ```
563
- Icon States:
564
- ├── Default: Full opacity
565
- ├── Disabled: 38% opacity
566
- ├── Hover/Focus: Container highlight
567
- ├── Selected: Filled variant + tint
568
-
569
- Active vs Inactive:
570
- ├── Inactive: Outlined
571
- ├── Active: Filled + indicator
572
- ```
573
-
574
- ---
575
-
576
- ## 9. Android Accessibility
577
-
578
- ### TalkBack Requirements
579
-
580
- ```
581
- Every interactive element needs:
582
- ├── contentDescription (what it is)
583
- ├── Correct semantics (button, checkbox, etc.)
584
- ├── State announcements (selected, disabled)
585
- └── Grouping where logical
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
- ### Touch Target Size
600
-
601
- ```
602
- MANDATORY: 48dp × 48dp minimum
603
-
604
- Even if visual element is smaller:
605
- ├── Icon: 24dp visual, 48dp touch area
606
- ├── Checkbox: 20dp visual, 48dp touch area
607
- └── Add padding to reach 48dp
608
-
609
- Spacing between targets: 8dp minimum
610
- ```
611
-
612
- ### Font Scaling
613
-
614
- ```
615
- Android supports font scaling:
616
- ├── 85% (smaller)
617
- ├── 100% (default)
618
- ├── 115%, 130%, 145%...
619
- ├── Up to 200% (largest)
620
-
621
- RULE: Test your UI at 200% font scale.
622
- Use sp units and avoid fixed heights.
623
- ```
624
-
625
- ### Reduce Motion
626
-
627
- ```kotlin
628
- // Check motion preference
629
- val reduceMotion = Settings.Global.getFloat(
630
- contentResolver,
631
- Settings.Global.ANIMATOR_DURATION_SCALE,
632
- 1f
633
- ) == 0f
634
-
635
- if (reduceMotion) {
636
- // Skip or reduce animations
637
- }
638
- ```
639
-
640
- ---
641
-
642
- ## 10. Android Checklist
643
-
644
- ### Before Every Android Screen
645
-
646
- - [ ] Using Material 3 components
647
- - [ ] Touch targets ≥ 48dp
648
- - [ ] Ripple effect on all touchables
649
- - [ ] Roboto or Material type scale
650
- - [ ] Semantic colors (dynamic color support)
651
- - [ ] Back navigation works correctly
652
-
653
- ### Before Android Release
654
-
655
- - [ ] Dark theme tested
656
- - [ ] Dynamic color tested (if supported)
657
- - [ ] All font sizes tested (200% scale)
658
- - [ ] TalkBack tested
659
- - [ ] Predictive back implemented (Android 14+)
660
- - [ ] Edge-to-edge display (Android 15+)
661
- - [ ] Different screen sizes tested (phones, tablets)
662
- - [ ] Navigation patterns match platform (back, gestures)
663
-
664
- ---
665
-
666
- > **Remember:** Android users expect Material Design. Custom designs that ignore Material patterns feel foreign and broken. Use Material components as your foundation, customize thoughtfully.
1
+ # Android Platform Guidelines
2
+
3
+ > Material Design 3 essentials, Android design conventions, Roboto typography, and native patterns.
4
+ > **Read this file when building for Android devices.**
5
+
6
+ ---
7
+
8
+ ## 1. Material Design 3 Philosophy
9
+
10
+ ### Core Material Principles
11
+
12
+ ```
13
+ MATERIAL AS METAPHOR:
14
+ ├── Surfaces exist in 3D space
15
+ ├── Light and shadow define hierarchy
16
+ ├── Motion provides continuity
17
+ └── Bold, graphic, intentional design
18
+
19
+ ADAPTIVE DESIGN:
20
+ ├── Responds to device capabilities
21
+ ├── One UI for all form factors
22
+ ├── Dynamic color from wallpaper
23
+ └── Personalized per user
24
+
25
+ ACCESSIBLE BY DEFAULT:
26
+ ├── Large touch targets
27
+ ├── Clear visual hierarchy
28
+ ├── Semantic colors
29
+ └── Motion respects preferences
30
+ ```
31
+
32
+ ### Material Design Values
33
+
34
+ | Value | Implementation |
35
+ |-------|----------------|
36
+ | **Dynamic Color** | Colors adapt to wallpaper/user preference |
37
+ | **Personalization** | User-specific themes |
38
+ | **Accessibility** | Built into every component |
39
+ | **Responsiveness** | Works on all screen sizes |
40
+ | **Consistency** | Unified design language |
41
+
42
+ ---
43
+
44
+ ## 2. Android Typography
45
+
46
+ ### Roboto Font Family
47
+
48
+ ```
49
+ Android System Fonts:
50
+ ├── Roboto: Default sans-serif
51
+ ├── Roboto Flex: Variable font (API 33+)
52
+ ├── Roboto Serif: Serif alternative
53
+ ├── Roboto Mono: Monospace
54
+ └── Google Sans: Google products (special license)
55
+ ```
56
+
57
+ ### Material Type Scale
58
+
59
+ | Role | Size | Weight | Line Height | Usage |
60
+ |------|------|--------|-------------|-------|
61
+ | **Display Large** | 57sp | Regular | 64sp | Hero text, splash |
62
+ | **Display Medium** | 45sp | Regular | 52sp | Large headers |
63
+ | **Display Small** | 36sp | Regular | 44sp | Medium headers |
64
+ | **Headline Large** | 32sp | Regular | 40sp | Page titles |
65
+ | **Headline Medium** | 28sp | Regular | 36sp | Section headers |
66
+ | **Headline Small** | 24sp | Regular | 32sp | Subsections |
67
+ | **Title Large** | 22sp | Regular | 28sp | Dialogs, cards |
68
+ | **Title Medium** | 16sp | Medium | 24sp | Lists, navigation |
69
+ | **Title Small** | 14sp | Medium | 20sp | Tabs, secondary |
70
+ | **Body Large** | 16sp | Regular | 24sp | Primary content |
71
+ | **Body Medium** | 14sp | Regular | 20sp | Secondary content |
72
+ | **Body Small** | 12sp | Regular | 16sp | Captions |
73
+ | **Label Large** | 14sp | Medium | 20sp | Buttons, FAB |
74
+ | **Label Medium** | 12sp | Medium | 16sp | Navigation |
75
+ | **Label Small** | 11sp | Medium | 16sp | Chips, badges |
76
+
77
+ ### Scalable Pixels (sp)
78
+
79
+ ```
80
+ sp = Scale-independent pixels
81
+
82
+ sp automatically scales with:
83
+ ├── User font size preference
84
+ ├── Display density
85
+ └── Accessibility settings
86
+
87
+ RULE: ALWAYS use sp for text, dp for everything else.
88
+ ```
89
+
90
+ ### Font Weight Usage
91
+
92
+ | Weight | Use Case |
93
+ |--------|----------|
94
+ | Regular (400) | Body text, display |
95
+ | Medium (500) | Buttons, labels, emphasis |
96
+ | Bold (700) | Rarely, strong emphasis only |
97
+
98
+ ---
99
+
100
+ ## 3. Material Color System
101
+
102
+ ### Dynamic Color (Material You)
103
+
104
+ ```
105
+ Android 12+ Dynamic Color:
106
+
107
+ User's wallpaper → Color extraction → App theme
108
+
109
+ Your app automatically adapts to:
110
+ ├── Primary color (from wallpaper)
111
+ ├── Secondary color (complementary)
112
+ ├── Tertiary color (accent)
113
+ ├── Surface colors (derived)
114
+ └── All semantic colors adjust
115
+
116
+ RULE: Implement dynamic color for personalized feel.
117
+ ```
118
+
119
+ ### Semantic Color Roles
120
+
121
+ ```
122
+ Surface Colors:
123
+ ├── Surface → Main background
124
+ ├── SurfaceVariant → Cards, containers
125
+ ├── SurfaceTint → Elevation overlay
126
+ ├── InverseSurface → Snackbars, tooltips
127
+
128
+ On-Surface Colors:
129
+ ├── OnSurface → Primary text
130
+ ├── OnSurfaceVariant → Secondary text
131
+ ├── Outline → Borders, dividers
132
+ ├── OutlineVariant → Subtle dividers
133
+
134
+ Primary Colors:
135
+ ├── Primary → Key actions, FAB
136
+ ├── OnPrimary → Text on primary
137
+ ├── PrimaryContainer → Less emphasis
138
+ ├── OnPrimaryContainer → Text on container
139
+
140
+ Secondary/Tertiary: Similar pattern
141
+ ```
142
+
143
+ ### Error, Warning, Success Colors
144
+
145
+ | Role | Light | Dark | Usage |
146
+ |------|-------|------|-------|
147
+ | Error | #B3261E | #F2B8B5 | Errors, destructive |
148
+ | OnError | #FFFFFF | #601410 | Text on error |
149
+ | ErrorContainer | #F9DEDC | #8C1D18 | Error backgrounds |
150
+
151
+ ### Dark Theme
152
+
153
+ ```
154
+ Material Dark Theme:
155
+
156
+ ├── Background: #121212 (not pure black by default)
157
+ ├── Surface: #1E1E1E, #232323, etc. (elevation)
158
+ ├── Elevation: Higher = lighter overlay
159
+ ├── Reduce saturation on colors
160
+ └── Check contrast ratios
161
+
162
+ Elevation overlays (dark mode):
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 Layout & Spacing
174
+
175
+ ### Layout Grid
176
+
177
+ ```
178
+ Android uses 8dp baseline grid:
179
+
180
+ All spacing in multiples of 8dp:
181
+ ├── 4dp: Component internal (half-step)
182
+ ├── 8dp: Minimum spacing
183
+ ├── 16dp: Standard spacing
184
+ ├── 24dp: Section spacing
185
+ ├── 32dp: Large spacing
186
+
187
+ Margins:
188
+ ├── Compact (phone): 16dp
189
+ ├── Medium (small tablet): 24dp
190
+ ├── Expanded (large): 24dp+ or columns
191
+ ```
192
+
193
+ ### Responsive Layout
194
+
195
+ ```
196
+ Window Size Classes:
197
+
198
+ COMPACT (< 600dp width):
199
+ ├── Phones in portrait
200
+ ├── Single column layout
201
+ ├── Bottom navigation
202
+
203
+ MEDIUM (600-840dp width):
204
+ ├── Tablets, foldables
205
+ ├── Consider 2 columns
206
+ ├── Navigation rail option
207
+
208
+ EXPANDED (> 840dp width):
209
+ ├── Large tablets, desktop
210
+ ├── Multi-column layouts
211
+ ├── Navigation drawer
212
+ ```
213
+
214
+ ### Canonical Layouts
215
+
216
+ | Layout | Use Case | Window Class |
217
+ |--------|----------|--------------|
218
+ | **List-Detail** | Email, messages | Medium, Expanded |
219
+ | **Feed** | Social, news | All |
220
+ | **Supporting Pane** | Reference content | Medium, Expanded |
221
+
222
+ ---
223
+
224
+ ## 5. Android Navigation Patterns
225
+
226
+ ### Navigation Components
227
+
228
+ | Component | Use Case | Position |
229
+ |-----------|----------|----------|
230
+ | **Bottom Navigation** | 3-5 top-level destinations | Bottom |
231
+ | **Navigation Rail** | Tablets, foldables | Left side, vertical |
232
+ | **Navigation Drawer** | Many destinations, large screens | Left side, hidden/visible |
233
+ | **Top App Bar** | Current context, actions | Top |
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
+ Rules:
248
+ ├── 3-5 destinations
249
+ ├── Icons: Material Symbols (24dp)
250
+ ├── Labels: Always visible (accessibility)
251
+ ├── Active: Filled icon + indicator pill
252
+ ├── Badge: For notifications
253
+ ├── FAB can integrate (optional)
254
+ ```
255
+
256
+ ### Top App Bar
257
+
258
+ ```
259
+ Types:
260
+ ├── Center-aligned: Logo apps, simple
261
+ ├── Small: Compact, scrolls away
262
+ ├── Medium: Title + actions, collapses
263
+ ├── Large: Display title, collapses to small
264
+
265
+ ┌─────────────────────────────────────┐
266
+ │ ☰ App Title 🔔 ⋮ │ ← 64dp (small)
267
+ ├─────────────────────────────────────┤
268
+ │ │
269
+ │ Content Area │
270
+ └─────────────────────────────────────┘
271
+
272
+ Actions: Max 3 icons, overflow menu ( ⋮ ) for more
273
+ ```
274
+
275
+ ### Navigation Rail (Tablets)
276
+
277
+ ```
278
+ ┌───────┬─────────────────────────────┐
279
+ │ ≡ │ │
280
+ │ │ │
281
+ │ 🏠 │ │
282
+ │ Home │ Content Area │
283
+ │ │ │
284
+ │ 🔍 │ │
285
+ │Search │ │
286
+ │ │ │
287
+ │ 👤 │ │
288
+ │Profile│ │
289
+ └───────┴─────────────────────────────┘
290
+
291
+ Width: 80dp
292
+ Icons: 24dp
293
+ Labels: Below icon
294
+ FAB: Can be at top
295
+ ```
296
+
297
+ ### Back Navigation
298
+
299
+ ```
300
+ Android provides system back:
301
+ ├── Back button (3-button nav)
302
+ ├── Back gesture (swipe from edge)
303
+ ├── Predictive back (Android 14+)
304
+
305
+ Your app must:
306
+ ├── Handle back correctly (pop stack)
307
+ ├── Support predictive back animation
308
+ ├── Never hijack/override back unexpectedly
309
+ └── Confirm before discarding unsaved work
310
+ ```
311
+
312
+ ---
313
+
314
+ ## 6. Material Components
315
+
316
+ ### Buttons
317
+
318
+ ```
319
+ Button Types:
320
+
321
+ ┌──────────────────────┐
322
+ │ Filled Button │ ← Primary action
323
+ └──────────────────────┘
324
+
325
+ ┌──────────────────────┐
326
+ │ Tonal Button │ ← Secondary, less emphasis
327
+ └──────────────────────┘
328
+
329
+ ┌──────────────────────┐
330
+ │ Outlined Button │ ← Tertiary, lower emphasis
331
+ └──────────────────────┘
332
+
333
+ Text Button ← Lowest emphasis
334
+
335
+ Heights:
336
+ ├── Small: 40dp (when constrained)
337
+ ├── Standard: 40dp
338
+ ├── Large: 56dp (FAB size when needed)
339
+
340
+ Min touch target: 48dp (even if visual is smaller)
341
+ ```
342
+
343
+ ### Floating Action Button (FAB)
344
+
345
+ ```
346
+ FAB Types:
347
+ ├── Standard: 56dp diameter
348
+ ├── Small: 40dp diameter
349
+ ├── Large: 96dp diameter
350
+ ├── Extended: Icon + text, variable width
351
+
352
+ Position: Bottom right, 16dp from edges
353
+ Elevation: Floats above content
354
+
355
+ ┌─────────────────────────────────────┐
356
+ │ │
357
+ │ Content │
358
+ │ │
359
+ │ ┌────┐ │
360
+ │ │ ➕ │ │ ← FAB
361
+ │ └────┘ │
362
+ ├─────────────────────────────────────┤
363
+ │ Bottom Navigation │
364
+ └─────────────────────────────────────┘
365
+ ```
366
+
367
+ ### Cards
368
+
369
+ ```
370
+ Card Types:
371
+ ├── Elevated: Shadow, resting state
372
+ ├── Filled: Background color, no shadow
373
+ ├── Outlined: Border, no shadow
374
+
375
+ Card Anatomy:
376
+ ┌─────────────────────────────────────┐
377
+ │ Header Image │ ← Optional
378
+ ├─────────────────────────────────────┤
379
+ │ Title / Headline │
380
+ │ Subhead / Supporting text │
381
+ ├─────────────────────────────────────┤
382
+ │ [ Action ] [ Action ] │ ← Optional actions
383
+ └─────────────────────────────────────┘
384
+
385
+ Corner radius: 12dp (M3 default)
386
+ Padding: 16dp
387
+ ```
388
+
389
+ ### Text Fields
390
+
391
+ ```
392
+ Types:
393
+ ├── Filled: Background fill, underline
394
+ ├── Outlined: Border all around
395
+
396
+ ┌─────────────────────────────────────┐
397
+ │ Label │ ← Floats up on focus
398
+ │ ________________________________________________
399
+ │ │ Input text here... │ ← Leading/trailing icons
400
+ │ ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾
401
+ │ Supporting text or error │
402
+ └─────────────────────────────────────┘
403
+
404
+ Height: 56dp
405
+ Label: Animates from placeholder to top
406
+ Error: Red color + icon + message
407
+ ```
408
+
409
+ ### Chips
410
+
411
+ ```
412
+ Types:
413
+ ├── Assist: Smart actions (directions, call)
414
+ ├── Filter: Toggle filters
415
+ ├── Input: Represent entities (tags, contacts)
416
+ ├── Suggestion: Dynamic recommendations
417
+
418
+ ┌───────────────┐
419
+ │ 🏷️ Filter │ ← 32dp height, 8dp corner radius
420
+ └───────────────┘
421
+
422
+ States: Unselected, Selected, Disabled
423
+ ```
424
+
425
+ ---
426
+
427
+ ## 7. Android-Specific Patterns
428
+
429
+ ### Snackbars
430
+
431
+ ```
432
+ Position: Bottom, above navigation
433
+ Duration: 4-10 seconds
434
+ Action: One optional text action
435
+
436
+ ┌─────────────────────────────────────────────────┐
437
+ │ Archived 1 item [ UNDO ] │
438
+ └─────────────────────────────────────────────────┘
439
+
440
+ Rules:
441
+ ├── Brief message, single line if possible
442
+ ├── Max 2 lines
443
+ ├── One action (text, not icon)
444
+ ├── Can be dismissed by swipe
445
+ └── Don't stack, queue them
446
+ ```
447
+
448
+ ### Bottom Sheets
449
+
450
+ ```
451
+ Types:
452
+ ├── Standard: Interactive content
453
+ ├── Modal: Blocks background (with scrim)
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
+ Corner radius: 28dp (top corners)
470
+ ```
471
+
472
+ ### Dialogs
473
+
474
+ ```
475
+ Types:
476
+ ├── Basic: Title + content + actions
477
+ ├── Full-screen: Complex editing (mobile)
478
+ ├── Date/Time picker
479
+ ├── Confirmation dialog
480
+
481
+ ┌─────────────────────────────────────┐
482
+ │ Title │
483
+ │ │
484
+ │ Supporting text that │
485
+ │ explains the dialog │
486
+ │ │
487
+ │ [ Cancel ] [ Confirm ] │
488
+ └─────────────────────────────────────┘
489
+
490
+ Rules:
491
+ ├── Centered on screen
492
+ ├── Scrim behind (dim background)
493
+ ├── Max 2 actions aligned right
494
+ ├── Destructive action can be on left
495
+ ```
496
+
497
+ ### Pull to Refresh
498
+
499
+ ```
500
+ Android uses SwipeRefreshLayout pattern:
501
+
502
+ ┌─────────────────────────────────────┐
503
+ │ ○ (Spinner) │ ← Circular progress
504
+ ├─────────────────────────────────────┤
505
+ │ │
506
+ │ Content │
507
+ │ │
508
+ └─────────────────────────────────────┘
509
+
510
+ Spinner: Material circular indicator
511
+ Position: Top center, pulls down with content
512
+ ```
513
+
514
+ ### Ripple Effect
515
+
516
+ ```
517
+ Every touchable element needs ripple:
518
+
519
+ Touch down → Ripple expands from touch point
520
+ Touch up → Ripple completes and fades
521
+
522
+ Color:
523
+ ├── On light: Black at ~12% opacity
524
+ ├── On dark: White at ~12% opacity
525
+ ├── On colored: Appropriate contrast
526
+
527
+ This is MANDATORY for Android feel.
528
+ ```
529
+
530
+ ---
531
+
532
+ ## 8. Material Symbols
533
+
534
+ ### Usage Guidelines
535
+
536
+ ```
537
+ Material Symbols: Google's icon library
538
+
539
+ Styles:
540
+ ├── Outlined: Default, most common
541
+ ├── Rounded: Softer, friendly
542
+ ├── Sharp: Angular, precise
543
+
544
+ Variable font axes:
545
+ ├── FILL: 0 (outline) to 1 (filled)
546
+ ├── wght: 100-700 (weight)
547
+ ├── GRAD: -25 to 200 (emphasis)
548
+ ├── opsz: 20, 24, 40, 48 (optical size)
549
+ ```
550
+
551
+ ### Icon Sizes
552
+
553
+ | Size | Usage |
554
+ |------|-------|
555
+ | 20dp | Dense UI, inline |
556
+ | 24dp | Standard (most common) |
557
+ | 40dp | Larger touch targets |
558
+ | 48dp | Emphasis, standalone |
559
+
560
+ ### States
561
+
562
+ ```
563
+ Icon States:
564
+ ├── Default: Full opacity
565
+ ├── Disabled: 38% opacity
566
+ ├── Hover/Focus: Container highlight
567
+ ├── Selected: Filled variant + tint
568
+
569
+ Active vs Inactive:
570
+ ├── Inactive: Outlined
571
+ ├── Active: Filled + indicator
572
+ ```
573
+
574
+ ---
575
+
576
+ ## 9. Android Accessibility
577
+
578
+ ### TalkBack Requirements
579
+
580
+ ```
581
+ Every interactive element needs:
582
+ ├── contentDescription (what it is)
583
+ ├── Correct semantics (button, checkbox, etc.)
584
+ ├── State announcements (selected, disabled)
585
+ └── Grouping where logical
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
+ ### Touch Target Size
600
+
601
+ ```
602
+ MANDATORY: 48dp × 48dp minimum
603
+
604
+ Even if visual element is smaller:
605
+ ├── Icon: 24dp visual, 48dp touch area
606
+ ├── Checkbox: 20dp visual, 48dp touch area
607
+ └── Add padding to reach 48dp
608
+
609
+ Spacing between targets: 8dp minimum
610
+ ```
611
+
612
+ ### Font Scaling
613
+
614
+ ```
615
+ Android supports font scaling:
616
+ ├── 85% (smaller)
617
+ ├── 100% (default)
618
+ ├── 115%, 130%, 145%...
619
+ ├── Up to 200% (largest)
620
+
621
+ RULE: Test your UI at 200% font scale.
622
+ Use sp units and avoid fixed heights.
623
+ ```
624
+
625
+ ### Reduce Motion
626
+
627
+ ```kotlin
628
+ // Check motion preference
629
+ val reduceMotion = Settings.Global.getFloat(
630
+ contentResolver,
631
+ Settings.Global.ANIMATOR_DURATION_SCALE,
632
+ 1f
633
+ ) == 0f
634
+
635
+ if (reduceMotion) {
636
+ // Skip or reduce animations
637
+ }
638
+ ```
639
+
640
+ ---
641
+
642
+ ## 10. Android Checklist
643
+
644
+ ### Before Every Android Screen
645
+
646
+ - [ ] Using Material 3 components
647
+ - [ ] Touch targets ≥ 48dp
648
+ - [ ] Ripple effect on all touchables
649
+ - [ ] Roboto or Material type scale
650
+ - [ ] Semantic colors (dynamic color support)
651
+ - [ ] Back navigation works correctly
652
+
653
+ ### Before Android Release
654
+
655
+ - [ ] Dark theme tested
656
+ - [ ] Dynamic color tested (if supported)
657
+ - [ ] All font sizes tested (200% scale)
658
+ - [ ] TalkBack tested
659
+ - [ ] Predictive back implemented (Android 14+)
660
+ - [ ] Edge-to-edge display (Android 15+)
661
+ - [ ] Different screen sizes tested (phones, tablets)
662
+ - [ ] Navigation patterns match platform (back, gestures)
663
+
664
+ ---
665
+
666
+ > **Remember:** Android users expect Material Design. Custom designs that ignore Material patterns feel foreign and broken. Use Material components as your foundation, customize thoughtfully.