@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,332 @@
1
+ ---
2
+ title: Curated font pairings
3
+ source: refs/ui-ux-pro-max/src/ui-ux-pro-max/data/typography.csv
4
+ upstream: https://github.com/nextlevelbuilder/ui-ux-pro-max-skill
5
+ extracted_at: 2026-05-19
6
+ applies_to: [google-fonts, web-typography]
7
+ version: 1.0.0
8
+ last_updated: 2026-05
9
+ stability: stable
10
+ ---
11
+
12
+ # Curated font pairings
13
+
14
+ Tested heading + body combinations grouped by mood. Pick by **best-for** and **mood keywords**, not by aesthetic guess.
15
+
16
+ | # | Pairing | Type | Heading | Body | Mood | Best for |
17
+ | --- | --- | --- | --- | --- | --- | --- |
18
+ | 1 | **Classic Elegant** | Serif + Sans | Playfair Display | Inter | elegant, luxury, sophisticated, timeless, premium, editorial | Luxury brands, fashion, spa, beauty, editorial, magazines, high-end e-commerce |
19
+ | 2 | **Modern Professional** | Sans + Sans | Poppins | Open Sans | modern, professional, clean, corporate, friendly, approachab | SaaS, corporate sites, business apps, startups, professional services |
20
+ | 3 | **Tech Startup** | Sans + Sans | Space Grotesk | DM Sans | tech, startup, modern, innovative, bold, futuristic | Tech companies, startups, SaaS, developer tools, AI products |
21
+ | 4 | **Editorial Classic** | Serif + Serif | Cormorant Garamond | Libre Baskerville | editorial, classic, literary, traditional, refined, bookish | Publishing, blogs, news sites, literary magazines, book covers |
22
+ | 5 | **Minimal Swiss** | Sans + Sans | Inter | Inter | minimal, clean, swiss, functional, neutral, professional | Dashboards, admin panels, documentation, enterprise apps, design systems |
23
+ | 6 | **Playful Creative** | Display + Sans | Fredoka | Nunito | playful, friendly, fun, creative, warm, approachable | Children's apps, educational, gaming, creative tools, entertainment |
24
+ | 7 | **Bold Statement** | Display + Sans | Bebas Neue | Source Sans 3 | bold, impactful, strong, dramatic, modern, headlines | Marketing sites, portfolios, agencies, event pages, sports |
25
+ | 8 | **Wellness Calm** | Serif + Sans | Lora | Raleway | calm, wellness, health, relaxing, natural, organic | Health apps, wellness, spa, meditation, yoga, organic brands |
26
+ | 9 | **Developer Mono** | Mono + Sans | JetBrains Mono | IBM Plex Sans | code, developer, technical, precise, functional, hacker | Developer tools, documentation, code editors, tech blogs, CLI apps |
27
+ | 10 | **Retro Vintage** | Display + Serif | Abril Fatface | Merriweather | retro, vintage, nostalgic, dramatic, decorative, bold | Vintage brands, breweries, restaurants, creative portfolios, posters |
28
+ | 11 | **Geometric Modern** | Sans + Sans | Outfit | Work Sans | geometric, modern, clean, balanced, contemporary, versatile | General purpose, portfolios, agencies, modern brands, landing pages |
29
+ | 12 | **Luxury Serif** | Serif + Sans | Cormorant | Montserrat | luxury, high-end, fashion, elegant, refined, premium | Fashion brands, luxury e-commerce, jewelry, high-end services |
30
+ | 13 | **Friendly SaaS** | Sans + Sans | Plus Jakarta Sans | Plus Jakarta Sans | friendly, modern, saas, clean, approachable, professional | SaaS products, web apps, dashboards, B2B, productivity tools |
31
+ | 14 | **News Editorial** | Serif + Sans | Newsreader | Roboto | news, editorial, journalism, trustworthy, readable, informat | News sites, blogs, magazines, journalism, content-heavy sites |
32
+ | 15 | **Handwritten Charm** | Script + Sans | Caveat | Quicksand | handwritten, personal, friendly, casual, warm, charming | Personal blogs, invitations, creative portfolios, lifestyle brands |
33
+ | 16 | **Corporate Trust** | Sans + Sans | Lexend | Source Sans 3 | corporate, trustworthy, accessible, readable, professional, | Enterprise, government, healthcare, finance, accessibility-focused |
34
+ | 17 | **Brutalist Raw** | Mono + Mono | Space Mono | Space Mono | brutalist, raw, technical, monospace, minimal, stark | Brutalist designs, developer portfolios, experimental, tech art |
35
+ | 18 | **Fashion Forward** | Sans + Sans | Syne | Manrope | fashion, avant-garde, creative, bold, artistic, edgy | Fashion brands, creative agencies, art galleries, design studios |
36
+ | 19 | **Soft Rounded** | Sans + Sans | Varela Round | Nunito Sans | soft, rounded, friendly, approachable, warm, gentle | Children's products, pet apps, friendly brands, wellness, soft UI |
37
+ | 20 | **Premium Sans** | Sans + Sans | Satoshi | General Sans | premium, modern, clean, sophisticated, versatile, balanced | Premium brands, modern agencies, SaaS, portfolios, startups |
38
+ | 21 | **Vietnamese Friendly** | Sans + Sans | Be Vietnam Pro | Noto Sans | vietnamese, international, readable, clean, multilingual, ac | Vietnamese sites, multilingual apps, international products |
39
+ | 22 | **Japanese Elegant** | Serif + Sans | Noto Serif JP | Noto Sans JP | japanese, elegant, traditional, modern, multilingual, readab | Japanese sites, Japanese restaurants, cultural sites, anime/manga |
40
+ | 23 | **Korean Modern** | Sans + Sans | Noto Sans KR | Noto Sans KR | korean, modern, clean, professional, multilingual, readable | Korean sites, K-beauty, K-pop, Korean businesses, multilingual |
41
+ | 24 | **Chinese Traditional** | Serif + Sans | Noto Serif TC | Noto Sans TC | chinese, traditional, elegant, cultural, multilingual, reada | Traditional Chinese sites, cultural content, Taiwan/Hong Kong markets |
42
+ | 25 | **Chinese Simplified** | Sans + Sans | Noto Sans SC | Noto Sans SC | chinese, simplified, modern, professional, multilingual, rea | Simplified Chinese sites, mainland China market, business apps |
43
+ | 26 | **Arabic Elegant** | Serif + Sans | Noto Naskh Arabic | Noto Sans Arabic | arabic, elegant, traditional, cultural, RTL, readable | Arabic sites, Middle East market, Islamic content, bilingual sites |
44
+ | 27 | **Thai Modern** | Sans + Sans | Noto Sans Thai | Noto Sans Thai | thai, modern, readable, clean, multilingual, accessible | Thai sites, Southeast Asia, tourism, Thai restaurants |
45
+ | 28 | **Hebrew Modern** | Sans + Sans | Noto Sans Hebrew | Noto Sans Hebrew | hebrew, modern, RTL, clean, professional, readable | Hebrew sites, Israeli market, Jewish content, bilingual sites |
46
+ | 29 | **Legal Professional** | Serif + Sans | EB Garamond | Lato | legal, professional, traditional, trustworthy, formal, autho | Law firms, legal services, contracts, formal documents, government |
47
+ | 30 | **Medical Clean** | Sans + Sans | Figtree | Noto Sans | medical, clean, accessible, professional, healthcare, trustw | Healthcare, medical clinics, pharma, health apps, accessibility |
48
+ | 31 | **Financial Trust** | Sans + Sans | IBM Plex Sans | IBM Plex Sans | financial, trustworthy, professional, corporate, banking, se | Banks, finance, insurance, investment, fintech, enterprise |
49
+ | 32 | **Real Estate Luxury** | Serif + Sans | Cinzel | Josefin Sans | real estate, luxury, elegant, sophisticated, property, premi | Real estate, luxury properties, architecture, interior design |
50
+ | 33 | **Restaurant Menu** | Serif + Sans | Playfair Display SC | Karla | restaurant, menu, culinary, elegant, foodie, hospitality | Restaurants, cafes, food blogs, culinary, hospitality |
51
+ | 34 | **Art Deco** | Display + Sans | Poiret One | Didact Gothic | art deco, vintage, 1920s, elegant, decorative, gatsby | Vintage events, art deco themes, luxury hotels, classic cocktails |
52
+ | 35 | **Magazine Style** | Serif + Sans | Libre Bodoni | Public Sans | magazine, editorial, publishing, refined, journalism, print | Magazines, online publications, editorial content, journalism |
53
+ | 36 | **Crypto/Web3** | Sans + Sans | Orbitron | Exo 2 | crypto, web3, futuristic, tech, blockchain, digital | Crypto platforms, NFT, blockchain, web3, futuristic tech |
54
+ | 37 | **Gaming Bold** | Display + Sans | Russo One | Chakra Petch | gaming, bold, action, esports, competitive, energetic | Gaming, esports, action games, competitive sports, entertainment |
55
+ | 38 | **Indie/Craft** | Display + Sans | Amatic SC | Cabin | indie, craft, handmade, artisan, organic, creative | Craft brands, indie products, artisan, handmade, organic products |
56
+ | 39 | **Startup Bold** | Sans + Sans | Clash Display | Satoshi | startup, bold, modern, innovative, confident, dynamic | Startups, pitch decks, product launches, bold brands |
57
+ | 40 | **E-commerce Clean** | Sans + Sans | Rubik | Nunito Sans | ecommerce, clean, shopping, product, retail, conversion | E-commerce, online stores, product pages, retail, shopping |
58
+ | 41 | **Academic/Research** | Serif + Sans | Crimson Pro | Atkinson Hyperlegible | academic, research, scholarly, accessible, readable, educati | Universities, research papers, academic journals, educational |
59
+ | 42 | **Dashboard Data** | Mono + Sans | Fira Code | Fira Sans | dashboard, data, analytics, code, technical, precise | Dashboards, analytics, data visualization, admin panels |
60
+ | 43 | **Music/Entertainment** | Display + Sans | Righteous | Poppins | music, entertainment, fun, energetic, bold, performance | Music platforms, entertainment, events, festivals, performers |
61
+ | 44 | **Minimalist Portfolio** | Sans + Sans | Archivo | Space Grotesk | minimal, portfolio, designer, creative, clean, artistic | Design portfolios, creative professionals, minimalist brands |
62
+ | 45 | **Kids/Education** | Display + Sans | Baloo 2 | Comic Neue | kids, education, playful, friendly, colorful, learning | Children's apps, educational games, kid-friendly content |
63
+ | 46 | **Wedding/Romance** | Script + Serif | Great Vibes | Cormorant Infant | wedding, romance, elegant, script, invitation, feminine | Wedding sites, invitations, romantic brands, bridal |
64
+ | 47 | **Science/Tech** | Sans + Sans | Exo | Roboto Mono | science, technology, research, data, futuristic, precise | Science, research, tech documentation, data-heavy sites |
65
+ | 48 | **Accessibility First** | Sans + Sans | Atkinson Hyperlegible | Atkinson Hyperlegible | accessible, readable, inclusive, WCAG, dyslexia-friendly, cl | Accessibility-critical sites, government, healthcare, inclusive design |
66
+ | 49 | **Sports/Fitness** | Sans + Sans | Barlow Condensed | Barlow | sports, fitness, athletic, energetic, condensed, action | Sports, fitness, gyms, athletic brands, competition |
67
+ | 50 | **Luxury Minimalist** | Serif + Sans | Bodoni Moda | Jost | luxury, minimalist, high-end, sophisticated, refined, premiu | Luxury minimalist brands, high-end fashion, premium products |
68
+ | 51 | **Tech/HUD Mono** | Mono + Mono | Share Tech Mono | Fira Code | tech, futuristic, hud, sci-fi, data, monospaced, precise | Sci-fi interfaces, developer tools, cybersecurity, dashboards |
69
+ | 52 | **Pixel Retro** | Display + Sans | Press Start 2P | VT323 | pixel, retro, gaming, 8-bit, nostalgic, arcade | Pixel art games, retro websites, creative portfolios |
70
+ | 53 | **Neubrutalist Bold** | Display + Sans | Lexend Mega | Public Sans | bold, neubrutalist, loud, strong, geometric, quirky | Neubrutalist designs, Gen Z brands, bold marketing |
71
+ | 54 | **Academic/Archival** | Serif + Serif | EB Garamond | Crimson Text | academic, old-school, university, research, serious, traditi | University sites, archives, research papers, history |
72
+ | 55 | **Spatial Clear** | Sans + Sans | Inter | Inter | spatial, legible, glass, system, clean, neutral | Spatial computing, AR/VR, glassmorphism interfaces |
73
+ | 56 | **Kinetic Motion** | Display + Mono | Syncopate | Space Mono | kinetic, motion, futuristic, speed, wide, tech | Music festivals, automotive, high-energy brands |
74
+ | 57 | **Gen Z Brutal** | Display + Sans | Anton | Epilogue | brutal, loud, shouty, meme, internet, bold | Gen Z marketing, streetwear, viral campaigns |
75
+ | 58 | **Minimalist Monochrome Editorial** | Serif + Serif + Mono (Triple Stack) | Playfair Display | Source Serif 4 | monochrome, editorial, austere, typographic, pocket manifest | Luxury fashion mobile apps, editorial publications, digital exhibitions, portfol |
76
+ | 59 | **Modern Dark Cinema (Inter System)** | Sans + Mono | Inter | Inter | dark, cinematic, technical, precision, clean, premium, devel | Developer tools, fintech/trading, AI dashboards, streaming platforms, high-end p |
77
+ | 60 | **SaaS Mobile Boutique (Calistoga + Inter)** | Display Serif + Sans + Mono | Calistoga | Inter | saas, boutique, electric, warm, editorial, bold, premium, fi | B2B SaaS mobile, fintech apps, analytics dashboards, marketing tools, operations |
78
+ | 61 | **Terminal CLI Monospace** | Mono + Mono (Single Family) | JetBrains Mono | JetBrains Mono | terminal, cli, hacker, monospace, matrix, developer, retro-f | Developer tools, Web3/blockchain apps, hacker aesthetic, sci-fi games, ARG, secu |
79
+ | 62 | **Kinetic Brutalism (Space Grotesk)** | Geometric Sans (Single Dominant) | Space Grotesk | Space Grotesk | kinetic, brutalist, aggressive, uppercase, oversized, displa | Music/culture apps, sports platforms, brand flagship mobile, performance dashboa |
80
+ | 63 | **Flat Design Mobile (System Bold)** | Sans + Sans | Inter | Inter | flat, clean, system, bold, geometric, cross-platform, icon, | Cross-platform apps, dashboards, system UI, onboarding, marketing pages, informa |
81
+ | 64 | **Material You MD3 (Roboto System)** | Sans (System Default) | Roboto | Roboto | material design 3, md3, android, google, tonal, friendly, ro | Android apps, cross-platform tools, productivity software, data-heavy B2B dashbo |
82
+ | 65 | **Neo Brutalism Mobile (Space Grotesk Heavy)** | Geometric Sans (Bold-Only) | Space Grotesk | Space Grotesk | neo brutalism, pop art, loud, bold, heavy, stickers, mechani | Creative tools, Gen-Z marketing, e-commerce for youth culture, content portfolio |
83
+ | 66 | **Bold Typography Mobile (Inter-Tight Poster)** | Sans + Serif (Display) + Mono | Inter | Playfair Display | bold typography, editorial, poster, near-black, vermillion, | Creative brand flagships, reading platforms, event apps, flash pages, luxury mob |
84
+ | 67 | **Academia Mobile (Cormorant + Crimson + Cinzel)** | Serif + Book Serif + Engraved (Triple Stack) | Cormorant Garamond | Crimson Pro | academia, library, mahogany, parchment, brass, scholarly, pr | Knowledge management apps, scholarly reading tools, personal brand portfolios, R |
85
+ | 68 | **Cyberpunk Mobile (Orbitron + JetBrains Mono)** | Tech Display + Mono | Orbitron | JetBrains Mono | cyberpunk, neon, glitch, hud, sci-fi, dark, matrix green, ma | Gaming companion apps, fintech/crypto, data visualization, dark brand apps, cybe |
86
+ | 69 | **Web3 Bitcoin DeFi (Space Grotesk + Inter + Mono)** | Geometric Sans + Sans + Mono (Triple) | Space Grotesk | Inter | web3, bitcoin, defi, digital gold, fintech, crypto, trustles | DeFi protocols and wallets, NFT platforms, metaverse social apps, high-tech bran |
87
+ | 70 | **Claymorphism Mobile (Nunito + DM Sans)** | Display Rounded + Geometric Sans | Nunito | DM Sans | claymorphism, clay, rounded, playful, candy, bubbly, soft, 3 | Children education apps, teen social, brand mascot apps, creative tools, fintech |
88
+ | 71 | **Enterprise SaaS Mobile (Plus Jakarta Sans)** | Geometric Sans (Single Family) | Plus Jakarta Sans | Plus Jakarta Sans | enterprise, saas, b2b, professional, indigo, modern, approac | B2B SaaS apps, productivity tools, government and finance mobile apps, admin das |
89
+ | 72 | **Sketch Hand-Drawn Mobile (Kalam + Patrick Hand)** | Handwritten + Handwritten (Dual) | Kalam | Patrick Hand | sketch, hand-drawn, handwriting, human, imperfect, organic, | Journaling apps, prototype tools, children's picturebook apps, creative platform |
90
+ | 73 | **Neumorphism Mobile (Plus Jakarta Sans + System)** | Geometric Sans (System Fallback) | Plus Jakarta Sans | Plus Jakarta Sans | neumorphism, soft ui, monochromatic, cool grey, minimal, phy | Smart home controls, minimal tools, aesthetic dashboards, health monitors, brand |
91
+
92
+ ## Implementation
93
+
94
+ ### Classic Elegant
95
+
96
+ - **Heading**: Playfair Display
97
+ - **Body**: Inter
98
+ - **Mood**: elegant, luxury, sophisticated, timeless, premium, editorial
99
+ - **Best for**: Luxury brands, fashion, spa, beauty, editorial, magazines, high-end e-commerce
100
+ - _Notes_: High contrast between elegant heading and clean body. Perfect for luxury/premium.
101
+
102
+ ```css
103
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');
104
+ ```
105
+
106
+ ### Modern Professional
107
+
108
+ - **Heading**: Poppins
109
+ - **Body**: Open Sans
110
+ - **Mood**: modern, professional, clean, corporate, friendly, approachable
111
+ - **Best for**: SaaS, corporate sites, business apps, startups, professional services
112
+ - _Notes_: Geometric Poppins for headings, humanist Open Sans for readability.
113
+
114
+ ```css
115
+ @import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400;500;600;700&family=Poppins:wght@400;500;600;700&display=swap');
116
+ ```
117
+
118
+ ### Tech Startup
119
+
120
+ - **Heading**: Space Grotesk
121
+ - **Body**: DM Sans
122
+ - **Mood**: tech, startup, modern, innovative, bold, futuristic
123
+ - **Best for**: Tech companies, startups, SaaS, developer tools, AI products
124
+ - _Notes_: Space Grotesk has unique character, DM Sans is highly readable.
125
+
126
+ ```css
127
+ @import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
128
+ ```
129
+
130
+ ### Editorial Classic
131
+
132
+ - **Heading**: Cormorant Garamond
133
+ - **Body**: Libre Baskerville
134
+ - **Mood**: editorial, classic, literary, traditional, refined, bookish
135
+ - **Best for**: Publishing, blogs, news sites, literary magazines, book covers
136
+ - _Notes_: All-serif pairing for traditional editorial feel.
137
+
138
+ ```css
139
+ @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');
140
+ ```
141
+
142
+ ### Minimal Swiss
143
+
144
+ - **Heading**: Inter
145
+ - **Body**: Inter
146
+ - **Mood**: minimal, clean, swiss, functional, neutral, professional
147
+ - **Best for**: Dashboards, admin panels, documentation, enterprise apps, design systems
148
+ - _Notes_: Single font family with weight variations. Ultimate simplicity.
149
+
150
+ ```css
151
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
152
+ ```
153
+
154
+ ### Playful Creative
155
+
156
+ - **Heading**: Fredoka
157
+ - **Body**: Nunito
158
+ - **Mood**: playful, friendly, fun, creative, warm, approachable
159
+ - **Best for**: Children's apps, educational, gaming, creative tools, entertainment
160
+ - _Notes_: Rounded, friendly fonts perfect for playful UIs.
161
+
162
+ ```css
163
+ @import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@400;500;600;700&family=Nunito:wght@300;400;500;600;700&display=swap');
164
+ ```
165
+
166
+ ### Bold Statement
167
+
168
+ - **Heading**: Bebas Neue
169
+ - **Body**: Source Sans 3
170
+ - **Mood**: bold, impactful, strong, dramatic, modern, headlines
171
+ - **Best for**: Marketing sites, portfolios, agencies, event pages, sports
172
+ - _Notes_: Bebas Neue for large headlines only. All-caps display font.
173
+
174
+ ```css
175
+ @import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Source+Sans+3:wght@300;400;500;600;700&display=swap');
176
+ ```
177
+
178
+ ### Wellness Calm
179
+
180
+ - **Heading**: Lora
181
+ - **Body**: Raleway
182
+ - **Mood**: calm, wellness, health, relaxing, natural, organic
183
+ - **Best for**: Health apps, wellness, spa, meditation, yoga, organic brands
184
+ - _Notes_: Lora's organic curves with Raleway's elegant simplicity.
185
+
186
+ ```css
187
+ @import url('https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&family=Raleway:wght@300;400;500;600;700&display=swap');
188
+ ```
189
+
190
+ ### Developer Mono
191
+
192
+ - **Heading**: JetBrains Mono
193
+ - **Body**: IBM Plex Sans
194
+ - **Mood**: code, developer, technical, precise, functional, hacker
195
+ - **Best for**: Developer tools, documentation, code editors, tech blogs, CLI apps
196
+ - _Notes_: JetBrains for code, IBM Plex for UI. Developer-focused.
197
+
198
+ ```css
199
+ @import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap');
200
+ ```
201
+
202
+ ### Retro Vintage
203
+
204
+ - **Heading**: Abril Fatface
205
+ - **Body**: Merriweather
206
+ - **Mood**: retro, vintage, nostalgic, dramatic, decorative, bold
207
+ - **Best for**: Vintage brands, breweries, restaurants, creative portfolios, posters
208
+ - _Notes_: Abril Fatface for hero headlines only. High-impact vintage feel.
209
+
210
+ ```css
211
+ @import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Merriweather:wght@300;400;700&display=swap');
212
+ ```
213
+
214
+ ### Geometric Modern
215
+
216
+ - **Heading**: Outfit
217
+ - **Body**: Work Sans
218
+ - **Mood**: geometric, modern, clean, balanced, contemporary, versatile
219
+ - **Best for**: General purpose, portfolios, agencies, modern brands, landing pages
220
+ - _Notes_: Both geometric but Outfit more distinctive for headings.
221
+
222
+ ```css
223
+ @import url('https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&family=Work+Sans:wght@300;400;500;600;700&display=swap');
224
+ ```
225
+
226
+ ### Luxury Serif
227
+
228
+ - **Heading**: Cormorant
229
+ - **Body**: Montserrat
230
+ - **Mood**: luxury, high-end, fashion, elegant, refined, premium
231
+ - **Best for**: Fashion brands, luxury e-commerce, jewelry, high-end services
232
+ - _Notes_: Cormorant's elegance with Montserrat's geometric precision.
233
+
234
+ ```css
235
+ @import url('https://fonts.googleapis.com/css2?family=Cormorant:wght@400;500;600;700&family=Montserrat:wght@300;400;500;600;700&display=swap');
236
+ ```
237
+
238
+ ### Friendly SaaS
239
+
240
+ - **Heading**: Plus Jakarta Sans
241
+ - **Body**: Plus Jakarta Sans
242
+ - **Mood**: friendly, modern, saas, clean, approachable, professional
243
+ - **Best for**: SaaS products, web apps, dashboards, B2B, productivity tools
244
+ - _Notes_: Single versatile font. Modern alternative to Inter.
245
+
246
+ ```css
247
+ @import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap');
248
+ ```
249
+
250
+ ### News Editorial
251
+
252
+ - **Heading**: Newsreader
253
+ - **Body**: Roboto
254
+ - **Mood**: news, editorial, journalism, trustworthy, readable, informative
255
+ - **Best for**: News sites, blogs, magazines, journalism, content-heavy sites
256
+ - _Notes_: Newsreader designed for long-form reading. Roboto for UI.
257
+
258
+ ```css
259
+ @import url('https://fonts.googleapis.com/css2?family=Newsreader:wght@400;500;600;700&family=Roboto:wght@300;400;500;700&display=swap');
260
+ ```
261
+
262
+ ### Handwritten Charm
263
+
264
+ - **Heading**: Caveat
265
+ - **Body**: Quicksand
266
+ - **Mood**: handwritten, personal, friendly, casual, warm, charming
267
+ - **Best for**: Personal blogs, invitations, creative portfolios, lifestyle brands
268
+ - _Notes_: Use Caveat sparingly for accents. Quicksand for body.
269
+
270
+ ```css
271
+ @import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400;500;600;700&family=Quicksand:wght@300;400;500;600;700&display=swap');
272
+ ```
273
+
274
+ ### Corporate Trust
275
+
276
+ - **Heading**: Lexend
277
+ - **Body**: Source Sans 3
278
+ - **Mood**: corporate, trustworthy, accessible, readable, professional, clean
279
+ - **Best for**: Enterprise, government, healthcare, finance, accessibility-focused
280
+ - _Notes_: Lexend designed for readability. Excellent accessibility.
281
+
282
+ ```css
283
+ @import url('https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&family=Source+Sans+3:wght@300;400;500;600;700&display=swap');
284
+ ```
285
+
286
+ ### Brutalist Raw
287
+
288
+ - **Heading**: Space Mono
289
+ - **Body**: Space Mono
290
+ - **Mood**: brutalist, raw, technical, monospace, minimal, stark
291
+ - **Best for**: Brutalist designs, developer portfolios, experimental, tech art
292
+ - _Notes_: All-mono for raw brutalist aesthetic. Limited weights.
293
+
294
+ ```css
295
+ @import url('https://fonts.googleapis.com/css2?family=Space+Mono:wght@400;700&display=swap');
296
+ ```
297
+
298
+ ### Fashion Forward
299
+
300
+ - **Heading**: Syne
301
+ - **Body**: Manrope
302
+ - **Mood**: fashion, avant-garde, creative, bold, artistic, edgy
303
+ - **Best for**: Fashion brands, creative agencies, art galleries, design studios
304
+ - _Notes_: Syne's unique character for headlines. Manrope for readability.
305
+
306
+ ```css
307
+ @import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700&family=Syne:wght@400;500;600;700&display=swap');
308
+ ```
309
+
310
+ ### Soft Rounded
311
+
312
+ - **Heading**: Varela Round
313
+ - **Body**: Nunito Sans
314
+ - **Mood**: soft, rounded, friendly, approachable, warm, gentle
315
+ - **Best for**: Children's products, pet apps, friendly brands, wellness, soft UI
316
+ - _Notes_: Both rounded and friendly. Perfect for soft UI designs.
317
+
318
+ ```css
319
+ @import url('https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@300;400;500;600;700&family=Varela+Round&display=swap');
320
+ ```
321
+
322
+ ### Premium Sans
323
+
324
+ - **Heading**: Satoshi
325
+ - **Body**: General Sans
326
+ - **Mood**: premium, modern, clean, sophisticated, versatile, balanced
327
+ - **Best for**: Premium brands, modern agencies, SaaS, portfolios, startups
328
+ - _Notes_: Note: Satoshi/General Sans on Fontshare. DM Sans as Google alternative.
329
+
330
+ ```css
331
+ @import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap');
332
+ ```
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: MUI default type scale
3
+ source: refs/mui/packages/mui-material/src/styles/createTypography.js
4
+ upstream: https://github.com/mui/material-ui/blob/master/packages/mui-material/src/styles/createTypography.js
5
+ extracted_at: 2026-05-19
6
+ applies_to: [react, mui, material-design]
7
+ version: 1.0.0
8
+ last_updated: 2026-05
9
+ stability: stable
10
+ ---
11
+
12
+ # MUI default type scale
13
+
14
+ Material Design's official type system as implemented by MUI. The base font size is **14px** with **16px html root**, producing a `coef = 14/16 = 0.875`. Letter spacing values are in `em`, derived as `letterSpacing / size`.
15
+
16
+ Default font: `"Roboto", "Helvetica", "Arial", sans-serif`.
17
+
18
+ ## Variants
19
+
20
+ | Variant | Weight | Size | Line height | Letter spacing | Casing |
21
+ | --- | --- | --- | --- | --- | --- |
22
+ | `h1` | fontWeightLight | 96px | 1.167 | -1.5 | — |
23
+ | `h2` | fontWeightLight | 60px | 1.2 | -0.5 | — |
24
+ | `h3` | fontWeightRegular | 48px | 1.167 | 0 | — |
25
+ | `h4` | fontWeightRegular | 34px | 1.235 | 0.25 | — |
26
+ | `h5` | fontWeightRegular | 24px | 1.334 | 0 | — |
27
+ | `h6` | fontWeightMedium | 20px | 1.6 | 0.15 | — |
28
+ | `subtitle1` | fontWeightRegular | 16px | 1.75 | 0.15 | — |
29
+ | `subtitle2` | fontWeightMedium | 14px | 1.57 | 0.1 | — |
30
+ | `body1` | fontWeightRegular | 16px | 1.5 | 0.15 | — |
31
+ | `body2` | fontWeightRegular | 14px | 1.43 | 0.15 | — |
32
+ | `button` | fontWeightMedium | 14px | 1.75 | 0.4 | ALL CAPS |
33
+ | `caption` | fontWeightRegular | 12px | 1.66 | 0.4 | — |
34
+ | `overline` | fontWeightRegular | 12px | 2.66 | 1 | ALL CAPS |
35
+
36
+ ## Weights
37
+
38
+ | Weight | Numeric |
39
+ | --- | --- |
40
+ | `fontWeightLight` | 300 |
41
+ | `fontWeightRegular` | 400 |
42
+ | `fontWeightMedium` | 500 |
43
+ | `fontWeightBold` | 700 |
44
+
45
+ ## Designer notes
46
+
47
+ - `h1`–`h6` use **light** for h1/h2 (display), **regular** for h3/h4/h5, **medium** for h6. This means hero headlines look airy; section headers feel solid.
48
+ - `subtitle1` is 16/1.75 — generous leading meant to sit above body content as a label.
49
+ - `button` is 14/1.75 with `0.4em` letter spacing **and uppercase**. Modern Material 3 dropped the uppercase; if you mirror MUI defaults, the all-caps button is intentional.
50
+ - `caption` and `overline` are both 12px. `overline` adds 1em letter spacing + uppercase for legal-text style.
51
+ - Line-heights are unitless on purpose ([Eric Meyer](https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/)) — they inherit cleanly under font-size changes.
52
+
53
+ ## When NOT to use this scale verbatim
54
+
55
+ - For **dense product UIs** (admin dashboards, IDEs): drop h1 to ~32px, h2 to 24px. The 96/60/48 ladder eats vertical space.
56
+ - For **Korean/CJK UIs**: increase line-heights by ~10% (e.g., body1 to 1.6) to clear hangul descenders cleanly.
57
+ - For **branded/serif fonts**: `letterSpacing` was tuned for Roboto. Reset to `0` and re-tune by eye.
@@ -0,0 +1,105 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Type scale fundamentals
4
+ applies_to: [web, mobile, all-ui]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Type scale fundamentals
11
+
12
+ Choosing a type scale is a 30-minute decision that compounds for the life of a product. This is the floor.
13
+
14
+ ## Pick a base size first
15
+
16
+ | Context | Base body |
17
+ | --- | --- |
18
+ | Marketing site | 18 px (sometimes 20). Reading-heavy. |
19
+ | Product UI (SaaS, dashboards) | 14 px (Ant, MUI default) or 15 px. Density matters. |
20
+ | Mobile native | 17 pt iOS, 14 sp Android. |
21
+ | Editorial / long-form reading | 18–20 px with line-length 60–75 chars. |
22
+
23
+ The base sets **everything else** because most scales are ratios of the base.
24
+
25
+ ## Common scale ratios
26
+
27
+ | Ratio name | Multiplier | Feels like |
28
+ | --- | --- | --- |
29
+ | **Minor third** | 1.2 | Tight, dense (ideal for product UI). |
30
+ | **Major third** | 1.25 | Tight but a touch more contrast. |
31
+ | **Perfect fourth** | 1.333 | Balanced — most "modern" sites. |
32
+ | **Augmented fourth** | 1.414 | Editorial feel. |
33
+ | **Perfect fifth** | 1.5 | Dramatic — marketing/landing. |
34
+ | **Golden ratio** | 1.618 | Display-only — collapses on small screens. |
35
+
36
+ Worked example with base 14, ratio 1.25 (major third):
37
+ ```
38
+ 14, 18, 22, 27, 34, 42, 53, 66 px
39
+ ```
40
+
41
+ In Ant Design's actual scale (not strictly geometric):
42
+ ```
43
+ 12, 14, 16, 20, 24, 30, 38, 46, 56, 68 px
44
+ ```
45
+
46
+ The non-geometric jump at the top works in real product because designers use 38+ rarely; the bottom needs more granularity.
47
+
48
+ ## Line height by size
49
+
50
+ Line height is **inversely** related to font size:
51
+
52
+ | Size | Line height (multiplier) |
53
+ | --- | --- |
54
+ | 12 px | 1.5–1.7 (16–20 px) |
55
+ | 14 px | 1.5 (21 px) |
56
+ | 16 px | 1.5 (24 px) |
57
+ | 20–24 px | 1.4 |
58
+ | 28–34 px | 1.3 |
59
+ | 40+ px | 1.1–1.2 |
60
+
61
+ Express as **unitless** (`line-height: 1.5`) so it inherits cleanly.
62
+
63
+ ## Korean / CJK adjustments
64
+
65
+ - Increase line-height by ~10% over Latin defaults. Hangul descenders bite into the next line otherwise.
66
+ - 한글 본문 14px → line-height 1.6 (vs 1.5 for Latin).
67
+ - Letter-spacing (`tracking`) for Hangul: usually `-0.005em` or `0`. Latin negative tracking can crush Hangul jamo.
68
+ - Font-weight: Hangul typefaces frequently look 1 step "lighter" than Latin at the same numeric weight. Bump bold body to 600 (vs 500/400 mix in Latin).
69
+
70
+ ## Font weight — picking the set
71
+
72
+ Most products need **3 weights, not 9**:
73
+
74
+ | Use | Weight |
75
+ | --- | --- |
76
+ | Body | 400 (Regular) |
77
+ | Emphasis / UI labels | 500 or 600 (Medium / Semibold) |
78
+ | Headings | 700 (Bold) — or 600 if heavy |
79
+
80
+ Adding 300 (Light) is OK for very large display sizes but reads too thin under 24px. Skip 200 and 100 unless you're designing a magazine.
81
+
82
+ Bundle cost: each weight adds ~30–80 KB. Variable fonts ship one file with the full axis range — prefer `Inter Variable` over `Inter 400` + `Inter 600` separately.
83
+
84
+ ## Font pairing — the rules
85
+
86
+ 1. **Contrast or harmony, not both.** Either pick two fonts of clearly different categories (serif heading + sans body) or pick within the same family / pairing (geometric sans + humanist sans).
87
+ 2. **Match x-height when both are sans.** Inter and Roboto Flex pair badly because Inter's x-height is much taller — body looks oversized.
88
+ 3. **The body font is the more important choice.** A great pairing with poor body legibility is a failure. Test the body font in your actual content first.
89
+ 4. **Avoid trend-of-the-year fonts** for products with multi-year horizons. Inter, Roboto, IBM Plex Sans, Source Sans, Open Sans age well. Recoleta, Cabinet Grotesk are 2023-coded.
90
+ 5. **Use system fonts when speed matters.** `-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif` ships zero KB and matches the OS.
91
+
92
+ ## Hierarchy beyond size
93
+
94
+ A type system uses **at most 6** size steps, but communicates hierarchy with:
95
+
96
+ - **Weight**: 400 body → 600 emphasis → 700 heading.
97
+ - **Color**: full-contrast for primary text, 60–70% opacity for secondary.
98
+ - **Casing**: ALL CAPS reserved for tiny labels (12–14 px) — increases tracking ≥ 0.05em.
99
+ - **Whitespace**: `margin-top` on headings creates the section feel. The size jump alone is not enough.
100
+ - **Numerals**: tabular numerals (`font-variant-numeric: tabular-nums`) for tables, dashboards, prices. Proportional otherwise.
101
+
102
+ ## Cross-reference
103
+
104
+ - [knowledge/typography/font-pairings.md](font-pairings.md) — curated pairings by mood
105
+ - [knowledge/typography/mui-type-scale.md](mui-type-scale.md) — Material's scale