@jaimevalasek/aioson 1.3.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/CHANGELOG.md +31 -1
  2. package/LICENSE +661 -21
  3. package/README.md +22 -3
  4. package/docs/en/squad-dashboard.md +372 -0
  5. package/docs/openclaw-bridge.md +308 -0
  6. package/docs/pt/README.md +62 -2
  7. package/docs/pt/advisor-spec.md +5 -5
  8. package/docs/pt/agentes-customizados.md +670 -0
  9. package/docs/pt/agentes.md +235 -23
  10. package/docs/pt/automacao-squads.md +407 -0
  11. package/docs/pt/cenarios.md +49 -5
  12. package/docs/pt/clientes-ai.md +62 -0
  13. package/docs/pt/comandos-cli.md +226 -17
  14. package/docs/pt/deyvin.md +115 -0
  15. package/docs/pt/genome-3.0-spec.md +11 -11
  16. package/docs/pt/inicio-rapido.md +63 -2
  17. package/docs/pt/memoria-contexto.md +255 -0
  18. package/docs/pt/output-strategy-delivery.md +655 -0
  19. package/docs/pt/profiler-system.md +17 -17
  20. package/docs/pt/runtime-observability.md +5 -1
  21. package/docs/pt/skills.md +175 -0
  22. package/docs/pt/squad-dashboard.md +373 -0
  23. package/docs/pt/{squad-genoma.md → squad-genome.md} +81 -75
  24. package/docs/testing/genome-2.0-matrix.md +5 -5
  25. package/docs/testing/genome-2.0-rollout.md +10 -10
  26. package/package.json +4 -4
  27. package/src/agents.js +21 -5
  28. package/src/backup-local.js +74 -0
  29. package/src/backup-provider.js +303 -0
  30. package/src/cli.js +276 -2
  31. package/src/commands/agents.js +22 -4
  32. package/src/commands/backup-local-cmd.js +25 -0
  33. package/src/commands/backup.js +533 -0
  34. package/src/commands/cloud.js +17 -17
  35. package/src/commands/context-pack.js +45 -0
  36. package/src/commands/implementation-plan.js +340 -0
  37. package/src/commands/learning.js +134 -0
  38. package/src/commands/live.js +1583 -0
  39. package/src/commands/runtime.js +1075 -2
  40. package/src/commands/scan-project.js +288 -24
  41. package/src/commands/setup-context.js +30 -2
  42. package/src/commands/skill.js +558 -0
  43. package/src/commands/squad-agent-create.js +788 -0
  44. package/src/commands/squad-daemon.js +209 -0
  45. package/src/commands/squad-dashboard.js +39 -0
  46. package/src/commands/squad-deploy.js +64 -0
  47. package/src/commands/squad-doctor.js +103 -1
  48. package/src/commands/squad-investigate.js +261 -0
  49. package/src/commands/squad-learning.js +209 -0
  50. package/src/commands/squad-mcp.js +270 -0
  51. package/src/commands/squad-pipeline.js +247 -1
  52. package/src/commands/squad-plan.js +329 -0
  53. package/src/commands/squad-processes.js +56 -0
  54. package/src/commands/squad-recovery.js +42 -0
  55. package/src/commands/squad-roi.js +291 -0
  56. package/src/commands/squad-score.js +250 -0
  57. package/src/commands/squad-status.js +38 -2
  58. package/src/commands/squad-validate.js +118 -1
  59. package/src/commands/squad-webhook.js +160 -0
  60. package/src/commands/squad-worker.js +191 -0
  61. package/src/commands/squad-worktrees.js +75 -0
  62. package/src/commands/test-agents.js +6 -1
  63. package/src/commands/web-map.js +70 -0
  64. package/src/commands/web-scrape.js +71 -0
  65. package/src/commands/workflow-next.js +8 -1
  66. package/src/commands/workflow-status.js +250 -0
  67. package/src/constants.js +88 -16
  68. package/src/context-memory.js +837 -0
  69. package/src/context-writer.js +47 -1
  70. package/src/delivery-runner.js +319 -0
  71. package/src/genome-files.js +1 -1
  72. package/src/genome-format.js +1 -1
  73. package/src/i18n/messages/en.js +333 -8
  74. package/src/i18n/messages/es.js +240 -6
  75. package/src/i18n/messages/fr.js +239 -5
  76. package/src/i18n/messages/pt-BR.js +330 -12
  77. package/src/installer.js +30 -2
  78. package/src/lib/genomes/compat.js +1 -1
  79. package/src/lib/webhook-server.js +328 -0
  80. package/src/mcp-connectors/registry.js +602 -0
  81. package/src/runtime-store.js +1037 -42
  82. package/src/session-handoff.js +77 -0
  83. package/src/squad/external-session.js +180 -0
  84. package/src/squad/inter-squad.js +74 -0
  85. package/src/squad/recovery-context.js +201 -0
  86. package/src/squad/worktree-manager.js +114 -0
  87. package/src/squad-daemon.js +490 -0
  88. package/src/squad-dashboard/api.js +223 -0
  89. package/src/squad-dashboard/attachment-handler.js +93 -0
  90. package/src/squad-dashboard/context-monitor.js +157 -0
  91. package/src/squad-dashboard/execution-logs.js +115 -0
  92. package/src/squad-dashboard/hunk-review.js +209 -0
  93. package/src/squad-dashboard/metrics.js +133 -0
  94. package/src/squad-dashboard/process-monitor.js +125 -0
  95. package/src/squad-dashboard/renderer.js +858 -0
  96. package/src/squad-dashboard/server.js +232 -0
  97. package/src/squad-dashboard/styles.js +525 -0
  98. package/src/squad-dashboard/token-tracker.js +99 -0
  99. package/src/web.js +284 -0
  100. package/src/worker-runner.js +339 -0
  101. package/template/.aioson/agents/analyst.md +40 -9
  102. package/template/.aioson/agents/architect.md +24 -5
  103. package/template/.aioson/agents/dev.md +254 -25
  104. package/template/.aioson/agents/deyvin.md +174 -0
  105. package/template/.aioson/agents/discovery-design-doc.md +25 -1
  106. package/template/.aioson/agents/{genoma.md → genome.md} +20 -20
  107. package/template/.aioson/agents/neo.md +152 -0
  108. package/template/.aioson/agents/orache.md +388 -0
  109. package/template/.aioson/agents/orchestrator.md +63 -2
  110. package/template/.aioson/agents/pair.md +5 -0
  111. package/template/.aioson/agents/pm.md +17 -5
  112. package/template/.aioson/agents/product.md +113 -29
  113. package/template/.aioson/agents/profiler-enricher.md +1 -1
  114. package/template/.aioson/agents/profiler-forge.md +9 -9
  115. package/template/.aioson/agents/profiler-researcher.md +1 -1
  116. package/template/.aioson/agents/qa.md +18 -5
  117. package/template/.aioson/agents/setup.md +138 -18
  118. package/template/.aioson/agents/sheldon.md +603 -0
  119. package/template/.aioson/agents/squad.md +866 -28
  120. package/template/.aioson/agents/tester.md +254 -0
  121. package/template/.aioson/agents/ux-ui.md +289 -34
  122. package/template/.aioson/config.md +181 -0
  123. package/template/.aioson/context/spec.md.template +17 -0
  124. package/template/.aioson/genomes/.gitkeep +0 -0
  125. package/template/.aioson/installed-skills/.gitkeep +0 -0
  126. package/template/.aioson/locales/en/agents/analyst.md +34 -4
  127. package/template/.aioson/locales/en/agents/architect.md +18 -0
  128. package/template/.aioson/locales/en/agents/dev.md +155 -11
  129. package/template/.aioson/locales/en/agents/deyvin.md +137 -0
  130. package/template/.aioson/locales/en/agents/{genoma.md → genome.md} +14 -14
  131. package/template/.aioson/locales/en/agents/neo.md +8 -0
  132. package/template/.aioson/locales/en/agents/orchestrator.md +62 -2
  133. package/template/.aioson/locales/en/agents/pair.md +5 -0
  134. package/template/.aioson/locales/en/agents/pm.md +7 -0
  135. package/template/.aioson/locales/en/agents/product.md +35 -17
  136. package/template/.aioson/locales/en/agents/qa.md +56 -0
  137. package/template/.aioson/locales/en/agents/setup.md +53 -6
  138. package/template/.aioson/locales/en/agents/sheldon.md +340 -0
  139. package/template/.aioson/locales/en/agents/squad.md +203 -15
  140. package/template/.aioson/locales/en/agents/ux-ui.md +383 -35
  141. package/template/.aioson/locales/es/agents/analyst.md +24 -4
  142. package/template/.aioson/locales/es/agents/architect.md +18 -0
  143. package/template/.aioson/locales/es/agents/dev.md +136 -9
  144. package/template/.aioson/locales/es/agents/deyvin.md +97 -0
  145. package/template/.aioson/locales/es/agents/{genoma.md → genome.md} +13 -13
  146. package/template/.aioson/locales/es/agents/neo.md +48 -0
  147. package/template/.aioson/locales/es/agents/orache.md +103 -0
  148. package/template/.aioson/locales/es/agents/orchestrator.md +62 -2
  149. package/template/.aioson/locales/es/agents/pair.md +5 -0
  150. package/template/.aioson/locales/es/agents/pm.md +7 -0
  151. package/template/.aioson/locales/es/agents/product.md +13 -3
  152. package/template/.aioson/locales/es/agents/qa.md +33 -0
  153. package/template/.aioson/locales/es/agents/setup.md +30 -6
  154. package/template/.aioson/locales/es/agents/sheldon.md +192 -0
  155. package/template/.aioson/locales/es/agents/squad.md +284 -15
  156. package/template/.aioson/locales/es/agents/ux-ui.md +34 -25
  157. package/template/.aioson/locales/fr/agents/analyst.md +24 -4
  158. package/template/.aioson/locales/fr/agents/architect.md +18 -0
  159. package/template/.aioson/locales/fr/agents/dev.md +136 -9
  160. package/template/.aioson/locales/fr/agents/deyvin.md +97 -0
  161. package/template/.aioson/locales/fr/agents/{genoma.md → genome.md} +7 -7
  162. package/template/.aioson/locales/fr/agents/neo.md +48 -0
  163. package/template/.aioson/locales/fr/agents/orache.md +104 -0
  164. package/template/.aioson/locales/fr/agents/orchestrator.md +62 -2
  165. package/template/.aioson/locales/fr/agents/pair.md +5 -0
  166. package/template/.aioson/locales/fr/agents/pm.md +7 -0
  167. package/template/.aioson/locales/fr/agents/product.md +13 -3
  168. package/template/.aioson/locales/fr/agents/qa.md +33 -0
  169. package/template/.aioson/locales/fr/agents/setup.md +30 -6
  170. package/template/.aioson/locales/fr/agents/sheldon.md +192 -0
  171. package/template/.aioson/locales/fr/agents/squad.md +279 -10
  172. package/template/.aioson/locales/fr/agents/ux-ui.md +34 -25
  173. package/template/.aioson/locales/pt-BR/agents/analyst.md +45 -4
  174. package/template/.aioson/locales/pt-BR/agents/architect.md +29 -0
  175. package/template/.aioson/locales/pt-BR/agents/dev.md +167 -15
  176. package/template/.aioson/locales/pt-BR/agents/deyvin.md +137 -0
  177. package/template/.aioson/locales/pt-BR/agents/{genoma.md → genome.md} +49 -49
  178. package/template/.aioson/locales/pt-BR/agents/neo.md +147 -0
  179. package/template/.aioson/locales/pt-BR/agents/orache.md +137 -0
  180. package/template/.aioson/locales/pt-BR/agents/orchestrator.md +62 -2
  181. package/template/.aioson/locales/pt-BR/agents/pair.md +5 -0
  182. package/template/.aioson/locales/pt-BR/agents/pm.md +7 -0
  183. package/template/.aioson/locales/pt-BR/agents/product.md +43 -20
  184. package/template/.aioson/locales/pt-BR/agents/qa.md +67 -0
  185. package/template/.aioson/locales/pt-BR/agents/setup.md +53 -6
  186. package/template/.aioson/locales/pt-BR/agents/sheldon.md +192 -0
  187. package/template/.aioson/locales/pt-BR/agents/squad.md +591 -47
  188. package/template/.aioson/locales/pt-BR/agents/ux-ui.md +369 -22
  189. package/template/.aioson/my-agents/.gitkeep +0 -0
  190. package/template/.aioson/rules/.gitkeep +0 -0
  191. package/template/.aioson/rules/squad/.gitkeep +0 -0
  192. package/template/.aioson/rules/squad/README.md +50 -0
  193. package/template/.aioson/schemas/genome-meta.schema.json +1 -1
  194. package/template/.aioson/schemas/genome.schema.json +1 -1
  195. package/template/.aioson/schemas/squad-blueprint.schema.json +32 -0
  196. package/template/.aioson/schemas/squad-manifest.schema.json +434 -1
  197. package/template/.aioson/skills/design/bold-editorial-ui/SKILL.md +205 -0
  198. package/template/.aioson/skills/design/bold-editorial-ui/references/art-direction.md +338 -0
  199. package/template/.aioson/skills/design/bold-editorial-ui/references/components.md +977 -0
  200. package/template/.aioson/skills/design/bold-editorial-ui/references/dashboards.md +218 -0
  201. package/template/.aioson/skills/design/bold-editorial-ui/references/design-tokens.md +326 -0
  202. package/template/.aioson/skills/design/bold-editorial-ui/references/motion.md +461 -0
  203. package/template/.aioson/skills/design/bold-editorial-ui/references/patterns.md +293 -0
  204. package/template/.aioson/skills/design/bold-editorial-ui/references/websites.md +352 -0
  205. package/template/.aioson/skills/design/clean-saas-ui/SKILL.md +210 -0
  206. package/template/.aioson/skills/design/clean-saas-ui/references/art-direction.md +319 -0
  207. package/template/.aioson/skills/design/clean-saas-ui/references/components.md +365 -0
  208. package/template/.aioson/skills/design/clean-saas-ui/references/dashboards.md +196 -0
  209. package/template/.aioson/skills/design/clean-saas-ui/references/design-tokens.md +244 -0
  210. package/template/.aioson/skills/design/clean-saas-ui/references/motion.md +235 -0
  211. package/template/.aioson/skills/design/clean-saas-ui/references/patterns.md +215 -0
  212. package/template/.aioson/skills/design/clean-saas-ui/references/websites.md +295 -0
  213. package/template/.aioson/skills/design/cognitive-core-ui/SKILL.md +203 -0
  214. package/template/.aioson/skills/design/cognitive-core-ui/references/art-direction.md +339 -0
  215. package/template/.aioson/skills/design/cognitive-core-ui/references/components.md +407 -0
  216. package/template/.aioson/skills/design/cognitive-core-ui/references/dashboards.md +272 -0
  217. package/template/.aioson/skills/design/cognitive-core-ui/references/design-tokens.md +524 -0
  218. package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +277 -0
  219. package/template/.aioson/skills/design/cognitive-core-ui/references/patterns.md +289 -0
  220. package/template/.aioson/skills/design/cognitive-core-ui/references/websites.md +437 -0
  221. package/template/.aioson/skills/design/interface-design/SKILL.md +47 -0
  222. package/template/.aioson/skills/design/interface-design/references/components-and-states.md +105 -0
  223. package/template/.aioson/skills/design/interface-design/references/design-directions.md +101 -0
  224. package/template/.aioson/skills/design/interface-design/references/handoff-and-quality.md +71 -0
  225. package/template/.aioson/skills/design/interface-design/references/intent-and-domain.md +74 -0
  226. package/template/.aioson/skills/design/interface-design/references/tokens-and-depth.md +173 -0
  227. package/template/.aioson/skills/design/premium-command-center-ui/SKILL.md +62 -0
  228. package/template/.aioson/skills/design/premium-command-center-ui/references/operations.md +74 -0
  229. package/template/.aioson/skills/design/premium-command-center-ui/references/patterns.md +116 -0
  230. package/template/.aioson/skills/design/premium-command-center-ui/references/validation.md +47 -0
  231. package/template/.aioson/skills/design/premium-command-center-ui/references/visual-system.md +215 -0
  232. package/template/.aioson/skills/design/warm-craft-ui/SKILL.md +209 -0
  233. package/template/.aioson/skills/design/warm-craft-ui/references/art-direction.md +324 -0
  234. package/template/.aioson/skills/design/warm-craft-ui/references/components.md +508 -0
  235. package/template/.aioson/skills/design/warm-craft-ui/references/dashboards.md +223 -0
  236. package/template/.aioson/skills/design/warm-craft-ui/references/design-tokens.md +374 -0
  237. package/template/.aioson/skills/design/warm-craft-ui/references/motion.md +356 -0
  238. package/template/.aioson/skills/design/warm-craft-ui/references/patterns.md +288 -0
  239. package/template/.aioson/skills/design/warm-craft-ui/references/websites.md +289 -0
  240. package/template/.aioson/skills/design-system/SKILL.md +92 -0
  241. package/template/.aioson/skills/design-system/cognitive-core-ui.skill +0 -0
  242. package/template/.aioson/skills/design-system/components/SKILL.md +274 -0
  243. package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
  244. package/template/.aioson/skills/design-system/dashboards/SKILL.md +184 -0
  245. package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
  246. package/template/.aioson/skills/design-system/foundations/SKILL.md +250 -0
  247. package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
  248. package/template/.aioson/skills/design-system/motion/SKILL.md +197 -0
  249. package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
  250. package/template/.aioson/skills/design-system/patterns/SKILL.md +231 -0
  251. package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
  252. package/template/.aioson/skills/premium-visual-design/SKILL.md +83 -0
  253. package/template/.aioson/skills/premium-visual-design/components/agent-badge.md +92 -0
  254. package/template/.aioson/skills/premium-visual-design/components/dependency-node.md +102 -0
  255. package/template/.aioson/skills/premium-visual-design/components/mention-autocomplete.md +136 -0
  256. package/template/.aioson/skills/premium-visual-design/components/notification-center.md +136 -0
  257. package/template/.aioson/skills/premium-visual-design/components/review-action-bar.md +188 -0
  258. package/template/.aioson/skills/premium-visual-design/components/team-switcher.md +131 -0
  259. package/template/.aioson/skills/premium-visual-design/patterns/agent-message-thread.md +198 -0
  260. package/template/.aioson/skills/premium-visual-design/patterns/notification-panel.md +275 -0
  261. package/template/.aioson/skills/premium-visual-design/patterns/review-workflow-ui.md +234 -0
  262. package/template/.aioson/skills/premium-visual-design/patterns/task-dependency-graph.md +147 -0
  263. package/template/.aioson/skills/premium-visual-design/tokens/status-extended.md +142 -0
  264. package/template/.aioson/skills/squad/SKILL.md +58 -0
  265. package/template/.aioson/skills/squad/domains/.gitkeep +0 -0
  266. package/template/.aioson/skills/squad/formats/.gitkeep +0 -0
  267. package/template/.aioson/skills/squad/formats/catalog.json +15 -0
  268. package/template/.aioson/skills/squad/formats/content/blog-post.md +47 -0
  269. package/template/.aioson/skills/squad/formats/content/newsletter.md +47 -0
  270. package/template/.aioson/skills/squad/formats/creative/podcast-script.md +43 -0
  271. package/template/.aioson/skills/squad/formats/creative/video-script.md +41 -0
  272. package/template/.aioson/skills/squad/formats/social/instagram-feed.md +42 -0
  273. package/template/.aioson/skills/squad/formats/social/linkedin-post.md +42 -0
  274. package/template/.aioson/skills/squad/formats/social/tiktok.md +39 -0
  275. package/template/.aioson/skills/squad/formats/social/twitter-thread.md +39 -0
  276. package/template/.aioson/skills/squad/formats/social/youtube-long.md +47 -0
  277. package/template/.aioson/skills/squad/formats/social/youtube-shorts.md +39 -0
  278. package/template/.aioson/skills/squad/patterns/.gitkeep +0 -0
  279. package/template/.aioson/skills/squad/patterns/multi-platform-pattern.md +108 -0
  280. package/template/.aioson/skills/squad/patterns/persona-based-pattern.md +98 -0
  281. package/template/.aioson/skills/squad/patterns/pipeline-pattern.md +106 -0
  282. package/template/.aioson/skills/squad/patterns/review-loop-pattern.md +81 -0
  283. package/template/.aioson/skills/squad/references/.gitkeep +0 -0
  284. package/template/.aioson/skills/squad/references/checklist-templates.md +122 -0
  285. package/template/.aioson/skills/squad/references/executor-archetypes.md +123 -0
  286. package/template/.aioson/skills/squad/references/workflow-templates.md +169 -0
  287. package/template/.aioson/skills/static/debugging-protocol.md +42 -0
  288. package/template/.aioson/skills/static/git-worktrees.md +36 -0
  289. package/template/.aioson/tasks/implementation-plan.md +307 -0
  290. package/template/.aioson/tasks/squad-create.md +1 -1
  291. package/template/.aioson/tasks/squad-design.md +28 -0
  292. package/template/.aioson/tasks/squad-execution-plan.md +279 -0
  293. package/template/.aioson/tasks/squad-export.md +1 -1
  294. package/template/.aioson/tasks/squad-investigate.md +44 -0
  295. package/template/.aioson/tasks/squad-learning-review.md +44 -0
  296. package/template/.aioson/tasks/squad-output-config.md +177 -0
  297. package/template/.aioson/tasks/squad-profile.md +48 -0
  298. package/template/.aioson/tasks/squad-review.md +61 -0
  299. package/template/.aioson/tasks/squad-task-decompose.md +66 -0
  300. package/template/.aioson/tasks/squad-validate.md +1 -1
  301. package/template/.claude/commands/aioson/agent/deyvin.md +5 -0
  302. package/template/.claude/commands/aioson/agent/discovery-design-doc.md +5 -0
  303. package/template/.claude/commands/aioson/agent/genome.md +5 -0
  304. package/template/.claude/commands/aioson/agent/neo.md +5 -0
  305. package/template/.claude/commands/aioson/agent/product.md +5 -0
  306. package/template/.claude/commands/aioson/agent/profiler-enricher.md +5 -0
  307. package/template/.claude/commands/aioson/agent/profiler-forge.md +5 -0
  308. package/template/.claude/commands/aioson/agent/profiler-researcher.md +5 -0
  309. package/template/.claude/commands/aioson/agent/squad.md +5 -0
  310. package/template/.claude/commands/aioson/agent/tester.md +5 -0
  311. package/template/.gemini/GEMINI.md +3 -0
  312. package/template/.gemini/commands/aios-deyvin.toml +6 -0
  313. package/template/.gemini/commands/aios-neo.toml +4 -0
  314. package/template/.gemini/commands/aios-pair.toml +6 -0
  315. package/template/.gemini/commands/aios-tester.toml +6 -0
  316. package/template/AGENTS.md +37 -6
  317. package/template/CLAUDE.md +34 -4
  318. package/template/OPENCODE.md +8 -2
  319. package/template/squad-searches/.gitkeep +0 -0
  320. package/template/.aioson/skills/static/interface-design.md +0 -372
  321. package/template/.aioson/skills/static/premium-command-center-ui.md +0 -190
  322. /package/template/.aioson/{genomas → docs}/.gitkeep +0 -0
  323. /package/template/.claude/commands/aioson/{analyst.md → agent/analyst.md} +0 -0
  324. /package/template/.claude/commands/aioson/{architect.md → agent/architect.md} +0 -0
  325. /package/template/.claude/commands/aioson/{dev.md → agent/dev.md} +0 -0
  326. /package/template/.claude/commands/aioson/{orchestrator.md → agent/orchestrator.md} +0 -0
  327. /package/template/.claude/commands/aioson/{pm.md → agent/pm.md} +0 -0
  328. /package/template/.claude/commands/aioson/{qa.md → agent/qa.md} +0 -0
  329. /package/template/.claude/commands/aioson/{setup.md → agent/setup.md} +0 -0
  330. /package/template/.claude/commands/aioson/{ux-ui.md → agent/ux-ui.md} +0 -0
@@ -0,0 +1,356 @@
1
+ # Motion — Warm Craft UI
2
+
3
+ Animation and transition specifications. Motion in Warm Craft is **gentle and purposeful** — every animation should feel like a natural, unhurried movement. Nothing aggressive, nothing flashy.
4
+
5
+ ---
6
+
7
+ ## Motion Principles
8
+
9
+ 1. **Gentle over dramatic.** Animations should feel like a slow exhale, not a punch. Ease-out curves, moderate durations, subtle distances.
10
+ 2. **Purposeful only.** Every animation must communicate something: entrance, state change, feedback, hierarchy. Decorative motion is noise.
11
+ 3. **Consistent timing.** Use the token-based durations. Never arbitrary millisecond values.
12
+ 4. **Respect user preference.** Always implement `prefers-reduced-motion` — reduce all animations to near-instant.
13
+
14
+ ---
15
+
16
+ ## Timing Tokens
17
+
18
+ ```css
19
+ --transition-fast: 120ms ease; /* micro-interactions: hover, focus, toggle */
20
+ --transition-base: 200ms ease; /* state changes: active, expand, collapse */
21
+ --transition-slow: 320ms ease; /* page transitions, large reveals, modals */
22
+ --transition-theme: background 200ms ease, color 200ms ease, border-color 200ms ease, box-shadow 200ms ease;
23
+ ```
24
+
25
+ ---
26
+
27
+ ## Easing Curves
28
+
29
+ ```css
30
+ /* Standard — most interactions */
31
+ --ease-default: cubic-bezier(0.25, 0.1, 0.25, 1.0); /* ease */
32
+
33
+ /* Entrance — elements appearing */
34
+ --ease-enter: cubic-bezier(0.0, 0.0, 0.2, 1.0); /* ease-out — decelerates in */
35
+
36
+ /* Exit — elements leaving */
37
+ --ease-exit: cubic-bezier(0.4, 0.0, 1.0, 1.0); /* ease-in — accelerates out */
38
+
39
+ /* Gentle spring — for playful moments (onboarding, celebrations) */
40
+ --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1.0); /* slight overshoot */
41
+ ```
42
+
43
+ ---
44
+
45
+ ## Entrance Animations
46
+
47
+ ### Fade In (default entrance)
48
+ ```css
49
+ @keyframes warm-fade-in {
50
+ from { opacity: 0; }
51
+ to { opacity: 1; }
52
+ }
53
+
54
+ .fade-in {
55
+ animation: warm-fade-in 300ms var(--ease-enter) both;
56
+ }
57
+ ```
58
+
59
+ ### Fade Up (cards, sections)
60
+ ```css
61
+ @keyframes warm-fade-up {
62
+ from {
63
+ opacity: 0;
64
+ transform: translateY(12px);
65
+ }
66
+ to {
67
+ opacity: 1;
68
+ transform: translateY(0);
69
+ }
70
+ }
71
+
72
+ .fade-up {
73
+ animation: warm-fade-up 400ms var(--ease-enter) both;
74
+ }
75
+ ```
76
+
77
+ ### Scale In (modals, popovers)
78
+ ```css
79
+ @keyframes warm-scale-in {
80
+ from {
81
+ opacity: 0;
82
+ transform: scale(0.95);
83
+ }
84
+ to {
85
+ opacity: 1;
86
+ transform: scale(1);
87
+ }
88
+ }
89
+
90
+ .scale-in {
91
+ animation: warm-scale-in 250ms var(--ease-enter) both;
92
+ }
93
+ ```
94
+
95
+ ### Slide In (drawers, side panels)
96
+ ```css
97
+ @keyframes warm-slide-in-right {
98
+ from {
99
+ opacity: 0;
100
+ transform: translateX(20px);
101
+ }
102
+ to {
103
+ opacity: 1;
104
+ transform: translateX(0);
105
+ }
106
+ }
107
+
108
+ .slide-in-right {
109
+ animation: warm-slide-in-right 300ms var(--ease-enter) both;
110
+ }
111
+ ```
112
+
113
+ ---
114
+
115
+ ## Stagger Sequences
116
+
117
+ For lists, grids, and card groups appearing together:
118
+
119
+ ```css
120
+ .stagger-group > * {
121
+ animation: warm-fade-up 400ms var(--ease-enter) both;
122
+ }
123
+
124
+ .stagger-group > *:nth-child(1) { animation-delay: 0ms; }
125
+ .stagger-group > *:nth-child(2) { animation-delay: 60ms; }
126
+ .stagger-group > *:nth-child(3) { animation-delay: 120ms; }
127
+ .stagger-group > *:nth-child(4) { animation-delay: 180ms; }
128
+ .stagger-group > *:nth-child(5) { animation-delay: 240ms; }
129
+ .stagger-group > *:nth-child(6) { animation-delay: 300ms; }
130
+ ```
131
+
132
+ Rules:
133
+ - Stagger delay: 60ms per item (warm, unhurried).
134
+ - Max 6 items staggered. After 6, start the rest together.
135
+ - Only stagger on first load or page transition. Never on scroll.
136
+
137
+ ---
138
+
139
+ ## Micro-Interactions
140
+
141
+ ### Button Press
142
+ ```css
143
+ button:active {
144
+ transform: scale(0.98);
145
+ transition: transform 80ms ease;
146
+ }
147
+ ```
148
+
149
+ ### Card Hover Lift
150
+ ```css
151
+ .card-interactive {
152
+ transition: transform var(--transition-base), box-shadow var(--transition-base);
153
+ }
154
+
155
+ .card-interactive:hover {
156
+ transform: translateY(-2px);
157
+ box-shadow: var(--shadow-md);
158
+ }
159
+ ```
160
+
161
+ ### Toggle Switch
162
+ ```css
163
+ .toggle-thumb {
164
+ transition: transform 200ms var(--ease-spring);
165
+ }
166
+
167
+ .toggle-checked .toggle-thumb {
168
+ transform: translateX(20px);
169
+ }
170
+ ```
171
+
172
+ ### Checkbox Check
173
+ ```css
174
+ @keyframes warm-check {
175
+ 0% { stroke-dashoffset: 20; }
176
+ 100% { stroke-dashoffset: 0; }
177
+ }
178
+
179
+ .checkbox-checked svg path {
180
+ animation: warm-check 200ms var(--ease-enter) both;
181
+ }
182
+ ```
183
+
184
+ ### Input Focus Ring
185
+ ```css
186
+ input {
187
+ transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
188
+ }
189
+
190
+ input:focus {
191
+ border-color: var(--accent);
192
+ box-shadow: 0 0 0 3px var(--accent-dim);
193
+ }
194
+ ```
195
+
196
+ ---
197
+
198
+ ## Page Transitions
199
+
200
+ ### Content Area Change (tab switch, route change)
201
+ ```css
202
+ .page-content-enter {
203
+ animation: warm-fade-up 300ms var(--ease-enter) both;
204
+ }
205
+
206
+ .page-content-exit {
207
+ animation: warm-fade-in 150ms var(--ease-exit) reverse both;
208
+ }
209
+ ```
210
+
211
+ Rule: exit is faster than enter (150ms vs 300ms). Content should leave quickly and arrive gently.
212
+
213
+ ### Modal Enter/Exit
214
+ ```css
215
+ /* Backdrop */
216
+ .modal-backdrop-enter {
217
+ animation: warm-fade-in 200ms ease both;
218
+ }
219
+
220
+ /* Modal */
221
+ .modal-enter {
222
+ animation: warm-scale-in 280ms var(--ease-enter) both;
223
+ animation-delay: 60ms; /* slight delay after backdrop */
224
+ }
225
+
226
+ .modal-exit {
227
+ animation: warm-scale-in 180ms var(--ease-exit) reverse both;
228
+ }
229
+ ```
230
+
231
+ ### Drawer Enter/Exit
232
+ ```css
233
+ .drawer-enter {
234
+ animation: warm-slide-in-right 300ms var(--ease-enter) both;
235
+ }
236
+
237
+ .drawer-exit {
238
+ animation: warm-slide-in-right 200ms var(--ease-exit) reverse both;
239
+ }
240
+ ```
241
+
242
+ ---
243
+
244
+ ## Scroll Reveal (websites only)
245
+
246
+ Use for landing pages and marketing sections. Never for app pages.
247
+
248
+ ```css
249
+ .scroll-reveal {
250
+ opacity: 0;
251
+ transform: translateY(20px);
252
+ transition: opacity 500ms var(--ease-enter), transform 500ms var(--ease-enter);
253
+ }
254
+
255
+ .scroll-reveal.visible {
256
+ opacity: 1;
257
+ transform: translateY(0);
258
+ }
259
+ ```
260
+
261
+ Implementation:
262
+ ```javascript
263
+ const observer = new IntersectionObserver((entries) => {
264
+ entries.forEach(entry => {
265
+ if (entry.isIntersecting) {
266
+ entry.target.classList.add('visible');
267
+ observer.unobserve(entry.target); // trigger once
268
+ }
269
+ });
270
+ }, { threshold: 0.15 });
271
+
272
+ document.querySelectorAll('.scroll-reveal').forEach(el => observer.observe(el));
273
+ ```
274
+
275
+ Rules:
276
+ - Threshold: 0.15 (trigger when 15% visible — feels natural).
277
+ - Trigger once, never re-animate on scroll back.
278
+ - Translate distance: 20px max. More feels dramatic, less feels invisible.
279
+ - Duration: 500ms. Scroll reveals are slower than UI transitions — they are narrative.
280
+
281
+ ---
282
+
283
+ ## Loading States
284
+
285
+ ### Skeleton Pulse
286
+ ```css
287
+ @keyframes warm-pulse {
288
+ 0%, 100% { opacity: 1; }
289
+ 50% { opacity: 0.5; }
290
+ }
291
+
292
+ .skeleton {
293
+ background: var(--bg-elevated);
294
+ border-radius: var(--radius-md);
295
+ animation: warm-pulse 1.8s ease-in-out infinite;
296
+ }
297
+ ```
298
+
299
+ ### Spinner (for buttons, small areas)
300
+ ```css
301
+ @keyframes warm-spin {
302
+ to { transform: rotate(360deg); }
303
+ }
304
+
305
+ .spinner {
306
+ width: 20px;
307
+ height: 20px;
308
+ border: 2px solid var(--border-medium);
309
+ border-top-color: var(--accent);
310
+ border-radius: var(--radius-full);
311
+ animation: warm-spin 800ms linear infinite;
312
+ }
313
+ ```
314
+
315
+ ### Progress Bar Fill
316
+ ```css
317
+ .progress-fill {
318
+ transition: width 600ms var(--ease-enter);
319
+ }
320
+ ```
321
+
322
+ ---
323
+
324
+ ## Celebration Moments
325
+
326
+ For onboarding completion, achievement unlocked, milestone reached.
327
+
328
+ ```css
329
+ @keyframes warm-celebrate {
330
+ 0% { transform: scale(0.8); opacity: 0; }
331
+ 50% { transform: scale(1.05); }
332
+ 100% { transform: scale(1); opacity: 1; }
333
+ }
334
+
335
+ .celebration {
336
+ animation: warm-celebrate 500ms var(--ease-spring) both;
337
+ }
338
+ ```
339
+
340
+ Use sparingly. One celebration per flow, not per step.
341
+
342
+ ---
343
+
344
+ ## Reduced Motion
345
+
346
+ ```css
347
+ @media (prefers-reduced-motion: reduce) {
348
+ *, *::before, *::after {
349
+ animation-duration: 0.01ms !important;
350
+ animation-iteration-count: 1 !important;
351
+ transition-duration: 0.01ms !important;
352
+ }
353
+ }
354
+ ```
355
+
356
+ Non-negotiable. Always include this in the global stylesheet.
@@ -0,0 +1,288 @@
1
+ # Page Patterns — Warm Craft UI
2
+
3
+ Layout patterns for common page types. Each pattern is a composition guide, not a rigid template. Use tokens from `design-tokens.md` and components from `components.md`.
4
+
5
+ ---
6
+
7
+ ## App Shell
8
+
9
+ The main layout container for all app pages.
10
+
11
+ ```
12
+ +----------------------------------------------------------+
13
+ | TOP BAR (64px) |
14
+ +----------+-----------------------------------------------+
15
+ | | |
16
+ | SIDEBAR | CONTENT AREA |
17
+ | 240px | padding: var(--space-8) |
18
+ | | max-width: var(--content-xl) or fluid |
19
+ | | |
20
+ +----------+-----------------------------------------------+
21
+ ```
22
+
23
+ Rules:
24
+ - Sidebar background: `var(--bg-void)` — one level deeper than content
25
+ - Content background: `var(--bg-base)`
26
+ - Sidebar collapses to bottom tab bar on mobile (< 768px)
27
+ - Content area scrolls independently; sidebar and topbar are fixed
28
+ - Sidebar width: 240px default. Can collapse to 64px icon-only with toggle
29
+
30
+ ### Compact Shell (no sidebar)
31
+ ```
32
+ +----------------------------------------------------------+
33
+ | TOP BAR (64px) |
34
+ +----------------------------------------------------------+
35
+ | |
36
+ | CONTENT AREA |
37
+ | max-width: var(--content-lg) |
38
+ | margin: 0 auto |
39
+ | padding: var(--space-8) var(--space-6) |
40
+ | |
41
+ +----------------------------------------------------------+
42
+ ```
43
+
44
+ Use when: simple apps with fewer than 5 navigation items, single-purpose tools.
45
+
46
+ ---
47
+
48
+ ## Dashboard Page
49
+
50
+ ```
51
+ PAGE HEADER
52
+ font: var(--font-display), var(--text-3xl), var(--weight-bold)
53
+ color: var(--text-heading)
54
+ subtitle: var(--font-body), var(--text-base), var(--text-secondary)
55
+ margin-bottom: var(--space-8)
56
+
57
+ STAT ROW (optional — do NOT always start with this)
58
+ display: grid
59
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr))
60
+ gap: var(--space-5)
61
+ margin-bottom: var(--space-8)
62
+ uses: Stat Card component
63
+
64
+ SECTION
65
+ title:
66
+ font: var(--font-display), var(--text-xl), var(--weight-semibold)
67
+ color: var(--text-heading)
68
+ margin-bottom: var(--space-5)
69
+ content:
70
+ Card grid, Table, Chart, or Activity Feed
71
+ margin-bottom: var(--space-10)
72
+ ```
73
+
74
+ Variation rules:
75
+ - Do NOT always use 4 stat cards as the first element
76
+ - Prefer one hero insight or greeting above stats
77
+ - Charts use warm palette (see `design-tokens.md` palette rules)
78
+ - Tables should feel native to the warm system, not pasted from a data library
79
+
80
+ ---
81
+
82
+ ## Detail / Profile Page
83
+
84
+ ```
85
+ BACK NAVIGATION
86
+ Ghost Button with arrow icon + "Back to {list}"
87
+ margin-bottom: var(--space-4)
88
+
89
+ HEADER ZONE
90
+ display: flex; gap: var(--space-6); align-items: flex-start
91
+ avatar: var(--space-20) (80px)
92
+ title: var(--font-display), var(--text-3xl), var(--weight-bold)
93
+ subtitle: var(--text-secondary)
94
+ badges: inline-flex after subtitle
95
+ actions: flex-end (Edit, Delete, etc.)
96
+
97
+ TAB NAVIGATION (optional)
98
+ border-bottom: 1px solid var(--border-subtle)
99
+ margin: var(--space-6) 0
100
+ tab:
101
+ padding: var(--space-3) var(--space-4)
102
+ font: var(--text-sm), var(--weight-medium)
103
+ color: var(--text-secondary)
104
+ active:
105
+ color: var(--text-heading)
106
+ border-bottom: 2px solid var(--accent)
107
+
108
+ CONTENT SECTIONS
109
+ Two-column layout on desktop (content 2/3 + sidebar 1/3)
110
+ Single column on mobile
111
+ gap: var(--space-8)
112
+ ```
113
+
114
+ ---
115
+
116
+ ## Settings Page
117
+
118
+ ```
119
+ PAGE HEADER
120
+ title: "Settings"
121
+ no subtitle needed
122
+
123
+ SETTINGS NAVIGATION (left column or tabs)
124
+ vertical list: General, Profile, Notifications, Security, Billing...
125
+ uses: Sidebar Navigation item style
126
+
127
+ SETTINGS CONTENT (right column)
128
+ sections:
129
+ SECTION TITLE
130
+ font: var(--font-display), var(--text-lg), var(--weight-semibold)
131
+ border-bottom: 1px solid var(--border-subtle)
132
+ padding-bottom: var(--space-3)
133
+ margin-bottom: var(--space-6)
134
+
135
+ SETTING ROW
136
+ display: flex; justify-content: space-between; align-items: center
137
+ padding: var(--space-4) 0
138
+ border-bottom: 1px solid var(--border-subtle)
139
+
140
+ label + description (left):
141
+ label: var(--text-sm), var(--weight-medium), var(--text-heading)
142
+ description: var(--text-sm), var(--text-secondary)
143
+
144
+ control (right):
145
+ Toggle, Select, or Button
146
+ ```
147
+
148
+ ---
149
+
150
+ ## List / Browse Page
151
+
152
+ ```
153
+ PAGE HEADER + ACTIONS
154
+ title + description (left)
155
+ Primary Button "Create New" (right)
156
+ margin-bottom: var(--space-6)
157
+
158
+ FILTERS / SEARCH BAR
159
+ display: flex; gap: var(--space-3); align-items: center
160
+ Search Input (pill-shaped, flexible width)
161
+ Filter badges or dropdown buttons
162
+ margin-bottom: var(--space-6)
163
+
164
+ CONTENT
165
+ Option A — Card Grid:
166
+ display: grid
167
+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr))
168
+ gap: var(--space-5)
169
+ uses: Base Card or Media Card
170
+
171
+ Option B — Table:
172
+ uses: Table component
173
+ with rounded outer corners and warm hover
174
+
175
+ Option C — List:
176
+ vertical stack with Base Card items
177
+ gap: var(--space-3)
178
+
179
+ PAGINATION
180
+ display: flex; justify-content: center; gap: var(--space-2)
181
+ margin-top: var(--space-8)
182
+ pill-shaped page buttons
183
+ ```
184
+
185
+ ---
186
+
187
+ ## Onboarding / Setup Flow
188
+
189
+ ```
190
+ LAYOUT
191
+ centered, max-width: 560px
192
+ padding: var(--space-16) var(--space-6)
193
+ no sidebar, minimal topbar (logo only)
194
+
195
+ PROGRESS
196
+ Step indicator above content
197
+ Numbered or dot-based, horizontal
198
+ Current step: accent color
199
+ Completed: accent-dim with checkmark
200
+ Future: var(--border-medium)
201
+
202
+ STEP CONTENT
203
+ title:
204
+ font: var(--font-display), var(--text-2xl), var(--weight-bold)
205
+ text-align: center
206
+ margin-bottom: var(--space-2)
207
+
208
+ description:
209
+ font: var(--text-base), var(--text-secondary)
210
+ text-align: center
211
+ max-width: 440px
212
+ margin: 0 auto var(--space-8)
213
+
214
+ form or content:
215
+ text-align: left
216
+ uses standard form components
217
+
218
+ ACTIONS
219
+ display: flex; justify-content: space-between
220
+ margin-top: var(--space-8)
221
+ "Back" (Ghost Button) + "Continue" (Primary Button)
222
+ ```
223
+
224
+ ---
225
+
226
+ ## Auth Pages (Login / Register)
227
+
228
+ ```
229
+ LAYOUT
230
+ Option A — Centered card:
231
+ max-width: 420px
232
+ margin: auto
233
+ min-height: 100vh
234
+ display: flex; align-items: center; justify-content: center
235
+ background: var(--bg-void)
236
+
237
+ Option B — Split screen:
238
+ left 50%: illustration or brand panel (warm gradient or warm photography)
239
+ right 50%: auth form centered
240
+
241
+ CARD
242
+ background: var(--bg-surface)
243
+ border-radius: var(--radius-2xl)
244
+ padding: var(--space-10)
245
+ shadow: var(--shadow-lg)
246
+
247
+ logo:
248
+ centered, margin-bottom: var(--space-8)
249
+
250
+ title:
251
+ font: var(--font-display), var(--text-2xl), var(--weight-bold)
252
+ text-align: center
253
+
254
+ form:
255
+ margin-top: var(--space-6)
256
+ fields stacked with var(--space-4) gap
257
+ "Remember me" checkbox + "Forgot password?" link row
258
+
259
+ submit:
260
+ Primary Button, full width
261
+ margin-top: var(--space-6)
262
+
263
+ footer:
264
+ "Don't have an account? Sign up" — centered link
265
+ margin-top: var(--space-6)
266
+ font: var(--text-sm), var(--text-secondary)
267
+ ```
268
+
269
+ ---
270
+
271
+ ## Responsive Breakpoints
272
+
273
+ ```css
274
+ /* Mobile first */
275
+ @media (min-width: 640px) { /* sm — phone landscape */ }
276
+ @media (min-width: 768px) { /* md — tablet */ }
277
+ @media (min-width: 1024px) { /* lg — desktop */ }
278
+ @media (min-width: 1280px) { /* xl — wide desktop */ }
279
+ @media (min-width: 1440px) { /* 2xl — ultra-wide */ }
280
+ ```
281
+
282
+ Rules:
283
+ - Sidebar → bottom tab bar below 768px
284
+ - Card grids → single column below 640px
285
+ - Split layouts (detail page, auth) → stacked below 768px
286
+ - Content max-width respects `var(--content-*)` tokens
287
+ - Touch targets: minimum 44px on mobile
288
+ - Spacing reduces by one step on mobile (e.g., `--space-8` → `--space-6`)