@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,238 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Brand identity foundations
4
+ applies_to: [brand, identity, logo, voice]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Brand identity
11
+
12
+ design-ai consumes brand inputs (colors, fonts, voice) to make design choices. This file covers the **brand fundamentals** every product design touches — even if you're not designing the brand itself.
13
+
14
+ ## What brand identity contains
15
+
16
+ Brand identity is roughly 5 layers, from most-visible to least:
17
+
18
+ | Layer | Examples |
19
+ | --- | --- |
20
+ | **Logo** | Wordmark, lettermark, symbol, combination |
21
+ | **Color** | Primary, accent, neutrals (the palette your product uses) |
22
+ | **Typography** | Brand font(s) — used in marketing AND product |
23
+ | **Voice / tone** | How you write — playful vs serious, polite vs casual |
24
+ | **Imagery / illustration** | Photo style, illustration system, iconography |
25
+
26
+ A "brand guideline" document covers all five.
27
+
28
+ ## Logo — fundamentals
29
+
30
+ design-ai doesn't generate logos but specs how they're used. Common rules:
31
+
32
+ ### Anatomy
33
+
34
+ ```
35
+ Lettermark: Wordmark: Symbol: Combination:
36
+ [T] Toss [○] [○] Toss
37
+ brand
38
+ ```
39
+
40
+ | Type | Use |
41
+ | --- | --- |
42
+ | **Lettermark** | Single letter (KakaoBank's "K", Toss's "T"). Compact, memorable. |
43
+ | **Wordmark** | Just the company name styled. (Google, Coupang) |
44
+ | **Symbol** | No text. Recognizable enough alone. (Apple's apple) |
45
+ | **Combination** | Symbol + wordmark. Most flexible. |
46
+
47
+ For Korean apps: lettermarks are common (한 글자 — K, T, N) due to Hangul/Latin compatibility.
48
+
49
+ ### Logo rules
50
+
51
+ - **Minimum clear space**: padding around the logo equal to the cap-height of the wordmark (or radius of symbol).
52
+ - **Minimum size**: typically 16px (favicon) / 24px (standard). Below this: lettermark only.
53
+ - **Don't distort**: stretch, skew, gradient, drop-shadow on logos = brand violation.
54
+ - **Locked combinations**: if "logo + tagline" is locked, never split.
55
+ - **Color treatment**: brand color (default), white-on-dark (for dark backgrounds), 1-color (for ink-restrictive contexts).
56
+
57
+ ### Logo variants per context
58
+
59
+ A real brand kit ships:
60
+
61
+ ```
62
+ logo/
63
+ ├── primary.svg # default — full color
64
+ ├── primary-white.svg # for dark backgrounds
65
+ ├── primary-black.svg # 1-color, ink-only
66
+ ├── lettermark.svg # symbol-only
67
+ ├── lettermark-white.svg
68
+ ├── horizontal.svg # stacked is default; horizontal for narrow placements
69
+ ├── icon-32.png # raster for app icon
70
+ └── icon-1024.png # high-res for app store
71
+ ```
72
+
73
+ Provide all variants — designers and devs grab what they need.
74
+
75
+ ## Color (brand)
76
+
77
+ The brand color set is **input** to design-ai's `color-palette` skill. See [`knowledge/colors/color-theory.md`](../colors/color-theory.md) for ramp construction.
78
+
79
+ Brand color = **primary anchor**. Everything else is generated from it.
80
+
81
+ A brand kit specifies:
82
+ - **Primary** (the seed)
83
+ - **Optional secondary** (often a complementary or accent hue)
84
+ - **Neutral** (often a hue-tinted gray matched to the primary)
85
+ - **Forbidden colors** (e.g., "never use red except for errors")
86
+ - **Color usage rules** ("primary on hero only, accent for CTAs")
87
+
88
+ The **product's** semantic palette (text, bg, border) is derived. Brand provides hue; design system provides system.
89
+
90
+ ## Typography (brand)
91
+
92
+ Brand fonts often differ from product fonts:
93
+
94
+ | Surface | Font choice |
95
+ | --- | --- |
96
+ | Marketing site (hero) | Display brand font — distinct, memorable |
97
+ | Marketing body | Brand font OR humanist sans |
98
+ | Product UI | Often a different font — system or workhorse sans |
99
+ | Documents | A serif or paired humanist sans |
100
+
101
+ For Korean apps: Pretendard often works at all surfaces. Trying to maintain "brand font in marketing, Pretendard in product" creates inconsistency.
102
+
103
+ Practical: pick **one font for product + secondary marketing surfaces**, and *one display* font for hero / landing if you want extra brand punch.
104
+
105
+ ## Voice / tone
106
+
107
+ Voice and tone are different:
108
+
109
+ | | Definition |
110
+ | --- | --- |
111
+ | **Voice** | Personality. Stays consistent across all contexts. |
112
+ | **Tone** | Emotional register. Varies by context. |
113
+
114
+ Brand voice example: "Warm, direct, knowledgeable, never preachy."
115
+ Tone variations:
116
+ - Onboarding email: warmer, encouraging.
117
+ - Error message: direct, no apologies, action-oriented.
118
+ - Marketing landing page: confident, declarative.
119
+ - Customer support: warm, patient, problem-solving.
120
+
121
+ ### Voice attributes (typical brand kit)
122
+
123
+ A voice kit defines 4–6 attributes with **what we are AND what we're not**:
124
+
125
+ ```
126
+ We are: Warm
127
+ NOT: Sycophantic ("Hey friend!" is too much)
128
+
129
+ We are: Direct
130
+ NOT: Curt ("Done." is too cold)
131
+
132
+ We are: Knowledgeable
133
+ NOT: Condescending ("Obviously, you should..." — no.)
134
+
135
+ We are: Confident
136
+ NOT: Brash ("Best in the world!" — no.)
137
+ ```
138
+
139
+ This dual definition prevents drift.
140
+
141
+ ### Korean voice considerations
142
+
143
+ For Korean apps, choose a **honorific level** as part of voice:
144
+
145
+ | Level | When to use | Example |
146
+ | --- | --- | --- |
147
+ | 존댓말 (~합니다) | Formal — banking, fintech, B2B | "잠시 후 다시 시도해 주세요." |
148
+ | 존댓말 (~해요) | Friendly — consumer apps, casual | "다시 한번 시도해 주세요." |
149
+ | 반말 | **Don't use** in product UI | (avoid) |
150
+
151
+ Most consumer Korean apps use casual ~해요. Banking / fintech: ~합니다 / ~합니다 mixed.
152
+
153
+ ## Imagery / illustration
154
+
155
+ Brand imagery is a hidden axis. Often missing from "I have a brand color" briefs.
156
+
157
+ | Style | Examples | Use |
158
+ | --- | --- | --- |
159
+ | **Photography (lifestyle)** | Real people, natural lighting | Marketing, e-commerce |
160
+ | **Photography (product)** | Hero shots, on-white | E-commerce |
161
+ | **Illustration (line)** | Single-color outline drawings | Tech docs, UI empty states |
162
+ | **Illustration (flat)** | Multi-color flat shapes | Marketing, onboarding |
163
+ | **Illustration (3D / Memphis)** | Dimensional shapes | Tech / fintech (Toss-style) |
164
+ | **Geometric / abstract** | Shapes, no people | Tech, B2B |
165
+
166
+ Pick one style for the brand. **Don't mix** illustration styles within the product — Apple-style 3D in onboarding + Memphis in errors = visual chaos.
167
+
168
+ For Korean apps: Toss-style 3D abstract is currently dominant in fintech. KakaoBank uses flat illustrations. Pick a side per product.
169
+
170
+ ## Brand vs design system
171
+
172
+ Brand and design system are **adjacent but distinct**:
173
+
174
+ | | Brand | Design system |
175
+ | --- | --- | --- |
176
+ | **Owned by** | Marketing / leadership | Engineering / product design |
177
+ | **Audience** | Customers, market | Builders (designers, devs) |
178
+ | **Output** | Logo, voice, brand kit | Tokens, components, patterns |
179
+ | **Updated** | Rarely (every 3–5 years) | Frequently (per quarter) |
180
+ | **Source of truth** | Brand book | tokens/source.json + Storybook |
181
+
182
+ Design system **inherits** from brand:
183
+ - Brand primary → semantic primary token
184
+ - Brand font → product type stack
185
+ - Brand voice → component copy
186
+
187
+ design-ai's role: take brand inputs, produce the design system.
188
+
189
+ ## Brand audit (against brand kit)
190
+
191
+ Use this checklist when reviewing whether a product matches its brand:
192
+
193
+ - [ ] Logo: rendered correctly, sized within bounds, in approved variants only.
194
+ - [ ] Color: primary used per spec; semantic tokens reference it; no rogue brand colors elsewhere.
195
+ - [ ] Typography: brand font used (or designed alternative); fallback chain correct.
196
+ - [ ] Voice: error messages, empty states, CTAs match voice attributes.
197
+ - [ ] Imagery: one illustration style; photos match brand guidelines (lifestyle / product / etc.).
198
+ - [ ] Iconography: single icon library, consistent stroke width.
199
+ - [ ] Motion: brand has motion language? Check that animations match.
200
+
201
+ Run as a once-per-quarter check.
202
+
203
+ ## Brand kit format
204
+
205
+ A real brand kit is typically:
206
+
207
+ ```
208
+ brand-kit/
209
+ ├── README.md # how to use this kit
210
+ ├── logo/ # SVG + PNG variants
211
+ ├── color.json # primary, secondary, neutrals, semantic
212
+ ├── typography.md # font choices, weights, scale, fallbacks
213
+ ├── voice.md # attributes, dos/don'ts, copy examples
214
+ ├── imagery/ # reference images, illustration system
215
+ ├── icons/ # if custom icons exist
216
+ └── examples/ # marketing pages, ads, screenshots showing the brand
217
+ ```
218
+
219
+ The "brand book" PDF (typical agency deliverable) is a presentation of this kit — the kit itself is the working artifact.
220
+
221
+ ## When to invest in brand vs design system
222
+
223
+ If you have neither: **invest in design system first**. A working product with a thin brand beats a brand book with no product.
224
+
225
+ If you have a strong brand but inconsistent product: invest in design system. The brand will guide it.
226
+
227
+ If you have a working design system but no brand identity: a brand book solidifies decisions but isn't urgent unless marketing demands it.
228
+
229
+ For early-stage Korean fintech / startup: focus design system first; brand emerges via product use.
230
+
231
+ ## Cross-reference
232
+
233
+ - [`knowledge/colors/color-theory.md`](../colors/color-theory.md) — palette construction from brand color
234
+ - [`knowledge/typography/font-pairings.md`](../typography/font-pairings.md) — font selection per mood
235
+ - [`knowledge/patterns/styles-catalog.md`](styles-catalog.md) — visual style families
236
+ - [`knowledge/patterns/brand-references.md`](brand-references.md) — peer brand references
237
+ - [`skills/design-system-builder/PLAYBOOK.md`](../../skills/design-system-builder/PLAYBOOK.md) — converts brand inputs to a system
238
+ - [`knowledge/i18n/korean-product-conventions.md`](../i18n/korean-product-conventions.md) — Korean voice conventions
@@ -0,0 +1,97 @@
1
+ ---
2
+ title: Brand reference index
3
+ source: refs/awesome-design-md/design-md/
4
+ upstream: https://github.com/VoltAgent/awesome-design-md
5
+ extracted_at: 2026-05-19
6
+ applies_to: [art-direction, brand-research]
7
+ version: 1.0.0
8
+ last_updated: 2026-05
9
+ stability: stable
10
+ ---
11
+
12
+ # Brand reference index
13
+
14
+ Curated design notes on 71 brands. When designing for a comparable category, open the brand's notes for token references, voice, and visual cues.
15
+
16
+ | Brand | Files |
17
+ | --- | --- |
18
+
19
+ | **[airbnb](../../refs/awesome-design-md/design-md/airbnb/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/airbnb/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/airbnb/README.md) |
20
+ | **[airtable](../../refs/awesome-design-md/design-md/airtable/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/airtable/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/airtable/README.md) |
21
+ | **[apple](../../refs/awesome-design-md/design-md/apple/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/apple/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/apple/README.md) |
22
+ | **[binance](../../refs/awesome-design-md/design-md/binance/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/binance/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/binance/README.md) |
23
+ | **[bmw](../../refs/awesome-design-md/design-md/bmw/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/bmw/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/bmw/README.md) |
24
+ | **[bmw-m](../../refs/awesome-design-md/design-md/bmw-m/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/bmw-m/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/bmw-m/README.md) |
25
+ | **[bugatti](../../refs/awesome-design-md/design-md/bugatti/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/bugatti/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/bugatti/README.md) |
26
+ | **[cal](../../refs/awesome-design-md/design-md/cal/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/cal/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/cal/README.md) |
27
+ | **[claude](../../refs/awesome-design-md/design-md/claude/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/claude/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/claude/README.md) |
28
+ | **[clay](../../refs/awesome-design-md/design-md/clay/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/clay/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/clay/README.md) |
29
+ | **[clickhouse](../../refs/awesome-design-md/design-md/clickhouse/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/clickhouse/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/clickhouse/README.md) |
30
+ | **[cohere](../../refs/awesome-design-md/design-md/cohere/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/cohere/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/cohere/README.md) |
31
+ | **[coinbase](../../refs/awesome-design-md/design-md/coinbase/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/coinbase/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/coinbase/README.md) |
32
+ | **[composio](../../refs/awesome-design-md/design-md/composio/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/composio/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/composio/README.md) |
33
+ | **[cursor](../../refs/awesome-design-md/design-md/cursor/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/cursor/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/cursor/README.md) |
34
+ | **[elevenlabs](../../refs/awesome-design-md/design-md/elevenlabs/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/elevenlabs/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/elevenlabs/README.md) |
35
+ | **[expo](../../refs/awesome-design-md/design-md/expo/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/expo/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/expo/README.md) |
36
+ | **[ferrari](../../refs/awesome-design-md/design-md/ferrari/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/ferrari/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/ferrari/README.md) |
37
+ | **[figma](../../refs/awesome-design-md/design-md/figma/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/figma/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/figma/README.md) |
38
+ | **[framer](../../refs/awesome-design-md/design-md/framer/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/framer/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/framer/README.md) |
39
+ | **[hashicorp](../../refs/awesome-design-md/design-md/hashicorp/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/hashicorp/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/hashicorp/README.md) |
40
+ | **[ibm](../../refs/awesome-design-md/design-md/ibm/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/ibm/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/ibm/README.md) |
41
+ | **[intercom](../../refs/awesome-design-md/design-md/intercom/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/intercom/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/intercom/README.md) |
42
+ | **[kraken](../../refs/awesome-design-md/design-md/kraken/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/kraken/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/kraken/README.md) |
43
+ | **[lamborghini](../../refs/awesome-design-md/design-md/lamborghini/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/lamborghini/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/lamborghini/README.md) |
44
+ | **[linear.app](../../refs/awesome-design-md/design-md/linear.app/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/linear.app/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/linear.app/README.md) |
45
+ | **[lovable](../../refs/awesome-design-md/design-md/lovable/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/lovable/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/lovable/README.md) |
46
+ | **[mastercard](../../refs/awesome-design-md/design-md/mastercard/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/mastercard/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/mastercard/README.md) |
47
+ | **[meta](../../refs/awesome-design-md/design-md/meta/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/meta/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/meta/README.md) |
48
+ | **[minimax](../../refs/awesome-design-md/design-md/minimax/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/minimax/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/minimax/README.md) |
49
+ | **[mintlify](../../refs/awesome-design-md/design-md/mintlify/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/mintlify/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/mintlify/README.md) |
50
+ | **[miro](../../refs/awesome-design-md/design-md/miro/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/miro/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/miro/README.md) |
51
+ | **[mistral.ai](../../refs/awesome-design-md/design-md/mistral.ai/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/mistral.ai/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/mistral.ai/README.md) |
52
+ | **[mongodb](../../refs/awesome-design-md/design-md/mongodb/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/mongodb/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/mongodb/README.md) |
53
+ | **[nike](../../refs/awesome-design-md/design-md/nike/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/nike/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/nike/README.md) |
54
+ | **[notion](../../refs/awesome-design-md/design-md/notion/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/notion/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/notion/README.md) |
55
+ | **[nvidia](../../refs/awesome-design-md/design-md/nvidia/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/nvidia/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/nvidia/README.md) |
56
+ | **[ollama](../../refs/awesome-design-md/design-md/ollama/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/ollama/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/ollama/README.md) |
57
+ | **[opencode.ai](../../refs/awesome-design-md/design-md/opencode.ai/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/opencode.ai/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/opencode.ai/README.md) |
58
+ | **[pinterest](../../refs/awesome-design-md/design-md/pinterest/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/pinterest/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/pinterest/README.md) |
59
+ | **[playstation](../../refs/awesome-design-md/design-md/playstation/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/playstation/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/playstation/README.md) |
60
+ | **[posthog](../../refs/awesome-design-md/design-md/posthog/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/posthog/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/posthog/README.md) |
61
+ | **[raycast](../../refs/awesome-design-md/design-md/raycast/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/raycast/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/raycast/README.md) |
62
+ | **[renault](../../refs/awesome-design-md/design-md/renault/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/renault/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/renault/README.md) |
63
+ | **[replicate](../../refs/awesome-design-md/design-md/replicate/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/replicate/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/replicate/README.md) |
64
+ | **[resend](../../refs/awesome-design-md/design-md/resend/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/resend/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/resend/README.md) |
65
+ | **[revolut](../../refs/awesome-design-md/design-md/revolut/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/revolut/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/revolut/README.md) |
66
+ | **[runwayml](../../refs/awesome-design-md/design-md/runwayml/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/runwayml/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/runwayml/README.md) |
67
+ | **[sanity](../../refs/awesome-design-md/design-md/sanity/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/sanity/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/sanity/README.md) |
68
+ | **[sentry](../../refs/awesome-design-md/design-md/sentry/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/sentry/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/sentry/README.md) |
69
+ | **[shopify](../../refs/awesome-design-md/design-md/shopify/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/shopify/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/shopify/README.md) |
70
+ | **[slack](../../refs/awesome-design-md/design-md/slack/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/slack/DESIGN.md) |
71
+ | **[spacex](../../refs/awesome-design-md/design-md/spacex/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/spacex/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/spacex/README.md) |
72
+ | **[spotify](../../refs/awesome-design-md/design-md/spotify/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/spotify/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/spotify/README.md) |
73
+ | **[starbucks](../../refs/awesome-design-md/design-md/starbucks/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/starbucks/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/starbucks/README.md) |
74
+ | **[stripe](../../refs/awesome-design-md/design-md/stripe/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/stripe/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/stripe/README.md) |
75
+ | **[supabase](../../refs/awesome-design-md/design-md/supabase/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/supabase/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/supabase/README.md) |
76
+ | **[superhuman](../../refs/awesome-design-md/design-md/superhuman/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/superhuman/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/superhuman/README.md) |
77
+ | **[tesla](../../refs/awesome-design-md/design-md/tesla/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/tesla/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/tesla/README.md) |
78
+ | **[theverge](../../refs/awesome-design-md/design-md/theverge/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/theverge/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/theverge/README.md) |
79
+ | **[together.ai](../../refs/awesome-design-md/design-md/together.ai/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/together.ai/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/together.ai/README.md) |
80
+ | **[uber](../../refs/awesome-design-md/design-md/uber/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/uber/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/uber/README.md) |
81
+ | **[vercel](../../refs/awesome-design-md/design-md/vercel/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/vercel/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/vercel/README.md) |
82
+ | **[vodafone](../../refs/awesome-design-md/design-md/vodafone/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/vodafone/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/vodafone/README.md) |
83
+ | **[voltagent](../../refs/awesome-design-md/design-md/voltagent/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/voltagent/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/voltagent/README.md) |
84
+ | **[warp](../../refs/awesome-design-md/design-md/warp/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/warp/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/warp/README.md) |
85
+ | **[webflow](../../refs/awesome-design-md/design-md/webflow/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/webflow/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/webflow/README.md) |
86
+ | **[wired](../../refs/awesome-design-md/design-md/wired/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/wired/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/wired/README.md) |
87
+ | **[wise](../../refs/awesome-design-md/design-md/wise/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/wise/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/wise/README.md) |
88
+ | **[x.ai](../../refs/awesome-design-md/design-md/x.ai/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/x.ai/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/x.ai/README.md) |
89
+ | **[zapier](../../refs/awesome-design-md/design-md/zapier/)** | [`DESIGN.md`](../../refs/awesome-design-md/design-md/zapier/DESIGN.md), [`README.md`](../../refs/awesome-design-md/design-md/zapier/README.md) |
90
+
91
+ ## How to use
92
+
93
+
94
+ 1. Designing in a category? Find the closest comparable brand above.
95
+ 2. Read the markdown files for that brand — colors, type, voice, image direction.
96
+ 3. Cite, paraphrase, adapt — don't copy verbatim.
97
+ 4. Cross-reference with `knowledge/colors/palettes-by-product-type.md` to find a matching palette starting point.
@@ -0,0 +1,269 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Chart color encoding
4
+ applies_to: [data-visualization, dashboard, all-data-ui]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Chart color encoding
11
+
12
+ Color in charts encodes meaning. Picking the wrong palette makes data unreadable; picking the right one makes it intuitive. This is the floor.
13
+
14
+ ## Three palette types
15
+
16
+ | Palette | Use | Example |
17
+ | --- | --- | --- |
18
+ | **Sequential** | Ordered data (low → high), single direction | Heatmap of activity, choropleth map of population |
19
+ | **Diverging** | Data with a meaningful midpoint (positive ↔ negative) | Profit/loss, sentiment, deviation from average |
20
+ | **Categorical** | Distinct, unordered categories | Product types, regions, departments |
21
+
22
+ Pick the type that matches your data. Using categorical for ordered data hides the order; using sequential for categorical implies false ordering.
23
+
24
+ ## Sequential palettes
25
+
26
+ Single hue progressing from light to dark (or vice versa).
27
+
28
+ ```
29
+ Light blue → Dark blue: ▁▂▃▄▅▆▇█
30
+ #DBEAFE → #1E3A8A
31
+ ```
32
+
33
+ Properties:
34
+ - One hue, varying lightness (and chroma)
35
+ - Use for "more is more" relationships (revenue, count, density)
36
+ - Don't use for negative values
37
+
38
+ ### Recommended sequential ramps
39
+
40
+ - **Blue ramp** (most universal): `#DBEAFE` → `#1E3A8A` (Tailwind blue-100 → blue-900)
41
+ - **Teal ramp** (modern, neutral): `#CCFBF1` → `#134E4A`
42
+ - **Viridis** (perceptually uniform, colorblind-safe): standard scientific viz palette
43
+ - **Brand-extended**: take your `--color-primary-50` → `--color-primary-900` ramp
44
+
45
+ For 5-step charts: pick steps `100, 300, 500, 700, 900`. Skip the very-light (50) and very-dark (950) — they don't read on common backgrounds.
46
+
47
+ ## Diverging palettes
48
+
49
+ Two hues meeting at a neutral midpoint.
50
+
51
+ ```
52
+ Red ←─── Light gray ───→ Blue:
53
+ █▆▄▂│▂▄▆█
54
+ ```
55
+
56
+ Properties:
57
+ - Two opposing hues (often red ↔ blue)
58
+ - Lightest at the midpoint (neutral)
59
+ - Use when zero/baseline is meaningful
60
+
61
+ ### Recommended diverging ramps
62
+
63
+ - **Red-Blue** (most universal): financial gain/loss in non-Korean contexts
64
+ - **Red-Green** (avoid): fails for red-green colorblind users (~8% of men)
65
+ - **Brown-Teal**: colorblind-friendly alternative to red-green
66
+
67
+ ### Korean fintech consideration
68
+
69
+ Korean stock convention is **inverted**: red = up (gain), blue = down (loss). For non-stock financial data (banking, expense tracking) Korean apps usually follow Western convention (green = positive). Cite [`money-and-amount.md`](money-and-amount.md).
70
+
71
+ When designing for Korean stock UIs:
72
+ - Diverging: red ↔ blue with red = positive
73
+ - For other Korean financial: green = positive, red = negative
74
+
75
+ ## Categorical palettes
76
+
77
+ Distinct hues for distinct categories.
78
+
79
+ ### Rules
80
+
81
+ | Rule | Why |
82
+ | --- | --- |
83
+ | Use ≤ 8 colors | More than 8 → user can't track |
84
+ | Vary lightness AND hue | Pure hue rotation is hard to distinguish |
85
+ | Test for colorblindness | At least 4–5 colors should be distinguishable for protanopia / deuteranopia |
86
+ | Avoid hue similarity | Don't put similar greens / similar blues next to each other |
87
+ | Don't use semantic colors | Reserve red for error, green for success — using them as categorical 1 and 2 confuses |
88
+
89
+ ### Recommended palettes
90
+
91
+ **Tableau 10** (industry standard, 10 colors):
92
+ ```
93
+ #4E79A7 blue
94
+ #F28E2B orange
95
+ #E15759 red
96
+ #76B7B2 teal
97
+ #59A14F green
98
+ #EDC948 yellow
99
+ #B07AA1 purple
100
+ #FF9DA7 pink
101
+ #9C755F brown
102
+ #BAB0AC gray
103
+ ```
104
+
105
+ **Material Design palette** (8 colors):
106
+ ```
107
+ #1F77B4 blue
108
+ #FF7F0E orange
109
+ #2CA02C green
110
+ #D62728 red
111
+ #9467BD purple
112
+ #8C564B brown
113
+ #E377C2 pink
114
+ #7F7F7F gray
115
+ ```
116
+
117
+ **Brand-extended** (when categorical = your business):
118
+ - Primary brand color = category 1
119
+ - Accent color = category 2
120
+ - Cool blue + warm orange = categories 3, 4
121
+ - Etc.
122
+
123
+ ### Order of categorical hues
124
+
125
+ When mapping to categories, assign by:
126
+ 1. **Logical order** (if categories have one): "small / medium / large" → light to dark.
127
+ 2. **Frequency** (if not): most-common category gets the most prominent color.
128
+ 3. **Alphabetical**: only as last resort.
129
+
130
+ ## Color blindness
131
+
132
+ Roughly 8% of men, 0.5% of women. Most common forms:
133
+ - **Deuteranopia** (red-green): can't distinguish red and green at similar lightness.
134
+ - **Protanopia** (red-green): similar.
135
+ - **Tritanopia** (blue-yellow): rare.
136
+
137
+ Test palettes with simulators:
138
+ - Sim Daltonism (Mac, free)
139
+ - Coblis (web, free)
140
+ - Browser DevTools (Chrome's "Emulate vision deficiencies")
141
+
142
+ ### Rules
143
+
144
+ - **Don't use red+green as the only signal** (fails for ~8% of men).
145
+ - **Pair color with shape, pattern, or label** — color is one cue among many.
146
+ - **Sequential and diverging palettes** are usually safer than categorical.
147
+ - **Test legends specifically** — labels next to color swatches lose if labels are tiny.
148
+
149
+ ## Color + meaning beyond palette
150
+
151
+ Charts encode information via:
152
+
153
+ | Encoding | Use |
154
+ | --- | --- |
155
+ | Hue | Categories |
156
+ | Saturation | Sequential intensity (low/high) |
157
+ | Lightness | Sequential intensity OR categorical with brightness contrast |
158
+ | Opacity | Confidence / uncertainty |
159
+ | Pattern (stripes, dots) | Categorical when color isn't enough |
160
+ | Texture | Same as pattern |
161
+
162
+ Layer encodings: a stacked bar can use **hue** for category and **opacity** for time period.
163
+
164
+ ## Specific chart types
165
+
166
+ ### Line chart
167
+
168
+ - One color per series.
169
+ - Up to 5 series before crowding.
170
+ - Match the line color to the legend; same on hover.
171
+ - For confidence intervals: same hue, lower opacity for the band.
172
+
173
+ ### Bar chart
174
+
175
+ - All bars same color when comparing within one dimension (e.g., "monthly revenue").
176
+ - Different colors when comparing across dimensions ("by category").
177
+ - Sort descending by value (most apps) — leftmost bar is the highest.
178
+
179
+ ### Stacked bar / area
180
+
181
+ - Each segment is a category — use categorical palette.
182
+ - Order by size (largest at the bottom of stack).
183
+ - Sequential palette if segments are ordered (small → medium → large customer).
184
+
185
+ ### Pie / donut chart
186
+
187
+ - 2–6 slices max. More than that, use a bar chart.
188
+ - Sort by size (descending, clockwise from 12 o'clock).
189
+ - "Other" bucket if too many tiny slices.
190
+
191
+ ### Heatmap
192
+
193
+ - **Sequential** palette is mandatory.
194
+ - Lightest at low value, darkest at high.
195
+ - Provide a numeric scale legend.
196
+
197
+ ### Scatter plot
198
+
199
+ - Single category: one color.
200
+ - Multiple categories: ≤ 5 colors.
201
+ - Add transparency (`opacity: 0.6–0.8`) for overlap.
202
+
203
+ ### Choropleth (map)
204
+
205
+ - Sequential or diverging palette.
206
+ - 5–7 bins typical.
207
+ - Provide value legend.
208
+
209
+ ## Korean dashboard color palettes
210
+
211
+ Common patterns in Korean financial apps:
212
+
213
+ ```
214
+ Toss-style (modern, monochromatic with accent):
215
+ - Background: white / near-white
216
+ - Primary: Toss blue #3182F6
217
+ - Sequential: blue 50 → blue 900
218
+ - Categorical: blue, teal, purple, gray (cool, calm)
219
+
220
+ KakaoBank-style (warm, brand-led):
221
+ - Background: warm white
222
+ - Primary: Kakao yellow #FFEB00 (used sparingly)
223
+ - Sequential: gold ramp
224
+ - Categorical: yellow, slate, navy, gray
225
+
226
+ Stock app (Korean inverted convention):
227
+ - Positive: red #DC2626
228
+ - Negative: blue #2563EB
229
+ - Neutral: gray
230
+ - No green/red diverging
231
+ ```
232
+
233
+ ## Background and chart elements
234
+
235
+ - **Chart background**: `--color-bg-default` or `--color-bg-elevated`. White is fine.
236
+ - **Gridlines**: very light (`--color-border-default` or lighter). They guide; they don't compete.
237
+ - **Axes**: `--color-text-tertiary`, thin (1px).
238
+ - **Axis labels**: `--color-text-secondary`, smaller font.
239
+ - **Annotations** (callouts, target lines): use a subtle accent color (often a lighter brand color).
240
+
241
+ ## When to NOT use color
242
+
243
+ Sometimes black-and-white is better:
244
+ - Print contexts.
245
+ - Color-blind audience that's > the norm.
246
+ - Very dense charts where color noise hurts more than it helps.
247
+
248
+ Rely on:
249
+ - Patterns (stripes, dots) for categories
250
+ - Line styles (solid, dashed, dotted) for series
251
+ - Value labels (numbers next to bars)
252
+ - Annotations
253
+
254
+ ## Tools
255
+
256
+ - **OKLCH picker**: generate perceptually uniform palettes
257
+ - **Coolors.co**: palette generation
258
+ - **ColorBrewer**: scientifically-backed palettes for cartography (works for any chart)
259
+ - **Material Theme Builder**: HCT-based palettes
260
+ - **Chroma.js**: programmatic generation
261
+ - **ggplot2 viridis**: perceptually uniform sequential palettes
262
+
263
+ ## Cross-reference
264
+
265
+ - [`knowledge/colors/color-theory.md`](../colors/color-theory.md) — palette construction
266
+ - [`knowledge/patterns/chart-types.md`](chart-types.md) — choosing the right chart for the data
267
+ - [`knowledge/patterns/dashboard-composition.md`](dashboard-composition.md) — applying palettes in a dashboard
268
+ - [`knowledge/patterns/money-and-amount.md`](money-and-amount.md) — money color semantics, KR stock convention
269
+ - [`knowledge/a11y/contrast.md`](../a11y/contrast.md) — text on chart backgrounds