@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,797 @@
1
+ # Color Theory in UI/UX Design
2
+
3
+ > **Module Type:** Foundation
4
+ > **Domain:** Design Systems, Accessibility, Visual Design
5
+ > **Last Updated:** 2026-03-07
6
+ > **Sources:** WCAG 2.2, Material Design 3, Apple HIG, Ant Design
7
+
8
+ ---
9
+
10
+ ## 1. Core Principles
11
+
12
+ ### 1.1 Color Models for UI
13
+
14
+ Three color models dominate UI work: RGB/Hex, HSL, and HCT. Each serves a
15
+ different purpose, but **HSL is the preferred model for color manipulation in
16
+ design and CSS** because it maps to human perception.
17
+
18
+ #### RGB / Hex
19
+
20
+ - Machine-native format: screens emit red, green, and blue light.
21
+ - Hex is shorthand for RGB: `#1A73E8` = `R:26 G:115 B:232`.
22
+ - Poor for manipulation -- changing "brightness" requires adjusting all three
23
+ channels simultaneously.
24
+ - Use hex for final token values and handoff specifications.
25
+
26
+ #### HSL (Hue, Saturation, Lightness)
27
+
28
+ - **Hue** (0-360): the color wheel position. 0=red, 120=green, 240=blue.
29
+ - **Saturation** (0-100%): intensity. 0%=gray, 100%=vivid.
30
+ - **Lightness** (0-100%): brightness. 0%=black, 50%=pure color, 100%=white.
31
+ - Advantages for UI work:
32
+ - Generate tints by increasing L while keeping H and S constant.
33
+ - Generate shades by decreasing L.
34
+ - Create hover/active states by shifting L by 5-10%.
35
+ - Build monochromatic palettes by fixing H and varying S and L.
36
+ - Meet contrast requirements by adjusting the L-axis alone.
37
+ - CSS native: `hsl(220, 90%, 52%)` is immediately readable as "vivid blue."
38
+
39
+ ```css
40
+ /* HSL makes state variants trivial */
41
+ --btn-primary: hsl(220, 90%, 52%);
42
+ --btn-primary-hover: hsl(220, 90%, 45%); /* darken by 7% */
43
+ --btn-primary-active: hsl(220, 90%, 38%); /* darken by 14% */
44
+ --btn-primary-disabled: hsl(220, 20%, 72%); /* desaturate + lighten */
45
+ ```
46
+
47
+ #### HCT (Hue, Chroma, Tone) -- Material Design 3
48
+
49
+ - Google's perceptually uniform color model used in Material Design 3.
50
+ - **Tone** maps linearly to perceived brightness (unlike HSL's L which is
51
+ not perceptually uniform).
52
+ - Tone 0 = black, Tone 100 = white, Tone 40 = typical primary in light mode,
53
+ Tone 80 = typical primary in dark mode.
54
+ - The Material Theme Builder uses HCT to generate tonal palettes from a
55
+ single seed color, producing 13 tones per key color (0, 10, 20, 30, 40,
56
+ 50, 60, 70, 80, 90, 95, 99, 100).
57
+
58
+ **Recommendation:** Use HSL for day-to-day CSS manipulation and design tool
59
+ work. Use HCT via Material Theme Builder when generating full design system
60
+ palettes. Store final values as hex tokens for cross-platform consistency.
61
+
62
+ ---
63
+
64
+ ### 1.2 Material Design 3 Dynamic Color and Tonal Palettes
65
+
66
+ Material Design 3 (M3) introduced a paradigm shift: instead of manually picking
67
+ color swatches, the entire palette is algorithmically generated from a single
68
+ **seed color** using the HCT color model.
69
+
70
+ #### Five Key Color Groups
71
+
72
+ Each scheme derives from five key colors, each producing a tonal palette of
73
+ 13 tones:
74
+
75
+ | Key Color | Purpose | Light Tone | Dark Tone |
76
+ |-------------|------------------------------------------------|------------|-----------|
77
+ | Primary | Main brand color, prominent buttons, FABs | Tone 40 | Tone 80 |
78
+ | Secondary | Less prominent components (filter chips, etc.) | Tone 40 | Tone 80 |
79
+ | Tertiary | Contrasting accents, balances primary/secondary | Tone 40 | Tone 80 |
80
+ | Neutral | Surfaces, backgrounds, text | Tone 99 | Tone 10 |
81
+ | Error | Error states (always red-derived) | Tone 40 | Tone 80 |
82
+
83
+ #### M3 Baseline Color Scheme (Default Purple)
84
+
85
+ The M3 baseline theme uses purple as the seed color:
86
+
87
+ | Role | Light Mode | Dark Mode |
88
+ |--------------------|-------------|-------------|
89
+ | Primary | `#6750A4` | `#D0BCFF` |
90
+ | On Primary | `#FFFFFF` | `#381E72` |
91
+ | Primary Container | `#EADDFF` | `#4F378B` |
92
+ | Secondary | `#625B71` | `#CCC2DC` |
93
+ | Tertiary | `#7D5260` | `#EFB8C8` |
94
+ | Error | `#B3261E` | `#F2B8B5` |
95
+ | Surface | `#FFFBFE` | `#1C1B1F` |
96
+ | On Surface | `#1C1B1F` | `#E6E1E5` |
97
+
98
+ #### Dynamic Color (Android 12+)
99
+
100
+ On Android 12 and later, M3 apps can extract colors from the user's wallpaper
101
+ to generate a personalized color scheme. The system creates five tonal palettes
102
+ (Primary, Secondary, Tertiary, Neutral, Neutral Variant) from the wallpaper's
103
+ dominant and complementary colors.
104
+
105
+ **Source:** [Material Design 3 - Color System](https://m3.material.io/styles/color/system/how-the-system-works), [Color Roles](https://m3.material.io/styles/color/roles)
106
+
107
+ ---
108
+
109
+ ### 1.3 Color Roles
110
+
111
+ Color roles define the semantic purpose of colors in a UI. They are the
112
+ connective tissue between design tokens and component styling.
113
+
114
+ #### Structural Roles
115
+
116
+ | Role | Usage |
117
+ |----------------|-------------------------------------------------------|
118
+ | **Primary** | Key actions, active states, elevated surface tints |
119
+ | **On Primary** | Text/icons on primary-colored surfaces |
120
+ | **Primary Container** | Less prominent primary elements (chips, cards) |
121
+ | **Secondary** | Supporting elements, filter chips, toggles |
122
+ | **Tertiary** | Accent elements that contrast with primary/secondary |
123
+ | **Surface** | Backgrounds, cards, sheets, dialogs |
124
+ | **On Surface** | Body text, icons on surface backgrounds |
125
+ | **Outline** | Borders, dividers, input field strokes |
126
+
127
+ #### Semantic Roles (Status Colors)
128
+
129
+ Semantic colors communicate meaning independently of brand:
130
+
131
+ | Semantic Role | Default Color Family | Typical Hex (Light) | Usage |
132
+ |---------------|---------------------|--------------------|---------------------------------|
133
+ | **Success** | Green | `#198754` | Confirmations, completed states |
134
+ | **Warning** | Amber / Yellow | `#FFC107` | Caution, non-blocking alerts |
135
+ | **Error** | Red | `#DC3545` | Validation errors, destructive |
136
+ | **Info** | Blue | `#0D6EFD` | Informational, neutral alerts |
137
+
138
+ **Design System Comparison:**
139
+
140
+ | System | Success | Warning | Error | Info |
141
+ |-----------------|-------------|-------------|-------------|-------------|
142
+ | Material Design 3 | Custom | Custom | `#B3261E` | Custom |
143
+ | Ant Design | `#52C41A` | `#FAAD14` | `#FF4D4F` | `#1677FF` |
144
+ | Bootstrap 5 | `#198754` | `#FFC107` | `#DC3545` | `#0D6EFD` |
145
+ | Apple HIG | `.systemGreen` | `.systemYellow` | `.systemRed` | `.systemBlue` |
146
+
147
+ **Source:** [Ant Design Colors](https://ant.design/docs/spec/colors/), [Material Design 3 Color Roles](https://m3.material.io/styles/color/roles)
148
+
149
+ ---
150
+
151
+ ### 1.4 Contrast Ratios and WCAG 2.2
152
+
153
+ Accessible contrast is non-negotiable. WCAG 2.2 defines minimum contrast
154
+ ratios measured as luminance ratios between foreground and background colors.
155
+
156
+ #### Required Ratios
157
+
158
+ | Element Type | WCAG AA | WCAG AAA |
159
+ |--------------------------------------|-----------|-----------|
160
+ | Normal text (< 18pt / < 14pt bold) | **4.5:1** | 7:1 |
161
+ | Large text (>= 18pt / >= 14pt bold) | **3:1** | 4.5:1 |
162
+ | UI components and graphical objects | **3:1** | -- |
163
+ | Focus indicators | **3:1** | -- |
164
+
165
+ #### Key Rules
166
+
167
+ - **4.5:1** is the baseline for all body text. No exceptions.
168
+ - **3:1** applies to large text (18px regular or 14px bold and above),
169
+ interactive component boundaries, and meaningful graphical elements.
170
+ - Inactive/disabled components have no contrast requirement.
171
+ - Text that is part of a logo or purely decorative has no requirement.
172
+ - WCAG AAA (7:1 for normal text) is recommended for maximum accessibility
173
+ but not legally required in most jurisdictions.
174
+
175
+ #### Practical Contrast Pairs
176
+
177
+ | Pair | Ratio | Passes AA? |
178
+ |---------------------------------------|---------|------------|
179
+ | `#1A1A1A` on `#FFFFFF` | 17.4:1 | Yes |
180
+ | `#333333` on `#FFFFFF` | 12.6:1 | Yes |
181
+ | `#757575` on `#FFFFFF` | 4.6:1 | Yes (barely)|
182
+ | `#767676` on `#FFFFFF` | 4.54:1 | Yes (minimum passing gray) |
183
+ | `#808080` on `#FFFFFF` | 3.9:1 | No |
184
+ | `#FFFFFF` on `#0D6EFD` (Bootstrap blue)| 4.6:1 | Yes |
185
+ | `#FFFFFF` on `#FFC107` (amber) | 1.6:1 | No |
186
+
187
+ Note: Amber/yellow semantic colors almost never pass contrast for white text.
188
+ Always use dark text on yellow/amber backgrounds.
189
+
190
+ **Source:** [WCAG 2.2 - W3C](https://www.w3.org/TR/WCAG22/), [WebAIM Contrast Guide](https://webaim.org/articles/contrast/)
191
+
192
+ ---
193
+
194
+ ### 1.5 Color Blindness Considerations
195
+
196
+ Approximately **8% of males and 0.5% of females** have some form of color
197
+ vision deficiency (CVD), totaling over 350 million people worldwide. Red-green
198
+ color blindness (deuteranopia/protanopia) is the most common type.
199
+
200
+ #### The Cardinal Rule
201
+
202
+ > **Never use color as the sole means of conveying information.**
203
+ > -- WCAG 2.2 Success Criterion 1.4.1
204
+
205
+ #### Types of Color Vision Deficiency
206
+
207
+ | Type | Prevalence (Males) | Affected Colors |
208
+ |-----------------|-------------------|---------------------|
209
+ | Deuteranomaly | ~5% | Red-green (most common) |
210
+ | Protanomaly | ~1.3% | Red-green |
211
+ | Deuteranopia | ~1.2% | Red-green (severe) |
212
+ | Protanopia | ~1% | Red-green (severe) |
213
+ | Tritanopia | ~0.01% | Blue-yellow (rare) |
214
+ | Achromatopsia | ~0.003% | Total color blindness|
215
+
216
+ #### Mandatory Redundant Cues
217
+
218
+ Always pair color with at least one additional visual indicator:
219
+
220
+ - **Icons:** Checkmark for success, X for error, triangle for warning.
221
+ - **Text labels:** "Error: Email is required" not just a red border.
222
+ - **Patterns/textures:** In charts and graphs, use stripes, dots, dashes.
223
+ - **Shape changes:** Underline links in addition to coloring them.
224
+ - **Position/grouping:** Error messages placed adjacent to the field.
225
+
226
+ #### Safe Color Combinations for CVD
227
+
228
+ - Blue + Orange (distinguishable by all common CVD types).
229
+ - Blue + Red (distinguishable for tritanopia).
230
+ - Avoid red vs. green as the only differentiator.
231
+ - Use sufficient luminance contrast between adjacent colors.
232
+
233
+ **Source:** [Smashing Magazine - Designing for Colorblindness](https://www.smashingmagazine.com/2024/02/designing-for-colorblindness/), [WCAG 1.4.1](https://www.w3.org/TR/WCAG22/)
234
+
235
+ ---
236
+
237
+ ### 1.6 Dark Mode Color Mapping
238
+
239
+ Dark mode is not "invert the colors." It requires a separate, carefully
240
+ designed color strategy that accounts for tonal elevation, desaturation,
241
+ and contrast preservation.
242
+
243
+ #### Foundational Principles
244
+
245
+ 1. **Use dark gray, not pure black.** The base dark surface should be
246
+ `#121212` (Material Design recommendation), not `#000000`. Pure black
247
+ creates excessive contrast with white text ("halation") and lacks
248
+ the ability to show elevation through lighter surfaces.
249
+
250
+ 2. **Express elevation with surface lightness, not shadows.**
251
+ In dark mode, shadows are invisible against dark backgrounds. Instead,
252
+ use progressively lighter surfaces to indicate elevation:
253
+
254
+ | Elevation (dp) | White Overlay | Resulting Surface |
255
+ |----------------|---------------|---------------------|
256
+ | 0 dp | 0% | `#121212` |
257
+ | 1 dp | 5% | `#1E1E1E` |
258
+ | 2 dp | 7% | `#222222` |
259
+ | 3 dp | 8% | `#242424` |
260
+ | 4 dp | 9% | `#272727` |
261
+ | 6 dp | 11% | `#2C2C2C` |
262
+ | 8 dp | 12% | `#2E2E2E` |
263
+ | 12 dp | 14% | `#333333` |
264
+ | 16 dp | 15% | `#353535` |
265
+ | 24 dp | 16% | `#383838` |
266
+
267
+ 3. **Desaturate brand colors.** Highly saturated colors vibrate against
268
+ dark backgrounds, causing visual fatigue. Reduce saturation by 10-20%
269
+ and increase lightness for dark mode variants.
270
+
271
+ ```
272
+ Light mode primary: hsl(220, 90%, 52%) -- vivid blue
273
+ Dark mode primary: hsl(220, 75%, 70%) -- desaturated, lighter blue
274
+ ```
275
+
276
+ 4. **Maintain contrast ratios.** As surfaces get lighter at higher
277
+ elevations, verify that white text still passes 4.5:1 against the
278
+ lightest elevated surface. Surface `#383838` with white text `#FFFFFF`
279
+ yields a ratio of ~10.5:1 (passing).
280
+
281
+ 5. **Flip "on" color semantics.** Primary containers become darker in dark
282
+ mode while their content colors become lighter. Surface text swaps
283
+ from dark-on-light to light-on-dark.
284
+
285
+ #### M3 Dark Mode Tone Mapping
286
+
287
+ | Role | Light Tone | Dark Tone | Shift |
288
+ |--------------------|-----------|-----------|---------------|
289
+ | Primary | 40 | 80 | +40 tones |
290
+ | On Primary | 100 | 20 | -80 tones |
291
+ | Primary Container | 90 | 30 | -60 tones |
292
+ | Surface | 99 | 10 | -89 tones |
293
+ | On Surface | 10 | 90 | +80 tones |
294
+
295
+ **Source:** [Material Design 3 - Dark Theme](https://m3.material.io/styles/color/system/how-the-system-works), [Dark UI Design Best Practices](https://nighteye.app/dark-ui-design/)
296
+
297
+ ---
298
+
299
+ ### 1.7 Color Psychology in UI
300
+
301
+ Colors carry psychological associations that influence user perception and
302
+ behavior. These associations are culturally mediated and should not be
303
+ treated as universal laws.
304
+
305
+ #### Western UI Conventions
306
+
307
+ | Color | Association | Common UI Usage |
308
+ |---------|---------------------------|------------------------------------|
309
+ | **Blue** | Trust, stability, calm | Banking, healthcare, enterprise |
310
+ | **Red** | Urgency, danger, passion | Errors, destructive actions, CTAs |
311
+ | **Green** | Success, growth, nature | Success states, "go" actions |
312
+ | **Orange** | Energy, warmth, attention | Warnings, CTAs, promotional |
313
+ | **Purple** | Premium, creativity | Luxury brands, creative tools |
314
+ | **Yellow** | Optimism, caution | Warnings, highlights |
315
+ | **Black** | Sophistication, power | Luxury, editorial, high contrast |
316
+ | **White** | Clean, minimal, space | Backgrounds, breathing room |
317
+
318
+ #### Cultural Variations (Critical for Global Products)
319
+
320
+ | Color | Western | East Asian | Middle Eastern |
321
+ |----------|-------------------|------------------------|-----------------------|
322
+ | **Red** | Danger, urgency | Luck, prosperity (CN) | Evil, danger |
323
+ | **White**| Purity, clean | Mourning, death (JP/CN)| Purity |
324
+ | **Green**| Nature, success | Eternity, fertility | Islam, prosperity |
325
+ | **Yellow**| Caution, warmth | Royalty, sacred (CN) | Happiness |
326
+ | **Blue** | Trust, calm | Immortality | Protection, heaven |
327
+ | **Black**| Elegance, death | Career, knowledge | Mourning, mystery |
328
+
329
+ #### Evidence-Based Insights
330
+
331
+ - HubSpot A/B test: red CTAs outperformed green by 21% -- due to contrast
332
+ against the page's green design, not inherent color superiority.
333
+ - Green-themed interfaces show 23% higher satisfaction in UX studies.
334
+ - Color psychology is contextual. Use it as a heuristic, not a rule.
335
+ Prioritize accessibility and contrast over psychological association.
336
+
337
+ **Source:** [IxDF - Color in UX Design](https://ixdf.org/literature/topics/color), [UX Magazine - Psychology of Color](https://uxmag.com/articles/the-psychology-of-color-in-ui-ux-design)
338
+
339
+ ---
340
+
341
+ ## 2. Do's and Don'ts
342
+
343
+ ### 2.1 Do's
344
+
345
+ 1. **Do use HSL for defining color variants.** Define your base color as HSL,
346
+ then derive hover, active, and disabled states by adjusting L and S.
347
+ Example: base `hsl(220, 85%, 52%)`, hover `hsl(220, 85%, 44%)`.
348
+
349
+ 2. **Do use `#1A1A1A` or `#212121` for body text instead of pure `#000000`.**
350
+ Pure black on white causes halation (the text appears to bleed into the
351
+ background). A slight softening to ~10% lightness is easier to read.
352
+
353
+ 3. **Do ensure all text passes WCAG AA contrast.** Normal text: 4.5:1.
354
+ Large text (18px+ or 14px+ bold): 3:1. Use tools like WebAIM Contrast
355
+ Checker or Stark plugin for Figma.
356
+
357
+ 4. **Do use semantic color tokens, not raw hex values.** Define
358
+ `--color-error` not `--color-red`. This decouples meaning from specific
359
+ hue and makes dark mode mapping straightforward.
360
+
361
+ 5. **Do limit your palette to 3-5 intentional colors** (primary, secondary,
362
+ accent/tertiary) plus neutrals and semantic colors. Each additional color
363
+ increases cognitive load and maintenance burden.
364
+
365
+ 6. **Do provide 8-10 tonal steps per color.** For each brand color, generate
366
+ a range from very light (tint, ~95% L) to very dark (shade, ~15% L):
367
+ 50, 100, 200, 300, 400, 500, 600, 700, 800, 900.
368
+
369
+ 7. **Do use the 60-30-10 rule for color distribution.** 60% neutral/surface
370
+ colors, 30% secondary/supporting colors, 10% accent/primary colors.
371
+ This creates visual hierarchy without overwhelming the user.
372
+
373
+ 8. **Do pair every color indicator with a non-color cue.** Red error border
374
+ + error icon + error text label. Green success + checkmark icon + "Saved"
375
+ text.
376
+
377
+ 9. **Do desaturate colors for dark mode.** Reduce saturation by 10-20% and
378
+ increase lightness by 15-30% compared to light mode values. Example:
379
+ light `hsl(142, 76%, 36%)` becomes dark `hsl(142, 60%, 55%)`.
380
+
381
+ 10. **Do test your palette with color blindness simulators.** Use tools like
382
+ Sim Daltonism (macOS), Color Oracle, or Chrome DevTools' rendering
383
+ emulation (Rendering > Emulate vision deficiency).
384
+
385
+ 11. **Do use system semantic colors on native platforms.** iOS: `UIColor.label`,
386
+ `.systemBackground`, `.systemRed`. Android: M3 `colorScheme.primary`,
387
+ `colorScheme.error`. These automatically adapt to light/dark/high-contrast.
388
+
389
+ 12. **Do maintain a minimum 3:1 contrast for all interactive component
390
+ boundaries.** Button borders, input outlines, toggle tracks, and focus
391
+ indicators must be distinguishable from their surroundings.
392
+
393
+ 13. **Do use dark text (`#1A1A1A` or darker) on yellow/amber backgrounds.**
394
+ White text on yellow/amber never passes WCAG AA. Example: warning banner
395
+ background `#FFF3CD` with text `#664D03`.
396
+
397
+ 14. **Do establish a neutral gray scale with at least 5 steps.**
398
+ Example: `#F8F9FA`, `#E9ECEF`, `#ADB5BD`, `#6C757D`, `#212529`.
399
+ Use these for backgrounds, borders, disabled states, and secondary text.
400
+
401
+ 15. **Do document color usage guidelines alongside token definitions.**
402
+ Each token should specify: name, hex value, usage context, contrast
403
+ pairing, and light/dark mode variant.
404
+
405
+ ### 2.2 Don'ts
406
+
407
+ 1. **Don't use pure black (`#000000`) on pure white (`#FFFFFF`) for body
408
+ text.** The maximum contrast ratio (21:1) causes halation -- a visual
409
+ vibration effect where text appears to bleed. Use `#1A1A1A` on `#FFFFFF`
410
+ (17.4:1) or `#333333` on `#FFFFFF` (12.6:1) instead.
411
+
412
+ 2. **Don't rely on color alone to convey meaning.** A form field with only
413
+ a red border to indicate an error is invisible to someone with
414
+ protanopia. Always add icons, text labels, or pattern changes.
415
+
416
+ 3. **Don't use red and green as the only differentiator.** This is the most
417
+ common color blindness failure. Red vs. green is indistinguishable for
418
+ ~8% of male users. Add shapes, labels, or patterns.
419
+
420
+ 4. **Don't invert colors for dark mode.** Simply swapping `#000` and `#FFF`
421
+ produces garish, unusable results. Dark mode requires intentional surface
422
+ elevation, desaturation, and tone remapping.
423
+
424
+ 5. **Don't use highly saturated colors for large background areas.** A
425
+ full-screen `hsl(220, 100%, 50%)` blue background causes eye strain.
426
+ Reserve full saturation for small accent elements (buttons, badges,
427
+ icons). Backgrounds should use saturation below 20%.
428
+
429
+ 6. **Don't place colored text on colored backgrounds without checking
430
+ contrast.** Blue text on a purple background, or red text on a brown
431
+ background, frequently fails contrast requirements even when both colors
432
+ "look different" to the designer.
433
+
434
+ 7. **Don't use more than 5-6 distinct hues in a single interface.**
435
+ Every additional hue competes for attention and dilutes the visual
436
+ hierarchy. If you need variety, use tonal variations of existing colors.
437
+
438
+ 8. **Don't assume color meanings are universal.** Red means "luck" in
439
+ Chinese culture, "danger" in Western culture, and "evil" in some Middle
440
+ Eastern contexts. Research your target audience's cultural associations.
441
+
442
+ 9. **Don't use thin colored lines or small colored dots as the only
443
+ indicator.** Fine elements at 1-2px are nearly impossible to perceive
444
+ for users with low vision, regardless of color. Minimum touch/click
445
+ targets apply to color indicators too.
446
+
447
+ 10. **Don't hard-code color values in components.** Use design tokens
448
+ (`var(--color-primary)` in CSS, `ColorScheme.primary` in M3). Hard-coded
449
+ hex values make theming, dark mode, and accessibility adjustments
450
+ impossible to maintain.
451
+
452
+ 11. **Don't use transparency/opacity as a substitute for proper color
453
+ tokens.** `rgba(0, 0, 0, 0.5)` on a white background looks different
454
+ than on a blue background. Define explicit colors for each context.
455
+
456
+ 12. **Don't ignore the `forced-colors` media query.** Windows High Contrast
457
+ Mode overrides your colors. Elements that rely on custom colors for
458
+ meaning (e.g., colored badges without text) will become invisible.
459
+ Test with `@media (forced-colors: active)`.
460
+
461
+ 13. **Don't use color temperature inconsistently.** Mixing warm grays
462
+ (`hsl(30, 10%, 95%)`) with cool grays (`hsl(220, 10%, 95%)`) in the
463
+ same interface creates visual dissonance. Pick one temperature for
464
+ your neutral scale and commit.
465
+
466
+ 14. **Don't forget disabled state colors.** Disabled elements should have
467
+ reduced opacity (38-50% of their enabled state) or use a distinct
468
+ muted color. They are exempt from contrast requirements per WCAG, but
469
+ should still be visually identifiable as "something is here."
470
+
471
+ ---
472
+
473
+ ## 3. Platform Variations
474
+
475
+ ### 3.1 iOS (Apple Human Interface Guidelines)
476
+
477
+ #### System Colors
478
+
479
+ Apple provides dynamic system colors that automatically adapt to Light Mode,
480
+ Dark Mode, and Increased Contrast settings:
481
+
482
+ | Semantic Color | Light Mode | Dark Mode |
483
+ |---------------------|-----------------|-----------------|
484
+ | `.systemRed` | `#FF3B30` | `#FF453A` |
485
+ | `.systemOrange` | `#FF9500` | `#FF9F0A` |
486
+ | `.systemYellow` | `#FFCC00` | `#FFD60A` |
487
+ | `.systemGreen` | `#34C759` | `#30D158` |
488
+ | `.systemBlue` | `#007AFF` | `#0A84FF` |
489
+ | `.systemIndigo` | `#5856D6` | `#5E5CE6` |
490
+ | `.systemPurple` | `#AF52DE` | `#BF5AF2` |
491
+ | `.systemPink` | `#FF2D55` | `#FF375F` |
492
+ | `.systemTeal` | `#5AC8FA` | `#64D2FF` |
493
+ | `.systemGray` | `#8E8E93` | `#8E8E93` |
494
+
495
+ Note: Dark mode variants are slightly shifted in hue and increased in
496
+ brightness to maintain vibrancy against dark backgrounds.
497
+
498
+ #### Semantic UI Colors
499
+
500
+ Key semantic colors: `.label` (primary text), `.secondaryLabel`,
501
+ `.tertiaryLabel`, `.systemBackground`, `.secondarySystemBackground`,
502
+ `.separator`, `.link`, `.systemFill`. These adapt automatically to
503
+ light/dark/increased-contrast modes.
504
+
505
+ #### Apple HIG Guidance (2025-2026)
506
+
507
+ - Use system colors over custom colors -- they handle light/dark mode,
508
+ increased contrast, and the Liquid Glass design language (iOS 26).
509
+ - Prefer semantic colors (`.label`, `.systemBackground`) over fixed colors.
510
+ - Increased Contrast accessibility modifies system colors; custom colors
511
+ bypass this. Test with Accessibility Inspector.
512
+
513
+ **Source:** [Apple HIG - Color](https://developer.apple.com/design/human-interface-guidelines/color), [UIColor Standard Colors](https://developer.apple.com/documentation/uikit/uicolor/standard_colors)
514
+
515
+ ### 3.2 Android (Material Design 3)
516
+
517
+ #### Dynamic Color (Material You)
518
+
519
+ Starting with Android 12, the system extracts a seed color from the user's
520
+ wallpaper and generates five tonal palettes:
521
+
522
+ 1. **Primary** -- from the dominant wallpaper color.
523
+ 2. **Secondary** -- from a complementary wallpaper color.
524
+ 3. **Tertiary** -- from an analogous or triadic wallpaper color.
525
+ 4. **Neutral** -- desaturated variant for surfaces and backgrounds.
526
+ 5. **Neutral Variant** -- slightly saturated neutral for outlines.
527
+
528
+ Each palette contains 13 tones (0, 10, 20, 30, 40, 50, 60, 70, 80, 90,
529
+ 95, 99, 100).
530
+
531
+ #### Key M3 Color Tokens
532
+
533
+ | Token | Light Default | Dark Default |
534
+ |-----------------------|----------------|----------------|
535
+ | `colorScheme.primary` | Tone 40 | Tone 80 |
536
+ | `colorScheme.onPrimary`| Tone 100 | Tone 20 |
537
+ | `colorScheme.surface` | Tone 99 | Tone 10 |
538
+ | `colorScheme.onSurface`| Tone 10 | Tone 90 |
539
+ | `colorScheme.error` | Tone 40 | Tone 80 |
540
+ | `colorScheme.outline` | Tone 50 | Tone 60 |
541
+
542
+ When dynamic color is unavailable (Android < 12), provide a static baseline
543
+ scheme. Use the Material Theme Builder (m3.material.io) to generate both.
544
+
545
+ **Source:** [Material Design 3 - Dynamic Color](https://m3.material.io/styles/color/static), [Android Developers - Material 3](https://developer.android.com/develop/ui/compose/designsystems/material3)
546
+
547
+ ### 3.3 Web (CSS and Browser APIs)
548
+
549
+ #### CSS Custom Properties + `prefers-color-scheme`
550
+
551
+ ```css
552
+ :root {
553
+ --color-primary: hsl(220, 85%, 52%);
554
+ --color-surface: hsl(0, 0%, 99%);
555
+ --color-on-surface: hsl(0, 0%, 10%);
556
+ --color-error: hsl(0, 72%, 51%);
557
+ --color-success: hsl(142, 76%, 36%);
558
+ --color-warning: hsl(45, 100%, 51%);
559
+ --color-info: hsl(211, 100%, 50%);
560
+ --color-gray-100: hsl(220, 13%, 91%);
561
+ --color-gray-500: hsl(220, 9%, 46%);
562
+ --color-gray-900: hsl(220, 14%, 10%);
563
+ }
564
+
565
+ @media (prefers-color-scheme: dark) {
566
+ :root {
567
+ --color-primary: hsl(220, 75%, 70%);
568
+ --color-surface: hsl(220, 10%, 10%);
569
+ --color-on-surface: hsl(220, 10%, 90%);
570
+ --color-error: hsl(0, 60%, 70%);
571
+ --color-success: hsl(142, 55%, 55%);
572
+ --color-warning: hsl(45, 80%, 60%);
573
+ --color-info: hsl(211, 80%, 65%);
574
+ }
575
+ }
576
+ ```
577
+
578
+ #### `forced-colors` and `color-scheme`
579
+
580
+ ```css
581
+ @media (forced-colors: active) {
582
+ .badge { border: 2px solid currentColor; }
583
+ .icon-only-button { border: 1px solid ButtonText; }
584
+ }
585
+ :root { color-scheme: light dark; }
586
+ ```
587
+
588
+ In forced-colors mode (Windows High Contrast), the browser overrides author
589
+ colors with system colors. Elements relying solely on background color for
590
+ meaning become invisible. Always provide structural alternatives (borders,
591
+ text labels). The `color-scheme` property tells the browser to render
592
+ UA-controlled elements (scrollbars, form controls) in the appropriate scheme.
593
+
594
+ #### Modern CSS: OKLCH (2025+)
595
+
596
+ ```css
597
+ --color-primary: oklch(0.55 0.22 264);
598
+ --color-primary-light: oklch(from var(--color-primary) calc(l + 0.15) c h);
599
+ --color-primary-dark: oklch(from var(--color-primary) calc(l - 0.15) c h);
600
+ ```
601
+
602
+ OKLCH is the emerging standard for perceptually uniform color manipulation
603
+ in CSS, similar to HCT for programmatic palette generation.
604
+
605
+ **Source:** [MDN - prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme), [MDN - forced-colors](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/forced-colors)
606
+
607
+ ---
608
+
609
+ ## 4. Common Mistakes in AI-Generated Designs
610
+
611
+ AI design tools (Midjourney, Figma AI, v0, etc.) systematically fail at
612
+ color in predictable ways.
613
+
614
+ ### 4.1 The "AI Purple Problem"
615
+
616
+ AI models disproportionately generate purple/indigo schemes because Tailwind
617
+ defaults and Shopify Polaris normalized indigo, and AI training data compounds
618
+ this bias as generated designs feed back into training sets.
619
+
620
+ **Detect:** Unspecified purple/indigo primary = statistical artifact, not a
621
+ brand choice. **Fix:** Specify exact hex values in prompts (`#0066CC`, not
622
+ "blue").
623
+
624
+ ### 4.2 Too Many Colors
625
+
626
+ AI uses 7-10 distinct hues where 3-4 suffice, destroying visual hierarchy.
627
+
628
+ **Detect:** Count distinct hues; more than 5 (excluding grays/semantics) is
629
+ too many. **Fix:** Reduce to primary + secondary + optional tertiary. Use
630
+ tonal variations for variety instead of new hues.
631
+
632
+ ### 4.3 Poor Contrast
633
+
634
+ AI does not check WCAG ratios. Common failures: light gray text on white,
635
+ white text on yellow buttons, low-contrast input borders, colored text on
636
+ colored backgrounds.
637
+
638
+ **Detect:** Run all text/background pairs through a contrast checker (axe,
639
+ Lighthouse, Stark, WebAIM). **Fix:** For dark text, ensure HSL L <= 45%.
640
+ For light text on dark backgrounds, background L <= 35% and text L >= 85%.
641
+
642
+ ### 4.4 No Semantic Meaning
643
+
644
+ AI assigns colors decoratively -- a success message in blue, an error in
645
+ orange, a warning in purple.
646
+
647
+ **Detect:** Check status colors match conventions (green=success, red=error,
648
+ amber=warning, blue=info). **Fix:** Override with your design system's
649
+ semantic tokens.
650
+
651
+ ### 4.5 Dark Mode Failures
652
+
653
+ AI commonly uses pure black backgrounds, keeps saturated light-mode colors,
654
+ and fails to show elevation through surface lightness.
655
+
656
+ **Detect:** Base surface should be `#121212`-`#1C1C1E`, not `#000000`. Cards
657
+ must be lighter than background. Saturation should be reduced vs. light mode.
658
+ **Fix:** Apply tonal elevation scale (Section 1.6), desaturate 10-20%.
659
+
660
+ ### 4.6 Missing State Variations
661
+
662
+ AI generates only the resting state, ignoring hover, focus, active, disabled,
663
+ and selected states.
664
+
665
+ **Detect:** If all states look identical, they are missing. **Fix:** Generate
666
+ a state matrix with explicit color tokens per state per component.
667
+
668
+ ---
669
+
670
+ ## 5. Decision Framework
671
+
672
+ ### 5.1 How Many Colors to Use
673
+
674
+ #### The 3-5 Color Palette Rule
675
+
676
+ | Count | Composition | Best For |
677
+ |-------|----------------------------------------------------|------------------------|
678
+ | 3 | Primary + Neutral dark + Neutral light | Minimal/editorial UI |
679
+ | 4 | Primary + Secondary + Neutral dark + Neutral light | Most applications |
680
+ | 5 | Primary + Secondary + Tertiary + 2 Neutrals | Complex, data-rich UI |
681
+
682
+ Add semantic colors (success, warning, error, info) on top of the base palette.
683
+ These are functional, not decorative, and do not count toward the "palette."
684
+
685
+ #### Color Budget per Screen
686
+
687
+ - **1 dominant color** (primary): calls to action, active navigation, key
688
+ branding. Covers ~10% of screen area.
689
+ - **1-2 supporting colors** (secondary/tertiary): secondary actions, tags,
690
+ categories. Covers ~30% of screen area.
691
+ - **Neutral palette** (grays): text, backgrounds, borders, dividers. Covers
692
+ ~60% of screen area.
693
+
694
+ ### 5.2 Warm vs. Cool Palette Selection
695
+
696
+ | Factor | Warm Palette | Cool Palette |
697
+ |-------------------------|---------------------------------|--------------------------------|
698
+ | **Hue range** | 0-60 (reds, oranges, yellows) | 180-300 (blues, greens, purples)|
699
+ | **Psychological effect**| Energetic, urgent, personal | Calm, trustworthy, professional |
700
+ | **Best for** | Food, entertainment, children | Finance, health, enterprise |
701
+ | **Neutral pairing** | Warm grays `hsl(30, 8%, x%)` | Cool grays `hsl(220, 8%, x%)` |
702
+ | **Risk** | Can feel aggressive if over-saturated | Can feel cold/clinical |
703
+
704
+ **Hybrid approach:** Use a cool primary (blue) with a warm accent (orange)
705
+ for contrast. This is why many enterprise products use blue + orange CTAs.
706
+
707
+ ### 5.3 When to Use High vs. Low Saturation
708
+
709
+ | Context | Saturation Level | HSL S Value |
710
+ |----------------------------------|-----------------|-------------|
711
+ | Primary CTA buttons | High | 75-95% |
712
+ | Notification badges | High | 80-100% |
713
+ | Active navigation indicators | Medium-high | 60-80% |
714
+ | Card backgrounds | Very low | 5-15% |
715
+ | Page backgrounds | Minimal | 0-10% |
716
+ | Disabled elements | Very low | 10-25% |
717
+ | Dark mode surfaces | Very low | 5-15% |
718
+ | Dark mode accent elements | Medium | 50-70% |
719
+ | Data visualization (charts) | Medium-high | 50-80% |
720
+ | Error/warning backgrounds | Low | 15-30% |
721
+ | Error/warning icons/text | High | 70-90% |
722
+
723
+ **Rule of thumb:** The smaller the element and the more important the
724
+ information it carries, the higher its saturation can be. The larger the
725
+ surface area, the lower the saturation should be.
726
+
727
+ ### 5.4 Building a Color System Step by Step
728
+
729
+ 1. **Choose a primary hue** based on brand and psychology. Define in HSL.
730
+ 2. **Generate tonal scale** (50-900) by varying L from 95% to 10%, H fixed.
731
+ 3. **Select secondary/tertiary** via color harmony: analogous (+/-30 deg),
732
+ complementary (+180), split-complementary (+150/+210), triadic (+120/+240).
733
+ 4. **Define neutral scale** using primary hue at saturation 5-15%.
734
+ 5. **Assign semantics:** success (H~142), warning (H~45), error (H~0), info (H~211).
735
+ 6. **Map to tokens:** name by role (`--color-primary-500`), not appearance.
736
+ 7. **Create dark mode variants** by remapping tones (500->200, 100->800).
737
+ 8. **Validate all pairings** against WCAG AA. Document usage guidelines.
738
+
739
+ ---
740
+
741
+ ## 6. Quick Reference Checklist
742
+
743
+ Use this checklist when reviewing any UI design for color quality and
744
+ accessibility compliance.
745
+
746
+ ### Contrast and Accessibility
747
+
748
+ - [ ] All body text passes WCAG AA contrast (4.5:1 minimum)
749
+ - [ ] All large text (18px+ / 14px+ bold) passes 3:1 contrast
750
+ - [ ] All UI component boundaries pass 3:1 contrast against adjacent colors
751
+ - [ ] Focus indicators are visible with 3:1 contrast against surrounding content
752
+ - [ ] No information is conveyed by color alone (WCAG 1.4.1)
753
+ - [ ] Design tested with color blindness simulator (protanopia, deuteranopia)
754
+ - [ ] `forced-colors` / Windows High Contrast mode tested (web)
755
+
756
+ ### Palette and Tokens
757
+
758
+ - [ ] Color palette limited to 3-5 hues plus neutrals
759
+ - [ ] Each color has a tonal scale (minimum 5 steps: 100, 300, 500, 700, 900)
760
+ - [ ] All colors defined as semantic tokens, not raw hex values in components
761
+ - [ ] Semantic status colors follow convention (green=success, red=error, amber=warning, blue=info)
762
+ - [ ] Neutral gray scale uses consistent temperature (all warm or all cool)
763
+ - [ ] 60-30-10 distribution applied (neutrals, supporting, accent)
764
+
765
+ ### Dark Mode
766
+
767
+ - [ ] Dark mode uses dark gray base (`#121212`-`#1C1C1E`), not pure black
768
+ - [ ] Elevation expressed through surface lightness, not shadows
769
+ - [ ] Brand colors desaturated 10-20% for dark mode
770
+ - [ ] All dark mode text/surface pairs re-verified for contrast
771
+ - [ ] Dark mode has been designed intentionally, not auto-inverted
772
+
773
+ ### Platform Compliance
774
+
775
+ - [ ] iOS: uses system semantic colors where possible (`.label`, `.systemBackground`)
776
+ - [ ] Android: provides fallback color scheme for devices without dynamic color
777
+ - [ ] Web: implements `prefers-color-scheme` media query
778
+ - [ ] Web: tested with `forced-colors: active` media query
779
+ - [ ] Color tokens are cross-platform consistent (same hex values, different APIs)
780
+
781
+ ---
782
+
783
+ ## References
784
+
785
+ - [WCAG 2.2 - W3C Web Content Accessibility Guidelines](https://www.w3.org/TR/WCAG22/)
786
+ - [WebAIM - Contrast and Color Accessibility](https://webaim.org/articles/contrast/)
787
+ - [Material Design 3 - Color System](https://m3.material.io/styles/color/system/how-the-system-works)
788
+ - [Material Design 3 - Color Roles](https://m3.material.io/styles/color/roles)
789
+ - [Material Design 3 - Dynamic Color](https://m3.material.io/styles/color/static)
790
+ - [Apple HIG - Color](https://developer.apple.com/design/human-interface-guidelines/color)
791
+ - [Apple UIColor Standard Colors](https://developer.apple.com/documentation/uikit/uicolor/standard_colors)
792
+ - [Ant Design - Colors Specification](https://ant.design/docs/spec/colors/)
793
+ - [MDN - prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
794
+ - [MDN - forced-colors](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/forced-colors)
795
+ - [Smashing Magazine - Designing for Colorblindness](https://www.smashingmagazine.com/2024/02/designing-for-colorblindness/)
796
+ - [IxDF - Color in UX Design](https://ixdf.org/literature/topics/color)
797
+ - [Josh W. Comeau - Color Formats in CSS](https://www.joshwcomeau.com/css/color-formats/)