@design-ai/cli 4.55.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 (529) hide show
  1. package/.claude-plugin/plugin.json +164 -0
  2. package/AGENTS.ko.md +126 -0
  3. package/AGENTS.md +182 -0
  4. package/CHANGELOG.md +6883 -0
  5. package/CLAUDE.md +39 -0
  6. package/LICENSE +21 -0
  7. package/README.ko.md +245 -0
  8. package/README.md +277 -0
  9. package/agents/README.md +14 -0
  10. package/agents/a11y-reviewer.md +121 -0
  11. package/agents/component-architect.md +57 -0
  12. package/agents/design-critic.md +46 -0
  13. package/agents/token-extractor.md +63 -0
  14. package/cli/bin/design-ai-mcp.mjs +6 -0
  15. package/cli/bin/design-ai.mjs +40 -0
  16. package/cli/commands/audit.mjs +111 -0
  17. package/cli/commands/check.mjs +226 -0
  18. package/cli/commands/doctor.mjs +141 -0
  19. package/cli/commands/examples.mjs +58 -0
  20. package/cli/commands/help.mjs +271 -0
  21. package/cli/commands/install.mjs +161 -0
  22. package/cli/commands/learn.mjs +1871 -0
  23. package/cli/commands/list.mjs +143 -0
  24. package/cli/commands/mcp.mjs +27 -0
  25. package/cli/commands/pack.mjs +211 -0
  26. package/cli/commands/prompt.mjs +199 -0
  27. package/cli/commands/route.mjs +247 -0
  28. package/cli/commands/search.mjs +60 -0
  29. package/cli/commands/show.mjs +52 -0
  30. package/cli/commands/site.mjs +558 -0
  31. package/cli/commands/status.mjs +161 -0
  32. package/cli/commands/uninstall.mjs +119 -0
  33. package/cli/commands/update.mjs +184 -0
  34. package/cli/commands/version.mjs +94 -0
  35. package/cli/commands/workspace.mjs +176 -0
  36. package/cli/lib/brief.mjs +52 -0
  37. package/cli/lib/check.mjs +642 -0
  38. package/cli/lib/dispatch.mjs +109 -0
  39. package/cli/lib/doctor.mjs +505 -0
  40. package/cli/lib/examples.mjs +258 -0
  41. package/cli/lib/exec.mjs +63 -0
  42. package/cli/lib/help-flags.mjs +5 -0
  43. package/cli/lib/learn.mjs +3694 -0
  44. package/cli/lib/log.mjs +47 -0
  45. package/cli/lib/mcp-server.mjs +426 -0
  46. package/cli/lib/output.mjs +101 -0
  47. package/cli/lib/pack.mjs +599 -0
  48. package/cli/lib/paths.mjs +63 -0
  49. package/cli/lib/prompt.mjs +603 -0
  50. package/cli/lib/route.mjs +740 -0
  51. package/cli/lib/search.mjs +158 -0
  52. package/cli/lib/show.mjs +161 -0
  53. package/cli/lib/signals.mjs +2337 -0
  54. package/cli/lib/site.mjs +6617 -0
  55. package/cli/lib/skill-proposals.mjs +2046 -0
  56. package/cli/lib/suggest.mjs +66 -0
  57. package/cli/lib/workspace.mjs +1056 -0
  58. package/commands/README.md +25 -0
  59. package/commands/component-spec.md +34 -0
  60. package/commands/conversational.md +44 -0
  61. package/commands/design-from-brief.md +141 -0
  62. package/commands/design-review.md +62 -0
  63. package/commands/document-from-brief.md +47 -0
  64. package/commands/extract-tokens.md +38 -0
  65. package/commands/game-ui.md +40 -0
  66. package/commands/illustration.md +37 -0
  67. package/commands/iterate.md +167 -0
  68. package/commands/motion-design.md +54 -0
  69. package/commands/palette-from-brand.md +50 -0
  70. package/commands/print.md +49 -0
  71. package/commands/slide-deck.md +46 -0
  72. package/commands/spatial.md +47 -0
  73. package/commands/stability-review.md +74 -0
  74. package/commands/video.md +42 -0
  75. package/commands/website-improvement.md +77 -0
  76. package/docs/AGENT-DEVELOPMENT.md +658 -0
  77. package/docs/AI-LEARNING.md +429 -0
  78. package/docs/AIDER-INTEGRATION.md +224 -0
  79. package/docs/ARCHITECTURE.ko.md +183 -0
  80. package/docs/ARCHITECTURE.md +105 -0
  81. package/docs/CODEX-INTEGRATION.md +311 -0
  82. package/docs/COMPANY-WEBSITE-DOGFOOD.ko.md +144 -0
  83. package/docs/COMPANY-WEBSITE-DOGFOOD.md +150 -0
  84. package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.ko.md +153 -0
  85. package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.md +154 -0
  86. package/docs/CONTRIBUTING.ko.md +203 -0
  87. package/docs/CONTRIBUTING.md +242 -0
  88. package/docs/CURSOR-INTEGRATION.md +220 -0
  89. package/docs/DISTRIBUTION.ko.md +248 -0
  90. package/docs/DISTRIBUTION.md +253 -0
  91. package/docs/DOGFOOD-FINDINGS.md +180 -0
  92. package/docs/DOGFOOD-V4-FINDINGS.md +139 -0
  93. package/docs/DOGFOOD-V4-MKDOCS-FINDINGS.md +233 -0
  94. package/docs/DOGFOOD-V4-NPM-FINDINGS.md +157 -0
  95. package/docs/DOGFOOD-V4-VSCODE-FINDINGS.md +135 -0
  96. package/docs/FIGMA-INTEGRATION.md +222 -0
  97. package/docs/MCP-INTEGRATION.md +243 -0
  98. package/docs/MIGRATION-v4.md +121 -0
  99. package/docs/PLUGIN-PACKAGING.md +240 -0
  100. package/docs/PRODUCT-READINESS.md +66 -0
  101. package/docs/QUICKSTART.ko.md +178 -0
  102. package/docs/QUICKSTART.md +179 -0
  103. package/docs/RELEASE-CHECKLIST.md +292 -0
  104. package/docs/ROADMAP.md +19495 -0
  105. package/docs/SESSION-LOG.md +940 -0
  106. package/docs/TOKEN-SYNC.md +237 -0
  107. package/docs/USING.ko.md +206 -0
  108. package/docs/USING.md +218 -0
  109. package/docs/WEBSITE-IMPROVEMENT.ko.md +75 -0
  110. package/docs/WEBSITE-IMPROVEMENT.md +89 -0
  111. package/docs/announcements/README.md +56 -0
  112. package/docs/announcements/dev-to-korea.md +206 -0
  113. package/docs/announcements/hashnode-post.ko.md +232 -0
  114. package/docs/announcements/okky-post.ko.md +158 -0
  115. package/docs/announcements/press-kit.md +101 -0
  116. package/docs/announcements/reddit-r-korea.md +196 -0
  117. package/docs/announcements/show-hn.md +114 -0
  118. package/docs/announcements/twitter-thread.md +255 -0
  119. package/docs/external-status.md +34 -0
  120. package/docs/integrations/aider-walkthrough.ko.md +275 -0
  121. package/docs/integrations/aider-walkthrough.md +274 -0
  122. package/docs/integrations/codex-walkthrough.ko.md +297 -0
  123. package/docs/integrations/codex-walkthrough.md +297 -0
  124. package/docs/integrations/cursor-walkthrough.ko.md +281 -0
  125. package/docs/integrations/cursor-walkthrough.md +284 -0
  126. package/docs/integrations/design-ai-mcp-server.md +169 -0
  127. package/docs/integrations/figma-mcp.md +149 -0
  128. package/docs/integrations/github-mcp.md +178 -0
  129. package/docs/integrations/linear-mcp.md +215 -0
  130. package/docs/integrations/notion-mcp.md +174 -0
  131. package/docs/integrations/sdk-walkthrough.ko.md +375 -0
  132. package/docs/integrations/sdk-walkthrough.md +375 -0
  133. package/docs/integrations/slack-mcp.md +208 -0
  134. package/docs/integrations/vscode-walkthrough.ko.md +202 -0
  135. package/docs/integrations/vscode-walkthrough.md +205 -0
  136. package/docs/requirements.txt +16 -0
  137. package/docs/site-overrides/extra.css +83 -0
  138. package/docs/site-overrides/favicon.svg +4 -0
  139. package/docs/site-overrides/logo.svg +10 -0
  140. package/docs/site-overrides/main.html +18 -0
  141. package/docs/website-console/app.js +2540 -0
  142. package/docs/website-console/index.html +24 -0
  143. package/docs/website-console/styles.css +975 -0
  144. package/examples/README.md +252 -0
  145. package/examples/cases/dogfood-v4-korean-hr-onboarding.md +356 -0
  146. package/examples/component-accordion-actions.md +153 -0
  147. package/examples/component-accordion-details.md +147 -0
  148. package/examples/component-accordion-summary.md +180 -0
  149. package/examples/component-accordion.md +229 -0
  150. package/examples/component-account-card.md +284 -0
  151. package/examples/component-address-input.md +260 -0
  152. package/examples/component-affix.md +190 -0
  153. package/examples/component-alert-dialog.md +210 -0
  154. package/examples/component-alert-title.md +77 -0
  155. package/examples/component-alert.md +192 -0
  156. package/examples/component-amount-input.md +278 -0
  157. package/examples/component-anchor.md +198 -0
  158. package/examples/component-app-bar.md +249 -0
  159. package/examples/component-aspect-ratio.md +156 -0
  160. package/examples/component-auto-complete.md +199 -0
  161. package/examples/component-avatar-group.md +170 -0
  162. package/examples/component-avatar.md +191 -0
  163. package/examples/component-back-top.md +123 -0
  164. package/examples/component-backdrop.md +148 -0
  165. package/examples/component-badge.md +181 -0
  166. package/examples/component-banner.md +237 -0
  167. package/examples/component-biometric-gate.md +281 -0
  168. package/examples/component-blockquote.md +153 -0
  169. package/examples/component-border-beam.md +207 -0
  170. package/examples/component-bottom-navigation.md +226 -0
  171. package/examples/component-box.md +112 -0
  172. package/examples/component-breadcrumb.md +222 -0
  173. package/examples/component-button-base.md +190 -0
  174. package/examples/component-button-group.md +117 -0
  175. package/examples/component-button.md +213 -0
  176. package/examples/component-calendar.md +280 -0
  177. package/examples/component-callout.md +131 -0
  178. package/examples/component-card-actions.md +101 -0
  179. package/examples/component-card-content.md +90 -0
  180. package/examples/component-card-header.md +122 -0
  181. package/examples/component-card-media.md +79 -0
  182. package/examples/component-card.md +233 -0
  183. package/examples/component-carousel.md +266 -0
  184. package/examples/component-cascader.md +135 -0
  185. package/examples/component-category-picker.md +271 -0
  186. package/examples/component-chart.md +237 -0
  187. package/examples/component-chat-interface.md +399 -0
  188. package/examples/component-checkbox.md +149 -0
  189. package/examples/component-click-away-listener.md +87 -0
  190. package/examples/component-code.md +213 -0
  191. package/examples/component-collapsible.md +219 -0
  192. package/examples/component-color-picker.md +110 -0
  193. package/examples/component-combobox.md +267 -0
  194. package/examples/component-command.md +299 -0
  195. package/examples/component-config-provider.md +190 -0
  196. package/examples/component-context-menu.md +179 -0
  197. package/examples/component-css-baseline.md +148 -0
  198. package/examples/component-date-picker.md +249 -0
  199. package/examples/component-descriptions.md +242 -0
  200. package/examples/component-dialog-actions.md +111 -0
  201. package/examples/component-dialog-content-text.md +76 -0
  202. package/examples/component-dialog-content.md +105 -0
  203. package/examples/component-dialog-title.md +104 -0
  204. package/examples/component-dialog.md +176 -0
  205. package/examples/component-divider.md +182 -0
  206. package/examples/component-doc-page.md +217 -0
  207. package/examples/component-drawer.md +257 -0
  208. package/examples/component-dropdown.md +220 -0
  209. package/examples/component-email-layout.md +253 -0
  210. package/examples/component-empty-state.md +269 -0
  211. package/examples/component-empty.md +172 -0
  212. package/examples/component-fade.md +87 -0
  213. package/examples/component-feature-grid.md +201 -0
  214. package/examples/component-field.md +266 -0
  215. package/examples/component-filled-input.md +114 -0
  216. package/examples/component-flex.md +117 -0
  217. package/examples/component-float-button.md +214 -0
  218. package/examples/component-form-control-label.md +134 -0
  219. package/examples/component-form-control.md +113 -0
  220. package/examples/component-form-controls.md +251 -0
  221. package/examples/component-form-group.md +86 -0
  222. package/examples/component-form-helper-text.md +95 -0
  223. package/examples/component-form-label.md +98 -0
  224. package/examples/component-form.md +291 -0
  225. package/examples/component-game-hud.md +362 -0
  226. package/examples/component-game-menu.md +327 -0
  227. package/examples/component-grid.md +140 -0
  228. package/examples/component-grow.md +79 -0
  229. package/examples/component-hero-block.md +252 -0
  230. package/examples/component-hover-card.md +211 -0
  231. package/examples/component-icon-button.md +142 -0
  232. package/examples/component-icon.md +102 -0
  233. package/examples/component-illustration.md +280 -0
  234. package/examples/component-image-list.md +107 -0
  235. package/examples/component-image.md +282 -0
  236. package/examples/component-input-adornment.md +101 -0
  237. package/examples/component-input-base.md +134 -0
  238. package/examples/component-input-number.md +141 -0
  239. package/examples/component-input-otp.md +271 -0
  240. package/examples/component-input.md +213 -0
  241. package/examples/component-item.md +243 -0
  242. package/examples/component-kbd.md +197 -0
  243. package/examples/component-krw-amount.md +219 -0
  244. package/examples/component-label.md +118 -0
  245. package/examples/component-layout.md +217 -0
  246. package/examples/component-link.md +223 -0
  247. package/examples/component-list-item-avatar.md +72 -0
  248. package/examples/component-list-item-button.md +139 -0
  249. package/examples/component-list-item-icon.md +82 -0
  250. package/examples/component-list-item-text.md +98 -0
  251. package/examples/component-list-item.md +116 -0
  252. package/examples/component-list-subheader.md +70 -0
  253. package/examples/component-list.md +198 -0
  254. package/examples/component-loading-button.md +125 -0
  255. package/examples/component-loading-sequence.md +254 -0
  256. package/examples/component-lottie-player.md +279 -0
  257. package/examples/component-masonry.md +191 -0
  258. package/examples/component-mentions.md +189 -0
  259. package/examples/component-menu-item.md +102 -0
  260. package/examples/component-menu-list.md +98 -0
  261. package/examples/component-menu.md +139 -0
  262. package/examples/component-menubar.md +259 -0
  263. package/examples/component-message.md +162 -0
  264. package/examples/component-mobile-stepper.md +155 -0
  265. package/examples/component-modal.md +220 -0
  266. package/examples/component-navigation-menu.md +295 -0
  267. package/examples/component-notification.md +166 -0
  268. package/examples/component-otp-countdown.md +245 -0
  269. package/examples/component-outlined-input.md +145 -0
  270. package/examples/component-page-transition.md +281 -0
  271. package/examples/component-pagination.md +226 -0
  272. package/examples/component-paper.md +199 -0
  273. package/examples/component-pass-auth.md +265 -0
  274. package/examples/component-payment-brand-button.md +253 -0
  275. package/examples/component-payment-method-selector.md +272 -0
  276. package/examples/component-payment-receipt.md +277 -0
  277. package/examples/component-popconfirm.md +144 -0
  278. package/examples/component-popover.md +239 -0
  279. package/examples/component-popper.md +129 -0
  280. package/examples/component-pricing-cards.md +247 -0
  281. package/examples/component-progress.md +195 -0
  282. package/examples/component-qr-code.md +201 -0
  283. package/examples/component-radio.md +167 -0
  284. package/examples/component-rate.md +202 -0
  285. package/examples/component-resizable.md +163 -0
  286. package/examples/component-result.md +270 -0
  287. package/examples/component-scroll-area.md +199 -0
  288. package/examples/component-scroll-reveal.md +320 -0
  289. package/examples/component-segmented.md +178 -0
  290. package/examples/component-select.md +258 -0
  291. package/examples/component-separator.md +177 -0
  292. package/examples/component-sheet.md +277 -0
  293. package/examples/component-sidebar.md +257 -0
  294. package/examples/component-skeleton.md +178 -0
  295. package/examples/component-slide.md +89 -0
  296. package/examples/component-slider.md +208 -0
  297. package/examples/component-snackbar-content.md +92 -0
  298. package/examples/component-snackbar.md +121 -0
  299. package/examples/component-sonner.md +165 -0
  300. package/examples/component-space.md +125 -0
  301. package/examples/component-spatial-locomotion.md +373 -0
  302. package/examples/component-spatial-panel.md +330 -0
  303. package/examples/component-speed-dial-action.md +78 -0
  304. package/examples/component-speed-dial.md +177 -0
  305. package/examples/component-spin.md +173 -0
  306. package/examples/component-spinner.md +204 -0
  307. package/examples/component-splitter.md +210 -0
  308. package/examples/component-stack.md +130 -0
  309. package/examples/component-statistic.md +282 -0
  310. package/examples/component-step-button.md +157 -0
  311. package/examples/component-step-connector.md +157 -0
  312. package/examples/component-step-content.md +121 -0
  313. package/examples/component-step-icon.md +115 -0
  314. package/examples/component-step-label.md +101 -0
  315. package/examples/component-step.md +84 -0
  316. package/examples/component-steps.md +264 -0
  317. package/examples/component-stock-chart.md +251 -0
  318. package/examples/component-swipeable-drawer.md +149 -0
  319. package/examples/component-switch.md +99 -0
  320. package/examples/component-tab-scroll-button.md +180 -0
  321. package/examples/component-tab.md +120 -0
  322. package/examples/component-table-body.md +82 -0
  323. package/examples/component-table-cell.md +118 -0
  324. package/examples/component-table-container.md +75 -0
  325. package/examples/component-table-footer.md +72 -0
  326. package/examples/component-table-head.md +78 -0
  327. package/examples/component-table-pagination.md +137 -0
  328. package/examples/component-table-row.md +113 -0
  329. package/examples/component-table-sort-label.md +109 -0
  330. package/examples/component-table.md +202 -0
  331. package/examples/component-tabs.md +184 -0
  332. package/examples/component-tag-badge.md +309 -0
  333. package/examples/component-tag.md +102 -0
  334. package/examples/component-testimonial-carousel.md +218 -0
  335. package/examples/component-textarea-autosize.md +114 -0
  336. package/examples/component-textarea.md +173 -0
  337. package/examples/component-time-picker.md +205 -0
  338. package/examples/component-timeline.md +170 -0
  339. package/examples/component-toast.md +224 -0
  340. package/examples/component-toggle-button.md +129 -0
  341. package/examples/component-toggle.md +220 -0
  342. package/examples/component-toolbar.md +104 -0
  343. package/examples/component-tooltip.md +178 -0
  344. package/examples/component-tour.md +176 -0
  345. package/examples/component-transaction-list-item.md +243 -0
  346. package/examples/component-transfer.md +156 -0
  347. package/examples/component-tree-select.md +202 -0
  348. package/examples/component-tree.md +297 -0
  349. package/examples/component-typography.md +215 -0
  350. package/examples/component-upload.md +295 -0
  351. package/examples/component-video-hero.md +409 -0
  352. package/examples/component-video-player.md +340 -0
  353. package/examples/component-voice-input.md +408 -0
  354. package/examples/component-watermark.md +217 -0
  355. package/examples/component-zoom.md +92 -0
  356. package/examples/doc-explanation-example.md +196 -0
  357. package/examples/doc-how-to-example.md +205 -0
  358. package/examples/doc-tutorial-example.md +162 -0
  359. package/examples/dogfood-korean-fintech-system.md +433 -0
  360. package/examples/email-transactional-example.md +259 -0
  361. package/examples/palette-saas-violet.md +235 -0
  362. package/examples/print-business-card-spec.md +205 -0
  363. package/examples/print-packaging-spec.md +285 -0
  364. package/examples/report-example.md +228 -0
  365. package/examples/slide-deck-example.md +237 -0
  366. package/examples/website-improvement-report.md +128 -0
  367. package/examples/website-improvement-workspace.json +126 -0
  368. package/install.sh +189 -0
  369. package/knowledge/COVERAGE.md +740 -0
  370. package/knowledge/PRINCIPLES.md +108 -0
  371. package/knowledge/a11y/contrast.md +70 -0
  372. package/knowledge/a11y/keyboard-and-focus.md +108 -0
  373. package/knowledge/colors/color-theory.md +90 -0
  374. package/knowledge/colors/mui-palette-structure.md +105 -0
  375. package/knowledge/colors/palettes-by-product-type.md +876 -0
  376. package/knowledge/components/INDEX.md +231 -0
  377. package/knowledge/components/index.json +1470 -0
  378. package/knowledge/components/shadcn-registry.md +159 -0
  379. package/knowledge/conversational/ai-chat-interfaces.md +323 -0
  380. package/knowledge/conversational/chatbot-design.md +312 -0
  381. package/knowledge/conversational/conversational-ui-fundamentals.md +299 -0
  382. package/knowledge/conversational/korean-voice-conventions.md +281 -0
  383. package/knowledge/conversational/voice-ui-patterns.md +297 -0
  384. package/knowledge/design-tokens/ant-design.md +124 -0
  385. package/knowledge/design-tokens/material-3.md +235 -0
  386. package/knowledge/design-tokens/polaris-and-carbon.md +231 -0
  387. package/knowledge/design-tokens/tailwind-v4.md +284 -0
  388. package/knowledge/game-ui/game-accessibility.md +317 -0
  389. package/knowledge/game-ui/game-ui-fundamentals.md +281 -0
  390. package/knowledge/game-ui/hud-design.md +324 -0
  391. package/knowledge/game-ui/korean-gaming-conventions.md +312 -0
  392. package/knowledge/game-ui/menu-systems.md +388 -0
  393. package/knowledge/i18n/korean-app-store-visual.md +223 -0
  394. package/knowledge/i18n/korean-document-style.md +301 -0
  395. package/knowledge/i18n/korean-payments.md +211 -0
  396. package/knowledge/i18n/korean-product-conventions.md +96 -0
  397. package/knowledge/i18n/korean-publishing.md +139 -0
  398. package/knowledge/i18n/korean-typography.md +123 -0
  399. package/knowledge/icons/curated-sets.md +225 -0
  400. package/knowledge/illustration/hero-illustrations.md +234 -0
  401. package/knowledge/illustration/illustration-systems.md +221 -0
  402. package/knowledge/illustration/mascot-design.md +208 -0
  403. package/knowledge/illustration/spot-illustrations.md +246 -0
  404. package/knowledge/illustration/svg-optimization.md +308 -0
  405. package/knowledge/layout/spacing-and-grid.md +119 -0
  406. package/knowledge/motion/app-loading-sequences.md +277 -0
  407. package/knowledge/motion/choreography-depth.md +297 -0
  408. package/knowledge/motion/marketing-motion.md +223 -0
  409. package/knowledge/motion/micro-interactions.md +266 -0
  410. package/knowledge/motion/motion-tools.md +281 -0
  411. package/knowledge/motion/principles.md +126 -0
  412. package/knowledge/patterns/auth-flow-design.md +316 -0
  413. package/knowledge/patterns/b2b-onboarding-flows.md +182 -0
  414. package/knowledge/patterns/brand-identity.md +238 -0
  415. package/knowledge/patterns/brand-references.md +97 -0
  416. package/knowledge/patterns/chart-color-encoding.md +269 -0
  417. package/knowledge/patterns/chart-types.md +344 -0
  418. package/knowledge/patterns/dashboard-composition.md +299 -0
  419. package/knowledge/patterns/design-system-qa.md +356 -0
  420. package/knowledge/patterns/document-typography.md +248 -0
  421. package/knowledge/patterns/email-design.md +338 -0
  422. package/knowledge/patterns/empty-states.md +263 -0
  423. package/knowledge/patterns/error-states.md +318 -0
  424. package/knowledge/patterns/form-design.md +237 -0
  425. package/knowledge/patterns/information-architecture.md +341 -0
  426. package/knowledge/patterns/landing-hero-design.md +283 -0
  427. package/knowledge/patterns/landing-page-patterns.md +681 -0
  428. package/knowledge/patterns/list-and-feed.md +371 -0
  429. package/knowledge/patterns/mobile-navigation.md +278 -0
  430. package/knowledge/patterns/money-and-amount.md +301 -0
  431. package/knowledge/patterns/onboarding.md +300 -0
  432. package/knowledge/patterns/pricing-page-design.md +261 -0
  433. package/knowledge/patterns/realtime-data.md +280 -0
  434. package/knowledge/patterns/report-design.md +330 -0
  435. package/knowledge/patterns/search-ux.md +373 -0
  436. package/knowledge/patterns/settings-page.md +325 -0
  437. package/knowledge/patterns/slide-deck-design.md +316 -0
  438. package/knowledge/patterns/styles-catalog.md +2599 -0
  439. package/knowledge/patterns/technical-writing.md +306 -0
  440. package/knowledge/patterns/ui-reasoning.md +1853 -0
  441. package/knowledge/patterns/ux-guidelines.md +1454 -0
  442. package/knowledge/platforms/react-native.md +395 -0
  443. package/knowledge/print/brochures-and-flyers.md +276 -0
  444. package/knowledge/print/korean-print-conventions.md +284 -0
  445. package/knowledge/print/packaging.md +321 -0
  446. package/knowledge/print/print-fundamentals.md +238 -0
  447. package/knowledge/print/signage-and-posters.md +235 -0
  448. package/knowledge/print/stationery.md +262 -0
  449. package/knowledge/spatial/ar-patterns.md +253 -0
  450. package/knowledge/spatial/comfort-and-accessibility.md +245 -0
  451. package/knowledge/spatial/spatial-design-fundamentals.md +346 -0
  452. package/knowledge/spatial/spatial-ui-elements.md +343 -0
  453. package/knowledge/spatial/vr-patterns.md +302 -0
  454. package/knowledge/typography/font-pairings.md +332 -0
  455. package/knowledge/typography/mui-type-scale.md +57 -0
  456. package/knowledge/typography/type-scale-fundamentals.md +105 -0
  457. package/knowledge/video/in-product-video.md +277 -0
  458. package/knowledge/video/korean-video-conventions.md +247 -0
  459. package/knowledge/video/marketing-video.md +258 -0
  460. package/knowledge/video/social-and-short-form.md +257 -0
  461. package/knowledge/video/video-fundamentals.md +296 -0
  462. package/package.json +106 -0
  463. package/skills/README.md +39 -0
  464. package/skills/color-palette/PLAYBOOK.md +175 -0
  465. package/skills/color-palette/SKILL.md +6 -0
  466. package/skills/color-palette/TEMPLATE.md +103 -0
  467. package/skills/component-spec-writer/PLAYBOOK.md +169 -0
  468. package/skills/component-spec-writer/SKILL.md +6 -0
  469. package/skills/component-spec-writer/TEMPLATE.md +115 -0
  470. package/skills/conversational-ui-designer/PLAYBOOK.md +231 -0
  471. package/skills/conversational-ui-designer/SKILL.md +6 -0
  472. package/skills/design-broadcast/PLAYBOOK.md +146 -0
  473. package/skills/design-broadcast/SKILL.md +6 -0
  474. package/skills/design-critique/PLAYBOOK.md +137 -0
  475. package/skills/design-critique/SKILL.md +6 -0
  476. package/skills/design-pr-review/PLAYBOOK.md +171 -0
  477. package/skills/design-pr-review/SKILL.md +6 -0
  478. package/skills/design-system-builder/PLAYBOOK.md +218 -0
  479. package/skills/design-system-builder/SKILL.md +6 -0
  480. package/skills/design-system-qa/PLAYBOOK.md +163 -0
  481. package/skills/design-system-qa/SKILL.md +6 -0
  482. package/skills/document-author/PLAYBOOK.md +167 -0
  483. package/skills/document-author/SKILL.md +6 -0
  484. package/skills/figma-token-sync/PLAYBOOK.md +149 -0
  485. package/skills/figma-token-sync/SKILL.md +6 -0
  486. package/skills/game-ui-designer/PLAYBOOK.md +209 -0
  487. package/skills/game-ui-designer/SKILL.md +6 -0
  488. package/skills/handoff-spec/PLAYBOOK.md +170 -0
  489. package/skills/handoff-spec/SKILL.md +6 -0
  490. package/skills/illustration-designer/PLAYBOOK.md +166 -0
  491. package/skills/illustration-designer/SKILL.md +6 -0
  492. package/skills/motion-designer/PLAYBOOK.md +223 -0
  493. package/skills/motion-designer/SKILL.md +6 -0
  494. package/skills/print-designer/PLAYBOOK.md +209 -0
  495. package/skills/print-designer/SKILL.md +6 -0
  496. package/skills/slide-deck-author/PLAYBOOK.md +198 -0
  497. package/skills/slide-deck-author/SKILL.md +6 -0
  498. package/skills/spatial-designer/PLAYBOOK.md +238 -0
  499. package/skills/spatial-designer/SKILL.md +6 -0
  500. package/skills/ux-audit/PLAYBOOK.md +142 -0
  501. package/skills/ux-audit/SKILL.md +6 -0
  502. package/skills/video-designer/PLAYBOOK.md +240 -0
  503. package/skills/video-designer/SKILL.md +6 -0
  504. package/skills/website-improvement/PLAYBOOK.md +118 -0
  505. package/skills/website-improvement/SKILL.md +6 -0
  506. package/skills/website-improvement/TEMPLATE.md +103 -0
  507. package/tools/audit/changelog-generate.py +176 -0
  508. package/tools/audit/check-coverage.py +483 -0
  509. package/tools/audit/doctor_assertions.py +256 -0
  510. package/tools/audit/example-qa.py +108 -0
  511. package/tools/audit/frontmatter-check.py +199 -0
  512. package/tools/audit/integration-check.py +95 -0
  513. package/tools/audit/korean-copy-check.py +161 -0
  514. package/tools/audit/link-check.py +146 -0
  515. package/tools/audit/local-ci.py +558 -0
  516. package/tools/audit/package-contents.py +723 -0
  517. package/tools/audit/package-smoke.py +22443 -0
  518. package/tools/audit/raw-hex-check.py +252 -0
  519. package/tools/audit/registry-smoke.py +8188 -0
  520. package/tools/audit/release-metadata.py +9832 -0
  521. package/tools/audit/run-all.py +351 -0
  522. package/tools/audit/smoke_assertions.py +12742 -0
  523. package/tools/audit/stability-review.py +332 -0
  524. package/tools/audit/stale-check.py +156 -0
  525. package/tools/migrations/add-version-frontmatter.py +132 -0
  526. package/tools/migrations/bump-last-updated.py +131 -0
  527. package/tools/migrations/promote-stability.py +172 -0
  528. package/tools/preview/README.md +58 -0
  529. package/tools/preview/render-tokens.py +454 -0
@@ -0,0 +1,297 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Motion choreography (multi-element coordination)
4
+ applies_to: [motion, animation, page-transition, complex-ui]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Motion choreography
11
+
12
+ When multiple elements animate together, they need to be **choreographed** — sequenced, staggered, hierarchical. Random simultaneous motion looks chaotic. This is the floor for orchestrating multiple animations.
13
+
14
+ ## Core principles
15
+
16
+ ### 1. Sequence, don't unison
17
+
18
+ Don't fire all animations at 0ms. Stagger them.
19
+
20
+ ```
21
+ Bad (unison):
22
+ All cards: 0ms → fade in over 250ms
23
+
24
+ Good (staggered):
25
+ Card 1: 0ms → fade in
26
+ Card 2: 50ms → fade in
27
+ Card 3: 100ms → fade in
28
+ Total: still ~350ms but reads as composed
29
+ ```
30
+
31
+ Stagger 30–80ms per item is the sweet spot. Larger feels glacial; smaller feels simultaneous.
32
+
33
+ ### 2. Establish a primary
34
+
35
+ When multiple things animate, there's a **lead**. Other elements support.
36
+
37
+ ```
38
+ Hero entrance:
39
+ - Heading appears first (the lead)
40
+ - Sub-headline 100ms later
41
+ - CTAs 200ms later
42
+ - Visual 300ms later (last; supports the message)
43
+
44
+ Reading order matches motion order.
45
+ ```
46
+
47
+ ### 3. Anchor with a focal point
48
+
49
+ Animation should originate from a meaningful place:
50
+ - Modal: from center, or from the trigger button (transform-origin)
51
+ - List item entering: from top (new) or bottom (just-added)
52
+ - Drawer: from edge it slides in from
53
+ - Hero CTA: from the primary's position
54
+
55
+ Random origins read as "AI-generated motion" (the wrong kind).
56
+
57
+ ## Five choreography patterns
58
+
59
+ ### 1. Cascade (waterfall)
60
+
61
+ Items animate in sequence, like a waterfall.
62
+
63
+ ```
64
+ Card 1 enters at 0ms
65
+ Card 2 enters at 50ms
66
+ Card 3 enters at 100ms
67
+ ...
68
+ ```
69
+
70
+ Use for: list reveals, grid fills, multi-step forms.
71
+
72
+ ```ts
73
+ {children.map((c, i) => (
74
+ <motion.div
75
+ key={c.id}
76
+ initial={{ opacity: 0, y: 8 }}
77
+ animate={{ opacity: 1, y: 0 }}
78
+ transition={{ delay: i * 0.05, duration: 0.25 }}
79
+ >
80
+ {c}
81
+ </motion.div>
82
+ ))}
83
+ ```
84
+
85
+ ### 2. FLIP (First, Last, Invert, Play)
86
+
87
+ When an element changes position (different parent, layout shift), animate the transition smoothly.
88
+
89
+ ```
90
+ 1. First: record element's position before change
91
+ 2. Last: render new layout (element at new position)
92
+ 3. Invert: apply transform that puts element back at "First" position
93
+ 4. Play: animate transform to identity (transform: 0)
94
+
95
+ Result: element appears to smoothly move from old to new position.
96
+ ```
97
+
98
+ Used in:
99
+ - Reordering lists (drag-and-drop result)
100
+ - Layout changes (collapse/expand)
101
+ - Hero / shared-element transitions
102
+
103
+ Tools that handle FLIP automatically:
104
+ - Framer Motion `layout` prop / `layoutId`
105
+ - React Aria's drag-and-drop
106
+ - Vue's `<transition-group>`
107
+ - View Transitions API (web-native)
108
+
109
+ ### 3. View Transitions API (web-native)
110
+
111
+ Modern browsers (Chrome 111+, Safari 18+, Edge 111+) ship `document.startViewTransition()`:
112
+
113
+ ```js
114
+ function navigate(newRoute) {
115
+ if (!document.startViewTransition) {
116
+ // Fallback: just update
117
+ updateDOM(newRoute);
118
+ return;
119
+ }
120
+ document.startViewTransition(() => {
121
+ updateDOM(newRoute);
122
+ });
123
+ }
124
+ ```
125
+
126
+ Browser handles the cross-fade automatically. Pair with `view-transition-name` CSS for shared elements:
127
+
128
+ ```css
129
+ .product-image {
130
+ view-transition-name: product-image;
131
+ }
132
+ ```
133
+
134
+ Now navigating from list to detail: the image automatically morphs from list position to detail position.
135
+
136
+ ### 4. Choreographed sequences (storytelling)
137
+
138
+ A series of coordinated animations that tell a story.
139
+
140
+ ```
141
+ Marketing storyboard:
142
+ Scene 1 (0-1s): "Sketch your idea" — pencil draws line
143
+ Scene 2 (1-2s): "Add color" — palette appears, fills shapes
144
+ Scene 3 (2-3s): "Share with team" — cursors stream in, comments appear
145
+ ```
146
+
147
+ Tools:
148
+ - **Lottie** — designer creates in After Effects, ships as JSON
149
+ - **Rive** — designer creates with state machine, runtime interactive
150
+ - **GSAP timelines** — engineer codes the sequence
151
+ - **CSS keyframes + JS triggers** — for simple sequences
152
+
153
+ For long sequences (3+ seconds): Lottie or Rive (designer-led).
154
+ For short (< 1s) coordinated: Framer Motion or GSAP (engineer-led).
155
+
156
+ ### 5. Reactive choreography (state machines)
157
+
158
+ Animations driven by **state**, not duration:
159
+ - Mouse position → cursor effect
160
+ - Scroll position → parallax + reveals
161
+ - Form state → field validation animation
162
+ - Page state → skeleton vs content vs error
163
+
164
+ Tools:
165
+ - **Rive** state machine (visual, designer-friendly)
166
+ - **XState** + Framer Motion (engineer-friendly)
167
+ - **Spring physics** libraries (react-spring) for natural motion responding to state
168
+
169
+ ## Stagger formulas
170
+
171
+ | Items | Stagger ms | Total time |
172
+ | --- | --- | --- |
173
+ | 3 | 80ms | 240ms + each item's duration |
174
+ | 5 | 60ms | 300ms |
175
+ | 10 | 40ms | 400ms |
176
+ | 20+ | 20–30ms | 500ms+ (cap; longer is glacial) |
177
+
178
+ Rule: total animation time of all items shouldn't exceed ~600ms. If it does, you're animating too many items.
179
+
180
+ ## Choreographing exits
181
+
182
+ Exits are the underdesigned half. Most teams design entrances and forget exits.
183
+
184
+ ```
185
+ Modal open: 250ms ease-out (slow, settle in)
186
+ Modal close: 200ms ease-in (faster, accelerates away)
187
+
188
+ The exit is faster than entrance — feels right.
189
+ ```
190
+
191
+ For lists:
192
+ - Removed item: slide-out + fade
193
+ - New item appears in the gap: 100–150ms
194
+
195
+ ```ts
196
+ <AnimatePresence mode="popLayout">
197
+ {items.map(item => (
198
+ <motion.div
199
+ key={item.id}
200
+ layout
201
+ initial={{ opacity: 0, y: -8 }}
202
+ animate={{ opacity: 1, y: 0 }}
203
+ exit={{ opacity: 0, x: -100, transition: { duration: 0.2 } }}
204
+ >
205
+ {item}
206
+ </motion.div>
207
+ ))}
208
+ </AnimatePresence>
209
+ ```
210
+
211
+ ## Choreographing across components
212
+
213
+ Multi-component sequences (e.g., dashboard onboarding):
214
+
215
+ ```
216
+ 0ms: Header enters (top-down)
217
+ 200ms: Sidebar enters (left-right)
218
+ 400ms: Content area starts skeleton
219
+ 600ms: Skeleton replaced with real content (cascade)
220
+ ```
221
+
222
+ Tools:
223
+ - Framer Motion `<MotionConfig>` for shared transition defaults
224
+ - GSAP `gsap.timeline()` for explicit time control
225
+
226
+ ## Timing diagrams
227
+
228
+ For complex sequences, document with a timing diagram:
229
+
230
+ ```
231
+ Time: 0ms 200ms 400ms 600ms 800ms 1000ms
232
+ Header: ▕━━━━▏
233
+ Side: ▕━━━━▏
234
+ Skel: ▕━━━━━━━━━━━━━━━━━━━━━━▏
235
+ Content: ▕━━━━▏
236
+ ```
237
+
238
+ When designing, sketch this. Helps spot conflicts and pacing issues.
239
+
240
+ ## Performance for choreographed motion
241
+
242
+ Multiple simultaneous animations × multiple frames per second = expensive.
243
+
244
+ Rules:
245
+ - Animate `transform` and `opacity` only (GPU layer).
246
+ - Use `will-change: transform` on heavy items (sparingly — kills GPU memory if overused).
247
+ - Batch DOM reads + writes (avoid layout thrashing).
248
+ - For 60+ items: virtualize or fall back to instant.
249
+
250
+ For Framer Motion: `LazyMotion` + `domAnimation` ships smaller bundle:
251
+
252
+ ```ts
253
+ import { LazyMotion, domAnimation, m } from "framer-motion";
254
+
255
+ <LazyMotion features={domAnimation}>
256
+ <m.div ... />
257
+ </LazyMotion>
258
+ ```
259
+
260
+ ## Reduced motion in choreographed sequences
261
+
262
+ For sequences with reduced motion preference:
263
+ - Skip stagger (everything appears together).
264
+ - Skip slide / scale / parallax.
265
+ - Keep cross-fade (opacity is OK).
266
+ - Skip Hero / FLIP transitions (instant layout change).
267
+
268
+ Don't try to "preserve choreography" — just disable.
269
+
270
+ ## Korean motion language
271
+
272
+ For Korean fintech / consumer apps:
273
+ - **Toss style**: smooth, decisive, no overshoot. Stagger 50ms typical.
274
+ - **KakaoBank style**: slightly warmer, occasional gentle overshoot. Stagger 60ms.
275
+ - **Naver style**: less choreographed; more direct.
276
+
277
+ Avoid Western "playful Disney-style" sequencing for Korean financial apps — reads as toy-like.
278
+
279
+ ## Don't
280
+
281
+ - Don't fire 10+ animations simultaneously without staggering.
282
+ - Don't use 200ms+ stagger (feels glacial).
283
+ - Don't choreograph for the sake of motion. Reduce to what serves the message.
284
+ - Don't animate `width` / `height` / `left` / `top` (layout-triggering, janky).
285
+ - Don't ignore exits.
286
+ - Don't over-spring with bouncy curves on financial / serious surfaces.
287
+ - Don't design choreography that breaks under reduced motion.
288
+
289
+ ## Cross-reference
290
+
291
+ - [`knowledge/motion/principles.md`](principles.md) — durations + easings
292
+ - [`knowledge/motion/marketing-motion.md`](marketing-motion.md) — landing-page choreography
293
+ - [`knowledge/motion/app-loading-sequences.md`](app-loading-sequences.md) — splash + route transitions
294
+ - [`knowledge/motion/micro-interactions.md`](micro-interactions.md) — single-element motions
295
+ - [`knowledge/motion/motion-tools.md`](motion-tools.md) — Framer Motion / GSAP / Lottie / Rive
296
+ - [View Transitions API](https://developer.mozilla.org/en-US/docs/Web/API/View_Transitions_API)
297
+ - [Framer Motion docs](https://www.framer.com/motion/)
@@ -0,0 +1,223 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Marketing motion (landing pages, ads, hero animations)
4
+ applies_to: [marketing, landing, hero, ads]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Marketing motion
11
+
12
+ Motion in marketing differs from motion in product UI. Product motion is functional (navigate, confirm, focus). Marketing motion is **persuasive** — it stops the scroll, reveals the value prop, drives emotional response.
13
+
14
+ Different rules. This is the floor.
15
+
16
+ ## Three intents
17
+
18
+ | Intent | Goal |
19
+ | --- | --- |
20
+ | **Stop the scroll** | Catch attention before user bounces |
21
+ | **Reveal value** | Tell the product story through motion |
22
+ | **Anchor brand** | Motion as part of brand recognition |
23
+
24
+ A marketing animation should hit at least one. Animation that doesn't is decoration — cut it.
25
+
26
+ ## Six marketing motion patterns
27
+
28
+ ### 1. Hero entrance (above-the-fold reveal)
29
+
30
+ The hero text and visual fade-in / slide-in on page load.
31
+
32
+ ```
33
+ On load:
34
+ 0ms — hero hidden
35
+ 50ms — sub-headline starts fading in (translateY +12px → 0)
36
+ 100ms — headline starts (offset by 50ms)
37
+ 250ms — primary CTA appears
38
+ 500ms — visual / illustration enters (scale 0.95 → 1 + opacity)
39
+ ```
40
+
41
+ Total budget: 600–800ms. Done.
42
+
43
+ Don't:
44
+ - Don't make hero entrance > 1s (user is waiting).
45
+ - Don't auto-replay on scroll.
46
+ - Don't entrance from far off-screen (cheesy).
47
+
48
+ ### 2. Scroll-triggered reveals
49
+
50
+ Sections animate in as user scrolls them into view. The classic landing-page motion pattern.
51
+
52
+ ```
53
+ [scroll position]
54
+ - Section enters viewport at 80% threshold
55
+ - 200ms fade + 16px translateY → 0
56
+ - Stagger child elements (cards, list items) by 50–80ms
57
+ ```
58
+
59
+ Use `IntersectionObserver` (or library like Framer Motion / GSAP ScrollTrigger).
60
+
61
+ Rules:
62
+ - **Trigger once per element**. Not on every up/down scroll.
63
+ - **Stagger small** (50–80ms). Larger feels slow.
64
+ - **Don't reveal everything**. Body text already-rendered is fine; reserve animation for sections / cards / images.
65
+
66
+ ### 3. Parallax
67
+
68
+ Background elements move at different speeds than foreground.
69
+
70
+ ```
71
+ foreground: scroll at 1× rate
72
+ background image: scroll at 0.5× rate (slower, "deeper")
73
+ floating shape: scroll at 1.5× rate (faster, "closer")
74
+ ```
75
+
76
+ Implementation: CSS `transform: translateY(var(--scroll))` driven by JS scroll listener, OR `background-attachment: fixed` (limited).
77
+
78
+ When to use:
79
+ - Storytelling pages with strong visual narrative.
80
+ - Hero sections with depth.
81
+
82
+ When to skip:
83
+ - Content-heavy sites (parallax distracts from reading).
84
+ - Mobile (most parallax breaks on iOS Safari).
85
+ - Performance-sensitive (parallax requires constant scroll repaints).
86
+
87
+ ### 4. Choreographed sequences (storytelling)
88
+
89
+ A series of coordinated animations that tell a story. Common in product walkthroughs:
90
+
91
+ ```
92
+ "Sketch your idea" → screen shows pencil drawing
93
+ "Add color" → palette appears, color fills
94
+ "Share with team" → cursors appear, comments stream in
95
+ ```
96
+
97
+ Tools: Lottie / Rive (designer-led), Framer Motion / GSAP (engineer-led).
98
+
99
+ For Korean fintech: Toss's "money flows from one account to another" animations are canonical examples.
100
+
101
+ ### 5. Hover / cursor-driven
102
+
103
+ Elements respond to cursor position or hover:
104
+ - Magnetic buttons (button slightly tracks cursor near it)
105
+ - 3D card tilt on cursor (popular 2023+)
106
+ - Cursor effects (custom cursor, trailing dot)
107
+
108
+ Cool but use sparingly:
109
+ - 3D tilt on every card = performance death.
110
+ - Custom cursors break a11y if wrongly done.
111
+ - Magnetic effects only work on desktop.
112
+
113
+ ### 6. Loop animations / ambient motion
114
+
115
+ Background animations that loop continuously:
116
+ - Floating geometric shapes
117
+ - Animated gradients
118
+ - Particle systems
119
+
120
+ Risk: visual noise, performance, distraction. Use ONLY if motion IS part of the brand identity.
121
+
122
+ ## Tools comparison
123
+
124
+ | Tool | Use | Skill needed |
125
+ | --- | --- | --- |
126
+ | **CSS animations** | Simple entrances, hovers | Low |
127
+ | **Framer Motion** | React-based product motion + marketing | Medium |
128
+ | **GSAP** | Complex sequences, timeline-based | Medium-high |
129
+ | **Lottie** | After Effects → web (designer-led) | Designer + dev |
130
+ | **Rive** | Interactive animations (state-machine) | Designer + dev |
131
+ | **Three.js / WebGL** | 3D scenes | High |
132
+ | **Spline** | 3D scenes (designer-friendly) | Designer-led |
133
+
134
+ For most marketing sites: Framer Motion + Lottie covers 90%. See [`motion-tools.md`](motion-tools.md) for full comparison.
135
+
136
+ ## Performance budget
137
+
138
+ Marketing motion runs in browsers across devices. Performance matters:
139
+
140
+ | Metric | Budget |
141
+ | --- | --- |
142
+ | First Contentful Paint | < 1.8s |
143
+ | Largest Contentful Paint | < 2.5s (don't block on motion) |
144
+ | Cumulative Layout Shift | < 0.1 (motion shouldn't cause layout shift) |
145
+ | Total animations on page | < 10 simultaneously |
146
+ | Animation framerate | 60fps target |
147
+
148
+ Tips:
149
+ - Animate `transform` and `opacity` only (GPU-composited).
150
+ - Avoid animating `width`, `height`, `top`, `left` (layout-triggering).
151
+ - Lazy-load heavy animations below the fold.
152
+ - Provide static fallbacks for `prefers-reduced-motion`.
153
+
154
+ ## Reduced motion
155
+
156
+ Critical for marketing — many users have it on:
157
+
158
+ ```css
159
+ @media (prefers-reduced-motion: reduce) {
160
+ *, *::before, *::after {
161
+ animation-duration: 0.01ms !important;
162
+ transition-duration: 0.01ms !important;
163
+ }
164
+ }
165
+ ```
166
+
167
+ But blanket-killing all motion can be too much. Better:
168
+
169
+ | Animation | When motion reduced |
170
+ | --- | --- |
171
+ | Fade-in entrances | Keep (opacity is fine) |
172
+ | Translate-Y entrances | Convert to instant or pure fade |
173
+ | Parallax | Disable |
174
+ | Scroll-driven sequences | Show all states at once |
175
+ | Loop animations | Pause |
176
+ | Hover tilt | Disable |
177
+ | Auto-play hero video | Show poster image instead |
178
+
179
+ ## Korean marketing motion conventions
180
+
181
+ Korean fintech / consumer landing pages trend toward:
182
+ - **Toss-style** — minimal, smooth, brand-color-led, restrained
183
+ - **Kakao-style** — playful, character-driven, warmer
184
+ - **Naver-style** — denser, less motion
185
+
186
+ For most Korean B2C: lean Toss-style — restrained, fast, smooth. Heavy motion reads as foreign / over-designed.
187
+
188
+ ## Brand motion as identity
189
+
190
+ Some brands have a defined "motion language":
191
+ - Apple: smooth, decisive, rubber-band
192
+ - Stripe: refined, geometric, minimal
193
+ - Linear: fast, snappy, decisive
194
+ - Toss: gentle, calming, money-friendly
195
+
196
+ Define yours:
197
+ - **Easing curves** (rubber-band? smooth? snappy?)
198
+ - **Duration tier preferences** (fast vs medium)
199
+ - **Choreography style** (staggered? unison? cascading?)
200
+ - **Reaction to interaction** (eager vs reserved)
201
+
202
+ Document in your brand kit alongside color and typography.
203
+
204
+ ## Common marketing motion mistakes
205
+
206
+ - **Motion as decoration**, no purpose.
207
+ - **Auto-play heavy video** without poster fallback.
208
+ - **Hero entrance > 1s** — feels slow.
209
+ - **Stagger > 100ms per item** — feels glacial.
210
+ - **Animating layout properties** (width, height) — janky.
211
+ - **No reduced motion** support.
212
+ - **Motion that interferes with reading** (text moving while reading).
213
+ - **Custom cursor that hides the OS cursor** entirely — accessibility break.
214
+ - **Looping motion at 0.5fps** to "save battery" — looks broken.
215
+
216
+ ## Cross-reference
217
+
218
+ - [`knowledge/motion/principles.md`](principles.md) — duration tiers, easings (foundation)
219
+ - [`knowledge/motion/app-loading-sequences.md`](app-loading-sequences.md) — splash + app load
220
+ - [`knowledge/motion/choreography-depth.md`](choreography-depth.md) — multi-element coordination
221
+ - [`knowledge/motion/motion-tools.md`](motion-tools.md) — tool comparison
222
+ - [`knowledge/patterns/landing-hero-design.md`](../patterns/landing-hero-design.md) — hero strategy
223
+ - [`knowledge/patterns/landing-page-patterns.md`](../patterns/landing-page-patterns.md)