@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,281 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: Game UI fundamentals (diegetic, non-diegetic, spatial, meta)
4
+ applies_to: [game-ui, hud, game-design]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # Game UI fundamentals
11
+
12
+ Game UI follows different rules from product UI. Game UI exists *while* the player is doing something else (playing). It must convey information without breaking immersion, work with controllers / touch / keyboard, and adapt to genre conventions.
13
+
14
+ This file is the foundation for [`hud-design.md`](hud-design.md), [`menu-systems.md`](menu-systems.md), [`korean-gaming-conventions.md`](korean-gaming-conventions.md), and [`game-accessibility.md`](game-accessibility.md).
15
+
16
+ ## Four UI categories (Mark Russell taxonomy)
17
+
18
+ A canonical model for game UI. Every game UI element fits one quadrant:
19
+
20
+ | | **Spatial** (in 3D world) | **Non-spatial** (overlay) |
21
+ | --- | --- | --- |
22
+ | **Diegetic** (exists in the fiction) | Spatial diegetic — Dead Space's hologram health on character's spine | Non-spatial diegetic — Far Cry 2's GPS held by the character |
23
+ | **Non-diegetic** (exists for the player only) | Spatial non-diegetic — XCOM movement grid drawn on the world | Non-spatial non-diegetic — classic HUD (health bar in corner) |
24
+
25
+ ### Why this matters
26
+
27
+ - **Diegetic UI** keeps players immersed. The character interacts with it; the player doesn't break frame.
28
+ - **Non-diegetic UI** is faster + clearer but breaks immersion.
29
+ - **Spatial UI** is more natural in 3D worlds; **non-spatial** is more readable.
30
+
31
+ Most games mix all four. Pick the right tool per element:
32
+ - Health: typically non-spatial non-diegetic (bar in corner).
33
+ - Quest waypoint: often spatial non-diegetic (arrow in 3D world).
34
+ - Inventory: usually non-diegetic menu, but Resident Evil 4's case is a famous diegetic inventory.
35
+
36
+ ## Reading distance — TV vs handheld vs mobile
37
+
38
+ | Platform | Reading distance | Min text size |
39
+ | --- | --- | --- |
40
+ | **Mobile (handheld)** | 30-50cm | 14sp |
41
+ | **PC monitor** | 50-100cm | 12-14pt |
42
+ | **Console (TV, 10-foot UI)** | 2-4m | 28-32pt+ |
43
+ | **VR headset** | (visual angle, not distance) | per platform spec |
44
+
45
+ 10-foot UI (TV gaming) requires bigger fonts than designers expect. PS5 / Xbox UI defaults to 28-32pt for body. Test on actual TV at distance.
46
+
47
+ For Korean PC bang (PC방) culture: monitors at standard PC distance; designs for desktop monitor distance work.
48
+
49
+ For Korean mobile gaming (huge market): same as global mobile; readable at 30-50cm.
50
+
51
+ ## Genre conventions
52
+
53
+ Game UI follows genre. Players expect certain UI in certain genres; deviating without reason is friction.
54
+
55
+ ### FPS (first-person shooter)
56
+
57
+ | Element | Position |
58
+ | --- | --- |
59
+ | Crosshair | Center |
60
+ | Health | Bottom-left or bottom-right corner |
61
+ | Ammo | Bottom-right corner |
62
+ | Mini-map | Top-left or top-right corner |
63
+ | Objective | Top center |
64
+ | Score / killfeed | Right side or bottom-left |
65
+
66
+ Examples: Call of Duty, CS, Valorant.
67
+
68
+ ### RPG / MMO
69
+
70
+ | Element | Position |
71
+ | --- | --- |
72
+ | Health / mana / stamina | Bottom-left (player avatar) |
73
+ | Quick action bars | Bottom center (1-9 keys) |
74
+ | Mini-map | Top-right |
75
+ | Quest log | Right side or top-right |
76
+ | Chat | Bottom-left |
77
+ | Target frame | Top-center or top-left |
78
+
79
+ Examples: WoW, Lost Ark, Final Fantasy XIV. Korean MMOs (Lineage, MapleStory) inherit this layout heavily.
80
+
81
+ ### Mobile gacha / RPG
82
+
83
+ | Element | Position |
84
+ | --- | --- |
85
+ | Currencies | Top of screen (3-5 of them) |
86
+ | Energy / stamina | Top |
87
+ | Battle controls | Bottom (large, thumb-reachable) |
88
+ | Skill buttons | Right side (thumb zone) |
89
+ | Auto-battle / 2x speed | Bottom-right (essential for gacha) |
90
+ | Quest indicators | Around character or floating |
91
+
92
+ Examples: 원신 (Genshin), 명일방주 (Arknights), Korean genres like 리니지M, 오딘.
93
+
94
+ ### Casual / puzzle
95
+
96
+ | Element | Position |
97
+ | --- | --- |
98
+ | Score / lives | Top |
99
+ | Pause | Top-corner |
100
+ | Power-ups | Bottom |
101
+
102
+ Examples: Candy Crush, anipang, 카카오프렌즈게임.
103
+
104
+ ### Strategy (RTS / 4X)
105
+
106
+ | Element | Position |
107
+ | --- | --- |
108
+ | Mini-map | Bottom-left or bottom-right |
109
+ | Resource counters | Top |
110
+ | Selected unit panel | Bottom-center |
111
+ | Build menu | Bottom-right |
112
+ | Tech tree / overlays | Modal full-screen |
113
+
114
+ Examples: Starcraft, Civilization. Korean Starcraft heritage means competitive RTS UI culture is strong.
115
+
116
+ ## HUD vs menu vs in-world
117
+
118
+ | Type | Use |
119
+ | --- | --- |
120
+ | **HUD (Heads-Up Display)** | Always visible during gameplay; status / context |
121
+ | **Menu** | Navigated to; not visible during gameplay |
122
+ | **In-world / spatial** | Embedded in 3D world (waypoints, dialogue bubbles) |
123
+ | **Modal interrupt** | Pauses gameplay (death screen, inventory full) |
124
+
125
+ Avoid putting too much in HUD — visual noise during play. Prefer menus for detailed views.
126
+
127
+ ## Information density
128
+
129
+ | Genre | HUD density |
130
+ | --- | --- |
131
+ | FPS | Low (focus on aim) |
132
+ | Racing | Medium (speed, position, lap) |
133
+ | RPG / MMO | High (player chose this complexity) |
134
+ | Casual | Low (don't overwhelm) |
135
+ | Strategy | Very high (resources + units + tech) |
136
+
137
+ For Korean MMORPG (Lost Ark, BDO, Lineage M): players accept very dense HUDs. Western audiences sometimes find these "cluttered."
138
+
139
+ ## Visual language
140
+
141
+ ### Color coding
142
+
143
+ Universal:
144
+ - **Red**: damage, danger, enemy, low health.
145
+ - **Green**: friendly, healthy, success, nature.
146
+ - **Yellow / orange**: warning, neutral, special.
147
+ - **Blue**: mana, ally, info.
148
+ - **Purple / gold**: rare / legendary item rarity.
149
+
150
+ Korean inversion alert: in **stock charts**, Korean convention has red=up, blue=down (opposite of Western). But in games, red=damage / blue=mana follows global convention.
151
+
152
+ ### Item rarity color tiers (canonical)
153
+
154
+ ```
155
+ Common → Gray / White
156
+ Uncommon → Green
157
+ Rare → Blue
158
+ Epic → Purple
159
+ Legendary → Orange / Gold
160
+ Mythic → Red / Rainbow
161
+ ```
162
+
163
+ Most games use this. Players read rarity instantly via color. Don't invent your own without good reason.
164
+
165
+ ### Iconography
166
+
167
+ - **Currency icons**: gold coin (yellow), gem (purple/blue), special (varies).
168
+ - **Stats icons**: heart (HP), drop (mana / blood / poison), star (XP), shield (defense).
169
+ - **Action icons**: standardized across genres (settings = gear, inventory = bag, map = globe).
170
+
171
+ Icons in games are larger than product UI (24-32px common; 48-64px for action buttons). Mobile especially.
172
+
173
+ ## Animation in game UI
174
+
175
+ Game UI animates more than product UI:
176
+ - **Damage numbers** float up + fade.
177
+ - **XP bar** fills smoothly (200-400ms ease-out).
178
+ - **Item drops** bounce / glow.
179
+ - **Notifications** slide in + auto-dismiss.
180
+ - **Skill cooldowns** sweep around an icon.
181
+
182
+ Style depends on genre:
183
+ - **Realistic / cinematic**: subtle, fast.
184
+ - **Anime / fantasy**: dramatic, longer durations, particle effects.
185
+ - **Casual / cute**: bouncy, playful.
186
+
187
+ See [`knowledge/motion/principles.md`](../motion/principles.md) for general motion rules; game UI extends with more dramatic motion.
188
+
189
+ ## Audio in game UI
190
+
191
+ Sound effects are part of UI:
192
+ - **Click**: every button press has audio feedback.
193
+ - **Hover** (PC / console): subtle hover sound.
194
+ - **Confirmation**: positive ding for success, negative buzz for error.
195
+ - **Notifications**: distinctive sound per type (level-up vs damage vs achievement).
196
+
197
+ For VR / immersive games: spatial audio matters even more; sounds should emit from where they appear.
198
+
199
+ ## Input methods
200
+
201
+ Game UI must work with whatever input the platform supports:
202
+
203
+ | Input | Constraint |
204
+ | --- | --- |
205
+ | **Mouse + keyboard (PC)** | Pointing precise; many keys available |
206
+ | **Controller (console)** | D-pad / sticks; fewer buttons; needs focus management |
207
+ | **Touch (mobile)** | Direct manipulation; thumb zones; no hover |
208
+ | **VR controllers** | 6DOF pointing; raycast UI; physical gestures |
209
+
210
+ ### Cross-platform UI
211
+
212
+ Many modern games ship on PC + console + mobile. UI must adapt:
213
+
214
+ - **PC**: hover affordances, right-click context menus, keyboard shortcuts.
215
+ - **Console**: focus rings, button prompts ("Press X to open"), tab nav.
216
+ - **Mobile**: bigger tap targets (44pt+), thumb-zone bottom controls.
217
+
218
+ Defer to platform conventions. Don't force PC-style mouse-driven UI on console; don't force controller-style on mobile.
219
+
220
+ ### Button prompts
221
+
222
+ Console UI shows controller button icons:
223
+ - Xbox: A, B, X, Y.
224
+ - PlayStation: ✕ (X), ◯ (Circle), △ (Triangle), □ (Square).
225
+ - Switch: A, B, X, Y (different positions from Xbox).
226
+ - Generic: "Confirm", "Cancel", "Back".
227
+
228
+ For cross-platform: detect controller type and swap icons. Don't assume Xbox.
229
+
230
+ ## State persistence
231
+
232
+ Game UI persists state across:
233
+ - Sessions (settings, progress).
234
+ - Death + respawn (HUD state, current target).
235
+ - Match transitions (lobby → game → results).
236
+
237
+ Save state at meaningful checkpoints. Lose-progress-on-crash is the worst game UX.
238
+
239
+ ## Korean game market notes
240
+
241
+ (Detail in [`korean-gaming-conventions.md`](korean-gaming-conventions.md).)
242
+
243
+ Quick context:
244
+ - **Mobile gacha + MMO** dominate Korean revenue.
245
+ - **PC bang (PC방)** culture: PCs at low/free hourly rates; competitive games dominant.
246
+ - **Major studios**: NEXON (메이플스토리, FIFA Online), NCSoft (리니지, 길드워), Krafton (배틀그라운드 / PUBG), Smilegate (크로스파이어, 로스트아크), Pearl Abyss (검은사막).
247
+ - **Mobile-first audience**: heavy auto-battle, gacha, daily login rewards.
248
+
249
+ ## Accessibility intro
250
+
251
+ (Detail in [`game-accessibility.md`](game-accessibility.md).)
252
+
253
+ Game UI accessibility:
254
+ - Subtitles + closed captions (always option).
255
+ - Color-blind modes (color-coding redundant with shape / pattern).
256
+ - Remappable controls.
257
+ - Adjustable text size + UI scale.
258
+ - High-contrast mode.
259
+ - Reduced motion option.
260
+
261
+ 2024+: accessibility is increasingly expected; Last of Us Part II / Forza Horizon raised the bar.
262
+
263
+ ## Don't
264
+
265
+ - Don't break genre conventions without strong reason. Players expect HP bottom-left in MMOs.
266
+ - Don't ignore platform conventions (PC vs console vs mobile have different defaults).
267
+ - Don't make HUD so dense it competes with gameplay attention.
268
+ - Don't skip button prompts on console.
269
+ - Don't use only color to encode meaning (color-blind exclusion).
270
+ - Don't auto-advance dialogue. Player controls the pace.
271
+ - Don't lock UI to one resolution. Scale for different screens.
272
+ - Don't forget audio. Game UI is auditory + visual.
273
+
274
+ ## Cross-reference
275
+
276
+ - [`knowledge/game-ui/hud-design.md`](hud-design.md) — HUD elements
277
+ - [`knowledge/game-ui/menu-systems.md`](menu-systems.md) — main menu, pause, inventory
278
+ - [`knowledge/game-ui/korean-gaming-conventions.md`](korean-gaming-conventions.md) — KR market
279
+ - [`knowledge/game-ui/game-accessibility.md`](game-accessibility.md) — a11y in games
280
+ - [`knowledge/motion/principles.md`](../motion/principles.md) — motion fundamentals
281
+ - [`knowledge/a11y/keyboard-and-focus.md`](../a11y/keyboard-and-focus.md) — focus / keyboard
@@ -0,0 +1,324 @@
1
+ <!-- hand-written -->
2
+ ---
3
+ title: HUD design (in-game heads-up display elements)
4
+ applies_to: [game-ui, hud, in-game]
5
+ version: 1.0.0
6
+ last_updated: 2026-05
7
+ stability: stable
8
+ ---
9
+
10
+ # HUD design
11
+
12
+ The HUD (Heads-Up Display) is the always-visible overlay during gameplay. It tells the player what they need to know without breaking the flow.
13
+
14
+ Read [`game-ui-fundamentals.md`](game-ui-fundamentals.md) first.
15
+
16
+ ## What goes in HUD vs not
17
+
18
+ In HUD (always visible during play):
19
+ - Health / mana / stamina.
20
+ - Crosshair / aim reticle.
21
+ - Ammo / current weapon.
22
+ - Currency / score.
23
+ - Mini-map / radar (genre-dependent).
24
+ - Cooldowns of active skills.
25
+ - Critical alerts (low health, no ammo).
26
+
27
+ NOT in HUD (open via menu):
28
+ - Full inventory.
29
+ - Stats / character sheet.
30
+ - Settings.
31
+ - Friends list.
32
+ - Quest details (summary OK, details menu).
33
+
34
+ The HUD competes with gameplay for attention. Less is more.
35
+
36
+ ## HUD layout patterns
37
+
38
+ ### FPS HUD
39
+
40
+ ```
41
+ [mini-map]
42
+ [objective banner ───────────────────────]
43
+ [killfeed]
44
+ [ ... ]
45
+ [ ... ]
46
+ [crosshair]
47
+ [target damage]
48
+
49
+
50
+ [health bar] [armor] [ammo] [grenades]
51
+ ```
52
+
53
+ Compact. Center stays clear for aim. Information clusters in corners.
54
+
55
+ ### MMO / RPG HUD
56
+
57
+ ```
58
+ [player frame: HP / MP / stamina] [mini-map]
59
+ [buffs / debuffs] [target frame]
60
+ [chat ────] [quest tracker]
61
+ [...]
62
+ [combat log]
63
+ [hotbar 1 (1-9 keys)] [hotbar 2 (F1-F9)]
64
+ [hotbar 3 (Shift+1-9)]
65
+ ```
66
+
67
+ Dense. Player has many concurrent inputs to track. Modular — players reposition / hide elements.
68
+
69
+ ### Mobile gacha HUD
70
+
71
+ ```
72
+ [currency 1] [currency 2] [currency 3] [stamina/energy] [profile]
73
+
74
+ [main game area]
75
+ [character / scene]
76
+
77
+
78
+ [skill 1] [skill 2] [skill 3] [auto] [2x speed] [pause]
79
+ ```
80
+
81
+ Currencies prominent (gacha = always selling). Auto-battle + speed control essential. Skills in thumb zone.
82
+
83
+ ### Mobile casual HUD
84
+
85
+ ```
86
+ [score] [pause]
87
+ [lives ❤❤❤] [coins]
88
+
89
+
90
+ [game board]
91
+
92
+
93
+
94
+ [power-ups: 3 buttons]
95
+ ```
96
+
97
+ Minimal. Score + lives + power-ups; nothing else.
98
+
99
+ ## Health bars
100
+
101
+ The single most-iterated UI element in games.
102
+
103
+ ### Bar types
104
+
105
+ | Type | Use |
106
+ | --- | --- |
107
+ | **Linear bar** | Default; "X HP / Y HP" or just bar |
108
+ | **Segmented bar** | Each segment is a hit (Zelda hearts) |
109
+ | **Circular** | Cinematic; matches icon style |
110
+ | **Layered** | Shield + health + barrier separately |
111
+ | **Radial / context** | Gear of War's blood-vignetting |
112
+ | **Diegetic** | Health on character body / vehicle (Far Cry, Forza) |
113
+
114
+ ### Health bar rules
115
+
116
+ - **Damage delay** — when hit, bar drops to new value over 200-400ms (not instant). Player sees the damage happen.
117
+ - **Recent damage indicator** — second bar showing damage taken in last 1-2s (Tekken-style). Helps player track combo damage.
118
+ - **Color shift** — green→yellow→red as health drops. Color blind alt: shape / pattern change.
119
+ - **Critical state** — visual emphasis when < 25% (pulse, screen edge red).
120
+ - **Regen** — animated fill if regenerating.
121
+ - **Permanent damage cap** — for games with overheal / shield: separate visual.
122
+
123
+ ### Korean MMO health bar tradition
124
+
125
+ - Often labeled with exact numbers ("8420 / 12000 HP").
126
+ - Multiple buffs / debuffs stacked underneath.
127
+ - Frame heavy / decorated (gold leaf borders for high-tier characters).
128
+
129
+ ## Ammo / resource counters
130
+
131
+ ```
132
+ [icon] 30 / 120
133
+ ▲ ▲
134
+ current reserve
135
+ ```
136
+
137
+ Counter rules:
138
+ - Tabular numerals (digit alignment): `font-feature-settings: "tnum"`.
139
+ - Reload state: visible animation / icon swap during reload.
140
+ - Out of ammo: emphasis (red, pulse, "RELOAD" prompt).
141
+ - Different ammo types: icon + count per type, or active-type only.
142
+
143
+ ## Crosshair / reticle
144
+
145
+ For shooters:
146
+ - **Static dot**: precision shooting (Valorant, CS).
147
+ - **Dynamic spread**: expands during recoil (CoD, Apex).
148
+ - **Hit marker**: brief X-shape on hit.
149
+ - **Damage indicator**: outer ring pulses red when taking damage from a direction.
150
+
151
+ Customizable:
152
+ - Color (bright red, neon yellow, white).
153
+ - Shape (dot, plus, T, custom).
154
+ - Outline (for visibility on any background).
155
+
156
+ Required for accessibility.
157
+
158
+ ## Mini-map
159
+
160
+ | Element | Notes |
161
+ | --- | --- |
162
+ | Player marker | Center; rotates with view OR fixed-north |
163
+ | Allies | Blue dots / icons |
164
+ | Enemies | Red (when visible) |
165
+ | Objectives | Yellow / gold marker |
166
+ | POI / quest | Distinct icons |
167
+ | Compass | N / E / S / W; or angle indicator |
168
+
169
+ Rotation:
170
+ - **Rotating mini-map**: easier for new players (always points the way they're facing).
171
+ - **Fixed north**: better for spatial memory; competitive players prefer.
172
+
173
+ Many games offer toggle.
174
+
175
+ ## Damage numbers
176
+
177
+ Float-up text showing damage dealt:
178
+
179
+ ```
180
+ Hit 150
181
+ Critical 320!
182
+ Heal +84
183
+ Miss Miss
184
+ ```
185
+
186
+ Style:
187
+ - White / yellow for damage.
188
+ - Red for critical / huge damage.
189
+ - Green for heal.
190
+ - Float up + fade over 800-1500ms.
191
+ - Stack to one side if many.
192
+
193
+ For "loot games" like Diablo / Path of Exile / Lost Ark: damage numbers are core; players read DPS from these.
194
+
195
+ For more cinematic games (RDR2, God of War): damage numbers off, hit feedback via animation / sound only.
196
+
197
+ ## Cooldowns
198
+
199
+ Skill icons on hotbar with cooldown indicator:
200
+
201
+ ```
202
+ ┌──────┐
203
+ │ ⚔ │ ← skill icon
204
+ │ │
205
+ │ 3.2 │ ← seconds remaining
206
+ └──────┘
207
+ ▒▒▒▒ ← sweep / fill animation
208
+ ```
209
+
210
+ Animation:
211
+ - **Radial sweep** (clock-face style): most common, intuitive.
212
+ - **Vertical fill**: bar fills bottom-to-top.
213
+ - **Desaturate + number**: icon grayed out + countdown number.
214
+
215
+ Players need to read cooldowns at-a-glance during combat. Don't make sweep too detailed; readability > beauty.
216
+
217
+ ## Buffs / debuffs
218
+
219
+ Icons showing active effects:
220
+
221
+ ```
222
+ [⏳ Speed +20% — 12s] [☠ Poison — 8s] [✨ Shield — 30s]
223
+ ```
224
+
225
+ Layout:
226
+ - Row of icons; new buffs add to right.
227
+ - Timer overlay (number or bar).
228
+ - Color: green for buff, red for debuff, blue for neutral.
229
+ - Click / hover (PC) for description.
230
+ - Stacks: number badge "x3".
231
+
232
+ For high-density combat: 5-15+ buffs / debuffs simultaneous. Group by type (offensive, defensive, status).
233
+
234
+ ## Floating quest markers
235
+
236
+ 3D world markers:
237
+ - **Above NPCs**: ! (new quest), ? (turn-in), ... (in progress).
238
+ - **On waypoints**: floating diamond / arrow.
239
+ - **Compass markers**: indicator at top of screen for off-screen objectives.
240
+ - **World waypoint**: pillar of light reaching skyward.
241
+
242
+ Don't over-clutter. One active waypoint at a time, unless player explicitly multi-tracks.
243
+
244
+ ## Notifications
245
+
246
+ Transient messages:
247
+
248
+ | Type | Style |
249
+ | --- | --- |
250
+ | Item picked up | "+ 5 gold" / "Got: [Item icon] Sword" |
251
+ | Quest update | "New quest: [Name]" with subtle banner |
252
+ | Achievement | Larger banner, satisfying sound, often persistent for 3-5s |
253
+ | Level up | Big celebration: particles, sound, persistent |
254
+ | Death | Modal full-screen interrupt |
255
+
256
+ Slide-in, hold, fade-out. Total duration:
257
+ - Item pickup: 1-2s.
258
+ - Quest update: 3-5s.
259
+ - Achievement: 4-6s.
260
+ - Level up: 5-10s with full effects.
261
+
262
+ Stack notifications (if many fire fast); newer pushes older down or replaces with summary ("+5 items").
263
+
264
+ ## Subtitles / dialogue
265
+
266
+ | Style | Use |
267
+ | --- | --- |
268
+ | Bottom-center overlay | Most action / cinematic |
269
+ | Speech bubble (3D world) | Cute / cartoon |
270
+ | Side panel | Visual novels |
271
+ | Choice list | Branching dialogue |
272
+
273
+ Subtitle config (always): on/off, size, background opacity, speaker name. WCAG-aligned options.
274
+
275
+ For Korean: 자막 (subtitle) commonly bottom-center, white text + black outline + semi-opaque dark band, NanumSquare or Pretendard, larger than English equivalent.
276
+
277
+ ## Adapting to widescreen / ultra-wide
278
+
279
+ Modern games support 16:9 / 21:9 / 32:9 ultra-wide. HUD must adapt:
280
+
281
+ - **Anchor HUD elements to screen edges** (not center percentages).
282
+ - **Stretch background** but anchor UI.
283
+ - **Fix FOV** — don't let ultra-wide give competitive advantage in PvP (clip to standard FOV).
284
+
285
+ For mobile: handle different aspect ratios (16:9 vs 18:9 vs 19.5:9 vs foldable).
286
+
287
+ ## Customization
288
+
289
+ Modern games offer HUD customization:
290
+ - **Move elements** (drag positions).
291
+ - **Resize** (scale individual elements).
292
+ - **Hide** (toggle elements off — minimalist play).
293
+ - **Themes / skins** (purchased or unlocked).
294
+ - **Color presets** (color-blind modes, brightness presets).
295
+
296
+ Save customization per-player profile.
297
+
298
+ ## Performance
299
+
300
+ HUD renders every frame. Performance matters:
301
+ - Use sprite-based rendering (texture atlas) — minimize draw calls.
302
+ - Update only when state changes (don't re-layout every frame).
303
+ - Animations on GPU when possible.
304
+ - Mobile: target 60fps; pre-budget UI overhead.
305
+
306
+ ## Don't
307
+
308
+ - Don't put critical info in screen edges that get cropped on smaller TVs / mobile screens.
309
+ - Don't make health bars subtle — players need fast read.
310
+ - Don't auto-hide HUD with no opt-out.
311
+ - Don't ignore color-blind alternatives (shape / pattern).
312
+ - Don't over-decorate. Function over flourish.
313
+ - Don't lock HUD to one resolution. Scale via UI scale option.
314
+ - Don't put long text in HUD. Reserve text for menus / dialogue.
315
+ - Don't ignore audio. UI sounds matter as much as visual.
316
+
317
+ ## Cross-reference
318
+
319
+ - [`knowledge/game-ui/game-ui-fundamentals.md`](game-ui-fundamentals.md) — categories, genres
320
+ - [`knowledge/game-ui/menu-systems.md`](menu-systems.md) — full menus
321
+ - [`knowledge/game-ui/korean-gaming-conventions.md`](korean-gaming-conventions.md) — KR conventions
322
+ - [`knowledge/game-ui/game-accessibility.md`](game-accessibility.md) — a11y in games
323
+ - [`knowledge/motion/principles.md`](../motion/principles.md) — animation
324
+ - [`examples/component-game-hud.md`](../../examples/component-game-hud.md) — HUD spec