@jakkrichm/create-nexus-devflow 2.0.0 → 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 (394) 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/check-for-updates/SKILL.md +116 -116
  48. package/template/.agents/skills/ci-cd-and-automation/SKILL.md +390 -390
  49. package/template/.agents/skills/code-review-and-quality/SKILL.md +392 -392
  50. package/template/.agents/skills/code-simplification/SKILL.md +331 -331
  51. package/template/.agents/skills/commit/SKILL.md +62 -62
  52. package/template/.agents/skills/competitor-analysis/SKILL.md +66 -66
  53. package/template/.agents/skills/context-engineering/SKILL.md +290 -290
  54. package/template/.agents/skills/database-design/SKILL.md +52 -52
  55. package/template/.agents/skills/database-design/database-selection.md +43 -43
  56. package/template/.agents/skills/database-design/indexing.md +39 -39
  57. package/template/.agents/skills/database-design/migrations.md +48 -48
  58. package/template/.agents/skills/database-design/optimization.md +36 -36
  59. package/template/.agents/skills/database-design/orm-selection.md +30 -30
  60. package/template/.agents/skills/database-design/schema-design.md +56 -56
  61. package/template/.agents/skills/database-design/scripts/schema_validator.py +172 -172
  62. package/template/.agents/skills/debug/SKILL.md +116 -116
  63. package/template/.agents/skills/debugging-and-error-recovery/SKILL.md +298 -298
  64. package/template/.agents/skills/deploy/SKILL.md +90 -90
  65. package/template/.agents/skills/deployment-procedures/SKILL.md +241 -241
  66. package/template/.agents/skills/deprecation-and-migration/SKILL.md +206 -206
  67. package/template/.agents/skills/devflow-concept-intake/SKILL.md +150 -150
  68. package/template/.agents/skills/devflow-concept-intake/agents/openai.yaml +4 -4
  69. package/template/.agents/skills/devflow-concept-intake/references/adoption-proposal-template.md +60 -60
  70. package/template/.agents/skills/devflow-concept-intake/references/concept-report-template.md +47 -47
  71. package/template/.agents/skills/devflow-concept-intake/references/upstream-tracking-template.md +51 -51
  72. package/template/.agents/skills/devflow-wiki/SKILL.md +75 -75
  73. package/template/.agents/skills/documentation-and-adrs/SKILL.md +278 -278
  74. package/template/.agents/skills/english-to-thai-translator/SKILL.md +125 -125
  75. package/template/.agents/skills/followup/SKILL.md +78 -78
  76. package/template/.agents/skills/frontend-ui-engineering/SKILL.md +326 -326
  77. package/template/.agents/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  78. package/template/.agents/skills/git-workflow-and-versioning/SKILL.md +300 -300
  79. package/template/.agents/skills/goal/SKILL.md +132 -132
  80. package/template/.agents/skills/help/SKILL.md +242 -242
  81. package/template/.agents/skills/human-review-decisions/SKILL.md +74 -74
  82. package/template/.agents/skills/i18n-localization/SKILL.md +154 -154
  83. package/template/.agents/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  84. package/template/.agents/skills/idea-refine/SKILL.md +178 -178
  85. package/template/.agents/skills/idea-refine/examples.md +238 -238
  86. package/template/.agents/skills/idea-refine/frameworks.md +99 -99
  87. package/template/.agents/skills/idea-refine/refinement-criteria.md +113 -113
  88. package/template/.agents/skills/idea-refine/scripts/idea-refine.sh +15 -15
  89. package/template/.agents/skills/incremental-implementation/SKILL.md +248 -248
  90. package/template/.agents/skills/insight/SKILL.md +130 -130
  91. package/template/.agents/skills/insight-capture/SKILL.md +84 -84
  92. package/template/.agents/skills/intelligent-routing/SKILL.md +171 -171
  93. package/template/.agents/skills/issue-triage/SKILL.md +106 -106
  94. package/template/.agents/skills/lint-and-validate/SKILL.md +45 -45
  95. package/template/.agents/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  96. package/template/.agents/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  97. package/template/.agents/skills/mcp-builder/SKILL.md +176 -176
  98. package/template/.agents/skills/md2html/SKILL.md +154 -154
  99. package/template/.agents/skills/md2html/components.md +505 -505
  100. package/template/.agents/skills/md2html/template.html +1152 -1152
  101. package/template/.agents/skills/merge/SKILL.md +75 -75
  102. package/template/.agents/skills/mobile-design/SKILL.md +394 -394
  103. package/template/.agents/skills/mobile-design/decision-trees.md +516 -516
  104. package/template/.agents/skills/mobile-design/mobile-backend.md +491 -491
  105. package/template/.agents/skills/mobile-design/mobile-color-system.md +420 -420
  106. package/template/.agents/skills/mobile-design/mobile-debugging.md +122 -122
  107. package/template/.agents/skills/mobile-design/mobile-design-thinking.md +357 -357
  108. package/template/.agents/skills/mobile-design/mobile-navigation.md +458 -458
  109. package/template/.agents/skills/mobile-design/mobile-performance.md +767 -767
  110. package/template/.agents/skills/mobile-design/mobile-testing.md +356 -356
  111. package/template/.agents/skills/mobile-design/mobile-typography.md +433 -433
  112. package/template/.agents/skills/mobile-design/platform-android.md +666 -666
  113. package/template/.agents/skills/mobile-design/platform-ios.md +561 -561
  114. package/template/.agents/skills/mobile-design/scripts/mobile_audit.py +670 -670
  115. package/template/.agents/skills/mobile-design/touch-psychology.md +537 -537
  116. package/template/.agents/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  117. package/template/.agents/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  118. package/template/.agents/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  119. package/template/.agents/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  120. package/template/.agents/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  121. package/template/.agents/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  122. package/template/.agents/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  123. package/template/.agents/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  124. package/template/.agents/skills/nextjs-react-expert/SKILL.md +286 -286
  125. package/template/.agents/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  126. package/template/.agents/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  127. package/template/.agents/skills/nodejs-best-practices/SKILL.md +333 -333
  128. package/template/.agents/skills/obsidian-bases/SKILL.md +506 -506
  129. package/template/.agents/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -173
  130. package/template/.agents/skills/obsidian-cli/SKILL.md +115 -115
  131. package/template/.agents/skills/obsidian-clipper-template-creator/SKILL.md +73 -73
  132. package/template/.agents/skills/obsidian-clipper-template-creator/assets/clipping-template.json +51 -51
  133. package/template/.agents/skills/obsidian-clipper-template-creator/assets/recipe-template.json +48 -48
  134. package/template/.agents/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +79 -79
  135. package/template/.agents/skills/obsidian-clipper-template-creator/references/bases-workflow.md +44 -44
  136. package/template/.agents/skills/obsidian-clipper-template-creator/references/filters.md +51 -51
  137. package/template/.agents/skills/obsidian-clipper-template-creator/references/json-schema.md +77 -77
  138. package/template/.agents/skills/obsidian-clipper-template-creator/references/logic.md +67 -67
  139. package/template/.agents/skills/obsidian-clipper-template-creator/references/variables.md +64 -64
  140. package/template/.agents/skills/obsidian-markdown/SKILL.md +205 -205
  141. package/template/.agents/skills/obsidian-markdown/references/CALLOUTS.md +58 -58
  142. package/template/.agents/skills/obsidian-markdown/references/EMBEDS.md +63 -63
  143. package/template/.agents/skills/obsidian-markdown/references/PROPERTIES.md +61 -61
  144. package/template/.agents/skills/package-json-generator/SKILL.md +60 -60
  145. package/template/.agents/skills/package-json-generator/scripts/generate.js +120 -120
  146. package/template/.agents/skills/package-json-generator/scripts/run.sh +19 -19
  147. package/template/.agents/skills/parallel-agents/SKILL.md +144 -144
  148. package/template/.agents/skills/performance-optimization/SKILL.md +299 -299
  149. package/template/.agents/skills/performance-optimization/performance-checklist.md +113 -113
  150. package/template/.agents/skills/planning-and-task-breakdown/SKILL.md +239 -239
  151. package/template/.agents/skills/powershell-windows/SKILL.md +167 -167
  152. package/template/.agents/skills/pr/SKILL.md +92 -92
  153. package/template/.agents/skills/pr-review/SKILL.md +142 -142
  154. package/template/.agents/skills/pr-review-analysis/SKILL.md +89 -89
  155. package/template/.agents/skills/prd/SKILL.md +112 -112
  156. package/template/.agents/skills/preview/SKILL.md +116 -116
  157. package/template/.agents/skills/preview-local-check/SKILL.md +59 -59
  158. package/template/.agents/skills/prompt-addons/SKILL.md +99 -99
  159. package/template/.agents/skills/prp-dev-fastapi/SKILL.md +114 -114
  160. package/template/.agents/skills/prp-dev-multiplatform/SKILL.md +36 -36
  161. package/template/.agents/skills/prp-dev-odoo/SKILL.md +71 -71
  162. package/template/.agents/skills/prp-dev-php/SKILL.md +63 -63
  163. package/template/.agents/skills/prp-sa-ba/SKILL.md +52 -52
  164. package/template/.agents/skills/python-patterns/SKILL.md +441 -441
  165. package/template/.agents/skills/red-team-tactics/SKILL.md +199 -199
  166. package/template/.agents/skills/release-git-operations/SKILL.md +97 -97
  167. package/template/.agents/skills/research/SKILL.md +127 -127
  168. package/template/.agents/skills/review/SKILL.md +55 -55
  169. package/template/.agents/skills/review-followup-routing/SKILL.md +98 -98
  170. package/template/.agents/skills/roadmap-strategy/SKILL.md +97 -97
  171. package/template/.agents/skills/security-and-hardening/SKILL.md +349 -349
  172. package/template/.agents/skills/security-and-hardening/security-checklist.md +134 -134
  173. package/template/.agents/skills/security-review/SKILL.md +164 -164
  174. package/template/.agents/skills/seo-fundamentals/SKILL.md +129 -129
  175. package/template/.agents/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  176. package/template/.agents/skills/server-management/SKILL.md +161 -161
  177. package/template/.agents/skills/shipping-and-launch/SKILL.md +311 -311
  178. package/template/.agents/skills/silent-failure-audit/SKILL.md +73 -73
  179. package/template/.agents/skills/simplify/SKILL.md +74 -74
  180. package/template/.agents/skills/skill-development/SKILL.md +86 -86
  181. package/template/.agents/skills/spec-driven-development/SKILL.md +207 -207
  182. package/template/.agents/skills/spec-orchestration/SKILL.md +91 -91
  183. package/template/.agents/skills/specialist-agent-routing/SKILL.md +107 -107
  184. package/template/.agents/skills/tailwind-patterns/SKILL.md +269 -269
  185. package/template/.agents/skills/test/SKILL.md +77 -77
  186. package/template/.agents/skills/test-driven-development/SKILL.md +422 -422
  187. package/template/.agents/skills/test-driven-development/testing-patterns.md +236 -236
  188. package/template/.agents/skills/test-execution-and-coverage/SKILL.md +56 -56
  189. package/template/.agents/skills/type-design/SKILL.md +84 -84
  190. package/template/.agents/skills/ui-ux-pro-max/SKILL.md +75 -75
  191. package/template/.agents/skills/using-agent-skills/SKILL.md +171 -171
  192. package/template/.agents/skills/verification-orchestration/SKILL.md +68 -68
  193. package/template/.agents/skills/vulnerability-scanner/SKILL.md +276 -276
  194. package/template/.agents/skills/vulnerability-scanner/checklists.md +121 -121
  195. package/template/.agents/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  196. package/template/.agents/skills/wiki/SKILL.md +148 -148
  197. package/template/.agents/skills/workflow-documentation-sync/SKILL.md +87 -87
  198. package/template/.claude/skills/20-spec/SKILL.md +136 -136
  199. package/template/.claude/skills/30-plan/SKILL.md +206 -206
  200. package/template/.claude/skills/40-implement/SKILL.md +152 -152
  201. package/template/.claude/skills/50-verify/SKILL.md +174 -174
  202. package/template/.claude/skills/60-report/SKILL.md +168 -168
  203. package/template/.claude/skills/70-release/SKILL.md +141 -141
  204. package/template/.claude/skills/9arm-skills/README.md +51 -51
  205. package/template/.claude/skills/9arm-skills/debug-mantra/SKILL.md +86 -86
  206. package/template/.claude/skills/9arm-skills/management-talk/SKILL.md +79 -79
  207. package/template/.claude/skills/9arm-skills/post-mortem/SKILL.md +71 -71
  208. package/template/.claude/skills/9arm-skills/scrutinize/SKILL.md +72 -72
  209. package/template/.claude/skills/agent/SKILL.md +164 -164
  210. package/template/.claude/skills/api-and-interface-design/SKILL.md +294 -294
  211. package/template/.claude/skills/app-builder/SKILL.md +75 -75
  212. package/template/.claude/skills/app-builder/agent-coordination.md +71 -71
  213. package/template/.claude/skills/app-builder/feature-building.md +53 -53
  214. package/template/.claude/skills/app-builder/project-detection.md +34 -34
  215. package/template/.claude/skills/app-builder/scaffolding.md +118 -118
  216. package/template/.claude/skills/app-builder/tech-stack.md +40 -40
  217. package/template/.claude/skills/app-builder/templates/SKILL.md +39 -39
  218. package/template/.claude/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -76
  219. package/template/.claude/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -92
  220. package/template/.claude/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -88
  221. package/template/.claude/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -88
  222. package/template/.claude/skills/app-builder/templates/express-api/TEMPLATE.md +83 -83
  223. package/template/.claude/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -90
  224. package/template/.claude/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -90
  225. package/template/.claude/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -122
  226. package/template/.claude/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -122
  227. package/template/.claude/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -169
  228. package/template/.claude/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -134
  229. package/template/.claude/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -83
  230. package/template/.claude/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -119
  231. package/template/.claude/skills/architecture/SKILL.md +55 -55
  232. package/template/.claude/skills/architecture/context-discovery.md +43 -43
  233. package/template/.claude/skills/architecture/examples.md +94 -94
  234. package/template/.claude/skills/architecture/pattern-selection.md +68 -68
  235. package/template/.claude/skills/architecture/patterns-reference.md +50 -50
  236. package/template/.claude/skills/architecture/trade-off-analysis.md +77 -77
  237. package/template/.claude/skills/bash-linux/SKILL.md +199 -199
  238. package/template/.claude/skills/behavioral-modes/SKILL.md +242 -242
  239. package/template/.claude/skills/brainstorm/SKILL.md +157 -157
  240. package/template/.claude/skills/browser-testing-with-devtools/SKILL.md +302 -302
  241. package/template/.claude/skills/changelog/SKILL.md +108 -108
  242. package/template/.claude/skills/check-for-updates/SKILL.md +116 -116
  243. package/template/.claude/skills/ci-cd-and-automation/SKILL.md +390 -390
  244. package/template/.claude/skills/code-review-and-quality/SKILL.md +392 -392
  245. package/template/.claude/skills/code-simplification/SKILL.md +331 -331
  246. package/template/.claude/skills/commit/SKILL.md +62 -62
  247. package/template/.claude/skills/competitor-analysis/SKILL.md +66 -66
  248. package/template/.claude/skills/context-engineering/SKILL.md +290 -290
  249. package/template/.claude/skills/database-design/SKILL.md +52 -52
  250. package/template/.claude/skills/database-design/database-selection.md +43 -43
  251. package/template/.claude/skills/database-design/indexing.md +39 -39
  252. package/template/.claude/skills/database-design/migrations.md +48 -48
  253. package/template/.claude/skills/database-design/optimization.md +36 -36
  254. package/template/.claude/skills/database-design/orm-selection.md +30 -30
  255. package/template/.claude/skills/database-design/schema-design.md +56 -56
  256. package/template/.claude/skills/database-design/scripts/schema_validator.py +172 -172
  257. package/template/.claude/skills/debug/SKILL.md +116 -116
  258. package/template/.claude/skills/debugging-and-error-recovery/SKILL.md +298 -298
  259. package/template/.claude/skills/deploy/SKILL.md +90 -90
  260. package/template/.claude/skills/deployment-procedures/SKILL.md +241 -241
  261. package/template/.claude/skills/deprecation-and-migration/SKILL.md +206 -206
  262. package/template/.claude/skills/devflow-concept-intake/SKILL.md +150 -150
  263. package/template/.claude/skills/devflow-concept-intake/agents/openai.yaml +4 -4
  264. package/template/.claude/skills/devflow-concept-intake/references/adoption-proposal-template.md +60 -60
  265. package/template/.claude/skills/devflow-concept-intake/references/concept-report-template.md +47 -47
  266. package/template/.claude/skills/devflow-concept-intake/references/upstream-tracking-template.md +51 -51
  267. package/template/.claude/skills/devflow-wiki/SKILL.md +75 -75
  268. package/template/.claude/skills/documentation-and-adrs/SKILL.md +278 -278
  269. package/template/.claude/skills/english-to-thai-translator/SKILL.md +125 -125
  270. package/template/.claude/skills/followup/SKILL.md +78 -78
  271. package/template/.claude/skills/frontend-ui-engineering/SKILL.md +326 -326
  272. package/template/.claude/skills/frontend-ui-engineering/accessibility-checklist.md +159 -159
  273. package/template/.claude/skills/git-workflow-and-versioning/SKILL.md +300 -300
  274. package/template/.claude/skills/goal/SKILL.md +132 -132
  275. package/template/.claude/skills/help/SKILL.md +242 -242
  276. package/template/.claude/skills/human-review-decisions/SKILL.md +74 -74
  277. package/template/.claude/skills/i18n-localization/SKILL.md +154 -154
  278. package/template/.claude/skills/i18n-localization/scripts/i18n_checker.py +241 -241
  279. package/template/.claude/skills/idea-refine/SKILL.md +178 -178
  280. package/template/.claude/skills/idea-refine/examples.md +238 -238
  281. package/template/.claude/skills/idea-refine/frameworks.md +99 -99
  282. package/template/.claude/skills/idea-refine/refinement-criteria.md +113 -113
  283. package/template/.claude/skills/idea-refine/scripts/idea-refine.sh +15 -15
  284. package/template/.claude/skills/incremental-implementation/SKILL.md +248 -248
  285. package/template/.claude/skills/insight/SKILL.md +130 -130
  286. package/template/.claude/skills/insight-capture/SKILL.md +84 -84
  287. package/template/.claude/skills/intelligent-routing/SKILL.md +171 -171
  288. package/template/.claude/skills/issue-triage/SKILL.md +106 -106
  289. package/template/.claude/skills/lint-and-validate/SKILL.md +45 -45
  290. package/template/.claude/skills/lint-and-validate/scripts/lint_runner.py +184 -184
  291. package/template/.claude/skills/lint-and-validate/scripts/type_coverage.py +173 -173
  292. package/template/.claude/skills/mcp-builder/SKILL.md +176 -176
  293. package/template/.claude/skills/md2html/SKILL.md +154 -154
  294. package/template/.claude/skills/md2html/components.md +505 -505
  295. package/template/.claude/skills/md2html/template.html +1152 -1152
  296. package/template/.claude/skills/merge/SKILL.md +75 -75
  297. package/template/.claude/skills/mobile-design/SKILL.md +394 -394
  298. package/template/.claude/skills/mobile-design/decision-trees.md +516 -516
  299. package/template/.claude/skills/mobile-design/mobile-backend.md +491 -491
  300. package/template/.claude/skills/mobile-design/mobile-color-system.md +420 -420
  301. package/template/.claude/skills/mobile-design/mobile-debugging.md +122 -122
  302. package/template/.claude/skills/mobile-design/mobile-design-thinking.md +357 -357
  303. package/template/.claude/skills/mobile-design/mobile-navigation.md +458 -458
  304. package/template/.claude/skills/mobile-design/mobile-performance.md +767 -767
  305. package/template/.claude/skills/mobile-design/mobile-testing.md +356 -356
  306. package/template/.claude/skills/mobile-design/mobile-typography.md +433 -433
  307. package/template/.claude/skills/mobile-design/platform-android.md +666 -666
  308. package/template/.claude/skills/mobile-design/platform-ios.md +561 -561
  309. package/template/.claude/skills/mobile-design/scripts/mobile_audit.py +670 -670
  310. package/template/.claude/skills/mobile-design/touch-psychology.md +537 -537
  311. package/template/.claude/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +312 -312
  312. package/template/.claude/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -240
  313. package/template/.claude/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -490
  314. package/template/.claude/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -264
  315. package/template/.claude/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -581
  316. package/template/.claude/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -432
  317. package/template/.claude/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -684
  318. package/template/.claude/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -150
  319. package/template/.claude/skills/nextjs-react-expert/SKILL.md +286 -286
  320. package/template/.claude/skills/nextjs-react-expert/scripts/convert_rules.py +222 -222
  321. package/template/.claude/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -252
  322. package/template/.claude/skills/nodejs-best-practices/SKILL.md +333 -333
  323. package/template/.claude/skills/obsidian-bases/SKILL.md +506 -506
  324. package/template/.claude/skills/obsidian-bases/references/FUNCTIONS_REFERENCE.md +173 -173
  325. package/template/.claude/skills/obsidian-cli/SKILL.md +115 -115
  326. package/template/.claude/skills/obsidian-clipper-template-creator/SKILL.md +73 -73
  327. package/template/.claude/skills/obsidian-clipper-template-creator/assets/clipping-template.json +51 -51
  328. package/template/.claude/skills/obsidian-clipper-template-creator/assets/recipe-template.json +48 -48
  329. package/template/.claude/skills/obsidian-clipper-template-creator/references/analysis-workflow.md +79 -79
  330. package/template/.claude/skills/obsidian-clipper-template-creator/references/bases-workflow.md +44 -44
  331. package/template/.claude/skills/obsidian-clipper-template-creator/references/filters.md +51 -51
  332. package/template/.claude/skills/obsidian-clipper-template-creator/references/json-schema.md +77 -77
  333. package/template/.claude/skills/obsidian-clipper-template-creator/references/logic.md +67 -67
  334. package/template/.claude/skills/obsidian-clipper-template-creator/references/variables.md +64 -64
  335. package/template/.claude/skills/obsidian-markdown/SKILL.md +205 -205
  336. package/template/.claude/skills/obsidian-markdown/references/CALLOUTS.md +58 -58
  337. package/template/.claude/skills/obsidian-markdown/references/EMBEDS.md +63 -63
  338. package/template/.claude/skills/obsidian-markdown/references/PROPERTIES.md +61 -61
  339. package/template/.claude/skills/package-json-generator/SKILL.md +60 -60
  340. package/template/.claude/skills/package-json-generator/scripts/generate.js +120 -120
  341. package/template/.claude/skills/package-json-generator/scripts/run.sh +19 -19
  342. package/template/.claude/skills/parallel-agents/SKILL.md +144 -144
  343. package/template/.claude/skills/performance-optimization/SKILL.md +299 -299
  344. package/template/.claude/skills/performance-optimization/performance-checklist.md +113 -113
  345. package/template/.claude/skills/planning-and-task-breakdown/SKILL.md +239 -239
  346. package/template/.claude/skills/powershell-windows/SKILL.md +167 -167
  347. package/template/.claude/skills/pr/SKILL.md +92 -92
  348. package/template/.claude/skills/pr-review/SKILL.md +142 -142
  349. package/template/.claude/skills/pr-review-analysis/SKILL.md +89 -89
  350. package/template/.claude/skills/prd/SKILL.md +112 -112
  351. package/template/.claude/skills/preview/SKILL.md +116 -116
  352. package/template/.claude/skills/preview-local-check/SKILL.md +59 -59
  353. package/template/.claude/skills/prompt-addons/SKILL.md +99 -99
  354. package/template/.claude/skills/prp-dev-fastapi/SKILL.md +114 -114
  355. package/template/.claude/skills/prp-dev-multiplatform/SKILL.md +36 -36
  356. package/template/.claude/skills/prp-dev-odoo/SKILL.md +71 -71
  357. package/template/.claude/skills/prp-dev-php/SKILL.md +63 -63
  358. package/template/.claude/skills/prp-sa-ba/SKILL.md +52 -52
  359. package/template/.claude/skills/python-patterns/SKILL.md +441 -441
  360. package/template/.claude/skills/red-team-tactics/SKILL.md +199 -199
  361. package/template/.claude/skills/release-git-operations/SKILL.md +97 -97
  362. package/template/.claude/skills/research/SKILL.md +127 -127
  363. package/template/.claude/skills/review/SKILL.md +55 -55
  364. package/template/.claude/skills/review-followup-routing/SKILL.md +98 -98
  365. package/template/.claude/skills/roadmap-strategy/SKILL.md +97 -97
  366. package/template/.claude/skills/security-and-hardening/SKILL.md +349 -349
  367. package/template/.claude/skills/security-and-hardening/security-checklist.md +134 -134
  368. package/template/.claude/skills/security-review/SKILL.md +164 -164
  369. package/template/.claude/skills/seo-fundamentals/SKILL.md +129 -129
  370. package/template/.claude/skills/seo-fundamentals/scripts/seo_checker.py +219 -219
  371. package/template/.claude/skills/server-management/SKILL.md +161 -161
  372. package/template/.claude/skills/shipping-and-launch/SKILL.md +311 -311
  373. package/template/.claude/skills/silent-failure-audit/SKILL.md +73 -73
  374. package/template/.claude/skills/simplify/SKILL.md +74 -74
  375. package/template/.claude/skills/skill-development/SKILL.md +86 -86
  376. package/template/.claude/skills/spec-driven-development/SKILL.md +207 -207
  377. package/template/.claude/skills/spec-orchestration/SKILL.md +91 -91
  378. package/template/.claude/skills/specialist-agent-routing/SKILL.md +107 -107
  379. package/template/.claude/skills/tailwind-patterns/SKILL.md +269 -269
  380. package/template/.claude/skills/test/SKILL.md +77 -77
  381. package/template/.claude/skills/test-driven-development/SKILL.md +422 -422
  382. package/template/.claude/skills/test-driven-development/testing-patterns.md +236 -236
  383. package/template/.claude/skills/test-execution-and-coverage/SKILL.md +56 -56
  384. package/template/.claude/skills/type-design/SKILL.md +84 -84
  385. package/template/.claude/skills/ui-ux-pro-max/SKILL.md +75 -75
  386. package/template/.claude/skills/using-agent-skills/SKILL.md +171 -171
  387. package/template/.claude/skills/verification-orchestration/SKILL.md +68 -68
  388. package/template/.claude/skills/vulnerability-scanner/SKILL.md +276 -276
  389. package/template/.claude/skills/vulnerability-scanner/checklists.md +121 -121
  390. package/template/.claude/skills/vulnerability-scanner/scripts/security_scan.py +458 -458
  391. package/template/.claude/skills/wiki/SKILL.md +148 -148
  392. package/template/.claude/skills/workflow-documentation-sync/SKILL.md +87 -87
  393. package/template/.nexus/nexus-devflow.json +1 -1
  394. package/template/LICENSE +21 -21
@@ -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.