@wazir-dev/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (629) hide show
  1. package/AGENTS.md +111 -0
  2. package/CHANGELOG.md +14 -0
  3. package/CONTRIBUTING.md +101 -0
  4. package/LICENSE +21 -0
  5. package/README.md +314 -0
  6. package/assets/composition-engine.mmd +34 -0
  7. package/assets/demo-script.sh +17 -0
  8. package/assets/logo-dark.svg +14 -0
  9. package/assets/logo.svg +14 -0
  10. package/assets/pipeline.mmd +39 -0
  11. package/assets/record-demo.sh +51 -0
  12. package/docs/README.md +51 -0
  13. package/docs/adapters/context-mode.md +60 -0
  14. package/docs/concepts/architecture.md +87 -0
  15. package/docs/concepts/artifact-model.md +60 -0
  16. package/docs/concepts/composition-engine.md +36 -0
  17. package/docs/concepts/indexing-and-recall.md +160 -0
  18. package/docs/concepts/observability.md +41 -0
  19. package/docs/concepts/roles-and-workflows.md +59 -0
  20. package/docs/concepts/terminology-policy.md +27 -0
  21. package/docs/getting-started/01-installation.md +78 -0
  22. package/docs/getting-started/02-first-run.md +102 -0
  23. package/docs/getting-started/03-adding-to-project.md +15 -0
  24. package/docs/getting-started/04-host-setup.md +15 -0
  25. package/docs/guides/ci-integration.md +15 -0
  26. package/docs/guides/creating-skills.md +15 -0
  27. package/docs/guides/expertise-module-authoring.md +15 -0
  28. package/docs/guides/hook-development.md +15 -0
  29. package/docs/guides/memory-and-learnings.md +34 -0
  30. package/docs/guides/multi-host-export.md +15 -0
  31. package/docs/guides/troubleshooting.md +101 -0
  32. package/docs/guides/writing-custom-roles.md +15 -0
  33. package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
  34. package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
  35. package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
  36. package/docs/readmes/INDEX.md +99 -0
  37. package/docs/readmes/features/expertise/README.md +171 -0
  38. package/docs/readmes/features/exports/README.md +222 -0
  39. package/docs/readmes/features/hooks/README.md +103 -0
  40. package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
  41. package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
  42. package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
  43. package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
  44. package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
  45. package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
  46. package/docs/readmes/features/hooks/session-start.md +119 -0
  47. package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
  48. package/docs/readmes/features/roles/README.md +157 -0
  49. package/docs/readmes/features/roles/clarifier.md +152 -0
  50. package/docs/readmes/features/roles/content-author.md +190 -0
  51. package/docs/readmes/features/roles/designer.md +193 -0
  52. package/docs/readmes/features/roles/executor.md +184 -0
  53. package/docs/readmes/features/roles/learner.md +210 -0
  54. package/docs/readmes/features/roles/planner.md +182 -0
  55. package/docs/readmes/features/roles/researcher.md +164 -0
  56. package/docs/readmes/features/roles/reviewer.md +184 -0
  57. package/docs/readmes/features/roles/specifier.md +162 -0
  58. package/docs/readmes/features/roles/verifier.md +215 -0
  59. package/docs/readmes/features/schemas/README.md +178 -0
  60. package/docs/readmes/features/skills/README.md +63 -0
  61. package/docs/readmes/features/skills/brainstorming.md +96 -0
  62. package/docs/readmes/features/skills/debugging.md +148 -0
  63. package/docs/readmes/features/skills/design.md +120 -0
  64. package/docs/readmes/features/skills/prepare-next.md +109 -0
  65. package/docs/readmes/features/skills/run-audit.md +159 -0
  66. package/docs/readmes/features/skills/scan-project.md +109 -0
  67. package/docs/readmes/features/skills/self-audit.md +176 -0
  68. package/docs/readmes/features/skills/tdd.md +137 -0
  69. package/docs/readmes/features/skills/using-skills.md +92 -0
  70. package/docs/readmes/features/skills/verification.md +120 -0
  71. package/docs/readmes/features/skills/writing-plans.md +104 -0
  72. package/docs/readmes/features/tooling/README.md +320 -0
  73. package/docs/readmes/features/workflows/README.md +186 -0
  74. package/docs/readmes/features/workflows/author.md +181 -0
  75. package/docs/readmes/features/workflows/clarify.md +154 -0
  76. package/docs/readmes/features/workflows/design-review.md +171 -0
  77. package/docs/readmes/features/workflows/design.md +169 -0
  78. package/docs/readmes/features/workflows/discover.md +162 -0
  79. package/docs/readmes/features/workflows/execute.md +173 -0
  80. package/docs/readmes/features/workflows/learn.md +167 -0
  81. package/docs/readmes/features/workflows/plan-review.md +165 -0
  82. package/docs/readmes/features/workflows/plan.md +170 -0
  83. package/docs/readmes/features/workflows/prepare-next.md +167 -0
  84. package/docs/readmes/features/workflows/review.md +169 -0
  85. package/docs/readmes/features/workflows/run-audit.md +191 -0
  86. package/docs/readmes/features/workflows/spec-challenge.md +159 -0
  87. package/docs/readmes/features/workflows/specify.md +160 -0
  88. package/docs/readmes/features/workflows/verify.md +177 -0
  89. package/docs/readmes/packages/README.md +50 -0
  90. package/docs/readmes/packages/ajv.md +117 -0
  91. package/docs/readmes/packages/context-mode.md +118 -0
  92. package/docs/readmes/packages/gray-matter.md +116 -0
  93. package/docs/readmes/packages/node-test.md +137 -0
  94. package/docs/readmes/packages/yaml.md +112 -0
  95. package/docs/reference/configuration-reference.md +159 -0
  96. package/docs/reference/expertise-index.md +52 -0
  97. package/docs/reference/git-flow.md +43 -0
  98. package/docs/reference/hooks.md +87 -0
  99. package/docs/reference/host-exports.md +50 -0
  100. package/docs/reference/launch-checklist.md +172 -0
  101. package/docs/reference/marketplace-listings.md +76 -0
  102. package/docs/reference/release-process.md +34 -0
  103. package/docs/reference/roles-reference.md +77 -0
  104. package/docs/reference/skills.md +33 -0
  105. package/docs/reference/templates.md +29 -0
  106. package/docs/reference/tooling-cli.md +94 -0
  107. package/docs/truth-claims.yaml +222 -0
  108. package/expertise/PROGRESS.md +63 -0
  109. package/expertise/README.md +18 -0
  110. package/expertise/antipatterns/PROGRESS.md +56 -0
  111. package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
  112. package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
  113. package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
  114. package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
  115. package/expertise/antipatterns/backend/index.md +24 -0
  116. package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
  117. package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
  118. package/expertise/antipatterns/code/async-antipatterns.md +622 -0
  119. package/expertise/antipatterns/code/code-smells.md +1186 -0
  120. package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
  121. package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
  122. package/expertise/antipatterns/code/index.md +27 -0
  123. package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
  124. package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
  125. package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
  126. package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
  127. package/expertise/antipatterns/design/dark-patterns.md +1121 -0
  128. package/expertise/antipatterns/design/index.md +22 -0
  129. package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
  130. package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
  131. package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
  132. package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
  133. package/expertise/antipatterns/frontend/index.md +23 -0
  134. package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
  135. package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
  136. package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
  137. package/expertise/antipatterns/index.md +31 -0
  138. package/expertise/antipatterns/performance/index.md +20 -0
  139. package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
  140. package/expertise/antipatterns/performance/premature-optimization.md +623 -0
  141. package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
  142. package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
  143. package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
  144. package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
  145. package/expertise/antipatterns/process/index.md +23 -0
  146. package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
  147. package/expertise/antipatterns/security/index.md +20 -0
  148. package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
  149. package/expertise/antipatterns/security/security-theater.md +843 -0
  150. package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
  151. package/expertise/architecture/PROGRESS.md +70 -0
  152. package/expertise/architecture/data/caching-architecture.md +671 -0
  153. package/expertise/architecture/data/data-consistency.md +574 -0
  154. package/expertise/architecture/data/data-modeling.md +536 -0
  155. package/expertise/architecture/data/event-streams-and-queues.md +634 -0
  156. package/expertise/architecture/data/index.md +25 -0
  157. package/expertise/architecture/data/search-architecture.md +663 -0
  158. package/expertise/architecture/data/sql-vs-nosql.md +708 -0
  159. package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
  160. package/expertise/architecture/decisions/build-vs-buy.md +616 -0
  161. package/expertise/architecture/decisions/index.md +23 -0
  162. package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
  163. package/expertise/architecture/decisions/technology-selection.md +616 -0
  164. package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
  165. package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
  166. package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
  167. package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
  168. package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
  169. package/expertise/architecture/distributed/index.md +25 -0
  170. package/expertise/architecture/distributed/saga-pattern.md +797 -0
  171. package/expertise/architecture/foundations/architectural-thinking.md +460 -0
  172. package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
  173. package/expertise/architecture/foundations/design-principles-solid.md +649 -0
  174. package/expertise/architecture/foundations/domain-driven-design.md +719 -0
  175. package/expertise/architecture/foundations/index.md +25 -0
  176. package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
  177. package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
  178. package/expertise/architecture/index.md +34 -0
  179. package/expertise/architecture/integration/api-design-graphql.md +638 -0
  180. package/expertise/architecture/integration/api-design-grpc.md +804 -0
  181. package/expertise/architecture/integration/api-design-rest.md +892 -0
  182. package/expertise/architecture/integration/index.md +25 -0
  183. package/expertise/architecture/integration/third-party-integration.md +795 -0
  184. package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
  185. package/expertise/architecture/integration/websockets-realtime.md +791 -0
  186. package/expertise/architecture/mobile-architecture/index.md +22 -0
  187. package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
  188. package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
  189. package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
  190. package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
  191. package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
  192. package/expertise/architecture/patterns/event-driven.md +797 -0
  193. package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
  194. package/expertise/architecture/patterns/index.md +27 -0
  195. package/expertise/architecture/patterns/layered-architecture.md +736 -0
  196. package/expertise/architecture/patterns/microservices.md +753 -0
  197. package/expertise/architecture/patterns/modular-monolith.md +692 -0
  198. package/expertise/architecture/patterns/monolith.md +626 -0
  199. package/expertise/architecture/patterns/plugin-architecture.md +735 -0
  200. package/expertise/architecture/patterns/serverless.md +780 -0
  201. package/expertise/architecture/scaling/database-scaling.md +615 -0
  202. package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
  203. package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
  204. package/expertise/architecture/scaling/index.md +24 -0
  205. package/expertise/architecture/scaling/multi-tenancy.md +800 -0
  206. package/expertise/architecture/scaling/stateless-design.md +787 -0
  207. package/expertise/backend/embedded-firmware.md +625 -0
  208. package/expertise/backend/go.md +853 -0
  209. package/expertise/backend/index.md +24 -0
  210. package/expertise/backend/java-spring.md +448 -0
  211. package/expertise/backend/node-typescript.md +625 -0
  212. package/expertise/backend/python-fastapi.md +724 -0
  213. package/expertise/backend/rust.md +458 -0
  214. package/expertise/backend/solidity.md +711 -0
  215. package/expertise/composition-map.yaml +443 -0
  216. package/expertise/content/foundations/content-modeling.md +395 -0
  217. package/expertise/content/foundations/editorial-standards.md +449 -0
  218. package/expertise/content/foundations/index.md +24 -0
  219. package/expertise/content/foundations/microcopy.md +455 -0
  220. package/expertise/content/foundations/terminology-governance.md +509 -0
  221. package/expertise/content/index.md +34 -0
  222. package/expertise/content/patterns/accessibility-copy.md +518 -0
  223. package/expertise/content/patterns/index.md +24 -0
  224. package/expertise/content/patterns/notification-content.md +433 -0
  225. package/expertise/content/patterns/sample-content.md +486 -0
  226. package/expertise/content/patterns/state-copy.md +439 -0
  227. package/expertise/design/PROGRESS.md +58 -0
  228. package/expertise/design/disciplines/dark-mode-theming.md +577 -0
  229. package/expertise/design/disciplines/design-systems.md +595 -0
  230. package/expertise/design/disciplines/index.md +25 -0
  231. package/expertise/design/disciplines/information-architecture.md +800 -0
  232. package/expertise/design/disciplines/interaction-design.md +788 -0
  233. package/expertise/design/disciplines/responsive-design.md +552 -0
  234. package/expertise/design/disciplines/usability-testing.md +516 -0
  235. package/expertise/design/disciplines/user-research.md +792 -0
  236. package/expertise/design/foundations/accessibility-design.md +796 -0
  237. package/expertise/design/foundations/color-theory.md +797 -0
  238. package/expertise/design/foundations/iconography.md +795 -0
  239. package/expertise/design/foundations/index.md +26 -0
  240. package/expertise/design/foundations/motion-and-animation.md +653 -0
  241. package/expertise/design/foundations/rtl-design.md +585 -0
  242. package/expertise/design/foundations/spacing-and-layout.md +607 -0
  243. package/expertise/design/foundations/typography.md +800 -0
  244. package/expertise/design/foundations/visual-hierarchy.md +761 -0
  245. package/expertise/design/index.md +32 -0
  246. package/expertise/design/patterns/authentication-flows.md +474 -0
  247. package/expertise/design/patterns/content-consumption.md +789 -0
  248. package/expertise/design/patterns/data-display.md +618 -0
  249. package/expertise/design/patterns/e-commerce.md +1494 -0
  250. package/expertise/design/patterns/feedback-and-states.md +642 -0
  251. package/expertise/design/patterns/forms-and-input.md +819 -0
  252. package/expertise/design/patterns/gamification.md +801 -0
  253. package/expertise/design/patterns/index.md +31 -0
  254. package/expertise/design/patterns/microinteractions.md +449 -0
  255. package/expertise/design/patterns/navigation.md +800 -0
  256. package/expertise/design/patterns/notifications.md +705 -0
  257. package/expertise/design/patterns/onboarding.md +700 -0
  258. package/expertise/design/patterns/search-and-filter.md +601 -0
  259. package/expertise/design/patterns/settings-and-preferences.md +768 -0
  260. package/expertise/design/patterns/social-and-community.md +748 -0
  261. package/expertise/design/platforms/desktop-native.md +612 -0
  262. package/expertise/design/platforms/index.md +25 -0
  263. package/expertise/design/platforms/mobile-android.md +825 -0
  264. package/expertise/design/platforms/mobile-cross-platform.md +983 -0
  265. package/expertise/design/platforms/mobile-ios.md +699 -0
  266. package/expertise/design/platforms/tablet.md +794 -0
  267. package/expertise/design/platforms/web-dashboard.md +790 -0
  268. package/expertise/design/platforms/web-responsive.md +550 -0
  269. package/expertise/design/psychology/behavioral-nudges.md +449 -0
  270. package/expertise/design/psychology/cognitive-load.md +1191 -0
  271. package/expertise/design/psychology/error-psychology.md +778 -0
  272. package/expertise/design/psychology/index.md +22 -0
  273. package/expertise/design/psychology/persuasive-design.md +736 -0
  274. package/expertise/design/psychology/user-mental-models.md +623 -0
  275. package/expertise/design/tooling/open-pencil.md +266 -0
  276. package/expertise/frontend/angular.md +1073 -0
  277. package/expertise/frontend/desktop-electron.md +546 -0
  278. package/expertise/frontend/flutter.md +782 -0
  279. package/expertise/frontend/index.md +27 -0
  280. package/expertise/frontend/native-android.md +409 -0
  281. package/expertise/frontend/native-ios.md +490 -0
  282. package/expertise/frontend/react-native.md +1160 -0
  283. package/expertise/frontend/react.md +808 -0
  284. package/expertise/frontend/vue.md +1089 -0
  285. package/expertise/humanize/domain-rules-code.md +79 -0
  286. package/expertise/humanize/domain-rules-content.md +67 -0
  287. package/expertise/humanize/domain-rules-technical-docs.md +56 -0
  288. package/expertise/humanize/index.md +35 -0
  289. package/expertise/humanize/self-audit-checklist.md +87 -0
  290. package/expertise/humanize/sentence-patterns.md +218 -0
  291. package/expertise/humanize/vocabulary-blacklist.md +105 -0
  292. package/expertise/i18n/PROGRESS.md +65 -0
  293. package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
  294. package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
  295. package/expertise/i18n/advanced/complex-scripts.md +30 -0
  296. package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
  297. package/expertise/i18n/advanced/testing-i18n.md +28 -0
  298. package/expertise/i18n/content/content-adaptation.md +23 -0
  299. package/expertise/i18n/content/locale-specific-formatting.md +23 -0
  300. package/expertise/i18n/content/machine-translation-integration.md +28 -0
  301. package/expertise/i18n/content/translation-management.md +29 -0
  302. package/expertise/i18n/foundations/date-time-calendars.md +67 -0
  303. package/expertise/i18n/foundations/i18n-architecture.md +272 -0
  304. package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
  305. package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
  306. package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
  307. package/expertise/i18n/foundations/string-externalization.md +236 -0
  308. package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
  309. package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
  310. package/expertise/i18n/index.md +38 -0
  311. package/expertise/i18n/platform/backend-i18n.md +31 -0
  312. package/expertise/i18n/platform/flutter-i18n.md +148 -0
  313. package/expertise/i18n/platform/native-android-i18n.md +36 -0
  314. package/expertise/i18n/platform/native-ios-i18n.md +36 -0
  315. package/expertise/i18n/platform/react-i18n.md +103 -0
  316. package/expertise/i18n/platform/web-css-i18n.md +81 -0
  317. package/expertise/i18n/rtl/arabic-specific.md +175 -0
  318. package/expertise/i18n/rtl/hebrew-specific.md +149 -0
  319. package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
  320. package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
  321. package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
  322. package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
  323. package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
  324. package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
  325. package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
  326. package/expertise/i18n/rtl/rtl-typography.md +160 -0
  327. package/expertise/index.md +113 -0
  328. package/expertise/index.yaml +216 -0
  329. package/expertise/infrastructure/cloud-aws.md +597 -0
  330. package/expertise/infrastructure/cloud-gcp.md +599 -0
  331. package/expertise/infrastructure/cybersecurity.md +816 -0
  332. package/expertise/infrastructure/database-mongodb.md +447 -0
  333. package/expertise/infrastructure/database-postgres.md +400 -0
  334. package/expertise/infrastructure/devops-cicd.md +787 -0
  335. package/expertise/infrastructure/index.md +27 -0
  336. package/expertise/performance/PROGRESS.md +50 -0
  337. package/expertise/performance/backend/api-latency.md +1204 -0
  338. package/expertise/performance/backend/background-jobs.md +506 -0
  339. package/expertise/performance/backend/connection-pooling.md +1209 -0
  340. package/expertise/performance/backend/database-query-optimization.md +515 -0
  341. package/expertise/performance/backend/index.md +23 -0
  342. package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
  343. package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
  344. package/expertise/performance/foundations/caching-strategies.md +489 -0
  345. package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
  346. package/expertise/performance/foundations/index.md +24 -0
  347. package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
  348. package/expertise/performance/foundations/memory-management.md +964 -0
  349. package/expertise/performance/foundations/performance-budgets.md +1314 -0
  350. package/expertise/performance/index.md +31 -0
  351. package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
  352. package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
  353. package/expertise/performance/infrastructure/index.md +22 -0
  354. package/expertise/performance/infrastructure/load-balancing.md +1081 -0
  355. package/expertise/performance/infrastructure/observability.md +1079 -0
  356. package/expertise/performance/mobile/index.md +23 -0
  357. package/expertise/performance/mobile/mobile-animations.md +544 -0
  358. package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
  359. package/expertise/performance/mobile/mobile-network.md +452 -0
  360. package/expertise/performance/mobile/mobile-rendering.md +599 -0
  361. package/expertise/performance/mobile/mobile-startup-time.md +505 -0
  362. package/expertise/performance/platform-specific/flutter-performance.md +647 -0
  363. package/expertise/performance/platform-specific/index.md +22 -0
  364. package/expertise/performance/platform-specific/node-performance.md +1307 -0
  365. package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
  366. package/expertise/performance/platform-specific/react-performance.md +1403 -0
  367. package/expertise/performance/web/bundle-optimization.md +1239 -0
  368. package/expertise/performance/web/image-and-media.md +636 -0
  369. package/expertise/performance/web/index.md +24 -0
  370. package/expertise/performance/web/network-optimization.md +1133 -0
  371. package/expertise/performance/web/rendering-performance.md +1098 -0
  372. package/expertise/performance/web/ssr-and-hydration.md +918 -0
  373. package/expertise/performance/web/web-vitals.md +1374 -0
  374. package/expertise/quality/accessibility.md +985 -0
  375. package/expertise/quality/evidence-based-verification.md +499 -0
  376. package/expertise/quality/index.md +24 -0
  377. package/expertise/quality/ml-model-audit.md +614 -0
  378. package/expertise/quality/performance.md +600 -0
  379. package/expertise/quality/testing-api.md +891 -0
  380. package/expertise/quality/testing-mobile.md +496 -0
  381. package/expertise/quality/testing-web.md +849 -0
  382. package/expertise/security/PROGRESS.md +54 -0
  383. package/expertise/security/agentic-identity.md +540 -0
  384. package/expertise/security/compliance-frameworks.md +601 -0
  385. package/expertise/security/data/data-encryption.md +364 -0
  386. package/expertise/security/data/data-privacy-gdpr.md +692 -0
  387. package/expertise/security/data/database-security.md +1171 -0
  388. package/expertise/security/data/index.md +22 -0
  389. package/expertise/security/data/pii-handling.md +531 -0
  390. package/expertise/security/foundations/authentication.md +1041 -0
  391. package/expertise/security/foundations/authorization.md +603 -0
  392. package/expertise/security/foundations/cryptography.md +1001 -0
  393. package/expertise/security/foundations/index.md +25 -0
  394. package/expertise/security/foundations/owasp-top-10.md +1354 -0
  395. package/expertise/security/foundations/secrets-management.md +1217 -0
  396. package/expertise/security/foundations/secure-sdlc.md +700 -0
  397. package/expertise/security/foundations/supply-chain-security.md +698 -0
  398. package/expertise/security/index.md +31 -0
  399. package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
  400. package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
  401. package/expertise/security/infrastructure/container-security.md +721 -0
  402. package/expertise/security/infrastructure/incident-response.md +1295 -0
  403. package/expertise/security/infrastructure/index.md +24 -0
  404. package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
  405. package/expertise/security/infrastructure/network-security.md +1337 -0
  406. package/expertise/security/mobile/index.md +23 -0
  407. package/expertise/security/mobile/mobile-android-security.md +1218 -0
  408. package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
  409. package/expertise/security/mobile/mobile-data-storage.md +1265 -0
  410. package/expertise/security/mobile/mobile-ios-security.md +1401 -0
  411. package/expertise/security/mobile/mobile-network-security.md +1520 -0
  412. package/expertise/security/smart-contract-security.md +594 -0
  413. package/expertise/security/testing/index.md +22 -0
  414. package/expertise/security/testing/penetration-testing.md +1258 -0
  415. package/expertise/security/testing/security-code-review.md +1765 -0
  416. package/expertise/security/testing/threat-modeling.md +1074 -0
  417. package/expertise/security/testing/vulnerability-scanning.md +1062 -0
  418. package/expertise/security/web/api-security.md +586 -0
  419. package/expertise/security/web/cors-and-headers.md +433 -0
  420. package/expertise/security/web/csrf.md +562 -0
  421. package/expertise/security/web/file-upload.md +1477 -0
  422. package/expertise/security/web/index.md +25 -0
  423. package/expertise/security/web/injection.md +1375 -0
  424. package/expertise/security/web/session-management.md +1101 -0
  425. package/expertise/security/web/xss.md +1158 -0
  426. package/exports/README.md +17 -0
  427. package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
  428. package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
  429. package/exports/hosts/claude/.claude/agents/designer.md +55 -0
  430. package/exports/hosts/claude/.claude/agents/executor.md +55 -0
  431. package/exports/hosts/claude/.claude/agents/learner.md +51 -0
  432. package/exports/hosts/claude/.claude/agents/planner.md +53 -0
  433. package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
  434. package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
  435. package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
  436. package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
  437. package/exports/hosts/claude/.claude/commands/author.md +42 -0
  438. package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
  439. package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
  440. package/exports/hosts/claude/.claude/commands/design.md +44 -0
  441. package/exports/hosts/claude/.claude/commands/discover.md +37 -0
  442. package/exports/hosts/claude/.claude/commands/execute.md +48 -0
  443. package/exports/hosts/claude/.claude/commands/learn.md +38 -0
  444. package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
  445. package/exports/hosts/claude/.claude/commands/plan.md +39 -0
  446. package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
  447. package/exports/hosts/claude/.claude/commands/review.md +40 -0
  448. package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
  449. package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
  450. package/exports/hosts/claude/.claude/commands/specify.md +38 -0
  451. package/exports/hosts/claude/.claude/commands/verify.md +37 -0
  452. package/exports/hosts/claude/.claude/settings.json +34 -0
  453. package/exports/hosts/claude/CLAUDE.md +19 -0
  454. package/exports/hosts/claude/export.manifest.json +38 -0
  455. package/exports/hosts/claude/host-package.json +67 -0
  456. package/exports/hosts/codex/AGENTS.md +19 -0
  457. package/exports/hosts/codex/export.manifest.json +38 -0
  458. package/exports/hosts/codex/host-package.json +41 -0
  459. package/exports/hosts/cursor/.cursor/hooks.json +16 -0
  460. package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
  461. package/exports/hosts/cursor/export.manifest.json +38 -0
  462. package/exports/hosts/cursor/host-package.json +42 -0
  463. package/exports/hosts/gemini/GEMINI.md +19 -0
  464. package/exports/hosts/gemini/export.manifest.json +38 -0
  465. package/exports/hosts/gemini/host-package.json +41 -0
  466. package/hooks/README.md +18 -0
  467. package/hooks/definitions/loop_cap_guard.yaml +21 -0
  468. package/hooks/definitions/post_tool_capture.yaml +24 -0
  469. package/hooks/definitions/pre_compact_summary.yaml +19 -0
  470. package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
  471. package/hooks/definitions/protected_path_write_guard.yaml +19 -0
  472. package/hooks/definitions/session_start.yaml +19 -0
  473. package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
  474. package/hooks/loop-cap-guard +17 -0
  475. package/hooks/post-tool-lint +36 -0
  476. package/hooks/protected-path-write-guard +17 -0
  477. package/hooks/session-start +41 -0
  478. package/llms-full.txt +2355 -0
  479. package/llms.txt +43 -0
  480. package/package.json +79 -0
  481. package/roles/README.md +20 -0
  482. package/roles/clarifier.md +42 -0
  483. package/roles/content-author.md +63 -0
  484. package/roles/designer.md +55 -0
  485. package/roles/executor.md +55 -0
  486. package/roles/learner.md +51 -0
  487. package/roles/planner.md +53 -0
  488. package/roles/researcher.md +43 -0
  489. package/roles/reviewer.md +54 -0
  490. package/roles/specifier.md +47 -0
  491. package/roles/verifier.md +71 -0
  492. package/schemas/README.md +24 -0
  493. package/schemas/accepted-learning.schema.json +20 -0
  494. package/schemas/author-artifact.schema.json +156 -0
  495. package/schemas/clarification.schema.json +19 -0
  496. package/schemas/design-artifact.schema.json +80 -0
  497. package/schemas/docs-claim.schema.json +18 -0
  498. package/schemas/export-manifest.schema.json +20 -0
  499. package/schemas/hook.schema.json +67 -0
  500. package/schemas/host-export-package.schema.json +18 -0
  501. package/schemas/implementation-plan.schema.json +19 -0
  502. package/schemas/proposed-learning.schema.json +19 -0
  503. package/schemas/research.schema.json +18 -0
  504. package/schemas/review.schema.json +29 -0
  505. package/schemas/run-manifest.schema.json +18 -0
  506. package/schemas/spec-challenge.schema.json +18 -0
  507. package/schemas/spec.schema.json +20 -0
  508. package/schemas/usage.schema.json +102 -0
  509. package/schemas/verification-proof.schema.json +29 -0
  510. package/schemas/wazir-manifest.schema.json +173 -0
  511. package/skills/README.md +40 -0
  512. package/skills/brainstorming/SKILL.md +77 -0
  513. package/skills/debugging/SKILL.md +50 -0
  514. package/skills/design/SKILL.md +61 -0
  515. package/skills/dispatching-parallel-agents/SKILL.md +128 -0
  516. package/skills/executing-plans/SKILL.md +70 -0
  517. package/skills/finishing-a-development-branch/SKILL.md +169 -0
  518. package/skills/humanize/SKILL.md +123 -0
  519. package/skills/init-pipeline/SKILL.md +124 -0
  520. package/skills/prepare-next/SKILL.md +20 -0
  521. package/skills/receiving-code-review/SKILL.md +123 -0
  522. package/skills/requesting-code-review/SKILL.md +105 -0
  523. package/skills/requesting-code-review/code-reviewer.md +108 -0
  524. package/skills/run-audit/SKILL.md +197 -0
  525. package/skills/scan-project/SKILL.md +41 -0
  526. package/skills/self-audit/SKILL.md +153 -0
  527. package/skills/subagent-driven-development/SKILL.md +154 -0
  528. package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
  529. package/skills/subagent-driven-development/implementer-prompt.md +102 -0
  530. package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
  531. package/skills/tdd/SKILL.md +23 -0
  532. package/skills/using-git-worktrees/SKILL.md +163 -0
  533. package/skills/using-skills/SKILL.md +95 -0
  534. package/skills/verification/SKILL.md +22 -0
  535. package/skills/wazir/SKILL.md +463 -0
  536. package/skills/writing-plans/SKILL.md +30 -0
  537. package/skills/writing-skills/SKILL.md +157 -0
  538. package/skills/writing-skills/anthropic-best-practices.md +122 -0
  539. package/skills/writing-skills/persuasion-principles.md +50 -0
  540. package/templates/README.md +20 -0
  541. package/templates/artifacts/README.md +10 -0
  542. package/templates/artifacts/accepted-learning.md +19 -0
  543. package/templates/artifacts/accepted-learning.template.json +12 -0
  544. package/templates/artifacts/author.md +74 -0
  545. package/templates/artifacts/author.template.json +19 -0
  546. package/templates/artifacts/clarification.md +21 -0
  547. package/templates/artifacts/clarification.template.json +12 -0
  548. package/templates/artifacts/execute-notes.md +19 -0
  549. package/templates/artifacts/implementation-plan.md +21 -0
  550. package/templates/artifacts/implementation-plan.template.json +11 -0
  551. package/templates/artifacts/learning-proposal.md +19 -0
  552. package/templates/artifacts/next-run-handoff.md +21 -0
  553. package/templates/artifacts/plan-review.md +19 -0
  554. package/templates/artifacts/proposed-learning.template.json +12 -0
  555. package/templates/artifacts/research.md +21 -0
  556. package/templates/artifacts/research.template.json +12 -0
  557. package/templates/artifacts/review-findings.md +19 -0
  558. package/templates/artifacts/review.template.json +11 -0
  559. package/templates/artifacts/run-manifest.template.json +8 -0
  560. package/templates/artifacts/spec-challenge.md +19 -0
  561. package/templates/artifacts/spec-challenge.template.json +11 -0
  562. package/templates/artifacts/spec.md +21 -0
  563. package/templates/artifacts/spec.template.json +12 -0
  564. package/templates/artifacts/verification-proof.md +19 -0
  565. package/templates/artifacts/verification-proof.template.json +11 -0
  566. package/templates/examples/accepted-learning.example.json +14 -0
  567. package/templates/examples/author.example.json +152 -0
  568. package/templates/examples/clarification.example.json +15 -0
  569. package/templates/examples/docs-claim.example.json +8 -0
  570. package/templates/examples/export-manifest.example.json +7 -0
  571. package/templates/examples/host-export-package.example.json +11 -0
  572. package/templates/examples/implementation-plan.example.json +17 -0
  573. package/templates/examples/proposed-learning.example.json +13 -0
  574. package/templates/examples/research.example.json +15 -0
  575. package/templates/examples/research.example.md +6 -0
  576. package/templates/examples/review.example.json +17 -0
  577. package/templates/examples/run-manifest.example.json +9 -0
  578. package/templates/examples/spec-challenge.example.json +14 -0
  579. package/templates/examples/spec.example.json +21 -0
  580. package/templates/examples/verification-proof.example.json +21 -0
  581. package/templates/examples/wazir-manifest.example.yaml +65 -0
  582. package/templates/task-definition-schema.md +99 -0
  583. package/tooling/README.md +20 -0
  584. package/tooling/src/adapters/context-mode.js +50 -0
  585. package/tooling/src/capture/command.js +376 -0
  586. package/tooling/src/capture/store.js +99 -0
  587. package/tooling/src/capture/usage.js +270 -0
  588. package/tooling/src/checks/branches.js +50 -0
  589. package/tooling/src/checks/brand-truth.js +110 -0
  590. package/tooling/src/checks/changelog.js +231 -0
  591. package/tooling/src/checks/command-registry.js +36 -0
  592. package/tooling/src/checks/commits.js +102 -0
  593. package/tooling/src/checks/docs-drift.js +103 -0
  594. package/tooling/src/checks/docs-truth.js +201 -0
  595. package/tooling/src/checks/runtime-surface.js +156 -0
  596. package/tooling/src/cli.js +116 -0
  597. package/tooling/src/command-options.js +56 -0
  598. package/tooling/src/commands/validate.js +320 -0
  599. package/tooling/src/doctor/command.js +91 -0
  600. package/tooling/src/export/command.js +77 -0
  601. package/tooling/src/export/compiler.js +498 -0
  602. package/tooling/src/guards/loop-cap-guard.js +52 -0
  603. package/tooling/src/guards/protected-path-write-guard.js +67 -0
  604. package/tooling/src/index/command.js +152 -0
  605. package/tooling/src/index/storage.js +1061 -0
  606. package/tooling/src/index/summarizers.js +261 -0
  607. package/tooling/src/loaders.js +18 -0
  608. package/tooling/src/project-root.js +22 -0
  609. package/tooling/src/recall/command.js +225 -0
  610. package/tooling/src/schema-validator.js +30 -0
  611. package/tooling/src/state-root.js +40 -0
  612. package/tooling/src/status/command.js +71 -0
  613. package/wazir.manifest.yaml +135 -0
  614. package/workflows/README.md +19 -0
  615. package/workflows/author.md +42 -0
  616. package/workflows/clarify.md +38 -0
  617. package/workflows/design-review.md +46 -0
  618. package/workflows/design.md +44 -0
  619. package/workflows/discover.md +37 -0
  620. package/workflows/execute.md +48 -0
  621. package/workflows/learn.md +38 -0
  622. package/workflows/plan-review.md +42 -0
  623. package/workflows/plan.md +39 -0
  624. package/workflows/prepare-next.md +37 -0
  625. package/workflows/review.md +40 -0
  626. package/workflows/run-audit.md +41 -0
  627. package/workflows/spec-challenge.md +41 -0
  628. package/workflows/specify.md +38 -0
  629. package/workflows/verify.md +37 -0
@@ -0,0 +1,607 @@
1
+ # Spacing and Layout — Foundation Expertise Module
2
+
3
+ > Spacing and layout form the structural backbone of every user interface. Proper spacing creates visual rhythm, establishes hierarchy, groups related elements, and guides the user's eye through content. This module covers spacing scales, grid systems, platform-specific conventions, responsive strategies, and common pitfalls — grounded in principles from Material Design 3, Apple Human Interface Guidelines, and Ant Design.
4
+
5
+ ---
6
+
7
+ ## 1. Core Principles
8
+
9
+ ### 1.1 Spacing Scales — The 4px Base Unit
10
+
11
+ A spacing scale is a predefined set of values used consistently across an entire product. The industry standard base unit is **4px**, which produces the following scale:
12
+
13
+ | Token | Value | Common Use |
14
+ |---------|-------|--------------------------------------------------|
15
+ | space-1 | 4px | Inline icon-to-label gap, tight optical tweaks |
16
+ | space-2 | 8px | Related element gap, list item padding |
17
+ | space-3 | 12px | Form field internal padding, small card padding |
18
+ | space-4 | 16px | Standard padding, section sub-spacing |
19
+ | space-6 | 24px | Card-to-card gap, intra-section spacing |
20
+ | space-8 | 32px | Section dividers, group-to-group gap |
21
+ | space-12| 48px | Major section breaks, hero padding |
22
+ | space-16| 64px | Page-level vertical padding, feature blocks |
23
+ | space-24| 96px | Hero section vertical padding, landing pages |
24
+
25
+ **Why 4px?** Four divides evenly into most screen densities. Android uses density-independent pixels (dp) where 1dp = 1px at 160dpi. iOS uses points (pt) where 1pt = 1px at 1x, 2px at 2x Retina, 3px at 3x. A 4px base unit scales cleanly at all these ratios without introducing sub-pixel rounding artifacts.
26
+
27
+ **Naming conventions vary across systems:**
28
+ - Material Design uses numeric tokens (e.g., `md.sys.spacing.4` = 16dp)
29
+ - Tailwind CSS uses a multiplier scale (e.g., `p-4` = 16px, where 1 unit = 4px)
30
+ - Ant Design recommends gutter values of `(16 + 8n)px` for grid spacing
31
+
32
+ ### 1.2 The 8-Point Grid System
33
+
34
+ The 8-point grid constrains all spatial decisions — element sizes, padding, margins, gaps — to multiples of 8px (with 4px as a permitted half-step for fine-grained adjustments).
35
+
36
+ **Why 8px works:**
37
+
38
+ 1. **Mathematical harmony.** 8 is divisible by 2 and 4, producing clean half-values (4px) and quarter-values (2px) without fractional pixels.
39
+ 2. **Device alignment.** Common screen resolutions (360, 375, 390, 412, 768, 1024, 1280, 1440, 1920) divide evenly or near-evenly by 8.
40
+ 3. **Industry adoption.** Both Google (Material Design) and Apple (HIG) recommend 8-point grids, making it the de facto standard for cross-platform consistency.
41
+ 4. **Decision reduction.** A constrained scale prevents the "should it be 13px or 15px?" bikeshedding that slows design and code review.
42
+ 5. **Developer alignment.** When designers and developers both use the same 8px grid, handoff friction drops significantly.
43
+
44
+ **When to use 4px instead of 8px:**
45
+ - Icon-to-text gaps within a single component (e.g., a button with an icon)
46
+ - Baseline grid alignment for typography
47
+ - Optical adjustments where 8px is visibly too much or too little
48
+ - Dense data tables where rows need tighter vertical spacing
49
+
50
+ ### 1.3 Gestalt Proximity Principle
51
+
52
+ The law of proximity states: **elements placed near each other are perceived as belonging to the same group**, regardless of differences in shape, color, or size. This is the most fundamental spatial principle in UI design.
53
+
54
+ **Practical application — the spacing hierarchy:**
55
+
56
+ ```
57
+ Tightest ──→ Loosest
58
+
59
+ Within component < Between components < Between groups < Between sections
60
+ 4-8px 12-16px 24-32px 32-64px
61
+ ```
62
+
63
+ **The internal ≤ external rule:**
64
+ The spacing inside a component (padding) must be less than or equal to the spacing outside it (margin). This ensures the component reads as a cohesive unit rather than bleeding into its neighbors.
65
+
66
+ ```
67
+ ┌────────────────────┐ ┌────────────────────┐
68
+ │ padding: 12px │ gap: │ padding: 12px │
69
+ │ │ 24px │ │
70
+ │ Card Content │ ◄─────► │ Card Content │
71
+ │ │ │ │
72
+ └────────────────────┘ └────────────────────┘
73
+
74
+ Internal (12px) ≤ External (24px) ✓ Correct — cards are distinct units
75
+ ```
76
+
77
+ **Violation example:**
78
+ If card padding is 24px but the gap between cards is only 8px, the eye cannot distinguish where one card ends and the next begins. The content appears to float in a single undifferentiated block.
79
+
80
+ ### 1.4 Content Density Levels
81
+
82
+ Different use cases demand different density strategies. The three standard levels are:
83
+
84
+ | Level | Typical Row Height | Padding Scale | Best For |
85
+ |-------------|-------------------|---------------|--------------------------------------------------|
86
+ | Compact | 32-36px | 4-8px | Data tables, admin dashboards, power-user tools |
87
+ | Comfortable | 40-48px | 8-16px | Default for most apps, balanced readability |
88
+ | Spacious | 56-72px | 16-24px | Marketing pages, onboarding, reading-focused apps |
89
+
90
+ **When to use each:**
91
+
92
+ - **Compact:** Enterprise dashboards, trading platforms, email clients, spreadsheet-like views. Users are expert-level, use mouse/keyboard, and need to see many rows simultaneously. SAP Fiori and AWS Cloudscape both provide explicit "compact" density toggles for these cases.
93
+ - **Comfortable:** The default for consumer apps, standard SaaS products, and most mobile experiences. Targets the widest range of users and input methods. Material Design and Apple HIG defaults operate at this level.
94
+ - **Spacious:** Landing pages, editorial content, onboarding flows, and accessibility-focused experiences. Prioritizes readability and reduced cognitive load over information density.
95
+
96
+ **Accessibility consideration:** Always default to comfortable density. Compact density reduces target sizes and whitespace, which hinders users with motor impairments or vision difficulties. If offering a compact mode, make it opt-in and clearly labeled.
97
+
98
+ ### 1.5 Layout Grids
99
+
100
+ Layout grids provide the structural scaffolding for placing content consistently across screen sizes.
101
+
102
+ **Column grids by platform:**
103
+
104
+ | Platform | Columns | Gutter | Margin | Typical Container Max-Width |
105
+ |-------------------|---------|----------|----------|-----------------------------|
106
+ | Mobile (phone) | 4 | 16px | 16px | Full-width (fluid) |
107
+ | Tablet (portrait) | 8 | 16-24px | 24px | Full-width (fluid) |
108
+ | Tablet (landscape)| 12 | 24px | 24-32px | Full-width or 960px |
109
+ | Desktop | 12 | 24-32px | 24-64px | 1140-1440px |
110
+ | Large desktop | 12-16 | 32px | 64px+ | 1440-1920px |
111
+
112
+ **Material Design 3 window size classes:**
113
+
114
+ | Class | Width Range | Columns | Typical Devices |
115
+ |-------------|---------------|---------|----------------------------------|
116
+ | Compact | 0-599dp | 4 | Phone portrait |
117
+ | Medium | 600-839dp | 8 | Tablet portrait, foldable |
118
+ | Expanded | 840-1199dp | 12 | Tablet landscape, small desktop |
119
+ | Large | 1200-1599dp | 12 | Desktop |
120
+ | Extra-large | 1600dp+ | 12-16 | Large desktop, connected displays|
121
+
122
+ **Ant Design's 24-column grid:**
123
+ Ant Design uses a 24-column fluid grid (instead of the more common 12-column system) because it provides finer-grained control over column widths. With 24 columns, you can create thirds (8 cols), quarters (6 cols), sixths (4 cols), eighths (3 cols), and twelfths (2 cols) without any fractional math. Their recommended gutter formula is `(16 + 8n)px` where `n` is a natural number, yielding responsive values like `{ xs: 8, sm: 16, md: 24, lg: 32 }`.
124
+
125
+ ### 1.6 Gutters, Margins, and Padding Conventions
126
+
127
+ These three spatial concepts serve distinct purposes:
128
+
129
+ - **Margin:** The space between the screen edge and the content area. Creates breathing room and prevents content from touching device bezels.
130
+ - **Gutter:** The space between grid columns. Prevents adjacent columns of content from visually merging.
131
+ - **Padding:** The space inside a component, between its boundary and its content.
132
+
133
+ **Platform-specific conventions:**
134
+
135
+ | Platform | Default Margin | Default Gutter | Component Padding |
136
+ |-----------|-------------------|----------------|--------------------|
137
+ | iOS | 16pt | 8-16pt | 12-16pt |
138
+ | Android | 16dp | 8-16dp | 12-16dp |
139
+ | Web | 16-24px (mobile), 24-64px (desktop) | 16-32px | 12-24px |
140
+ | Desktop | 24-64px | 16-32px | 12-24px |
141
+
142
+ **Margin scaling pattern:**
143
+ As screens get larger, margins should increase proportionally to prevent content from stretching uncomfortably wide. A common pattern:
144
+ - Mobile: 16px fixed margins
145
+ - Tablet: 24-32px fixed margins
146
+ - Desktop: Fluid margins that center a max-width container (1140-1440px)
147
+ - Large desktop: Wider margins, content remains at max-width
148
+
149
+ ### 1.7 Aspect Ratios for Media
150
+
151
+ Maintaining consistent aspect ratios prevents visual jank during image loading and ensures predictable layouts.
152
+
153
+ | Ratio | Decimal | Common Use |
154
+ |-------|---------|------------------------------------------------------|
155
+ | 16:9 | 1.778 | Hero images, video players, widescreen thumbnails |
156
+ | 4:3 | 1.333 | Product images, legacy video, photo galleries |
157
+ | 3:2 | 1.500 | Photography, article feature images |
158
+ | 1:1 | 1.000 | Avatars, profile photos, product thumbnails, icons |
159
+ | 2:3 | 0.667 | Portrait cards, book covers, movie posters |
160
+ | 9:16 | 0.563 | Stories, reels, vertical video |
161
+ | 21:9 | 2.333 | Ultra-wide hero banners, cinematic backgrounds |
162
+
163
+ **Implementation best practice:** Use the CSS `aspect-ratio` property (supported in all modern browsers) rather than the older padding-bottom hack:
164
+
165
+ ```css
166
+ /* Modern approach */
167
+ .hero-image {
168
+ aspect-ratio: 16 / 9;
169
+ width: 100%;
170
+ object-fit: cover;
171
+ }
172
+
173
+ /* Legacy approach (avoid if possible) */
174
+ .hero-wrapper {
175
+ position: relative;
176
+ padding-bottom: 56.25%; /* 9/16 = 0.5625 */
177
+ }
178
+ ```
179
+
180
+ ### 1.8 Responsive Spacing — Fixed vs Fluid vs Hybrid
181
+
182
+ Three strategies exist for adapting spacing across screen sizes:
183
+
184
+ **Fixed spacing:** Values remain constant regardless of viewport. A 16px gap is always 16px.
185
+ - Pros: Predictable, simple to implement and debug.
186
+ - Cons: Can feel too tight on large screens or too loose on small screens.
187
+ - Best for: Component-internal spacing that should not change (e.g., icon-to-text gap).
188
+
189
+ **Fluid spacing:** Values scale proportionally with the viewport using `vw`, `vh`, `clamp()`, or CSS `calc()`.
190
+ - Pros: Seamless scaling, no abrupt layout shifts.
191
+ - Cons: Harder to reason about, can produce unexpected values at extreme viewport sizes.
192
+ - Best for: Hero padding, section margins, large typographic spacing.
193
+
194
+ ```css
195
+ /* Fluid spacing with clamp — scales between 24px and 64px */
196
+ .section {
197
+ padding-block: clamp(24px, 4vw, 64px);
198
+ }
199
+ ```
200
+
201
+ **Hybrid spacing (recommended for most projects):**
202
+ - Component-internal spacing: Fixed (8px, 12px, 16px stay constant).
203
+ - Component-external spacing: Fixed at breakpoints, steps up at each breakpoint.
204
+ - Section/page-level spacing: Fluid or stepped (clamp between min and max values).
205
+
206
+ ### 1.9 Container Queries vs Media Queries
207
+
208
+ **Media queries** ask: "How wide is the viewport?"
209
+ **Container queries** ask: "How wide is my parent container?"
210
+
211
+ | Aspect | Media Queries | Container Queries |
212
+ |---------------------|-----------------------------------|--------------------------------------|
213
+ | Responds to | Viewport (window) size | Parent container size |
214
+ | Scope | Global — affects page layout | Local — affects component layout |
215
+ | Reusability | Component layout tied to page | Component layout is self-contained |
216
+ | Browser support | Universal (IE9+) | 93%+ global support (Dec 2025) |
217
+ | Best for | Page-level layout shifts | Component-level adaptation |
218
+
219
+ **Mental model:**
220
+ - Use **media queries** to decide how many columns your page has, whether the sidebar is visible, and whether navigation collapses to a hamburger menu.
221
+ - Use **container queries** to let a card component decide whether to show its image on the left or on top, whether to truncate its description, or whether to stack its actions vertically — all based on how much space it actually has, not the viewport.
222
+
223
+ ```css
224
+ /* Page-level: media query */
225
+ @media (min-width: 768px) {
226
+ .page-grid { grid-template-columns: 240px 1fr; }
227
+ }
228
+
229
+ /* Component-level: container query */
230
+ .card-wrapper { container-type: inline-size; }
231
+
232
+ @container (min-width: 400px) {
233
+ .card { flex-direction: row; }
234
+ }
235
+ @container (max-width: 399px) {
236
+ .card { flex-direction: column; }
237
+ }
238
+ ```
239
+
240
+ **Best practice for 2025+:** Use both. Media queries for page scaffolding, container queries for component internals. This produces truly portable components that work correctly regardless of where they are placed in a layout.
241
+
242
+ ---
243
+
244
+ ## 2. Do's and Don'ts
245
+
246
+ ### 2.1 Do's
247
+
248
+ 1. **Do use a consistent spacing scale.** Pick a base unit (4px or 8px) and derive all spacing from it. Never use arbitrary values like 13px or 7px. Every spacing value in your system should be a multiple of 4.
249
+
250
+ 2. **Do keep component internal padding smaller than external margins.** A card with 16px padding should have at least 16px (preferably 24px) gap between sibling cards. This is the internal ≤ external rule rooted in Gestalt proximity.
251
+
252
+ 3. **Do use 16px horizontal margins on mobile.** Both iOS (16pt) and Android (16dp) standardize on this value. It is the minimum needed to prevent content from touching screen edges.
253
+
254
+ 4. **Do provide 24-32px gap between card groups on mobile and 32-48px on desktop.** Within a card, use 12-16px padding. This creates clear visual separation between groups while keeping card content cohesive.
255
+
256
+ 5. **Do set a max-width container for web content.** Use 1140-1440px for the main content area. Text blocks should be constrained further — 600-800px (approximately 60-80 characters per line) for optimal readability.
257
+
258
+ 6. **Do increase vertical spacing between sections as screen size grows.** Use 32-48px section spacing on mobile, 48-64px on tablet, and 64-96px on desktop. This prevents the "wall of content" feeling on large screens.
259
+
260
+ 7. **Do use at least 8px gap between interactive elements.** WCAG 2.5.8 requires a minimum 24x24px target size for touch targets, and sufficient spacing prevents accidental taps on adjacent elements.
261
+
262
+ 8. **Do apply consistent vertical rhythm.** Stack elements using one or two spacing values (e.g., 8px within groups, 24px between groups). Avoid mixing three or more different vertical gaps in a single section.
263
+
264
+ 9. **Do use CSS `gap` for flex and grid layouts.** It separates the concern of spacing from the components themselves, making layouts easier to maintain than margins on individual elements.
265
+
266
+ 10. **Do account for safe areas on devices with notches, Dynamic Island, or home indicators.** On iOS, use `safeAreaInset`. On Android 15+, use `WindowInsets.safeDrawing`. On web, use `env(safe-area-inset-top)` and related values.
267
+
268
+ 11. **Do use the `aspect-ratio` CSS property for media containers.** It prevents layout shift (CLS) during image loading and keeps proportions correct across breakpoints.
269
+
270
+ 12. **Do test spacing at both extremes: 320px mobile and 2560px ultra-wide.** Spacing that looks perfect at 1440px often breaks at these extremes. Use `clamp()` for fluid spacing.
271
+
272
+ 13. **Do apply tighter spacing (compact density) only for expert-user interfaces operated with mouse/keyboard.** Data tables, admin panels, and IDE-like tools can use 4-8px row padding. Consumer-facing interfaces should default to comfortable density (8-16px).
273
+
274
+ 14. **Do use consistent gutter width across all columns in a grid.** A 12-column grid with 24px gutters means every gutter is 24px. Never vary gutter size within the same grid.
275
+
276
+ 15. **Do define spacing tokens in your design system.** Name them semantically (e.g., `spacing-xs`, `spacing-sm`, `spacing-md`, `spacing-lg`, `spacing-xl`) or numerically (e.g., `space-2`, `space-4`, `space-8`). Tokens prevent magic numbers in code.
277
+
278
+ ### 2.2 Don'ts
279
+
280
+ 1. **Don't use arbitrary spacing values.** Values like 5px, 7px, 13px, 15px, 17px, or 22px break grid alignment and make the interface feel unpolished. Stick to multiples of 4px.
281
+
282
+ 2. **Don't apply the same spacing everywhere.** If every gap is 16px — between icon and label, between form fields, between sections — the layout has no hierarchy. Vary spacing intentionally to create grouping.
283
+
284
+ 3. **Don't let text run full-width on desktop.** Lines exceeding 80 characters per line (approximately 800px at 16px font size) drastically reduce readability. Always constrain text containers.
285
+
286
+ 4. **Don't ignore safe areas.** Content obscured by the notch, Dynamic Island, home indicator, or rounded corners frustrates users and looks broken. This is the single most common layout bug on modern phones.
287
+
288
+ 5. **Don't set margins on both sides of a spacing relationship.** Use gap in flex/grid layouts, or apply margin-bottom on all siblings except the last (`:last-child` reset). Double margins (margin-right on element A + margin-left on element B) cause compounding and inconsistency.
289
+
290
+ 6. **Don't hard-code pixel breakpoints in dozens of places.** Define breakpoints as design tokens or CSS custom properties. When you need to adjust a breakpoint, change it in one place.
291
+
292
+ 7. **Don't confuse padding with margin.** Padding is inside the element boundary (background/border). Margin is outside. Using margin when you mean padding (or vice versa) causes layout shifts, broken backgrounds, and inconsistent click/tap areas.
293
+
294
+ 8. **Don't use negative margins to fix layout issues.** Negative margins are a symptom of incorrect structural layout. Fix the grid, flexbox, or container instead.
295
+
296
+ 9. **Don't make touch targets smaller than 44x44pt (iOS) or 48x48dp (Android).** Even if the visual element is smaller (e.g., a 24px icon), the tappable area must meet minimum size requirements. WCAG 2.5.5 (AAA) specifies 44x44 CSS pixels.
297
+
298
+ 10. **Don't rely solely on spacing to separate content.** Combine spacing with visual dividers (lines, background color changes, elevation/shadow) for maximum clarity, especially in dense interfaces.
299
+
300
+ 11. **Don't scale spacing linearly with viewport width.** A section that has 32px padding on mobile should not have 320px padding on a 3200px ultra-wide. Use `clamp()` to cap both minimum and maximum values.
301
+
302
+ 12. **Don't put zero gap between clickable list items.** A 0px gap between tappable rows causes accidental taps on the wrong item. Use at least 1px divider or 4-8px vertical padding.
303
+
304
+ 13. **Don't assume desktop spacing works on mobile.** A 48px section gap that feels right on desktop can consume too much precious vertical space on a 667px-tall phone screen. Always test at mobile viewport heights, not just widths.
305
+
306
+ 14. **Don't use percentage-based padding for components.** Padding of `5%` on a component inside a 400px container is 20px, but inside a 1400px container it's 70px. Component padding should be fixed; layout margins can be fluid.
307
+
308
+ ---
309
+
310
+ ## 3. Platform Variations
311
+
312
+ ### 3.1 iOS (Apple Human Interface Guidelines)
313
+
314
+ **Core spatial values:**
315
+ - Standard margin: **16pt** on iPhone, **20pt** on iPad
316
+ - Spacing scale: Multiples of 8pt (8, 16, 24, 32, 40, 48)
317
+ - Navigation bar height: 44pt (standard), 96pt (large title)
318
+ - Tab bar height: 49pt (standard), 83pt (with home indicator region)
319
+ - Minimum touch target: **44x44pt**
320
+
321
+ **Safe areas:**
322
+ iOS devices with Face ID, Dynamic Island, or rounded corners define safe area insets that content must respect. Common inset values:
323
+ - Status bar (top): 54pt (iPhone 15/16 with Dynamic Island)
324
+ - Home indicator (bottom): 34pt
325
+ - Rounded corners: approximately 47pt radius on recent iPhones
326
+
327
+ **Layout guidance:**
328
+ - Use `UILayoutGuide` / SwiftUI `safeAreaInset` to keep content clear of system UI
329
+ - `readableContentGuide` constrains text to a comfortable width (approximately 672pt max)
330
+ - On iPad, use sidebar navigation (320pt wide) with split view layouts
331
+ - Support both portrait and landscape orientations
332
+ - As of iOS 17, use `safeAreaPadding` for simpler safe area adjustments in SwiftUI
333
+
334
+ **Key patterns:**
335
+ - Full-width cards with 16pt horizontal padding and 12pt internal padding
336
+ - Grouped table views with 35pt section headers and 20pt section footer spacing
337
+ - Modal sheets with 16pt edge padding and 24pt top padding from the drag indicator
338
+
339
+ ### 3.2 Android (Material Design 3)
340
+
341
+ **Core spatial values:**
342
+ - Standard margin: **16dp** on phone, **24dp** on tablet
343
+ - Grid: 8dp baseline grid, 4dp for fine adjustments
344
+ - App bar height: 64dp (standard), 56dp (dense)
345
+ - Bottom navigation height: 80dp
346
+ - Minimum touch target: **48x48dp**
347
+ - FAB size: 56dp (standard), 40dp (small), 96dp (large)
348
+
349
+ **Edge-to-edge displays (Android 15+):**
350
+ Starting with Android 15 (API 35), edge-to-edge is mandatory. Apps draw behind the status bar and navigation bar. Key considerations:
351
+ - Use `WindowInsets.systemBars` to add padding that avoids system UI
352
+ - Use `WindowInsets.safeDrawing` for content that must not be obscured
353
+ - Use `WindowInsets.safeGestures` to avoid conflict with system gesture zones
354
+ - Background colors and images should extend edge-to-edge
355
+ - Interactive content and text must be inset within safe areas
356
+
357
+ **Material Design 3 layout panes:**
358
+ - Single pane: Compact screens (0-599dp)
359
+ - Two panes: Medium/Expanded screens (600dp+), using list-detail or supporting panel
360
+ - Pane separator (spacer): 24dp between panes
361
+
362
+ **Key patterns:**
363
+ - Card elevation: use 1dp-8dp shadow/tonal elevation
364
+ - Card padding: 16dp
365
+ - List item height: 56dp (single line), 72dp (two lines), 88dp (three lines)
366
+ - Between list groups: 8dp divider with 16dp indent
367
+
368
+ ### 3.3 Web
369
+
370
+ **Container strategies:**
371
+ The most common approach uses a centered max-width container:
372
+
373
+ | Container Type | Max-Width | Use Case |
374
+ |--------------------|-------------|--------------------------------------|
375
+ | Narrow content | 640-768px | Blog posts, articles, documentation |
376
+ | Standard content | 1140-1200px | SaaS dashboards, app layouts |
377
+ | Wide content | 1320-1440px | Marketing pages, portfolio sites |
378
+ | Full-width | 100% | Hero sections, full-bleed media |
379
+
380
+ **Common breakpoints (2025 consensus):**
381
+
382
+ | Name | Min-Width | Target |
383
+ |-------------|-----------|-------------------------------|
384
+ | xs | 0px | Small phones (portrait) |
385
+ | sm | 480px | Large phones (landscape) |
386
+ | md | 768px | Tablets (portrait) |
387
+ | lg | 1024px | Tablets (landscape), laptops |
388
+ | xl | 1280px | Desktops |
389
+ | 2xl | 1536px | Large desktops, 4K displays |
390
+
391
+ **CSS layout tools:**
392
+ - Use **CSS Grid** for 2D page-level layouts (columns + rows)
393
+ - Use **Flexbox** for 1D component-level layouts (rows or columns)
394
+ - Use **CSS `gap`** property instead of margins for grid/flex children
395
+ - Use **`clamp()`** for fluid typography and spacing
396
+ - Use **container queries** for component-level responsive design
397
+
398
+ **Web-specific spacing patterns:**
399
+ - Page horizontal padding: `clamp(16px, 4vw, 64px)`
400
+ - Section vertical spacing: `clamp(48px, 8vw, 96px)`
401
+ - Card grid gap: 16px (mobile), 24px (tablet), 32px (desktop)
402
+ - Form field vertical gap: 16-24px
403
+ - Button group gap: 8-12px
404
+
405
+ ### 3.4 Desktop Applications
406
+
407
+ **Key differences from web and mobile:**
408
+ - Users sit closer to the screen, enabling denser information display
409
+ - Mouse and keyboard input allows smaller click targets (minimum 24x24px, recommended 32x32px)
410
+ - Multiple windows may be visible simultaneously, so layouts must work at arbitrary dimensions
411
+ - Higher resolution displays (2x, 3x) are common, requiring assets and spacing that scale cleanly
412
+
413
+ **Windows (Fluent Design):**
414
+ - Standard item height: 40px (standard sizing), 32px (compact sizing)
415
+ - Margins: 16px minimum, 24-48px for main content areas
416
+ - Tree view indent: 12px per level
417
+ - Standard spacing: Multiples of 4px
418
+
419
+ **macOS (Apple HIG):**
420
+ - Standard sidebar width: 200-280pt
421
+ - Toolbar height: 38pt (unified), 52pt (expanded)
422
+ - Content padding: 20pt standard
423
+ - Control spacing: 8pt between related, 20pt between groups
424
+
425
+ **Cross-platform desktop guidance:**
426
+ - Default to comfortable density; offer compact mode for power users
427
+ - Use split/panel layouts with resizable dividers (minimum pane width: 200px)
428
+ - Preserve layout state (panel widths, scroll position) across sessions
429
+ - Account for window chrome (title bar, menu bar) in layout calculations
430
+
431
+ ---
432
+
433
+ ## 4. Common Mistakes in AI-Generated Designs
434
+
435
+ AI design tools and code generators frequently produce layouts with systematic spacing errors. Understanding these patterns helps designers and developers quickly identify and correct them.
436
+
437
+ ### 4.1 Inconsistent Spacing
438
+
439
+ **Problem:** AI often applies different spacing values for the same relationship type. One card has 12px padding, the next has 18px, a third has 14px. Section gaps alternate between 30px and 42px with no pattern.
440
+
441
+ **Detection:** Inspect spacing values across all instances of the same component or relationship type. If you find more than 2-3 distinct values where there should be 1, the spacing is inconsistent.
442
+
443
+ **Fix:** Audit all spacing values and map them to the nearest value on your 4px/8px scale. Apply design tokens so every instance of "card padding" uses the same token.
444
+
445
+ ### 4.2 Spacing That Is Too Tight or Too Loose
446
+
447
+ **Problem:** AI-generated layouts frequently err in one of two directions:
448
+ - **Too tight:** Content crammed together with minimal breathing room, especially on desktop where screens are large. Common when AI optimizes for "fitting everything above the fold."
449
+ - **Too loose:** Excessive whitespace that forces unnecessary scrolling, especially on mobile. Common when AI applies desktop spacing values to mobile layouts without adaptation.
450
+
451
+ **Detection:** Compare the spacing to platform defaults. If a mobile card has 32px padding and 48px gaps, it's too loose. If a desktop dashboard has 4px gaps between data panels, it's too tight.
452
+
453
+ **Fix:** Refer to platform spacing conventions in Section 3. Mobile cards typically use 12-16px padding with 16-24px gaps. Desktop dashboards use 16-24px padding with 24-32px gaps.
454
+
455
+ ### 4.3 Ignoring Safe Areas
456
+
457
+ **Problem:** AI-generated mobile layouts routinely place content behind the status bar, notch, Dynamic Island, home indicator, and rounded corners. This is the most visually jarring mistake and the easiest to identify.
458
+
459
+ **Detection:** Overlay the device's safe area template on the generated design. Any content that falls outside the safe area boundary is a violation.
460
+
461
+ **Fix:** Apply platform-specific safe area insets. On iOS, use `safeAreaInset` or `SafeAreaView` (React Native). On Android, use `WindowInsets.safeDrawing`. On web, use `env(safe-area-inset-*)` with `viewport-fit=cover`.
462
+
463
+ ### 4.4 No Spacing Hierarchy
464
+
465
+ **Problem:** AI often treats all spacing equally — the gap between a label and its input field is the same as the gap between two form sections. This violates the Gestalt proximity principle and destroys visual grouping.
466
+
467
+ **Detection:** Look for at least three distinct spacing tiers in any layout: tight (within components), medium (between components), and wide (between sections). If everything is one value, the hierarchy is missing.
468
+
469
+ **Fix:** Apply the spacing hierarchy: 4-8px within components, 12-16px between related components, 24-32px between groups, 32-64px between sections.
470
+
471
+ ### 4.5 Grid Misalignment
472
+
473
+ **Problem:** AI-generated elements frequently do not align to a grid. Text blocks start at different horizontal positions, cards have inconsistent widths, and elements drift off the column structure.
474
+
475
+ **Detection:** Overlay a column grid on the design. Elements should snap to column boundaries. If images, text, and buttons all start at different x-coordinates within the same section, the grid is broken.
476
+
477
+ **Fix:** Establish a column grid (4 columns mobile, 12 columns desktop) and align all content blocks to column boundaries. Use CSS Grid or a grid framework to enforce structural alignment.
478
+
479
+ ### 4.6 Inconsistent Component Scaling Across Breakpoints
480
+
481
+ **Problem:** A component that looks balanced at one screen size becomes disproportionate at another. Common examples: desktop cards with 24px padding that retain 24px padding on a 375px phone (consuming too much of the available width), or icons that do not scale with their containing elements.
482
+
483
+ **Detection:** Preview the layout at all major breakpoints (mobile, tablet, desktop). If components feel cramped or oversized at any breakpoint, the scaling strategy is incorrect.
484
+
485
+ **Fix:** Define responsive spacing that adjusts at each breakpoint. Use a responsive spacing scale or `clamp()` for fluid adaptation.
486
+
487
+ ---
488
+
489
+ ## 5. Decision Framework
490
+
491
+ ### 5.1 Fixed vs Fluid Layout
492
+
493
+ | Choose Fixed When... | Choose Fluid When... |
494
+ |----------------------------------------------|-------------------------------------------------|
495
+ | Content has a predictable, constrained width | Content must fill variable-width containers |
496
+ | Precise pixel alignment is critical | Users access from unpredictable screen sizes |
497
+ | The layout is for a controlled environment | The layout is for public web or multi-device use |
498
+ | You are designing for a kiosk or single device| You are designing a responsive web application |
499
+ | Component-internal spacing (always fixed) | Page-level margins and section padding |
500
+
501
+ **Hybrid approach (recommended):** Fix component-internal spacing, use fluid margins and section spacing, and let the grid system handle column distribution.
502
+
503
+ ### 5.2 Dense vs Spacious for Different Content Types
504
+
505
+ | Content Type | Recommended Density | Rationale |
506
+ |---------------------------|---------------------|--------------------------------------------------------------|
507
+ | Data tables | Compact | Users scan rows quickly; more visible rows = faster tasks |
508
+ | Admin dashboards | Compact-Comfortable | Balance data density with navigability |
509
+ | Email/messaging clients | Compact | Maximize message list visibility; users scan rapidly |
510
+ | E-commerce product grids | Comfortable | Images need breathing room; users browse, not scan |
511
+ | Forms | Comfortable | Adequate spacing prevents input errors and reduces fatigue |
512
+ | Article/blog content | Spacious | Reading comfort; generous line height and margins |
513
+ | Onboarding flows | Spacious | Focus attention; reduce cognitive load for new users |
514
+ | Marketing landing pages | Spacious | Create visual impact; allow each section to "breathe" |
515
+ | Settings/preferences | Comfortable | Standard information hierarchy; not data-intensive |
516
+ | Code editors/IDEs | Compact | Maximize visible code; users are expert-level |
517
+
518
+ ### 5.3 Grid Column Choices
519
+
520
+ | Columns | Divisors | Best For |
521
+ |---------|--------------------|---------------------------------------------------------------|
522
+ | 4 | 1, 2, 4 | Mobile layouts, simple content structures |
523
+ | 6 | 1, 2, 3, 6 | Simplified tablet layouts, email templates |
524
+ | 8 | 1, 2, 4, 8 | Tablet layouts, Medium complexity structures |
525
+ | 12 | 1, 2, 3, 4, 6, 12 | Desktop layouts (industry standard), maximum flexibility |
526
+ | 16 | 1, 2, 4, 8, 16 | Large desktop/enterprise layouts requiring fine control |
527
+ | 24 | 1, 2, 3, 4, 6, 8, 12, 24 | Ant Design standard; maximum subdivision flexibility |
528
+
529
+ **Decision rule:** Use 12 columns unless you have a specific reason not to. 12 divides into halves, thirds, quarters, and sixths — covering virtually every layout pattern. Use 4 columns on mobile because phones rarely need more than a 2-column sub-layout. Use 24 columns only when you need very fine column control (e.g., complex data-dense enterprise dashboards).
530
+
531
+ ### 5.4 When to Break the Grid
532
+
533
+ Grids are guidelines, not prisons. Break the grid intentionally in these situations:
534
+ - **Full-bleed media:** Hero images and background sections should extend to the viewport edge.
535
+ - **Overlapping elements:** Cards or images that intentionally break out of their column for visual interest.
536
+ - **Asymmetric layouts:** Editorial or portfolio designs where visual tension creates engagement.
537
+ - **Floating elements:** FABs, tooltips, popovers, and toast notifications sit above the grid.
538
+
539
+ **Rule of thumb:** If you break the grid, break it by at least 2 columns. A 1-column offset looks like a mistake; a 2-column offset looks intentional.
540
+
541
+ ---
542
+
543
+ ## 6. Quick Reference Checklist
544
+
545
+ Use this checklist to audit any layout design or implementation:
546
+
547
+ ### Spacing Scale
548
+
549
+ - [ ] All spacing values are multiples of 4px (or the chosen base unit)
550
+ - [ ] A defined spacing scale with named tokens exists and is used consistently
551
+ - [ ] No "magic number" spacing values appear in the codebase (e.g., 13px, 7px, 22px)
552
+ - [ ] Component internal padding ≤ gap between sibling components (internal ≤ external rule)
553
+
554
+ ### Grid and Structure
555
+
556
+ - [ ] A column grid is defined: 4 columns on mobile, 8 on tablet, 12 on desktop
557
+ - [ ] Gutters are consistent across all columns (no variable gutter widths)
558
+ - [ ] Content is aligned to the column grid; elements share consistent start/end positions
559
+ - [ ] A max-width container constrains content on large screens (1140-1440px)
560
+ - [ ] Text line length is limited to 60-80 characters for readability
561
+
562
+ ### Platform Compliance
563
+
564
+ - [ ] Mobile margins are at least 16px (16pt iOS, 16dp Android)
565
+ - [ ] Safe areas are respected: no content behind notch, Dynamic Island, or home indicator
566
+ - [ ] Touch targets meet minimum size: 44x44pt (iOS), 48x48dp (Android), 24x24px (WCAG AA)
567
+ - [ ] Edge-to-edge rendering is handled with proper insets (Android 15+)
568
+
569
+ ### Responsive Behavior
570
+
571
+ - [ ] Spacing adjusts across breakpoints (tighter on mobile, looser on desktop)
572
+ - [ ] Media containers maintain correct aspect ratios across screen sizes
573
+ - [ ] Breakpoints are defined as tokens/variables, not hard-coded in multiple places
574
+ - [ ] Layout is tested at extremes: 320px width, 2560px width, and 568px height
575
+
576
+ ### Density and Hierarchy
577
+
578
+ - [ ] At least three spacing tiers exist: within components, between components, between sections
579
+ - [ ] Content density matches the use case (compact for data, spacious for reading)
580
+ - [ ] Default density is "comfortable"; compact is opt-in only
581
+ - [ ] Spacing creates clear visual grouping per the Gestalt proximity principle
582
+
583
+ ---
584
+
585
+ ## Sources
586
+
587
+ - [Material Design 3 — Layout / Spacing](https://m3.material.io/foundations/layout/understanding-layout/spacing)
588
+ - [Material Design 3 — Applying Layout / Window Size Classes](https://m3.material.io/foundations/layout/applying-layout/window-size-classes)
589
+ - [Material Design 2 — Spacing Methods](https://m2.material.io/design/layout/spacing-methods.html)
590
+ - [Material Design 2 — Applying Density](https://m2.material.io/design/layout/applying-density.html)
591
+ - [Apple HIG — Layout](https://developer.apple.com/design/human-interface-guidelines/layout)
592
+ - [Apple HIG — Layout and Organization](https://developer.apple.com/design/human-interface-guidelines/layout-and-organization)
593
+ - [Apple Developer — Positioning Content Within Layout Margins](https://developer.apple.com/documentation/uikit/positioning-content-within-layout-margins)
594
+ - [Ant Design — Layout Specification](https://ant.design/docs/spec/layout/)
595
+ - [Ant Design — Grid Component](https://ant.design/components/grid/)
596
+ - [Android Developers — Edge-to-Edge Display](https://developer.android.com/develop/ui/views/layout/edge-to-edge)
597
+ - [Android Developers — Window Insets (Compose)](https://developer.android.com/develop/ui/compose/system/insets)
598
+ - [NNGroup — Gestalt Proximity Principle](https://www.nngroup.com/articles/gestalt-proximity/)
599
+ - [Cloudscape Design System — Content Density](https://cloudscape.design/foundation/visual-foundation/content-density/)
600
+ - [SAP Fiori — Content Density (Cozy and Compact)](https://experience.sap.com/fiori-design-web/cozy-compact/)
601
+ - [Cieden — Spacing Best Practices (8pt Grid, Internal ≤ External Rule)](https://cieden.com/book/sub-atomic/spacing/spacing-best-practices)
602
+ - [8-Point Grid Specification](https://spec.fm/specifics/8-pt-grid)
603
+ - [EightShapes — Space in Design Systems](https://medium.com/eightshapes-llc/space-in-design-systems-188bcbae0d62)
604
+ - [UXPin — Aspect Ratios in UX/UI Design](https://www.uxpin.com/studio/blog/aspect-ratio/)
605
+ - [LogRocket — Container Queries in 2026](https://blog.logrocket.com/container-queries-2026/)
606
+ - [BrowserStack — Responsive Design Breakpoints 2025](https://www.browserstack.com/guide/responsive-design-breakpoints)
607
+ - [Microsoft Learn — Windows Spacing and Sizes](https://learn.microsoft.com/en-us/windows/apps/design/style/spacing)