@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,341 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Information architecture for documents
4
+ applies_to: [docs, knowledge-base, technical-docs, product-docs]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Information architecture
11
+
12
+ Information architecture (IA) is the structure of content. For documentation: how docs are grouped, navigated, named, cross-linked. Get IA right and users find what they need; get it wrong and they bounce to Google.
13
+
14
+ ## The four-types model (Diátaxis)
15
+
16
+ The most useful IA framework for technical docs. Different content has different purposes:
17
+
18
+ | Type | Purpose | Audience state | Example |
19
+ | --- | --- | --- | --- |
20
+ | **Tutorial** | Learning by doing | New user | "Build your first chart" |
21
+ | **How-to guide** | Solving a specific problem | Experienced user with goal | "How to deploy to staging" |
22
+ | **Reference** | Looking up specifics | Implementing | "API endpoint reference" |
23
+ | **Explanation** | Understanding (background) | Curious / debugging | "Why we chose Kafka" |
24
+
25
+ Each type has different writing style, structure, length. Mixing them in one doc confuses readers.
26
+
27
+ ```
28
+ Tutorial: step-by-step, success-driven, hand-holding
29
+ How-to: numbered list, problem→solution, no fluff
30
+ Reference: tables, exhaustive, no narrative
31
+ Explanation: prose, motivation, "why"
32
+ ```
33
+
34
+ Most docs sites should have all four types **separated**, not interleaved.
35
+
36
+ ## Top-level IA — three options
37
+
38
+ ### A. By type (Diátaxis canonical)
39
+
40
+ ```
41
+ docs/
42
+ ├── tutorials/
43
+ ├── how-to/
44
+ ├── reference/
45
+ └── explanation/
46
+ ```
47
+
48
+ Pure but rare in practice — users don't always know what type they need.
49
+
50
+ ### B. By topic, type within
51
+
52
+ ```
53
+ docs/
54
+ ├── components/
55
+ │ ├── overview.md (explanation)
56
+ │ ├── getting-started.md (tutorial)
57
+ │ ├── how-to-customize.md (how-to)
58
+ │ └── api-reference.md (reference)
59
+ ├── tokens/
60
+ │ └── ...
61
+ └── workflows/
62
+ └── ...
63
+ ```
64
+
65
+ Most common. Topic is the entry point; type is the second level.
66
+
67
+ ### C. By user journey
68
+
69
+ ```
70
+ docs/
71
+ ├── new-here/ (onboarding tutorials)
72
+ ├── building-with-design-ai/ (how-tos)
73
+ ├── reference/ (everything for lookup)
74
+ └── concepts/ (explanations)
75
+ ```
76
+
77
+ Optimized for new vs experienced split.
78
+
79
+ For most projects: **(B) by topic** is the right default.
80
+
81
+ ## Navigation hierarchy
82
+
83
+ Users navigate by:
84
+ 1. **Sidebar** — visible always, lists everything.
85
+ 2. **In-page TOC** (right rail) — current page sections.
86
+ 3. **Search** — keyword based.
87
+ 4. **Cross-links** — from one page to related.
88
+ 5. **Breadcrumbs** — show current position in hierarchy.
89
+
90
+ A docs site needs **at least 3 of 5** working well.
91
+
92
+ ### Sidebar depth
93
+
94
+ Cap at 3 levels:
95
+ ```
96
+ ✓ Components > Button > API
97
+ ✗ Components > Forms > Inputs > Text > Variants > API
98
+ ```
99
+
100
+ Past 3 levels, users get lost. If your structure needs deeper: rethink categorization.
101
+
102
+ ### Sidebar width
103
+
104
+ 200–280px typical. Fixed (sticky on scroll). Collapsible on mobile.
105
+
106
+ ## Page anatomy — the canonical doc page
107
+
108
+ ```
109
+ ┌──────────────────────────────────────────────────────────────────────┐
110
+ │ [logo] [Search] [GitHub] │ ← top app bar
111
+ ├──────────────┬─────────────────────────────────────────┬─────────────┤
112
+ │ │ │ │
113
+ │ Components │ # Button │ ## Anatomy │ ← right TOC
114
+ │ ▸ Button │ A short description of what it does. │ ## API │
115
+ │ ▸ Card │ │ ## States │
116
+ │ ▸ Input │ ## Anatomy │ ## Examples │
117
+ │ ▸ Modal │ [diagram] │ ## See also │
118
+ │ │ │ │
119
+ │ Tokens │ ## API │ │
120
+ │ ▸ Color │ <prop table> │ │
121
+ │ ▸ Spacing │ │ │
122
+ │ │ ## States │ │
123
+ │ │ ... │ │
124
+ │ │ │ │
125
+ │ │ ## See also │ │
126
+ │ │ - [Card](../card) │ │
127
+ │ │ - [Form](../form) │ │
128
+ └──────────────┴─────────────────────────────────────────┴─────────────┘
129
+ ```
130
+
131
+ | Region | Purpose |
132
+ | --- | --- |
133
+ | Top app bar | Brand + search + external links |
134
+ | Sidebar (left) | Site-wide navigation |
135
+ | Main content | The doc itself |
136
+ | TOC (right) | Within-page navigation |
137
+ | Footer (below content) | "See also", prev/next, edit on GitHub |
138
+
139
+ ## Page metadata
140
+
141
+ Every doc page should have, in roughly this order:
142
+
143
+ 1. **Title** (h1)
144
+ 2. **Brief summary / lede** (1–2 sentences, what this is about)
145
+ 3. **Status** (stable / beta / deprecated / experimental) — if applicable
146
+ 4. **Last updated date** — small, in metadata strip
147
+ 5. **Edit on GitHub** link — for community contributions
148
+
149
+ Optional:
150
+ - Reading time estimate
151
+ - Audience (beginner / intermediate / advanced)
152
+ - Prerequisites
153
+ - Related pages
154
+
155
+ ## Naming conventions
156
+
157
+ Page URLs and titles matter for searchability + memorability:
158
+
159
+ | Good | Bad |
160
+ | --- | --- |
161
+ | `/components/button` | `/d/c/button-comp` |
162
+ | "Build your first chart" | "Tutorial 1" |
163
+ | "How to deploy" | "Deployment guide" (too generic) |
164
+ | "API: Authentication" | "Auth docs" |
165
+
166
+ Rules:
167
+ - **Lowercase, kebab-case** URLs.
168
+ - **Verb-led titles for tutorials/how-tos** ("How to deploy", not "Deployment").
169
+ - **Noun-led titles for reference/explanation** ("Authentication API", "Why Kafka").
170
+ - **No version numbers in URLs** (use a separate domain or path: `v2.docs.example.com`).
171
+
172
+ ## Cross-linking strategy
173
+
174
+ Documents shouldn't be islands. Link liberally:
175
+
176
+ - **Inline links** when concept is mentioned: `...uses [tokens](../tokens) to...`
177
+ - **See also section** at the bottom of each page: 3–5 related pages.
178
+ - **Prerequisites** at the top: `This guide assumes familiarity with [tokens](../tokens).`
179
+ - **Next step / Continue** at the bottom for sequential content.
180
+
181
+ Don't:
182
+ - Link the same word multiple times in a paragraph.
183
+ - Link generic words ("the documentation says...") without context.
184
+ - Use "click here" / "this link" — bad for accessibility (screen readers read the link text alone).
185
+
186
+ ## Search strategy
187
+
188
+ Most users search before browse. Good search needs:
189
+
190
+ - **Full-text search** of all docs (Algolia, MeiliSearch, Pagefind).
191
+ - **Search-as-you-type** with results dropdown.
192
+ - **Keyboard shortcut** (Cmd+K / Ctrl+K).
193
+ - **Result preview** with matched substring highlighted.
194
+ - **Categories** — "Component" vs "Tutorial" vs "API" labels.
195
+
196
+ Cite [`knowledge/patterns/search-ux.md`](search-ux.md) for the input UX. The IA piece is what gets indexed:
197
+
198
+ - All page text.
199
+ - Page titles (highest weight).
200
+ - Headings.
201
+ - Code samples (sometimes — depends on if your audience searches by code).
202
+ - Skip: nav text, footer, repeated chrome.
203
+
204
+ ## Versioning
205
+
206
+ When the documented thing has versions (API v1 / v2, library 3.x / 4.x):
207
+
208
+ | Strategy | Use |
209
+ | --- | --- |
210
+ | **Latest only** | When version stability is high (Stripe API). |
211
+ | **Latest + previous** | Most common. Older versions accessible but not default. |
212
+ | **All versions** | When users span many versions (Django). |
213
+
214
+ URL strategies:
215
+ - `docs.example.com` (latest) + `docs-v1.example.com` (legacy)
216
+ - `docs.example.com/v2/` + `docs.example.com/v1/`
217
+ - Banner at top of older-version pages: "You're viewing v1. v2 docs are at..."
218
+
219
+ ## Korean documentation
220
+
221
+ Per [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md):
222
+
223
+ - Polite (`~합니다`) tone for technical docs.
224
+ - Casual (`~해요`) for getting-started / tutorials in consumer-facing products.
225
+ - Section headings in Korean, code in English (don't translate API names).
226
+ - 영문 약어 (acronyms) typically NOT translated: "API", "URL", "JSON" stay English.
227
+ - Long technical terms: provide Korean + English on first use, English thereafter ("애플리케이션 프로그래밍 인터페이스(API)").
228
+
229
+ ## Migration / refactoring IA
230
+
231
+ When you rename a page:
232
+ 1. **Don't break URLs.** Add a 301 redirect from old to new.
233
+ 2. Update all internal links to the new URL.
234
+ 3. Mention the rename in the changelog.
235
+
236
+ When you delete a page:
237
+ 1. Add a 301 to the closest equivalent.
238
+ 2. If no equivalent: redirect to the parent section.
239
+ 3. Don't 404 — frustrates users.
240
+
241
+ When you reorganize the sidebar:
242
+ 1. Rare. Big-bang reorgs disorient users with bookmarks.
243
+ 2. If necessary: do it once, communicate clearly, accept the cost.
244
+ 3. Don't reorganize quarterly.
245
+
246
+ ## Templates per doc type
247
+
248
+ Each Diátaxis type has a canonical template:
249
+
250
+ ### Tutorial template
251
+
252
+ ```markdown
253
+ # Build your first <thing>
254
+
255
+ > Time: 15 minutes · Audience: New users
256
+
257
+ ## What you'll build
258
+ [Screenshot / GIF of the end result]
259
+
260
+ ## Prerequisites
261
+ - ...
262
+
263
+ ## Step 1 — ...
264
+ [do this]
265
+ [expected result]
266
+
267
+ ## Step 2 — ...
268
+ ...
269
+
270
+ ## What's next
271
+ - Try [related tutorial]
272
+ - Read [reference] for full API
273
+ ```
274
+
275
+ ### How-to template
276
+
277
+ ```markdown
278
+ # How to <verb a goal>
279
+
280
+ When you need to: <use case>.
281
+
282
+ ## TL;DR
283
+ [1-2 sentences with the core command/code]
284
+
285
+ ## Steps
286
+ 1. ...
287
+ 2. ...
288
+
289
+ ## Variations
290
+ - ...
291
+
292
+ ## Common pitfalls
293
+ - ...
294
+ ```
295
+
296
+ ### Reference template
297
+
298
+ ```markdown
299
+ # <Thing> API
300
+
301
+ | Method | Returns | Description |
302
+ |---|---|---|
303
+ | `getX()` | `X` | Get the X. |
304
+ | `setX(v)` | void | Set the X to v. |
305
+
306
+ ## getX()
307
+ ### Signature
308
+ ### Parameters
309
+ ### Returns
310
+ ### Throws
311
+ ### Examples
312
+ ```
313
+
314
+ ### Explanation template
315
+
316
+ ```markdown
317
+ # Why <design decision>
318
+
319
+ ## The problem
320
+ ...
321
+
322
+ ## What we considered
323
+ - Option A: ...
324
+ - Option B: ...
325
+
326
+ ## What we chose
327
+ ...
328
+
329
+ ## Tradeoffs
330
+ ...
331
+ ```
332
+
333
+ Use these templates as starting points. They're not laws — adapt.
334
+
335
+ ## Cross-reference
336
+
337
+ - [`knowledge/patterns/document-typography.md`](document-typography.md) — visual styling
338
+ - [`knowledge/patterns/technical-writing.md`](technical-writing.md) — voice and structure
339
+ - [`knowledge/patterns/search-ux.md`](search-ux.md) — search input pattern
340
+ - [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md)
341
+ - [Diátaxis framework](https://diataxis.fr/) (the canonical reference)
@@ -0,0 +1,283 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Landing hero design (variants and rationale)
4
+ applies_to: [landing, marketing, hero]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Landing hero design
11
+
12
+ The hero is the first thing visitors see. It's the most-iterated section on any product website and the highest-leverage design surface. This file covers variants, rationale, and decision rules.
13
+
14
+ For the component spec: [`examples/component-hero-block.md`](../../examples/component-hero-block.md). This file covers **strategy** — which variant to pick, what to put in the headline, when to use video.
15
+
16
+ ## What the hero must do
17
+
18
+ In 5 seconds, a visitor must understand:
19
+ 1. **What the product does** (in their words)
20
+ 2. **Why it matters** (problem solved)
21
+ 3. **What to do next** (one obvious CTA)
22
+
23
+ Failure to communicate any of these = bounce.
24
+
25
+ ## Six hero archetypes
26
+
27
+ ### 1. Text-led hero (default)
28
+
29
+ ```
30
+ Headline (large)
31
+ Sub-headline
32
+ [CTA] [Secondary]
33
+
34
+ [Hero visual on right or below]
35
+ ```
36
+
37
+ When: most products. Easy to A/B test. Headline carries the message.
38
+
39
+ Pros: fast to load, accessible, testable.
40
+ Cons: less "wow factor" for brand-led products.
41
+
42
+ ### 2. Visual-led hero
43
+
44
+ ```
45
+ [Large product screenshot / mockup]
46
+
47
+ Caption underneath
48
+ [CTA]
49
+ ```
50
+
51
+ When: product is visual (design tool, photo app, dashboard product). User needs to "see" it to understand.
52
+
53
+ Pros: shows the product immediately.
54
+ Cons: harder for accessibility (alt text only); larger file → slower load.
55
+
56
+ ### 3. Video hero
57
+
58
+ ```
59
+ [Background video — autoplay, muted, looped]
60
+ Overlay headline + CTA
61
+ ```
62
+
63
+ When: product is dynamic (productivity tool with motion, communication app, anything that "comes alive" in motion).
64
+
65
+ Pros: high engagement when right.
66
+ Cons: bandwidth, accessibility, mobile battery drain. Many users hate auto-play.
67
+
68
+ ### 4. Split-screen / 50-50
69
+
70
+ ```
71
+ [Text / CTA] | [Visual]
72
+ ```
73
+
74
+ When: balanced messaging — product is visual but you also have a strong tagline.
75
+
76
+ ### 5. Single-message brutalist
77
+
78
+ ```
79
+ Big headline.
80
+ That's it.
81
+
82
+ [CTA]
83
+ ```
84
+
85
+ Centered, minimal. Famous for: Stripe, Linear, Vercel.
86
+
87
+ Pros: confident, brand-led.
88
+ Cons: doesn't differentiate (lots of products use this now).
89
+
90
+ ### 6. Storyteller hero
91
+
92
+ ```
93
+ Quote from a customer (large)
94
+ "Headline"
95
+ — Author
96
+
97
+ [CTA]
98
+ ```
99
+
100
+ When: testimonial-driven, social-proof central to the brand.
101
+
102
+ Pros: trust on first impression.
103
+ Cons: depends on having a great quote. Most don't.
104
+
105
+ ## Headline construction
106
+
107
+ ### The "what + how" formula
108
+
109
+ ```
110
+ [What the product does], [how it differs].
111
+ ```
112
+
113
+ Examples:
114
+ - "가계부, 자동으로 채워줘요. 30개 은행 자동 연동."
115
+ - "Slack, but for designers. Real-time canvas."
116
+ - "Code reviews in 30 seconds. Powered by AI."
117
+
118
+ ### The "outcome" formula
119
+
120
+ ```
121
+ [Outcome the user gets]. [Optional: scale/proof].
122
+ ```
123
+
124
+ Examples:
125
+ - "더 좋은 코드, 빨리 배포. 1만 개 팀이 사용 중."
126
+ - "Save 4 hours a week. Trusted by 10,000+ teams."
127
+
128
+ ### The "transformation" formula
129
+
130
+ ```
131
+ [Old way] is over. [New way] is here.
132
+ ```
133
+
134
+ Examples:
135
+ - "은행 앱 30번씩 보지 마세요. 가계부가 알아서 합니다."
136
+ - "No more spreadsheets. Just answers."
137
+
138
+ ### Anti-formulas (don't)
139
+
140
+ - "[Company name]. [Generic descriptor]." — "Toss. The future of finance." — content-free.
141
+ - "Welcome to [name]" — wastes the headline.
142
+ - "Revolutionary [thing] for the [industry]" — cliché-free zone.
143
+ - Ironic / clever / poetic without context — confusing.
144
+
145
+ ### Korean-specific headlines
146
+
147
+ Korean consumer apps trend toward **declarative + colloquial**:
148
+ - "가계부, 자동으로 채워줘요" (declarative)
149
+ - "30초 만에 가입" (factual)
150
+ - "은행 앱은 그만!" (colloquial-imperative)
151
+
152
+ Avoid direct translation from English ("Welcome to..." → "환영합니다..." reads unnatural).
153
+
154
+ For B2B Korean: more formal — "팀의 생산성을 높입니다" / "AI로 더 빠르게".
155
+
156
+ ## Sub-headline construction
157
+
158
+ The sub-headline supports the headline. ~20-30 words. One sentence.
159
+
160
+ | Pattern | Example |
161
+ | --- | --- |
162
+ | Problem + solution | "은행 앱을 30번씩 보지 않아도 가계부가 자동으로 채워집니다." |
163
+ | Differentiation | "수동 입력 없이, 첫 달 무료로 시작." |
164
+ | Social proof + result | "100만 명이 매달 평균 12만 원을 절약했어요." |
165
+ | Concrete capability | "30개 은행 자동 연동 + AI 카테고리 분류." |
166
+
167
+ Cut hedging:
168
+ - ✗ "가계부를 도와드릴 수 있습니다." (might help)
169
+ - ✓ "가계부가 자동으로 채워집니다." (does)
170
+
171
+ ## CTA choice
172
+
173
+ Primary CTA: 1 word verb + value proposition
174
+
175
+ | Bad | Good |
176
+ | --- | --- |
177
+ | "Click here" | "무료 시작" |
178
+ | "Submit" | "Pro 시작" |
179
+ | "Sign up" | "지금 가입" |
180
+ | "Get started" | "30일 무료 체험" |
181
+
182
+ Secondary CTA: lower commitment
183
+
184
+ | Pattern | Example |
185
+ | --- | --- |
186
+ | "Learn more" | "기능 살펴보기" |
187
+ | "Watch demo" | "데모 보기" |
188
+ | "Login" | "로그인" |
189
+ | "Pricing" | "요금제 보기" |
190
+
191
+ ## Background choices
192
+
193
+ | Style | Conversion impact (typical) |
194
+ | --- | --- |
195
+ | Plain white / off-white | Highest perceived trust, fastest load |
196
+ | Subtle brand tint (5–10% saturation) | Slight brand boost, no real downside |
197
+ | Solid brand color (full saturation) | Strong brand, but limits visual contrast |
198
+ | Gradient | Modern feel; risk of poor text contrast |
199
+ | Hero image (full-bleed) | Strong emotion; harder accessibility |
200
+ | Hero video | Highest engagement; bandwidth + a11y cost |
201
+
202
+ For Korean fintech: subtle tint or plain white dominates. Toss / KakaoBank style.
203
+
204
+ ## Video heroes — when to use
205
+
206
+ Use video hero only if:
207
+ 1. Product has clear motion benefit (Linear's keyboard demo, Cron's calendar interactions).
208
+ 2. You have budget for: 4K source, multiple aspect ratios, mobile-optimized export, fallback poster image.
209
+ 3. You'll respect `prefers-reduced-motion`.
210
+
211
+ Don't use video hero for:
212
+ - Static products (form builder, CMS, etc.)
213
+ - Mobile-primary audiences (battery drain)
214
+ - Slow-network audiences (Korean / SEA / EMEA)
215
+
216
+ If you do use video:
217
+ - Auto-play muted only (browser policy).
218
+ - Loop, no audio.
219
+ - 5–15 second loop.
220
+ - Fallback poster image for slow connections + reduced-motion.
221
+ - Total < 5MB optimized.
222
+
223
+ ## Mobile considerations
224
+
225
+ - Hero stacks vertically (headline + sub-headline + CTA + visual stacked).
226
+ - Visual moves below text or hides on mobile.
227
+ - Headline drops to 32–40px (from 48–60).
228
+ - CTA full-width.
229
+ - Trust signal compresses to one line.
230
+
231
+ For Korean mobile: most landing traffic is mobile. Design mobile-first; desktop is the variant.
232
+
233
+ ## Performance
234
+
235
+ Hero is above-the-fold. Performance matters disproportionately:
236
+
237
+ - **LCP target**: < 2.5s (the hero visual usually IS the LCP).
238
+ - **Image format**: WebP / AVIF, with PNG fallback.
239
+ - **Image dimensions**: serve 2x for retina, 1x for standard. Use `srcset`.
240
+ - **Font loading**: subset hero font; preload.
241
+ - **No render-blocking JavaScript** above the fold.
242
+
243
+ For Korean CDN: use Naver Cloud / KT CDN for KR-edge serving. AWS CloudFront's KR edge is decent but slower than Korean CDNs.
244
+
245
+ ## A/B testing the hero
246
+
247
+ Most-tested variables:
248
+ 1. **Headline copy** (highest impact)
249
+ 2. **Primary CTA copy + color**
250
+ 3. **Hero visual** (image vs video vs illustration)
251
+ 4. **Layout** (text-left vs centered)
252
+ 5. **Background** (white vs tinted vs image)
253
+
254
+ Common testing tools: Optimizely, VWO, Google Optimize (deprecated 2023, alternatives: PostHog, Mixpanel).
255
+
256
+ Test with traffic ≥ 1,000 visitors / variant. Below that, statistical significance is unreliable.
257
+
258
+ ## Korean landing-page conventions
259
+
260
+ - **Big number + benefit**: "100만 명이 사용하는 가계부" / "30초 만에 등록 완료"
261
+ - **Trust signals dense**: stars, user count, awards stacked.
262
+ - **Less whitespace** than Western Toss/Linear-style minimalism (some Korean B2C apps lean dense).
263
+ - **Hangul + English mixed**: brand name in English, headline in Korean.
264
+ - **Bottom-of-fold scroll cue** common — arrow / "더 알아보기 ↓" — Korean users scroll less than expected without the cue.
265
+
266
+ ## Anti-patterns
267
+
268
+ - **Vague headline**: "Better way to do X" doesn't say what X is or why better.
269
+ - **Multiple primary CTAs**: 4 buttons in the hero = nothing chosen.
270
+ - **Hero image of people pointing at laptops**: stock-photo cliché.
271
+ - **Auto-play video with sound**: instant unsubscribe.
272
+ - **Hero CTA doesn't lead to product**: clicks land on a marketing form.
273
+ - **Headline in image, not text**: bad for SEO + screen readers + responsive.
274
+ - **Background video without poster fallback**: blank screen on slow networks.
275
+ - **CTA below the fold**: most users won't scroll.
276
+
277
+ ## Cross-reference
278
+
279
+ - [`examples/component-hero-block.md`](../../examples/component-hero-block.md) — component spec
280
+ - [`knowledge/patterns/landing-page-patterns.md`](landing-page-patterns.md) — full landing structure
281
+ - [`knowledge/patterns/brand-identity.md`](brand-identity.md) — voice + visual brand
282
+ - [`knowledge/patterns/pricing-page-design.md`](pricing-page-design.md) — pricing on landing
283
+ - [`knowledge/i18n/korean-product-conventions.md`](../i18n/korean-product-conventions.md) — Korean design conventions