@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,225 @@
1
+ ---
2
+ title: Curated icon sets
3
+ source: refs/ui-ux-pro-max/src/ui-ux-pro-max/data/icons.csv
4
+ upstream: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
5
+ extracted_at: 2026-05-19
6
+ applies_to: [icons, react, all-ui]
7
+ version: 1.0.0
8
+ last_updated: 2026-05
9
+ stability: stable
10
+ ---
11
+
12
+ # Curated icon sets
13
+
14
+ Common UI icons indexed by **library** and **category**. Pick a single library per project — mixing icon sets in one UI looks unprofessional (different stroke weights, different cap rules).
15
+
16
+ ## Libraries indexed
17
+
18
+ | Library | Icons cataloged | Strengths |
19
+ | --- | --- | --- |
20
+ | **Phosphor** | 100 | Most variants (Thin/Light/Regular/Bold/Fill/Duotone), 1200+ icons. Clean for product UIs. |
21
+ | **Phosphor (primary) + Heroicons (fallback)** | 1 | — |
22
+ | **Phosphor (react-native)** | 4 | — |
23
+
24
+ ## Common icons by category
25
+
26
+ ### Action
27
+ | Icon | Keywords | Library | Best for |
28
+ | --- | --- | --- | --- |
29
+ | `plus` | add create new insert | Phosphor | Add button create new item |
30
+ | `minus` | remove subtract decrease delete | Phosphor | Remove item quantity decrease |
31
+ | `trash` | delete remove discard bin | Phosphor | Delete action destructive |
32
+ | `pencil-simple` | pencil modify change update | Phosphor | Edit button modify content |
33
+ | `floppy-disk` | disk store persist save | Phosphor | Save button persist changes |
34
+ | `download-simple` | export save file download | Phosphor | Download file export |
35
+ | `upload-simple` | import file attach upload | Phosphor | Upload file import |
36
+ | `copy` | duplicate clipboard paste | Phosphor | Copy to clipboard |
37
+ | `share` | social distribute send | Phosphor | Share button social |
38
+ | `magnifying-glass` | find lookup filter query | Phosphor | Search input bar |
39
+ | `funnel` | sort refine narrow options | Phosphor | Filter dropdown sort |
40
+ | `gear` | gear cog preferences config | Phosphor | Settings page configuration |
41
+
42
+ ### Commerce
43
+ | Icon | Keywords | Library | Best for |
44
+ | --- | --- | --- | --- |
45
+ | `shopping-cart` | cart checkout basket buy | Phosphor | Shopping cart e-commerce |
46
+ | `shopping-bag` | purchase buy store bag | Phosphor | Shopping bag purchase |
47
+ | `credit-card` | payment card checkout stripe | Phosphor | Payment credit card |
48
+ | `currency-dollar` | money price currency cost | Phosphor | Price money currency |
49
+ | `tag` | label price discount sale | Phosphor | Price tag label |
50
+ | `gift` | present reward bonus offer | Phosphor | Gift reward offer |
51
+ | `percent` | discount sale offer promo | Phosphor | Discount percentage sale |
52
+
53
+ ### Communication
54
+ | Icon | Keywords | Library | Best for |
55
+ | --- | --- | --- | --- |
56
+ | `envelope` | email message inbox letter | Phosphor | Email contact inbox |
57
+ | `chat-circle` | chat comment bubble conversation | Phosphor | Chat comment message |
58
+ | `phone` | call mobile telephone contact | Phosphor | Phone contact call |
59
+ | `paper-plane-tilt` | submit dispatch message airplane | Phosphor | Send message submit |
60
+ | `bell` | notification alert ring reminder | Phosphor | Notification bell alert |
61
+
62
+ ### Data
63
+ | Icon | Keywords | Library | Best for |
64
+ | --- | --- | --- | --- |
65
+ | `chart-bar` | analytics statistics graph metrics | Phosphor | Bar chart analytics |
66
+ | `chart-pie` | statistics distribution breakdown | Phosphor | Pie chart distribution |
67
+ | `trend-up` | growth increase positive trend | Phosphor | Growth trend positive |
68
+ | `trend-down` | decline decrease negative trend | Phosphor | Decline trend negative |
69
+ | `activity` | pulse heartbeat monitor live | Phosphor | Activity monitor pulse |
70
+ | `database` | storage server data backend | Phosphor | Database storage |
71
+
72
+ ### Development
73
+ | Icon | Keywords | Library | Best for |
74
+ | --- | --- | --- | --- |
75
+ | `code` | develop programming syntax html | Phosphor | Code development |
76
+ | `terminal` | console cli command shell | Phosphor | Terminal console |
77
+ | `git-branch` | version control branch merge | Phosphor | Git branch |
78
+ | `github-logo` | repository code open source | Phosphor | GitHub repository |
79
+
80
+ ### Device
81
+ | Icon | Keywords | Library | Best for |
82
+ | --- | --- | --- | --- |
83
+ | `device-mobile` | mobile phone device touch | Phosphor | Mobile smartphone |
84
+ | `device-tablet` | ipad device touch screen | Phosphor | Tablet device |
85
+ | `monitor` | desktop screen computer display | Phosphor | Desktop monitor |
86
+ | `laptop` | notebook computer portable device | Phosphor | Laptop computer |
87
+ | `printer` | print document output paper | Phosphor | Printer print |
88
+
89
+ ### Files
90
+ | Icon | Keywords | Library | Best for |
91
+ | --- | --- | --- | --- |
92
+ | `file` | document page paper doc | Phosphor | File document |
93
+ | `file-text` | document text page article | Phosphor | Text document article |
94
+ | `folder` | directory organize group files | Phosphor | Folder directory |
95
+ | `folder-open` | expanded browse files view | Phosphor | Open folder browse |
96
+ | `paperclip` | attachment attach file link | Phosphor | Attachment paperclip |
97
+ | `link` | url hyperlink chain connect | Phosphor | Link URL hyperlink |
98
+ | `clipboard` | paste copy buffer notes | Phosphor | Clipboard paste |
99
+
100
+ ### Guideline
101
+ | Icon | Keywords | Library | Best for |
102
+ | --- | --- | --- | --- |
103
+ | `icon-fallback-rules` | icon fallback, phosphor, heroicons, any icon, extended set | Phosphor (primary) + Heroicons (fallback) | Icon library strategy and fallback rules |
104
+
105
+ ### Layout
106
+ | Icon | Keywords | Library | Best for |
107
+ | --- | --- | --- | --- |
108
+ | `grid-four` | tiles gallery layout dashboard | Phosphor | Grid layout gallery |
109
+ | `list-bullets` | rows table lines items | Phosphor | List view rows |
110
+ | `columns` | layout split dual sidebar | Phosphor | Column layout split |
111
+ | `arrows-out` | fullscreen expand enlarge zoom | Phosphor | Fullscreen maximize |
112
+ | `arrows-in` | reduce shrink collapse exit | Phosphor | Minimize reduce |
113
+ | `sidebar` | panel drawer navigation menu | Phosphor | Sidebar panel |
114
+
115
+ ### Location
116
+ | Icon | Keywords | Library | Best for |
117
+ | --- | --- | --- | --- |
118
+ | `map-pin` | location marker place address | Phosphor | Location pin marker |
119
+ | `map` | directions navigate geography location | Phosphor | Map directions |
120
+ | `compass` | compass direction pointer arrow | Phosphor | Navigation compass |
121
+ | `globe` | world international global web | Phosphor | Globe world |
122
+
123
+ ### Media
124
+ | Icon | Keywords | Library | Best for |
125
+ | --- | --- | --- | --- |
126
+ | `image` | photo picture gallery thumbnail | Phosphor | Image photo gallery |
127
+ | `video` | movie film play record | Phosphor | Video player media |
128
+ | `play` | start video audio media | Phosphor | Play button video audio |
129
+ | `pause` | stop halt video audio | Phosphor | Pause button media |
130
+ | `speaker-high` | sound audio speaker music | Phosphor | Volume audio sound |
131
+ | `microphone` | microphone record voice audio | Phosphor | Microphone voice record |
132
+ | `camera` | photo capture snapshot picture | Phosphor | Camera photo capture |
133
+
134
+ ### Navigation
135
+ | Icon | Keywords | Library | Best for |
136
+ | --- | --- | --- | --- |
137
+ | `list` | hamburger menu navigation toggle bars | Phosphor | Mobile navigation drawer toggle sidebar |
138
+ | `arrow-left` | back previous return navigate | Phosphor | Back button breadcrumb navigation |
139
+ | `arrow-right` | next forward continue navigate | Phosphor | Forward button next step CTA |
140
+ | `caret-down` | dropdown expand accordion select | Phosphor | Dropdown toggle accordion header |
141
+ | `caret-up` | collapse close accordion minimize | Phosphor | Accordion collapse minimize |
142
+ | `house` | homepage main dashboard start | Phosphor | Home navigation main page |
143
+ | `x` | close cancel dismiss remove exit | Phosphor | Modal close dismiss button |
144
+ | `arrow-square-out` | open new tab external link | Phosphor | External link indicator |
145
+
146
+ ### Security
147
+ | Icon | Keywords | Library | Best for |
148
+ | --- | --- | --- | --- |
149
+ | `lock` | secure password protected private | Phosphor | Lock secure |
150
+ | `lock-open` | open access unsecure public | Phosphor | Unlock open |
151
+ | `shield` | protection security safe guard | Phosphor | Shield protection |
152
+ | `key` | password access unlock login | Phosphor | Key password |
153
+ | `eye` | view show visible password | Phosphor | Show password view |
154
+ | `eye-slash` | hide invisible password hidden | Phosphor | Hide password |
155
+
156
+ ### Social
157
+ | Icon | Keywords | Library | Best for |
158
+ | --- | --- | --- | --- |
159
+ | `heart` | like love favorite wishlist | Phosphor | Like favorite love |
160
+ | `star` | rating review favorite bookmark | Phosphor | Star rating favorite |
161
+ | `thumbs-up` | like approve agree positive | Phosphor | Like approve thumb |
162
+ | `thumbs-down` | dislike disapprove disagree negative | Phosphor | Dislike disapprove |
163
+ | `bookmark` | save later favorite mark | Phosphor | Bookmark save |
164
+ | `flag` | report mark important highlight | Phosphor | Flag report |
165
+
166
+ ### Status
167
+ | Icon | Keywords | Library | Best for |
168
+ | --- | --- | --- | --- |
169
+ | `check` | success done complete verified | Phosphor | Success state checkmark |
170
+ | `check-circle` | success verified approved complete | Phosphor | Success badge verified |
171
+ | `x-circle` | error failed cancel rejected | Phosphor | Error state failed |
172
+ | `warning` | warning caution attention danger | Phosphor | Warning message caution |
173
+ | `warning-circle` | info notice information help | Phosphor | Info notice alert |
174
+ | `info` | information help tooltip details | Phosphor | Information tooltip help |
175
+ | `circle-notch` | loading spinner processing wait | Phosphor | Loading state spinner |
176
+ | `clock` | time schedule pending wait | Phosphor | Pending time schedule |
177
+
178
+ ### Style Config
179
+ | Icon | Keywords | Library | Best for |
180
+ | --- | --- | --- | --- |
181
+ | `bold-typography-icon-system` | bold typography, editorial, mono label, phosphor, weight reg | Phosphor (react-native) | Bold Typography Mobile style: weight="regular". Size 20px fo |
182
+ | `cyberpunk-icon-system` | cyberpunk, neon, glow, hud, phosphor, weight regular, accent | Phosphor (react-native) | Cyberpunk Mobile HUD style: weight="regular", color={colors. |
183
+ | `academia-icon-system` | academia, library, brass, ornate, phosphor, weight thin, mut | Phosphor (react-native) | Academia (Scholarly Mobile) style: weight="thin" (thin engra |
184
+ | `web3-bitcoin-icon-system` | web3, bitcoin, defi, crypto, neon orange, holographic, blurv | Phosphor (react-native) | Bitcoin DeFi Mobile style: weight="regular", color={colors.b |
185
+
186
+ ### Time
187
+ | Icon | Keywords | Library | Best for |
188
+ | --- | --- | --- | --- |
189
+ | `calendar` | date schedule event appointment | Phosphor | Calendar date |
190
+ | `arrows-clockwise` | reload sync update refresh | Phosphor | Refresh reload |
191
+ | `arrow-counter-clockwise` | undo back revert history | Phosphor | Undo revert |
192
+ | `arrow-clockwise` | redo forward repeat history | Phosphor | Redo forward |
193
+
194
+ ### User
195
+ | Icon | Keywords | Library | Best for |
196
+ | --- | --- | --- | --- |
197
+ | `user` | profile account person avatar | Phosphor | User profile account |
198
+ | `users` | team group people members | Phosphor | Team group members |
199
+ | `user-plus` | add invite new member | Phosphor | Add user invite |
200
+ | `sign-in` | signin authenticate enter | Phosphor | Login signin |
201
+ | `sign-out` | signout exit leave logout | Phosphor | Logout signout |
202
+
203
+ ## Picking an icon library
204
+
205
+ | Situation | Pick |
206
+ | --- | --- |
207
+ | New React project, Tailwind, default-shadcn | **Lucide** |
208
+ | Need many weight variants (thin/regular/bold) | **Phosphor** |
209
+ | Heavy dashboard / data tools | **Tabler** |
210
+ | Material Design alignment | **Material Symbols** (variable font) |
211
+ | Tailwind-team alignment | **Heroicons** |
212
+ | Multi-language support including CJK glyphs | **Remix** |
213
+
214
+ ## Rules
215
+
216
+ 1. **One library per UI.** Mixing produces inconsistent stroke widths and cap rules.
217
+ 2. **Stay in one weight.** If you use Phosphor's `regular`, don't sprinkle `bold` for emphasis — pick weight by component (e.g., menu = regular, primary action = bold) and apply consistently.
218
+ 3. **24px is the default size.** 16px for inline-with-text, 32–48px for hero/empty states.
219
+ 4. **Icons that convey meaning need an accessible name.** `<Icon aria-label="Close">` or paired text. Decorative icons get `aria-hidden="true"`.
220
+ 5. **Match icon size to text leading.** If body line-height is 24px, body-line icons should be 16–20px (sit on the cap-height).
221
+
222
+ ## Cross-reference
223
+
224
+ - [knowledge/components/INDEX.md](../components/INDEX.md) — components that consume icons
225
+ - [knowledge/a11y/keyboard-and-focus.md](../a11y/keyboard-and-focus.md) — icon accessibility
@@ -0,0 +1,234 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Hero illustrations (marketing landing-page artwork)
4
+ applies_to: [illustration, marketing, hero, landing]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Hero illustrations
11
+
12
+ Hero illustrations are large, brand-led illustrations that anchor a landing page or major marketing surface. Larger investment, longer-lasting, harder to get right than spot illustrations.
13
+
14
+ ## What "hero" means
15
+
16
+ - 480–1200px wide (display).
17
+ - Often above-the-fold or above-the-section-fold.
18
+ - Carries significant brand weight — replaces the photo / video that would otherwise be in that slot.
19
+ - Usually one per major page section (1 in hero, 1 per feature, etc.).
20
+
21
+ ## Three hero illustration archetypes
22
+
23
+ ### 1. Conceptual / metaphorical
24
+
25
+ The illustration represents an abstract concept the product enables.
26
+
27
+ ```
28
+ "Money flows automatically" → illustration of stylized money trails connecting accounts.
29
+ "Code reviews in 30 seconds" → illustration of code with checkmarks emerging.
30
+ "Your team, in sync" → people visualized as gears or musical notes harmonizing.
31
+ ```
32
+
33
+ Strengths:
34
+ - Evocative, memorable.
35
+ - Communicates value beyond what a screenshot shows.
36
+
37
+ Risks:
38
+ - Easy to be vague ("clouds and arrows" mean nothing).
39
+ - Easy to be cliché (lightbulb = idea, gears = work).
40
+
41
+ ### 2. Product-in-context (illustrated mockup)
42
+
43
+ A stylized illustration of the product being used — phone in hand, laptop with the dashboard rendered as illustration.
44
+
45
+ ```
46
+ [Illustrated phone outline] [actual screenshot inside]
47
+ ```
48
+
49
+ Or fully illustrated:
50
+
51
+ ```
52
+ [Illustrated person] [holding illustrated phone] [showing illustrated app]
53
+ ```
54
+
55
+ Strengths:
56
+ - Shows the product without committing to a real screenshot (which dates fast).
57
+ - Easier to make consistent across pages.
58
+
59
+ Risks:
60
+ - Can feel less authentic than a real screenshot.
61
+ - Detail level must match throughout.
62
+
63
+ ### 3. Character-driven scene
64
+
65
+ Mascot or human characters in a scene that depicts product usage or value.
66
+
67
+ ```
68
+ [Character A using product, Character B receiving the result]
69
+ ```
70
+
71
+ Strengths:
72
+ - Strong emotional connection.
73
+ - Memorable.
74
+
75
+ Risks:
76
+ - Production cost (good character art is expensive).
77
+ - Inclusivity concerns (characters represent people; representation matters).
78
+ - Drift across illustrations (hard to keep characters on-model).
79
+
80
+ ## Production scope
81
+
82
+ Hero illustrations are an order of magnitude more work than spot illustrations:
83
+
84
+ | Type | Production hours (rough) |
85
+ | --- | --- |
86
+ | Spot illustration (existing system) | 2-6 |
87
+ | Spot illustration (new style) | 8-16 |
88
+ | Hero illustration (existing system) | 12-24 |
89
+ | Hero illustration (new style / character) | 40-80+ |
90
+
91
+ Plan accordingly. Hero illustrations should be high-leverage (used on the landing page for years) — don't make a custom hero for every minor page.
92
+
93
+ ## Composition
94
+
95
+ ### Subject placement
96
+
97
+ | Pattern | Use |
98
+ | --- | --- |
99
+ | Centered | Brutalist hero, balanced text-illustration relationship |
100
+ | Right-anchored | Text-led layout (text left, illustration right) |
101
+ | Left-anchored | Illustration-led layout (illustration left, text right) |
102
+ | Diagonal / dynamic | Stronger motion / energy |
103
+ | Background-spanning | Full-bleed, text overlays on safe area |
104
+
105
+ The illustration's placement must coordinate with the page layout.
106
+
107
+ ### Eye flow
108
+
109
+ Illustration directs the eye. If a character is looking at something, the user follows that gaze. Use this:
110
+
111
+ - Character looking at the headline → user reads headline.
112
+ - Character looking at CTA → user clicks CTA.
113
+ - Character looking at viewer → user feels addressed (works for testimonials).
114
+
115
+ Don't have characters looking off-frame at nothing — wastes attention.
116
+
117
+ ### Aspect ratio
118
+
119
+ | Surface | Ratio |
120
+ | --- | --- |
121
+ | Desktop hero | 16:9 or 4:3 |
122
+ | Mobile hero | 4:5 or 1:1 (taller, fewer landscape illustrations work on phone) |
123
+ | Sidebar / column | 1:1 |
124
+ | Section banner | 16:5 (wide thin) |
125
+
126
+ Plan multiple aspect ratios from the start. Cropping a 16:9 illustration to 4:5 on mobile rarely works.
127
+
128
+ ## Color and brand
129
+
130
+ Hero illustrations carry more brand color than spot illustrations:
131
+
132
+ - **Primary brand color**: 30-50% of illustration's visual weight.
133
+ - **Secondary brand colors**: 20-30%.
134
+ - **Neutrals (light/mid/dark)**: 20-30%.
135
+ - **Accent colors**: max 10%, only if system permits.
136
+
137
+ Avoid 5+ colors of equal weight — looks chaotic.
138
+
139
+ Bake colors into tokens, not raw hex. For dark mode: produce a separate variant or use `currentColor` + CSS variables strategically.
140
+
141
+ ## Detail level
142
+
143
+ A hero illustration has more detail than a spot. Define the level:
144
+
145
+ | Level | Lines | Shapes | Surface |
146
+ | --- | --- | --- | --- |
147
+ | Low detail | 5-15 | 10-25 | Most spots |
148
+ | Medium detail | 15-50 | 25-100 | Most heroes |
149
+ | High detail | 50+ | 100+ | Editorial heroes |
150
+
151
+ Match across the system. Don't have one feature page with a 20-shape illustration and another with a 200-shape illustration.
152
+
153
+ ## Animation in heroes
154
+
155
+ Hero illustrations can be:
156
+ - **Static** (default) — fastest load, most reliable.
157
+ - **Looped** (subtle ambient motion — floating shapes, breathing) — adds life, watch performance.
158
+ - **Scroll-driven** — illustration changes as user scrolls (advanced; performance-heavy).
159
+
160
+ If animating: see [`motion/marketing-motion.md`](../motion/marketing-motion.md) and [`motion/motion-tools.md`](../motion/motion-tools.md). Lottie or Rive likely.
161
+
162
+ ## Performance
163
+
164
+ Heroes are above-the-fold. They impact LCP:
165
+
166
+ | Format | Typical hero file size | LCP impact |
167
+ | --- | --- | --- |
168
+ | SVG (medium detail) | 30-100kB | Negligible |
169
+ | SVG (high detail) | 100-400kB | Moderate; consider WebP fallback |
170
+ | PNG (1x) | 200-800kB | High |
171
+ | PNG (2x retina) | 800kB-3MB | Severe |
172
+ | WebP | 100-400kB (vs PNG) | Better than PNG |
173
+ | Lottie JSON | 50-300kB | Moderate (renders after JSON parse) |
174
+ | Lottie .lottie binary | 30-150kB | Moderate |
175
+
176
+ For SVG with > 200 shapes: bench against bitmap. Sometimes a 200kB WebP is faster to render than a 100kB SVG with hundreds of paths.
177
+
178
+ Always: lazy-load below-the-fold heroes; preload above-the-fold; provide poster image for animated heroes.
179
+
180
+ ## Korean market — hero illustrations
181
+
182
+ Korean B2C / fintech hero illustrations follow distinct conventions:
183
+
184
+ - **Mascot-led** — Kakao Friends (라이언/어피치), Toss money characters, NaverPay characters dominate. Big-name brands.
185
+ - **Soft, rounded, warm** — pastel + brand color, less stark than Western minimal.
186
+ - **Less abstract** — Korean B2C audiences trend toward concrete imagery (a real character, a real action) over abstract metaphor.
187
+ - **High emotion** — characters express clear feelings (joy, calm, focus). Not the cool detachment of Linear / Stripe illustrations.
188
+
189
+ For Korean B2B (enterprise SaaS): still leans more abstract / geometric, similar to Western styles.
190
+
191
+ See [`mascot-design.md`](mascot-design.md) for character work depth.
192
+
193
+ ## Inclusive representation
194
+
195
+ Hero illustrations with characters have representation concerns:
196
+
197
+ - **Skin tones**: include a range, not all one tone.
198
+ - **Body types**: not all thin / all stylized in one direction.
199
+ - **Ages**: include older / younger characters where appropriate to the audience.
200
+ - **Disability**: include canes, wheelchairs, hearing aids when relevant (and not just in "accessibility-themed" sections).
201
+ - **Gender**: don't default all professional roles to one gender.
202
+
203
+ For Korean market: same principles apply, with Korean / Asian feature representation as primary. Avoid Western-coded features in mascot characters intended for Korean audiences (looks foreign).
204
+
205
+ ## Consistency across heroes
206
+
207
+ For multi-page sites with multiple heroes:
208
+
209
+ - Same character set (or same mascot) across all heroes.
210
+ - Same line weight / fill rules.
211
+ - Same color palette.
212
+ - Same perspective (all front-view, or all isometric — don't mix).
213
+ - Same level of detail.
214
+
215
+ Create a **hero illustration spec sheet** at the system level with these rules locked.
216
+
217
+ ## Don't
218
+
219
+ - Don't ship a hero illustration that doesn't match the headline. Visual + text dissonance.
220
+ - Don't use stock hero illustrations on a serious B2B SaaS landing page — every product has the same Storyset hero.
221
+ - Don't ignore mobile aspect ratio at hero design time. Phone-first redesign is more expensive than dual-aspect from the start.
222
+ - Don't bake brand color as raw hex — use tokens / CSS vars.
223
+ - Don't go above 400kB without a strong reason. There's almost always a smaller way.
224
+ - Don't auto-loop a busy hero (motion fatigue, battery drain).
225
+
226
+ ## Cross-reference
227
+
228
+ - [`knowledge/illustration/illustration-systems.md`](illustration-systems.md) — system foundation
229
+ - [`knowledge/illustration/spot-illustrations.md`](spot-illustrations.md) — small purposeful illustrations
230
+ - [`knowledge/illustration/mascot-design.md`](mascot-design.md) — character work
231
+ - [`knowledge/illustration/svg-optimization.md`](svg-optimization.md) — performance
232
+ - [`knowledge/patterns/landing-hero-design.md`](../patterns/landing-hero-design.md) — overall hero strategy
233
+ - [`knowledge/motion/marketing-motion.md`](../motion/marketing-motion.md) — animating heroes
234
+ - [`examples/component-hero-block.md`](../../examples/component-hero-block.md) — hero component spec
@@ -0,0 +1,221 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Illustration systems (style, voice, system design)
4
+ applies_to: [illustration, brand, marketing, empty-states]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Illustration systems
11
+
12
+ Illustration is **brand-bearing** in a way most UI elements aren't. A button is a button. A spot illustration says "this is what we feel like." Inconsistent illustration reads as more amateurish than inconsistent typography.
13
+
14
+ This file is the foundation for [`spot-illustrations.md`](spot-illustrations.md), [`hero-illustrations.md`](hero-illustrations.md), [`mascot-design.md`](mascot-design.md), and [`svg-optimization.md`](svg-optimization.md). Read these first.
15
+
16
+ ## What an illustration system is
17
+
18
+ A reusable, opinionated set of:
19
+ 1. **Style rules** — line weight, color treatment, geometry, perspective.
20
+ 2. **Voice rules** — what feeling illustrations should convey.
21
+ 3. **Asset library** — the actual SVG / PNG / Lottie files.
22
+ 4. **Usage guidelines** — when to use illustration vs photo vs icon vs nothing.
23
+ 5. **Production rules** — how new illustrations are made consistent with existing.
24
+
25
+ Without these: every illustrator (or every AI prompt) outputs different work. The system breaks within 3 months.
26
+
27
+ ## Six common illustration styles
28
+
29
+ | Style | Look | Use |
30
+ | --- | --- | --- |
31
+ | **Flat geometric** | 2-color, no gradients, hard edges | Default for SaaS, fintech, product UI |
32
+ | **Soft 3D** | Rounded, gradient-shaded, isometric | Premium consumer (Notion, Stripe ad units) |
33
+ | **Hand-drawn / sketchy** | Imperfect lines, organic | Approachable, casual brands (Linear illustrations, Mailchimp) |
34
+ | **Mascot-driven** | Recurring characters | Kakao, Toss, fintech consumer |
35
+ | **Editorial** | Magazine-style, sophisticated | Long-form content, publications |
36
+ | **Generative / AI hybrid** | Distinctive AI-look + human curation | Linear, Midjourney's own marketing, 2024+ |
37
+
38
+ A system picks **one** primary style. Not two. Mixing flat-geometric with soft-3D in the same product reads as different brands.
39
+
40
+ ## Defining your style
41
+
42
+ Spec the following before producing any illustration:
43
+
44
+ ### Geometric vs organic
45
+
46
+ | | Geometric | Organic |
47
+ | --- | --- | --- |
48
+ | Lines | Straight, 45°/90°, perfect arcs | Curved, hand-drawn, irregular |
49
+ | Shapes | Circles, rectangles, simple polygons | Blobs, irregular silhouettes |
50
+ | Feeling | Precise, technical, modern | Warm, approachable, human |
51
+
52
+ Pick one bias. Most fintech leans geometric; most consumer / wellness leans organic.
53
+
54
+ ### Line weight
55
+
56
+ - **Stroke-only**: 1.5px or 2px stroke, no fill. Lightweight, modern.
57
+ - **Stroke + fill**: stroke for outline, flat fill inside. Most common.
58
+ - **Fill-only**: no stroke, color blocks define shapes. Cleanest at small sizes.
59
+ - **Mixed weights**: thicker outline + thinner internal lines. Editorial feel.
60
+
61
+ Stick to one rule. Don't have stroke widths varying between illustrations.
62
+
63
+ ### Color treatment
64
+
65
+ - **Monochromatic** (one hue + tints/shades) — most restrained, brand-strong.
66
+ - **Brand palette** (uses 3-5 brand tokens only) — most common.
67
+ - **Limited extended** (brand + 2-3 accent neutrals) — for variety in long marketing pages.
68
+ - **Full color** — only for editorial / hero illustrations; usually wrong for systems.
69
+
70
+ Specify **which tokens** an illustration may use. E.g., "Spot illustrations use `--color-brand-default`, `--color-brand-light`, and `--color-fg-on-bg`. No other colors permitted."
71
+
72
+ ### Geometry rules
73
+
74
+ - **Grid alignment** — all anchor points snap to 8px / 16px grid for crispness.
75
+ - **Corner radius** — all rounded corners share one radius (e.g., 4px), or follow a tier (4px small, 8px medium, 16px hero).
76
+ - **Stroke caps** — round vs square. Pick one.
77
+ - **Stroke joins** — round vs miter. Pick one.
78
+
79
+ ### Perspective
80
+
81
+ - **Flat / 2D** — most flexible, easiest to produce.
82
+ - **Isometric** — 30°/60°/90° three-quarter view. Premium, more production cost.
83
+ - **Front-view only** — rigid but consistent.
84
+ - **Mixed** — usually wrong.
85
+
86
+ ## Voice — what illustrations should *feel*
87
+
88
+ Illustration carries emotional weight. Define voice in 3-5 adjectives:
89
+
90
+ | Brand | Illustration voice |
91
+ | --- | --- |
92
+ | Toss | Calm, gentle, money-warm |
93
+ | Linear | Sharp, futuristic, controlled |
94
+ | Stripe | Refined, geometric, technical-but-elegant |
95
+ | Kakao | Friendly, character-driven, playful |
96
+ | Notion | Approachable, human, slightly hand-drawn |
97
+
98
+ Include voice in the system spec. Without voice, illustrators interpret style rules differently and the work drifts.
99
+
100
+ ## When to use illustration
101
+
102
+ | Surface | Illustration appropriate? |
103
+ | --- | --- |
104
+ | Empty state | Yes — the canonical use |
105
+ | Success / error / warning state | Yes — adds emotional clarity |
106
+ | Onboarding | Yes — reduces friction |
107
+ | Marketing hero | Sometimes — competing with photo / video |
108
+ | Feature explanation | Yes — when concept is abstract |
109
+ | App icon | No — that's identity design |
110
+ | Inside dashboards / data UIs | No — visual noise |
111
+ | Inside forms | No — distracts from input |
112
+ | Inside dense product UI | No — generally |
113
+
114
+ Default: NO illustration in product UI surfaces. Reserve for moments where it adds emotional information (empty / success / error / onboarding / marketing).
115
+
116
+ ## When NOT to use illustration
117
+
118
+ - "Just because the page looks empty." Empty pages aren't broken — they're informative. Use illustration only if the user needs encouragement to act.
119
+ - "To fill space." Whitespace is a feature.
120
+ - "Because the brand is fun." Personality belongs in voice, color, motion. Not every screen needs a character.
121
+ - "To replace explanation." Illustration supplements text, doesn't replace it.
122
+
123
+ ## Illustration vs photo vs icon vs nothing
124
+
125
+ | | Illustration | Photo | Icon | Nothing |
126
+ | --- | --- | --- | --- | --- |
127
+ | Brand-bearing | High | Medium-low | Low | — |
128
+ | Production cost | Medium-high | High (good photos) | Low | Zero |
129
+ | Scales to size | Excellent (vector) | Limited | Excellent | — |
130
+ | Consistency in system | Hard but possible | Hardest | Easy | — |
131
+ | Performance cost | Low (SVG) | High (image) | Lowest | Zero |
132
+ | When right | Branded moments, emotional surfaces | Real-world products, testimonial portraits | Inline UI, navigation | Dense data, forms, lists |
133
+
134
+ Use the right one. Don't use illustration for everything.
135
+
136
+ ## System governance
137
+
138
+ A real system needs:
139
+
140
+ 1. **Source files** — Figma library or Adobe Illustrator masters in version control.
141
+ 2. **Naming convention** — e.g., `illo-empty-search.svg`, `illo-success-payment.svg`, `illo-hero-onboarding-01.svg`.
142
+ 3. **Required reviews** — every new illustration reviewed against style + voice rules before merging.
143
+ 4. **Refresh cadence** — illustration ages faster than icons. Plan to refresh every 18-24 months.
144
+
145
+ ## Illustration kit options
146
+
147
+ For teams without a custom system, start with a kit:
148
+
149
+ | Kit | Style | License | Cost |
150
+ | --- | --- | --- | --- |
151
+ | **unDraw** | Flat geometric, 1-color | MIT-ish | Free |
152
+ | **Storyset by Freepik** | Multiple styles, customizable | Free with attribution / Premium | Free / Paid |
153
+ | **IconScout illustrations** | Many styles | Premium | Paid |
154
+ | **Humaaans** | Mix-and-match characters | CC0 | Free |
155
+ | **Open Peeps** | Hand-drawn characters | CC0 | Free |
156
+ | **Blush** | Customizable scenes | Free / Paid | Mixed |
157
+
158
+ For Korean market: most kits are Western-coded (people, contexts). Custom or Kakao-style mascot work usually required for true Korean B2C.
159
+
160
+ ## AI-assisted illustration
161
+
162
+ 2024+: Midjourney, DALL-E, Adobe Firefly can produce illustrations in a defined style. Workflow:
163
+
164
+ 1. **Train style** — generate 50+ samples of your defined style, curate the best.
165
+ 2. **Use as reference** — feed best samples back as style references for new prompts.
166
+ 3. **Always retouch** — AI output never ships raw. Adjust line weight, colors, anchor points to match system.
167
+ 4. **License check** — verify AI tool's license permits commercial use; document provenance.
168
+
169
+ AI is good for:
170
+ - Iteration speed (50 directions in an hour)
171
+ - Inspiration / mood-board generation
172
+ - Filling gaps (one-off illustrations the system doesn't have)
173
+
174
+ AI is bad for:
175
+ - Consistent system production at scale (variance is the point of AI; consistency is the point of a system)
176
+ - Brand-critical hero illustrations (uncanny / generic risk)
177
+ - Mascot continuity (faces drift across generations)
178
+
179
+ ## Korean illustration conventions
180
+
181
+ Korean B2C apps lean heavily into:
182
+ - **Mascots** (Kakao Friends — 라이언/어피치/무지, Toss money characters, NaverPay's caricatures).
183
+ - **Soft, rounded geometry** (warm consumer feel).
184
+ - **Pastel + warm-neutral palette** (less stark than Western minimal).
185
+ - **Character-driven empty states** (mascot expressing the empty state's emotion).
186
+
187
+ Korean B2B / fintech (Toss, KakaoBank) is more restrained: flat geometric with limited mascot use.
188
+
189
+ See [`mascot-design.md`](mascot-design.md) for character-design depth.
190
+
191
+ ## Technical concerns
192
+
193
+ | Format | When | Pros | Cons |
194
+ | --- | --- | --- | --- |
195
+ | **SVG** | Default for UI illustration | Vector, themeable, small | More effort to author |
196
+ | **PNG (2x/3x)** | Complex shading, photo-realism | Easy to author | Bigger files, no theme |
197
+ | **WebP** | Photo-realistic, large | Smaller than PNG | Less broad support (now near-universal) |
198
+ | **Lottie** | Animated illustration | Designer-led motion | Larger runtime, see [`motion/motion-tools.md`](../motion/motion-tools.md) |
199
+ | **AVIF** | Highest compression | Smallest files | Tooling still maturing |
200
+
201
+ Default: **SVG**. Use Lottie when the illustration animates. Use PNG only when SVG can't represent the visual (heavy shading, watercolor, painterly).
202
+
203
+ For SVG specifics: see [`svg-optimization.md`](svg-optimization.md).
204
+
205
+ ## Don't
206
+
207
+ - Don't mix illustration styles within a product. One bias per system.
208
+ - Don't ship illustrations with raw hex colors — use CSS variables / SVG `currentColor` for theming.
209
+ - Don't ignore dark mode — illustrations need a dark variant or token-aware coloring.
210
+ - Don't use stock illustrations without checking license + uniqueness — same illustration on 50 SaaS landing pages is bad branding.
211
+ - Don't ship 500kB illustrations — see [`svg-optimization.md`](svg-optimization.md).
212
+ - Don't make every screen "fun." Restraint is a feature.
213
+
214
+ ## Cross-reference
215
+
216
+ - [`knowledge/illustration/spot-illustrations.md`](spot-illustrations.md) — empty / success / error / onboarding
217
+ - [`knowledge/illustration/hero-illustrations.md`](hero-illustrations.md) — marketing-led
218
+ - [`knowledge/illustration/mascot-design.md`](mascot-design.md) — character / mascot system
219
+ - [`knowledge/illustration/svg-optimization.md`](svg-optimization.md) — SVG specifics
220
+ - [`knowledge/patterns/brand-identity.md`](../patterns/brand-identity.md) — illustration as brand
221
+ - [`knowledge/icons/curated-sets.md`](../icons/curated-sets.md) — icons (different concern)