@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,124 @@
1
+ ---
2
+ title: Ant Design seed tokens
3
+ source: refs/ant-design/components/theme/themes/seed.ts
4
+ upstream: https://github.com/ant-design/ant-design/blob/master/components/theme/themes/seed.ts
5
+ extracted_at: 2026-05-19
6
+ applies_to: [react, antd, design-system]
7
+ version: 1.0.0
8
+ last_updated: 2026-05
9
+ stability: stable
10
+ ---
11
+
12
+ # Ant Design seed tokens
13
+
14
+ Ant Design uses a layered token model: **seed tokens** (raw inputs) → **map tokens** (derived scales) → **alias tokens** (semantic names). This file documents the seed layer — the inputs you change to retheme the entire system.
15
+
16
+ ## Color seeds
17
+
18
+ | Token | Value |
19
+ | --- | --- |
20
+ | `colorPrimary` | `'#1677ff'` |
21
+ | `colorSuccess` | `'#52c41a'` |
22
+ | `colorWarning` | `'#faad14'` |
23
+ | `colorError` | `'#ff4d4f'` |
24
+ | `colorInfo` | `'#1677ff'` |
25
+ | `colorLink` | `''` |
26
+ | `colorTextBase` | `''` |
27
+ | `colorBgBase` | `''` |
28
+
29
+
30
+ ## Preset palette anchors
31
+
32
+ Ant Design ships 12 preset color families. Each anchor below is the "primary" hue (rank 6 in a 10-step scale). The full ramp is generated at runtime by `genPresetColor`.
33
+
34
+ | Name | Hex | Swatch |
35
+ | --- | --- | --- |
36
+ | blue | `#1677FF` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#1677FF;"></span> |
37
+ | purple | `#722ED1` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#722ED1;"></span> |
38
+ | cyan | `#13C2C2` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#13C2C2;"></span> |
39
+ | green | `#52C41A` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#52C41A;"></span> |
40
+ | magenta | `#EB2F96` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#EB2F96;"></span> |
41
+ | pink | `#EB2F96` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#EB2F96;"></span> |
42
+ | red | `#F5222D` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#F5222D;"></span> |
43
+ | orange | `#FA8C16` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#FA8C16;"></span> |
44
+ | yellow | `#FADB14` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#FADB14;"></span> |
45
+ | volcano | `#FA541C` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#FA541C;"></span> |
46
+ | geekblue | `#2F54EB` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#2F54EB;"></span> |
47
+ | gold | `#FAAD14` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#FAAD14;"></span> |
48
+ | lime | `#A0D911` | <span aria-hidden="true" style="display:inline-block;width:0.875rem;height:0.875rem;border-radius:999px;border:1px solid rgba(0,0,0,.18);vertical-align:-0.125em;background-color:#A0D911;"></span> |
49
+
50
+
51
+ ## Typography
52
+
53
+ | Token | Value |
54
+ | --- | --- |
55
+ | `fontFamily` | ``-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial` |
56
+ | `fontFamilyCode` | ``'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace`` |
57
+ | `fontSize` | `14` |
58
+
59
+
60
+ ## Motion (cubic-bezier curves)
61
+
62
+ | Token | Value |
63
+ | --- | --- |
64
+ | `motionUnit` | `0.1` |
65
+ | `motionBase` | `0` |
66
+ | `motionEaseOutCirc` | `'cubic-bezier(0.08, 0.82, 0.17, 1)'` |
67
+ | `motionEaseInOutCirc` | `'cubic-bezier(0.78, 0.14, 0.15, 0.86)'` |
68
+ | `motionEaseOut` | `'cubic-bezier(0.215, 0.61, 0.355, 1)'` |
69
+ | `motionEaseInOut` | `'cubic-bezier(0.645, 0.045, 0.355, 1)'` |
70
+ | `motionEaseOutBack` | `'cubic-bezier(0.12, 0.4, 0.29, 1.46)'` |
71
+ | `motionEaseInBack` | `'cubic-bezier(0.71, -0.46, 0.88, 0.6)'` |
72
+ | `motionEaseInQuint` | `'cubic-bezier(0.755, 0.05, 0.855, 0.06)'` |
73
+ | `motionEaseOutQuint` | `'cubic-bezier(0.23, 1, 0.32, 1)'` |
74
+ | `motion` | `true` |
75
+
76
+
77
+ ## Sizing
78
+
79
+ | Token | Value |
80
+ | --- | --- |
81
+ | `sizeUnit` | `4` |
82
+ | `sizeStep` | `4` |
83
+ | `sizePopupArrow` | `16` |
84
+ | `controlHeight` | `32` |
85
+
86
+
87
+ ## Border / radius
88
+
89
+ | Token | Value |
90
+ | --- | --- |
91
+ | `borderRadius` | `6` |
92
+
93
+
94
+ ## Lines
95
+
96
+ | Token | Value |
97
+ | --- | --- |
98
+ | `lineWidth` | `1` |
99
+ | `lineType` | `'solid'` |
100
+
101
+
102
+ ## Notes for designers
103
+
104
+ - `colorPrimary` drives the entire interactive surface — buttons, links, focus rings, selected states.
105
+ - `borderRadius: 6` is the system default. Components like `Button` and `Input` use this directly. Going to `0` produces the "wireframe" aesthetic; going to `12+` produces "soft/friendly".
106
+ - `controlHeight: 32` is the canonical input height. `controlHeightSM = controlHeight - 8 = 24`, `controlHeightLG = controlHeight + 8 = 40`. Match this when building custom controls so they align in forms.
107
+ - `sizeUnit: 4, sizeStep: 4` produces the spacing scale `4, 8, 12, 16, 20, 24, 32, 40, 48, 64`.
108
+ - Motion easings: `motionEaseOut` for entering UI, `motionEaseInOut` for sliding, `motionEaseOutCirc` for slide-up overlays.
109
+
110
+ ## How to use this in a project
111
+
112
+ If your project uses `antd`, set `theme.token` directly:
113
+
114
+ ```tsx
115
+ <ConfigProvider theme={ token: { colorPrimary: '#7C3AED', borderRadius: 8 } }>
116
+ <App />
117
+ </ConfigProvider>
118
+ ```
119
+
120
+ If your project does not use `antd` but you want the same ramp model:
121
+
122
+ 1. Pick a primary hex.
123
+ 2. Use `tools/extractors/preset_color_ramp.py` (TODO) to generate the 10-step ramp.
124
+ 3. Map ramps to semantic aliases (`color-primary`, `color-primary-hover`, …) using ranks `6/5/7` for default/hover/active.
@@ -0,0 +1,235 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Material Design 3 token reference
4
+ applies_to: [material-design, hct, design-tokens, android, web]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Material Design 3 (Material You)
11
+
12
+ Google's third-generation Material Design (2021+). Token-first, **HCT-based** color system, dynamic theming. The reference for Android UIs and many web product systems.
13
+
14
+ If your product targets Android primarily or aligns with Material aesthetic, build on this. For non-Material products, learn it as comparison.
15
+
16
+ ## What changed from Material 2
17
+
18
+ | Aspect | Material 2 (2018) | Material 3 (2021+) |
19
+ | --- | --- | --- |
20
+ | Color | RGB-based palette | HCT-based, dynamic from seed |
21
+ | Tokens | Limited semantic tokens | Full token system (color, type, motion, shape) |
22
+ | Customization | Theme provider with overrides | Generate full theme from one seed color |
23
+ | Dynamic theming | None | Yes (Android system color, user wallpaper) |
24
+ | Surface model | Elevation overlays | Surface + tonal containers |
25
+ | Buttons | All-caps text on Filled | Mixed-case (modernized) |
26
+
27
+ ## Color: HCT and tonal palettes
28
+
29
+ **HCT** = Hue, Chroma, Tone. Tonal palettes generate 13 stops per hue from one seed:
30
+
31
+ ```
32
+ Tone: 0 5 10 20 30 40 50 60 70 80 90 95 99 100
33
+ └──────────────────── one tonal palette ────────────────────┘
34
+ darkest lightest
35
+ ```
36
+
37
+ Tone is roughly equivalent to OKLCH `L`, but tuned for Material's perceptual model.
38
+
39
+ ### Five tonal palettes (per theme)
40
+
41
+ | Palette | Source |
42
+ | --- | --- |
43
+ | **Primary** | The brand seed |
44
+ | **Secondary** | Hue ~rotated; lower chroma |
45
+ | **Tertiary** | Different hue (often complement) |
46
+ | **Neutral** | Slightly chromatic gray, matched to primary's hue |
47
+ | **Neutral-variant** | Slightly more chromatic neutral |
48
+
49
+ Plus **error** as a fixed red tonal palette.
50
+
51
+ ### Token roles (canonical)
52
+
53
+ ```
54
+ Light theme:
55
+ primary = primary tone 40
56
+ on-primary = primary tone 100 (white)
57
+ primary-container = primary tone 90
58
+ on-primary-container = primary tone 10
59
+
60
+ surface = neutral tone 99
61
+ on-surface = neutral tone 10
62
+ surface-container = neutral tone 94
63
+ surface-container-high = neutral tone 92
64
+ surface-container-highest = neutral tone 90
65
+ outline = neutral-variant tone 50
66
+ outline-variant = neutral-variant tone 80
67
+
68
+ background = neutral tone 99
69
+ on-background = neutral tone 10
70
+
71
+ inverse-surface = neutral tone 20
72
+ inverse-on-surface = neutral tone 95
73
+ inverse-primary = primary tone 80
74
+
75
+ error = error tone 40
76
+ on-error = error tone 100
77
+ error-container = error tone 90
78
+ on-error-container = error tone 10
79
+ ```
80
+
81
+ For dark theme: tones flip. `primary` = primary tone 80, `on-primary` = primary tone 20, etc.
82
+
83
+ ### Why containers?
84
+
85
+ Material 3's "container" concept is its main innovation. Instead of "primary + on-primary" only, you also have "primary-container + on-primary-container":
86
+
87
+ - `primary` (tone 40 light) — the FAB, the most-emphasized button
88
+ - `primary-container` (tone 90 light) — secondary surface that uses brand color subtly
89
+
90
+ This means: the FAB is bold primary; a "Premium" badge can sit on `primary-container` without competing.
91
+
92
+ ## Typography
93
+
94
+ Material 3's type scale is more refined than Material 2's:
95
+
96
+ | Role | Size | Weight | Line height | Letter spacing |
97
+ | --- | --- | --- | --- | --- |
98
+ | **Display Large** | 57px | 400 | 64px | -0.25px |
99
+ | **Display Medium** | 45px | 400 | 52px | 0 |
100
+ | **Display Small** | 36px | 400 | 44px | 0 |
101
+ | **Headline Large** | 32px | 400 | 40px | 0 |
102
+ | **Headline Medium** | 28px | 400 | 36px | 0 |
103
+ | **Headline Small** | 24px | 400 | 32px | 0 |
104
+ | **Title Large** | 22px | 400 | 28px | 0 |
105
+ | **Title Medium** | 16px | 500 | 24px | 0.15 |
106
+ | **Title Small** | 14px | 500 | 20px | 0.1 |
107
+ | **Label Large** | 14px | 500 | 20px | 0.1 |
108
+ | **Label Medium** | 12px | 500 | 16px | 0.5 |
109
+ | **Label Small** | 11px | 500 | 16px | 0.5 |
110
+ | **Body Large** | 16px | 400 | 24px | 0.5 |
111
+ | **Body Medium** | 14px | 400 | 20px | 0.25 |
112
+ | **Body Small** | 12px | 400 | 16px | 0.4 |
113
+
114
+ Roboto is the default; Material 3 also has **Roboto Flex** (variable font) and **Roboto Serif** for serif variants.
115
+
116
+ For Korean: pair with Pretendard or Noto Sans KR; see [`i18n/korean-typography.md`](../i18n/korean-typography.md).
117
+
118
+ ### Material 3 dropped uppercase buttons
119
+
120
+ Material 2's `text-transform: uppercase` on buttons is gone. Material 3 uses sentence case, which reads cleaner with non-Latin scripts.
121
+
122
+ ## Shape (corner radius scale)
123
+
124
+ Material 3 standardizes corner radius via tokens:
125
+
126
+ | Token | Radius |
127
+ | --- | --- |
128
+ | `shape-corner-none` | 0 |
129
+ | `shape-corner-extra-small` | 4 |
130
+ | `shape-corner-small` | 8 |
131
+ | `shape-corner-medium` | 12 |
132
+ | `shape-corner-large` | 16 |
133
+ | `shape-corner-extra-large` | 28 |
134
+ | `shape-corner-full` | 9999 (pill) |
135
+
136
+ Each component has a default shape. Buttons: `extra-small` (4) for outlined, `full` for FAB.
137
+
138
+ Material 3 also introduces **shape morphing** — components can transition between shapes (e.g., FAB to bottom sheet expanding).
139
+
140
+ ## Motion — Easing & Duration
141
+
142
+ Material 3 standardizes motion via two axes:
143
+
144
+ ### Easing
145
+
146
+ | Token | Curve | Use |
147
+ | --- | --- | --- |
148
+ | `motion-easing-linear` | linear | Loading spinners |
149
+ | `motion-easing-standard` | `cubic-bezier(0.2, 0, 0, 1)` | Default — entering/exiting |
150
+ | `motion-easing-emphasized` | `cubic-bezier(0.2, 0, 0, 1)` | Emphasis on primary motion |
151
+ | `motion-easing-emphasized-decelerate` | `cubic-bezier(0.05, 0.7, 0.1, 1)` | Hero arrives |
152
+ | `motion-easing-emphasized-accelerate` | `cubic-bezier(0.3, 0, 0.8, 0.15)` | Hero exits |
153
+
154
+ ### Duration
155
+
156
+ Increments of 50ms from 50 to 600:
157
+
158
+ | Token | Duration |
159
+ | --- | --- |
160
+ | `motion-duration-short1` | 50ms |
161
+ | `motion-duration-short2` | 100ms |
162
+ | `motion-duration-short3` | 150ms |
163
+ | `motion-duration-short4` | 200ms |
164
+ | `motion-duration-medium1` | 250ms |
165
+ | `motion-duration-medium2` | 300ms |
166
+ | `motion-duration-medium3` | 350ms |
167
+ | `motion-duration-medium4` | 400ms |
168
+ | `motion-duration-long1` | 450ms |
169
+ | `motion-duration-long2` | 500ms |
170
+ | `motion-duration-long3` | 550ms |
171
+ | `motion-duration-long4` | 600ms |
172
+
173
+ Aligns with our duration tiers in [`motion/principles.md`](../motion/principles.md).
174
+
175
+ ## Elevation (5 levels)
176
+
177
+ | Level | Use |
178
+ | --- | --- |
179
+ | `elevation-0` | Surface, no shadow |
180
+ | `elevation-1` | Card, FAB at rest |
181
+ | `elevation-2` | Top app bar (scrolled), filled buttons elevated |
182
+ | `elevation-3` | Modal, popover, navigation drawer |
183
+ | `elevation-4` | Floating menu, picker |
184
+ | `elevation-5` | Reserved (rarely used) |
185
+
186
+ In dark mode, Material 3 uses **surface tint overlays** instead of just shadow — surfaces get progressively lighter tones to indicate elevation. This reads better on dark backgrounds.
187
+
188
+ ## State layers
189
+
190
+ Material 3 introduces a "state layer" — a semi-transparent overlay applied to interactive elements on hover/focus/press. Universal across components:
191
+
192
+ | State | Layer opacity (on top of base color) |
193
+ | --- | --- |
194
+ | Hover | 8% |
195
+ | Focus | 12% |
196
+ | Pressed | 12% |
197
+ | Dragged | 16% |
198
+ | Selected | 8% |
199
+
200
+ Layer color matches `on-X` tokens (e.g., on a primary button, the state layer is `on-primary` at 8% opacity).
201
+
202
+ This is the elegant unification — instead of writing per-component hover/focus styles, you apply one system.
203
+
204
+ ## Tools and extraction
205
+
206
+ - **Material Theme Builder**: <https://material-foundation.github.io/material-theme-builder/> — paste a hex, get a full Material 3 token set.
207
+ - **Material 3 Theme Editor for Figma**: official plugin for Figma users.
208
+ - **m3-theme-editor**: VS Code extension for live editing.
209
+
210
+ The Theme Builder is the canonical source. For consuming Material 3 tokens in code, export to:
211
+ - CSS custom properties
212
+ - W3C DTCG JSON (compatible with Style Dictionary)
213
+ - Android XML (for Android apps)
214
+ - iOS Swift (for iOS apps)
215
+
216
+ ## When to use Material 3
217
+
218
+ - **Android-primary apps**: native fit; don't fight the OS.
219
+ - **Multi-platform that wants Google-aligned aesthetic**: Material 3 is the "modern Google" look.
220
+ - **Teams that want one seed → full theme**: Material's dynamic theming is the simplest "give me a theme" pipeline.
221
+
222
+ ## When NOT to use
223
+
224
+ - **Brand wants distinctive, non-Material aesthetic**: Material's shape + motion patterns are recognizable. Customizing fights the system.
225
+ - **Korean consumer market**: Material is widely accepted but Korean designs often have a denser, more Toss/Kakao-coded aesthetic.
226
+ - **Web with very specific brand**: prefer Tailwind v4's flexibility — see [`tailwind-v4.md`](tailwind-v4.md).
227
+
228
+ ## Cross-reference
229
+
230
+ - [`knowledge/colors/color-theory.md`](../colors/color-theory.md) — HCT vs OKLCH
231
+ - [`knowledge/design-tokens/tailwind-v4.md`](tailwind-v4.md) — alternative web token system
232
+ - [`knowledge/design-tokens/ant-design.md`](ant-design.md) — alternative for enterprise web
233
+ - [`knowledge/colors/mui-palette-structure.md`](../colors/mui-palette-structure.md) — MUI's Material implementation (mostly Material 2 still)
234
+ - [Material 3 official spec](https://m3.material.io/)
235
+ - [Material Theme Builder](https://material-foundation.github.io/material-theme-builder/)
@@ -0,0 +1,231 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Polaris (Shopify) and Carbon (IBM) — enterprise token references
4
+ applies_to: [enterprise, b2b-saas, design-tokens]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Polaris and Carbon
11
+
12
+ Two enterprise design systems worth knowing as references. Both prioritize accessibility + token-based theming. Useful for B2B SaaS / e-commerce admin / enterprise dashboards.
13
+
14
+ ## Polaris (Shopify)
15
+
16
+ Optimized for **e-commerce admin** — merchant tools, multi-store management, dense product catalog UIs.
17
+
18
+ ### Color tokens
19
+
20
+ Polaris uses **role-based naming** without hue families:
21
+
22
+ ```
23
+ Surface tokens:
24
+ --p-color-bg (page background)
25
+ --p-color-bg-surface (cards, panels)
26
+ --p-color-bg-surface-secondary (subtle alternate)
27
+ --p-color-bg-fill (filled inputs, switches)
28
+ --p-color-bg-fill-brand (primary CTA)
29
+ --p-color-bg-fill-success
30
+ --p-color-bg-fill-warning
31
+ --p-color-bg-fill-critical
32
+
33
+ Text tokens:
34
+ --p-color-text (primary)
35
+ --p-color-text-secondary
36
+ --p-color-text-disabled
37
+ --p-color-text-brand
38
+ --p-color-text-success
39
+ --p-color-text-warning
40
+ --p-color-text-critical
41
+
42
+ Border tokens:
43
+ --p-color-border (default)
44
+ --p-color-border-secondary
45
+ --p-color-border-brand
46
+ --p-color-border-disabled
47
+ ```
48
+
49
+ The `-fill` / `-text` / `-border` suffix pattern is consistent across colors. **Critical** is Polaris's term for "destructive/error" — note the slight rename from typical "error".
50
+
51
+ ### Typography
52
+
53
+ ```
54
+ font-size-50: 10px (caption)
55
+ font-size-75: 12px (small body)
56
+ font-size-100: 13px (default body)
57
+ font-size-200: 14px
58
+ font-size-300: 16px (heading-md)
59
+ font-size-400: 20px
60
+ font-size-500: 24px (heading-lg)
61
+ font-size-600: 30px
62
+ font-size-700: 36px
63
+ font-size-800: 48px (display)
64
+ ```
65
+
66
+ Numeric naming (`-100`, `-200`) instead of `-sm`/`-md`/`-lg` is a Polaris signature — easier to insert intermediate values.
67
+
68
+ ### Spacing
69
+
70
+ ```
71
+ space-025: 1px
72
+ space-050: 2px
73
+ space-100: 4px
74
+ space-150: 6px
75
+ space-200: 8px
76
+ space-300: 12px
77
+ space-400: 16px
78
+ space-500: 20px
79
+ space-600: 24px
80
+ space-800: 32px
81
+ space-1000: 40px
82
+ space-1200: 48px
83
+ space-1600: 64px
84
+ space-2000: 80px
85
+ space-2400: 96px
86
+ space-3200: 128px
87
+ ```
88
+
89
+ `-100` = 4px (the smallest non-pixel unit). Numeric naming + clear progression.
90
+
91
+ ### Notable patterns from Polaris
92
+
93
+ - **`Page` and `Layout` primitives** with sections and slots — extremely opinionated layout system for admin screens
94
+ - **`IndexTable`** — polaris's data table, optimized for admin lists with bulk actions
95
+ - **`Filters` and `Tabs`** — admin search/filter patterns
96
+
97
+ For admin dashboards: study Polaris's "Page → Layout → Card" composition. It's a strong template.
98
+
99
+ ### When to look at Polaris
100
+
101
+ - Building Shopify apps (mandatory).
102
+ - B2B SaaS admin UIs where Polaris's density + structure fits.
103
+ - Token naming inspiration (numeric scales, role-based).
104
+
105
+ ## Carbon (IBM)
106
+
107
+ Optimized for **enterprise data UIs** — analytics, dashboards, data manipulation tools (Cloud Pak, Watson, etc.).
108
+
109
+ ### Color tokens
110
+
111
+ Carbon's tokens are role-based with a **theme-aware** layer:
112
+
113
+ ```
114
+ Each Carbon theme (white, g10, g90, g100) has its own token values:
115
+
116
+ Layer tokens (page → modal stacking):
117
+ --cds-background (page bg)
118
+ --cds-layer (first card)
119
+ --cds-layer-accent (alt card variant)
120
+ --cds-layer-02 (2nd-level card on layer 1)
121
+ --cds-layer-03 (3rd-level card on layer 2)
122
+
123
+ Text tokens:
124
+ --cds-text-primary
125
+ --cds-text-secondary
126
+ --cds-text-placeholder
127
+ --cds-text-on-color
128
+ --cds-text-helper
129
+ --cds-text-error
130
+
131
+ Interactive tokens:
132
+ --cds-interactive (primary brand)
133
+ --cds-link-primary
134
+ --cds-link-primary-hover
135
+ --cds-link-secondary
136
+ --cds-button-primary
137
+ --cds-button-secondary
138
+ --cds-button-tertiary
139
+ --cds-button-disabled
140
+
141
+ Support tokens:
142
+ --cds-support-success
143
+ --cds-support-warning
144
+ --cds-support-error
145
+ --cds-support-info
146
+ ```
147
+
148
+ The **layer system** is Carbon's standout: depth is encoded as `layer` / `layer-02` / `layer-03`. A modal on a card on a page automatically resolves to the right surface color.
149
+
150
+ ### Typography (IBM Plex)
151
+
152
+ Default font: **IBM Plex Sans** (custom designed for Carbon).
153
+
154
+ Type scale (Productive expressive):
155
+ ```
156
+ caption-01: 12px / 16px
157
+ helper-text: 12px / 16px
158
+ body-compact: 14px / 18px
159
+ body-01: 14px / 20px
160
+ body-02: 16px / 24px
161
+ heading-01: 14px / 18px / 600 weight
162
+ heading-02: 16px / 22px / 600 weight
163
+ heading-03: 20px / 28px / 400 weight
164
+ heading-04: 28px / 36px / 400 weight
165
+ heading-05: 32px / 40px / 400 weight
166
+ heading-06: 42px / 50px / 300 weight
167
+ heading-07: 54px / 64px / 300 weight
168
+ display-01: 42px / 50px / 300 weight
169
+ ```
170
+
171
+ "Productive" mode is dense; "Expressive" mode is more spacious — Carbon ships both.
172
+
173
+ ### Spacing
174
+
175
+ ```
176
+ spacing-01: 0.125rem (2px)
177
+ spacing-02: 0.25rem (4px)
178
+ spacing-03: 0.5rem (8px)
179
+ spacing-04: 0.75rem (12px)
180
+ spacing-05: 1rem (16px)
181
+ spacing-06: 1.5rem (24px)
182
+ spacing-07: 2rem (32px)
183
+ spacing-08: 2.5rem (40px)
184
+ spacing-09: 3rem (48px)
185
+ spacing-10: 4rem (64px)
186
+ spacing-11: 5rem (80px)
187
+ spacing-12: 6rem (96px)
188
+ spacing-13: 10rem (160px)
189
+ ```
190
+
191
+ ### Notable patterns from Carbon
192
+
193
+ - **DataTable** — heavy data tables with selection, batch actions, customizable density
194
+ - **UI Shell** — the navigation chrome (header + side nav)
195
+ - **Notification (toast/inline)** — typed for business contexts
196
+ - **DataVisualization** library — Carbon Charts, focused on enterprise reporting
197
+
198
+ ### When to look at Carbon
199
+
200
+ - Enterprise B2B with heavy data/dashboard content.
201
+ - IBM ecosystem.
202
+ - When dense, "professional" aesthetic is required (no playfulness).
203
+
204
+ ## Comparison
205
+
206
+ | Aspect | Polaris | Carbon | (vs Material 3) | (vs Tailwind v4) |
207
+ | --- | --- | --- | --- | --- |
208
+ | Token naming | Role-based, numeric scales | Role-based, layer-aware | Role-based, container-pattern | Hue-based, numeric steps |
209
+ | Audience | E-commerce admin | Enterprise / data | Cross-platform consumer | Web product (any) |
210
+ | Density default | Comfortable | Productive (dense) | Comfortable | Comfortable |
211
+ | Color generation | Hand-curated | Hand-curated | Generated from seed (HCT) | Generated from seed (OKLCH) |
212
+ | Accessibility | High | Highest (IBM is strict) | High | Good (OKLCH helps) |
213
+ | Customization | Token override | Token override per-theme | Whole theme from seed | Token override |
214
+
215
+ ## When to NOT use these directly
216
+
217
+ For most teams: **don't import Polaris or Carbon directly**. They're heavy dependencies designed for the parent companies' ecosystems.
218
+
219
+ - Use Polaris if building Shopify apps.
220
+ - Use Carbon if you're IBM-aligned.
221
+ - Otherwise: **learn from their token structures** but build your own (or use Tailwind / Ant / shadcn) and apply naming patterns you like.
222
+
223
+ ## Cross-reference
224
+
225
+ - [`knowledge/design-tokens/tailwind-v4.md`](tailwind-v4.md) — modern web default
226
+ - [`knowledge/design-tokens/material-3.md`](material-3.md) — Google's system
227
+ - [`knowledge/design-tokens/ant-design.md`](ant-design.md) — alternative enterprise system
228
+ - [`knowledge/colors/mui-palette-structure.md`](../colors/mui-palette-structure.md) — Material 2 still in MUI
229
+ - [`docs/TOKEN-SYNC.md`](../../docs/TOKEN-SYNC.md) — three-tier architecture
230
+ - [Polaris](https://polaris.shopify.com/)
231
+ - [Carbon Design System](https://carbondesignsystem.com/)