@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.
- package/.claude-plugin/plugin.json +164 -0
- package/AGENTS.ko.md +126 -0
- package/AGENTS.md +182 -0
- package/CHANGELOG.md +6883 -0
- package/CLAUDE.md +39 -0
- package/LICENSE +21 -0
- package/README.ko.md +245 -0
- package/README.md +277 -0
- package/agents/README.md +14 -0
- package/agents/a11y-reviewer.md +121 -0
- package/agents/component-architect.md +57 -0
- package/agents/design-critic.md +46 -0
- package/agents/token-extractor.md +63 -0
- package/cli/bin/design-ai-mcp.mjs +6 -0
- package/cli/bin/design-ai.mjs +40 -0
- package/cli/commands/audit.mjs +111 -0
- package/cli/commands/check.mjs +226 -0
- package/cli/commands/doctor.mjs +141 -0
- package/cli/commands/examples.mjs +58 -0
- package/cli/commands/help.mjs +271 -0
- package/cli/commands/install.mjs +161 -0
- package/cli/commands/learn.mjs +1871 -0
- package/cli/commands/list.mjs +143 -0
- package/cli/commands/mcp.mjs +27 -0
- package/cli/commands/pack.mjs +211 -0
- package/cli/commands/prompt.mjs +199 -0
- package/cli/commands/route.mjs +247 -0
- package/cli/commands/search.mjs +60 -0
- package/cli/commands/show.mjs +52 -0
- package/cli/commands/site.mjs +558 -0
- package/cli/commands/status.mjs +161 -0
- package/cli/commands/uninstall.mjs +119 -0
- package/cli/commands/update.mjs +184 -0
- package/cli/commands/version.mjs +94 -0
- package/cli/commands/workspace.mjs +176 -0
- package/cli/lib/brief.mjs +52 -0
- package/cli/lib/check.mjs +642 -0
- package/cli/lib/dispatch.mjs +109 -0
- package/cli/lib/doctor.mjs +505 -0
- package/cli/lib/examples.mjs +258 -0
- package/cli/lib/exec.mjs +63 -0
- package/cli/lib/help-flags.mjs +5 -0
- package/cli/lib/learn.mjs +3694 -0
- package/cli/lib/log.mjs +47 -0
- package/cli/lib/mcp-server.mjs +426 -0
- package/cli/lib/output.mjs +101 -0
- package/cli/lib/pack.mjs +599 -0
- package/cli/lib/paths.mjs +63 -0
- package/cli/lib/prompt.mjs +603 -0
- package/cli/lib/route.mjs +740 -0
- package/cli/lib/search.mjs +158 -0
- package/cli/lib/show.mjs +161 -0
- package/cli/lib/signals.mjs +2337 -0
- package/cli/lib/site.mjs +6617 -0
- package/cli/lib/skill-proposals.mjs +2046 -0
- package/cli/lib/suggest.mjs +66 -0
- package/cli/lib/workspace.mjs +1056 -0
- package/commands/README.md +25 -0
- package/commands/component-spec.md +34 -0
- package/commands/conversational.md +44 -0
- package/commands/design-from-brief.md +141 -0
- package/commands/design-review.md +62 -0
- package/commands/document-from-brief.md +47 -0
- package/commands/extract-tokens.md +38 -0
- package/commands/game-ui.md +40 -0
- package/commands/illustration.md +37 -0
- package/commands/iterate.md +167 -0
- package/commands/motion-design.md +54 -0
- package/commands/palette-from-brand.md +50 -0
- package/commands/print.md +49 -0
- package/commands/slide-deck.md +46 -0
- package/commands/spatial.md +47 -0
- package/commands/stability-review.md +74 -0
- package/commands/video.md +42 -0
- package/commands/website-improvement.md +77 -0
- package/docs/AGENT-DEVELOPMENT.md +658 -0
- package/docs/AI-LEARNING.md +429 -0
- package/docs/AIDER-INTEGRATION.md +224 -0
- package/docs/ARCHITECTURE.ko.md +183 -0
- package/docs/ARCHITECTURE.md +105 -0
- package/docs/CODEX-INTEGRATION.md +311 -0
- package/docs/COMPANY-WEBSITE-DOGFOOD.ko.md +144 -0
- package/docs/COMPANY-WEBSITE-DOGFOOD.md +150 -0
- package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.ko.md +153 -0
- package/docs/COMPANY-WEBSITE-INTAKE-TEMPLATE.md +154 -0
- package/docs/CONTRIBUTING.ko.md +203 -0
- package/docs/CONTRIBUTING.md +242 -0
- package/docs/CURSOR-INTEGRATION.md +220 -0
- package/docs/DISTRIBUTION.ko.md +248 -0
- package/docs/DISTRIBUTION.md +253 -0
- package/docs/DOGFOOD-FINDINGS.md +180 -0
- package/docs/DOGFOOD-V4-FINDINGS.md +139 -0
- package/docs/DOGFOOD-V4-MKDOCS-FINDINGS.md +233 -0
- package/docs/DOGFOOD-V4-NPM-FINDINGS.md +157 -0
- package/docs/DOGFOOD-V4-VSCODE-FINDINGS.md +135 -0
- package/docs/FIGMA-INTEGRATION.md +222 -0
- package/docs/MCP-INTEGRATION.md +243 -0
- package/docs/MIGRATION-v4.md +121 -0
- package/docs/PLUGIN-PACKAGING.md +240 -0
- package/docs/PRODUCT-READINESS.md +66 -0
- package/docs/QUICKSTART.ko.md +178 -0
- package/docs/QUICKSTART.md +179 -0
- package/docs/RELEASE-CHECKLIST.md +292 -0
- package/docs/ROADMAP.md +19495 -0
- package/docs/SESSION-LOG.md +940 -0
- package/docs/TOKEN-SYNC.md +237 -0
- package/docs/USING.ko.md +206 -0
- package/docs/USING.md +218 -0
- package/docs/WEBSITE-IMPROVEMENT.ko.md +75 -0
- package/docs/WEBSITE-IMPROVEMENT.md +89 -0
- package/docs/announcements/README.md +56 -0
- package/docs/announcements/dev-to-korea.md +206 -0
- package/docs/announcements/hashnode-post.ko.md +232 -0
- package/docs/announcements/okky-post.ko.md +158 -0
- package/docs/announcements/press-kit.md +101 -0
- package/docs/announcements/reddit-r-korea.md +196 -0
- package/docs/announcements/show-hn.md +114 -0
- package/docs/announcements/twitter-thread.md +255 -0
- package/docs/external-status.md +34 -0
- package/docs/integrations/aider-walkthrough.ko.md +275 -0
- package/docs/integrations/aider-walkthrough.md +274 -0
- package/docs/integrations/codex-walkthrough.ko.md +297 -0
- package/docs/integrations/codex-walkthrough.md +297 -0
- package/docs/integrations/cursor-walkthrough.ko.md +281 -0
- package/docs/integrations/cursor-walkthrough.md +284 -0
- package/docs/integrations/design-ai-mcp-server.md +169 -0
- package/docs/integrations/figma-mcp.md +149 -0
- package/docs/integrations/github-mcp.md +178 -0
- package/docs/integrations/linear-mcp.md +215 -0
- package/docs/integrations/notion-mcp.md +174 -0
- package/docs/integrations/sdk-walkthrough.ko.md +375 -0
- package/docs/integrations/sdk-walkthrough.md +375 -0
- package/docs/integrations/slack-mcp.md +208 -0
- package/docs/integrations/vscode-walkthrough.ko.md +202 -0
- package/docs/integrations/vscode-walkthrough.md +205 -0
- package/docs/requirements.txt +16 -0
- package/docs/site-overrides/extra.css +83 -0
- package/docs/site-overrides/favicon.svg +4 -0
- package/docs/site-overrides/logo.svg +10 -0
- package/docs/site-overrides/main.html +18 -0
- package/docs/website-console/app.js +2540 -0
- package/docs/website-console/index.html +24 -0
- package/docs/website-console/styles.css +975 -0
- package/examples/README.md +252 -0
- package/examples/cases/dogfood-v4-korean-hr-onboarding.md +356 -0
- package/examples/component-accordion-actions.md +153 -0
- package/examples/component-accordion-details.md +147 -0
- package/examples/component-accordion-summary.md +180 -0
- package/examples/component-accordion.md +229 -0
- package/examples/component-account-card.md +284 -0
- package/examples/component-address-input.md +260 -0
- package/examples/component-affix.md +190 -0
- package/examples/component-alert-dialog.md +210 -0
- package/examples/component-alert-title.md +77 -0
- package/examples/component-alert.md +192 -0
- package/examples/component-amount-input.md +278 -0
- package/examples/component-anchor.md +198 -0
- package/examples/component-app-bar.md +249 -0
- package/examples/component-aspect-ratio.md +156 -0
- package/examples/component-auto-complete.md +199 -0
- package/examples/component-avatar-group.md +170 -0
- package/examples/component-avatar.md +191 -0
- package/examples/component-back-top.md +123 -0
- package/examples/component-backdrop.md +148 -0
- package/examples/component-badge.md +181 -0
- package/examples/component-banner.md +237 -0
- package/examples/component-biometric-gate.md +281 -0
- package/examples/component-blockquote.md +153 -0
- package/examples/component-border-beam.md +207 -0
- package/examples/component-bottom-navigation.md +226 -0
- package/examples/component-box.md +112 -0
- package/examples/component-breadcrumb.md +222 -0
- package/examples/component-button-base.md +190 -0
- package/examples/component-button-group.md +117 -0
- package/examples/component-button.md +213 -0
- package/examples/component-calendar.md +280 -0
- package/examples/component-callout.md +131 -0
- package/examples/component-card-actions.md +101 -0
- package/examples/component-card-content.md +90 -0
- package/examples/component-card-header.md +122 -0
- package/examples/component-card-media.md +79 -0
- package/examples/component-card.md +233 -0
- package/examples/component-carousel.md +266 -0
- package/examples/component-cascader.md +135 -0
- package/examples/component-category-picker.md +271 -0
- package/examples/component-chart.md +237 -0
- package/examples/component-chat-interface.md +399 -0
- package/examples/component-checkbox.md +149 -0
- package/examples/component-click-away-listener.md +87 -0
- package/examples/component-code.md +213 -0
- package/examples/component-collapsible.md +219 -0
- package/examples/component-color-picker.md +110 -0
- package/examples/component-combobox.md +267 -0
- package/examples/component-command.md +299 -0
- package/examples/component-config-provider.md +190 -0
- package/examples/component-context-menu.md +179 -0
- package/examples/component-css-baseline.md +148 -0
- package/examples/component-date-picker.md +249 -0
- package/examples/component-descriptions.md +242 -0
- package/examples/component-dialog-actions.md +111 -0
- package/examples/component-dialog-content-text.md +76 -0
- package/examples/component-dialog-content.md +105 -0
- package/examples/component-dialog-title.md +104 -0
- package/examples/component-dialog.md +176 -0
- package/examples/component-divider.md +182 -0
- package/examples/component-doc-page.md +217 -0
- package/examples/component-drawer.md +257 -0
- package/examples/component-dropdown.md +220 -0
- package/examples/component-email-layout.md +253 -0
- package/examples/component-empty-state.md +269 -0
- package/examples/component-empty.md +172 -0
- package/examples/component-fade.md +87 -0
- package/examples/component-feature-grid.md +201 -0
- package/examples/component-field.md +266 -0
- package/examples/component-filled-input.md +114 -0
- package/examples/component-flex.md +117 -0
- package/examples/component-float-button.md +214 -0
- package/examples/component-form-control-label.md +134 -0
- package/examples/component-form-control.md +113 -0
- package/examples/component-form-controls.md +251 -0
- package/examples/component-form-group.md +86 -0
- package/examples/component-form-helper-text.md +95 -0
- package/examples/component-form-label.md +98 -0
- package/examples/component-form.md +291 -0
- package/examples/component-game-hud.md +362 -0
- package/examples/component-game-menu.md +327 -0
- package/examples/component-grid.md +140 -0
- package/examples/component-grow.md +79 -0
- package/examples/component-hero-block.md +252 -0
- package/examples/component-hover-card.md +211 -0
- package/examples/component-icon-button.md +142 -0
- package/examples/component-icon.md +102 -0
- package/examples/component-illustration.md +280 -0
- package/examples/component-image-list.md +107 -0
- package/examples/component-image.md +282 -0
- package/examples/component-input-adornment.md +101 -0
- package/examples/component-input-base.md +134 -0
- package/examples/component-input-number.md +141 -0
- package/examples/component-input-otp.md +271 -0
- package/examples/component-input.md +213 -0
- package/examples/component-item.md +243 -0
- package/examples/component-kbd.md +197 -0
- package/examples/component-krw-amount.md +219 -0
- package/examples/component-label.md +118 -0
- package/examples/component-layout.md +217 -0
- package/examples/component-link.md +223 -0
- package/examples/component-list-item-avatar.md +72 -0
- package/examples/component-list-item-button.md +139 -0
- package/examples/component-list-item-icon.md +82 -0
- package/examples/component-list-item-text.md +98 -0
- package/examples/component-list-item.md +116 -0
- package/examples/component-list-subheader.md +70 -0
- package/examples/component-list.md +198 -0
- package/examples/component-loading-button.md +125 -0
- package/examples/component-loading-sequence.md +254 -0
- package/examples/component-lottie-player.md +279 -0
- package/examples/component-masonry.md +191 -0
- package/examples/component-mentions.md +189 -0
- package/examples/component-menu-item.md +102 -0
- package/examples/component-menu-list.md +98 -0
- package/examples/component-menu.md +139 -0
- package/examples/component-menubar.md +259 -0
- package/examples/component-message.md +162 -0
- package/examples/component-mobile-stepper.md +155 -0
- package/examples/component-modal.md +220 -0
- package/examples/component-navigation-menu.md +295 -0
- package/examples/component-notification.md +166 -0
- package/examples/component-otp-countdown.md +245 -0
- package/examples/component-outlined-input.md +145 -0
- package/examples/component-page-transition.md +281 -0
- package/examples/component-pagination.md +226 -0
- package/examples/component-paper.md +199 -0
- package/examples/component-pass-auth.md +265 -0
- package/examples/component-payment-brand-button.md +253 -0
- package/examples/component-payment-method-selector.md +272 -0
- package/examples/component-payment-receipt.md +277 -0
- package/examples/component-popconfirm.md +144 -0
- package/examples/component-popover.md +239 -0
- package/examples/component-popper.md +129 -0
- package/examples/component-pricing-cards.md +247 -0
- package/examples/component-progress.md +195 -0
- package/examples/component-qr-code.md +201 -0
- package/examples/component-radio.md +167 -0
- package/examples/component-rate.md +202 -0
- package/examples/component-resizable.md +163 -0
- package/examples/component-result.md +270 -0
- package/examples/component-scroll-area.md +199 -0
- package/examples/component-scroll-reveal.md +320 -0
- package/examples/component-segmented.md +178 -0
- package/examples/component-select.md +258 -0
- package/examples/component-separator.md +177 -0
- package/examples/component-sheet.md +277 -0
- package/examples/component-sidebar.md +257 -0
- package/examples/component-skeleton.md +178 -0
- package/examples/component-slide.md +89 -0
- package/examples/component-slider.md +208 -0
- package/examples/component-snackbar-content.md +92 -0
- package/examples/component-snackbar.md +121 -0
- package/examples/component-sonner.md +165 -0
- package/examples/component-space.md +125 -0
- package/examples/component-spatial-locomotion.md +373 -0
- package/examples/component-spatial-panel.md +330 -0
- package/examples/component-speed-dial-action.md +78 -0
- package/examples/component-speed-dial.md +177 -0
- package/examples/component-spin.md +173 -0
- package/examples/component-spinner.md +204 -0
- package/examples/component-splitter.md +210 -0
- package/examples/component-stack.md +130 -0
- package/examples/component-statistic.md +282 -0
- package/examples/component-step-button.md +157 -0
- package/examples/component-step-connector.md +157 -0
- package/examples/component-step-content.md +121 -0
- package/examples/component-step-icon.md +115 -0
- package/examples/component-step-label.md +101 -0
- package/examples/component-step.md +84 -0
- package/examples/component-steps.md +264 -0
- package/examples/component-stock-chart.md +251 -0
- package/examples/component-swipeable-drawer.md +149 -0
- package/examples/component-switch.md +99 -0
- package/examples/component-tab-scroll-button.md +180 -0
- package/examples/component-tab.md +120 -0
- package/examples/component-table-body.md +82 -0
- package/examples/component-table-cell.md +118 -0
- package/examples/component-table-container.md +75 -0
- package/examples/component-table-footer.md +72 -0
- package/examples/component-table-head.md +78 -0
- package/examples/component-table-pagination.md +137 -0
- package/examples/component-table-row.md +113 -0
- package/examples/component-table-sort-label.md +109 -0
- package/examples/component-table.md +202 -0
- package/examples/component-tabs.md +184 -0
- package/examples/component-tag-badge.md +309 -0
- package/examples/component-tag.md +102 -0
- package/examples/component-testimonial-carousel.md +218 -0
- package/examples/component-textarea-autosize.md +114 -0
- package/examples/component-textarea.md +173 -0
- package/examples/component-time-picker.md +205 -0
- package/examples/component-timeline.md +170 -0
- package/examples/component-toast.md +224 -0
- package/examples/component-toggle-button.md +129 -0
- package/examples/component-toggle.md +220 -0
- package/examples/component-toolbar.md +104 -0
- package/examples/component-tooltip.md +178 -0
- package/examples/component-tour.md +176 -0
- package/examples/component-transaction-list-item.md +243 -0
- package/examples/component-transfer.md +156 -0
- package/examples/component-tree-select.md +202 -0
- package/examples/component-tree.md +297 -0
- package/examples/component-typography.md +215 -0
- package/examples/component-upload.md +295 -0
- package/examples/component-video-hero.md +409 -0
- package/examples/component-video-player.md +340 -0
- package/examples/component-voice-input.md +408 -0
- package/examples/component-watermark.md +217 -0
- package/examples/component-zoom.md +92 -0
- package/examples/doc-explanation-example.md +196 -0
- package/examples/doc-how-to-example.md +205 -0
- package/examples/doc-tutorial-example.md +162 -0
- package/examples/dogfood-korean-fintech-system.md +433 -0
- package/examples/email-transactional-example.md +259 -0
- package/examples/palette-saas-violet.md +235 -0
- package/examples/print-business-card-spec.md +205 -0
- package/examples/print-packaging-spec.md +285 -0
- package/examples/report-example.md +228 -0
- package/examples/slide-deck-example.md +237 -0
- package/examples/website-improvement-report.md +128 -0
- package/examples/website-improvement-workspace.json +126 -0
- package/install.sh +189 -0
- package/knowledge/COVERAGE.md +740 -0
- package/knowledge/PRINCIPLES.md +108 -0
- package/knowledge/a11y/contrast.md +70 -0
- package/knowledge/a11y/keyboard-and-focus.md +108 -0
- package/knowledge/colors/color-theory.md +90 -0
- package/knowledge/colors/mui-palette-structure.md +105 -0
- package/knowledge/colors/palettes-by-product-type.md +876 -0
- package/knowledge/components/INDEX.md +231 -0
- package/knowledge/components/index.json +1470 -0
- package/knowledge/components/shadcn-registry.md +159 -0
- package/knowledge/conversational/ai-chat-interfaces.md +323 -0
- package/knowledge/conversational/chatbot-design.md +312 -0
- package/knowledge/conversational/conversational-ui-fundamentals.md +299 -0
- package/knowledge/conversational/korean-voice-conventions.md +281 -0
- package/knowledge/conversational/voice-ui-patterns.md +297 -0
- package/knowledge/design-tokens/ant-design.md +124 -0
- package/knowledge/design-tokens/material-3.md +235 -0
- package/knowledge/design-tokens/polaris-and-carbon.md +231 -0
- package/knowledge/design-tokens/tailwind-v4.md +284 -0
- package/knowledge/game-ui/game-accessibility.md +317 -0
- package/knowledge/game-ui/game-ui-fundamentals.md +281 -0
- package/knowledge/game-ui/hud-design.md +324 -0
- package/knowledge/game-ui/korean-gaming-conventions.md +312 -0
- package/knowledge/game-ui/menu-systems.md +388 -0
- package/knowledge/i18n/korean-app-store-visual.md +223 -0
- package/knowledge/i18n/korean-document-style.md +301 -0
- package/knowledge/i18n/korean-payments.md +211 -0
- package/knowledge/i18n/korean-product-conventions.md +96 -0
- package/knowledge/i18n/korean-publishing.md +139 -0
- package/knowledge/i18n/korean-typography.md +123 -0
- package/knowledge/icons/curated-sets.md +225 -0
- package/knowledge/illustration/hero-illustrations.md +234 -0
- package/knowledge/illustration/illustration-systems.md +221 -0
- package/knowledge/illustration/mascot-design.md +208 -0
- package/knowledge/illustration/spot-illustrations.md +246 -0
- package/knowledge/illustration/svg-optimization.md +308 -0
- package/knowledge/layout/spacing-and-grid.md +119 -0
- package/knowledge/motion/app-loading-sequences.md +277 -0
- package/knowledge/motion/choreography-depth.md +297 -0
- package/knowledge/motion/marketing-motion.md +223 -0
- package/knowledge/motion/micro-interactions.md +266 -0
- package/knowledge/motion/motion-tools.md +281 -0
- package/knowledge/motion/principles.md +126 -0
- package/knowledge/patterns/auth-flow-design.md +316 -0
- package/knowledge/patterns/b2b-onboarding-flows.md +182 -0
- package/knowledge/patterns/brand-identity.md +238 -0
- package/knowledge/patterns/brand-references.md +97 -0
- package/knowledge/patterns/chart-color-encoding.md +269 -0
- package/knowledge/patterns/chart-types.md +344 -0
- package/knowledge/patterns/dashboard-composition.md +299 -0
- package/knowledge/patterns/design-system-qa.md +356 -0
- package/knowledge/patterns/document-typography.md +248 -0
- package/knowledge/patterns/email-design.md +338 -0
- package/knowledge/patterns/empty-states.md +263 -0
- package/knowledge/patterns/error-states.md +318 -0
- package/knowledge/patterns/form-design.md +237 -0
- package/knowledge/patterns/information-architecture.md +341 -0
- package/knowledge/patterns/landing-hero-design.md +283 -0
- package/knowledge/patterns/landing-page-patterns.md +681 -0
- package/knowledge/patterns/list-and-feed.md +371 -0
- package/knowledge/patterns/mobile-navigation.md +278 -0
- package/knowledge/patterns/money-and-amount.md +301 -0
- package/knowledge/patterns/onboarding.md +300 -0
- package/knowledge/patterns/pricing-page-design.md +261 -0
- package/knowledge/patterns/realtime-data.md +280 -0
- package/knowledge/patterns/report-design.md +330 -0
- package/knowledge/patterns/search-ux.md +373 -0
- package/knowledge/patterns/settings-page.md +325 -0
- package/knowledge/patterns/slide-deck-design.md +316 -0
- package/knowledge/patterns/styles-catalog.md +2599 -0
- package/knowledge/patterns/technical-writing.md +306 -0
- package/knowledge/patterns/ui-reasoning.md +1853 -0
- package/knowledge/patterns/ux-guidelines.md +1454 -0
- package/knowledge/platforms/react-native.md +395 -0
- package/knowledge/print/brochures-and-flyers.md +276 -0
- package/knowledge/print/korean-print-conventions.md +284 -0
- package/knowledge/print/packaging.md +321 -0
- package/knowledge/print/print-fundamentals.md +238 -0
- package/knowledge/print/signage-and-posters.md +235 -0
- package/knowledge/print/stationery.md +262 -0
- package/knowledge/spatial/ar-patterns.md +253 -0
- package/knowledge/spatial/comfort-and-accessibility.md +245 -0
- package/knowledge/spatial/spatial-design-fundamentals.md +346 -0
- package/knowledge/spatial/spatial-ui-elements.md +343 -0
- package/knowledge/spatial/vr-patterns.md +302 -0
- package/knowledge/typography/font-pairings.md +332 -0
- package/knowledge/typography/mui-type-scale.md +57 -0
- package/knowledge/typography/type-scale-fundamentals.md +105 -0
- package/knowledge/video/in-product-video.md +277 -0
- package/knowledge/video/korean-video-conventions.md +247 -0
- package/knowledge/video/marketing-video.md +258 -0
- package/knowledge/video/social-and-short-form.md +257 -0
- package/knowledge/video/video-fundamentals.md +296 -0
- package/package.json +106 -0
- package/skills/README.md +39 -0
- package/skills/color-palette/PLAYBOOK.md +175 -0
- package/skills/color-palette/SKILL.md +6 -0
- package/skills/color-palette/TEMPLATE.md +103 -0
- package/skills/component-spec-writer/PLAYBOOK.md +169 -0
- package/skills/component-spec-writer/SKILL.md +6 -0
- package/skills/component-spec-writer/TEMPLATE.md +115 -0
- package/skills/conversational-ui-designer/PLAYBOOK.md +231 -0
- package/skills/conversational-ui-designer/SKILL.md +6 -0
- package/skills/design-broadcast/PLAYBOOK.md +146 -0
- package/skills/design-broadcast/SKILL.md +6 -0
- package/skills/design-critique/PLAYBOOK.md +137 -0
- package/skills/design-critique/SKILL.md +6 -0
- package/skills/design-pr-review/PLAYBOOK.md +171 -0
- package/skills/design-pr-review/SKILL.md +6 -0
- package/skills/design-system-builder/PLAYBOOK.md +218 -0
- package/skills/design-system-builder/SKILL.md +6 -0
- package/skills/design-system-qa/PLAYBOOK.md +163 -0
- package/skills/design-system-qa/SKILL.md +6 -0
- package/skills/document-author/PLAYBOOK.md +167 -0
- package/skills/document-author/SKILL.md +6 -0
- package/skills/figma-token-sync/PLAYBOOK.md +149 -0
- package/skills/figma-token-sync/SKILL.md +6 -0
- package/skills/game-ui-designer/PLAYBOOK.md +209 -0
- package/skills/game-ui-designer/SKILL.md +6 -0
- package/skills/handoff-spec/PLAYBOOK.md +170 -0
- package/skills/handoff-spec/SKILL.md +6 -0
- package/skills/illustration-designer/PLAYBOOK.md +166 -0
- package/skills/illustration-designer/SKILL.md +6 -0
- package/skills/motion-designer/PLAYBOOK.md +223 -0
- package/skills/motion-designer/SKILL.md +6 -0
- package/skills/print-designer/PLAYBOOK.md +209 -0
- package/skills/print-designer/SKILL.md +6 -0
- package/skills/slide-deck-author/PLAYBOOK.md +198 -0
- package/skills/slide-deck-author/SKILL.md +6 -0
- package/skills/spatial-designer/PLAYBOOK.md +238 -0
- package/skills/spatial-designer/SKILL.md +6 -0
- package/skills/ux-audit/PLAYBOOK.md +142 -0
- package/skills/ux-audit/SKILL.md +6 -0
- package/skills/video-designer/PLAYBOOK.md +240 -0
- package/skills/video-designer/SKILL.md +6 -0
- package/skills/website-improvement/PLAYBOOK.md +118 -0
- package/skills/website-improvement/SKILL.md +6 -0
- package/skills/website-improvement/TEMPLATE.md +103 -0
- package/tools/audit/changelog-generate.py +176 -0
- package/tools/audit/check-coverage.py +483 -0
- package/tools/audit/doctor_assertions.py +256 -0
- package/tools/audit/example-qa.py +108 -0
- package/tools/audit/frontmatter-check.py +199 -0
- package/tools/audit/integration-check.py +95 -0
- package/tools/audit/korean-copy-check.py +161 -0
- package/tools/audit/link-check.py +146 -0
- package/tools/audit/local-ci.py +558 -0
- package/tools/audit/package-contents.py +723 -0
- package/tools/audit/package-smoke.py +22443 -0
- package/tools/audit/raw-hex-check.py +252 -0
- package/tools/audit/registry-smoke.py +8188 -0
- package/tools/audit/release-metadata.py +9832 -0
- package/tools/audit/run-all.py +351 -0
- package/tools/audit/smoke_assertions.py +12742 -0
- package/tools/audit/stability-review.py +332 -0
- package/tools/audit/stale-check.py +156 -0
- package/tools/migrations/add-version-frontmatter.py +132 -0
- package/tools/migrations/bump-last-updated.py +131 -0
- package/tools/migrations/promote-stability.py +172 -0
- package/tools/preview/README.md +58 -0
- package/tools/preview/render-tokens.py +454 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: Tailwind CSS v4 default theme reference
|
|
4
|
+
applies_to: [tailwindcss, oklch, design-tokens, web]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Tailwind CSS v4 default theme
|
|
11
|
+
|
|
12
|
+
Tailwind v4 ships an OKLCH-based default theme that's the most commonly used token set in modern web product UIs. Worth knowing as a reference, even if you customize.
|
|
13
|
+
|
|
14
|
+
## Theme syntax
|
|
15
|
+
|
|
16
|
+
Tailwind v4 uses CSS-native `@theme` declarations:
|
|
17
|
+
|
|
18
|
+
```css
|
|
19
|
+
@import "tailwindcss";
|
|
20
|
+
|
|
21
|
+
@theme {
|
|
22
|
+
--color-primary-500: oklch(0.606 0.250 292.717);
|
|
23
|
+
--spacing: 0.25rem;
|
|
24
|
+
--font-sans: 'Inter', sans-serif;
|
|
25
|
+
/* ... */
|
|
26
|
+
}
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Variables become utility classes automatically (`bg-primary-500`, `p-4`, `font-sans`).
|
|
30
|
+
|
|
31
|
+
## Color scale (the hero feature)
|
|
32
|
+
|
|
33
|
+
Tailwind v4's default colors are OKLCH-derived. **Each scale is perceptually uniform** — step from 100 to 200 is visually the same magnitude as 800 to 900. This is the headline change from v3.
|
|
34
|
+
|
|
35
|
+
### Color families
|
|
36
|
+
|
|
37
|
+
22 default color families × 11 steps each = 242 default colors. Listed below in OKLCH rotation order:
|
|
38
|
+
|
|
39
|
+
```
|
|
40
|
+
red, orange, amber, yellow, lime, green, emerald, teal, cyan,
|
|
41
|
+
sky, blue, indigo, violet, purple, fuchsia, pink, rose,
|
|
42
|
+
slate, gray, zinc, neutral, stone
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
The first 17 are chromatic; the last 5 are neutral grays with subtle hue tints.
|
|
46
|
+
|
|
47
|
+
### Steps (per family)
|
|
48
|
+
|
|
49
|
+
`50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950`
|
|
50
|
+
|
|
51
|
+
### Lightness mapping (consistent across families)
|
|
52
|
+
|
|
53
|
+
| Step | Approximate OKLCH `L` |
|
|
54
|
+
| --- | --- |
|
|
55
|
+
| 50 | 0.96–0.98 |
|
|
56
|
+
| 100 | 0.93–0.95 |
|
|
57
|
+
| 200 | 0.87–0.90 |
|
|
58
|
+
| 300 | 0.78–0.82 |
|
|
59
|
+
| 400 | 0.65–0.72 |
|
|
60
|
+
| 500 | 0.55–0.62 |
|
|
61
|
+
| 600 | 0.49–0.55 |
|
|
62
|
+
| 700 | 0.42–0.49 |
|
|
63
|
+
| 800 | 0.36–0.43 |
|
|
64
|
+
| 900 | 0.30–0.38 |
|
|
65
|
+
| 950 | 0.18–0.28 |
|
|
66
|
+
|
|
67
|
+
**Step 600 hits ~4.5:1 on white** for most chromatic colors — this is the canonical "primary brand" anchor. Step 500 hits ~3:1 (UI-sized only).
|
|
68
|
+
|
|
69
|
+
### Sample family — violet
|
|
70
|
+
|
|
71
|
+
```css
|
|
72
|
+
@theme {
|
|
73
|
+
--color-violet-50: oklch(0.969 0.016 293.756); /* #F5F3FF */
|
|
74
|
+
--color-violet-100: oklch(0.943 0.029 294.588); /* #EDE9FE */
|
|
75
|
+
--color-violet-200: oklch(0.894 0.057 293.283); /* #DDD6FE */
|
|
76
|
+
--color-violet-300: oklch(0.811 0.111 293.571); /* #C4B5FD */
|
|
77
|
+
--color-violet-400: oklch(0.702 0.183 293.541); /* #A78BFA */
|
|
78
|
+
--color-violet-500: oklch(0.606 0.250 292.717); /* #8B5CF6 */
|
|
79
|
+
--color-violet-600: oklch(0.541 0.281 293.009); /* #7C3AED */
|
|
80
|
+
--color-violet-700: oklch(0.491 0.270 292.581); /* #6D28D9 */
|
|
81
|
+
--color-violet-800: oklch(0.432 0.232 292.759); /* #5B21B6 */
|
|
82
|
+
--color-violet-900: oklch(0.381 0.176 293.745); /* #4C1D95 */
|
|
83
|
+
--color-violet-950: oklch(0.283 0.141 291.089); /* #2E1065 */
|
|
84
|
+
}
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Spacing
|
|
88
|
+
|
|
89
|
+
Tailwind v4 default uses a single `--spacing` base, with utilities scaling it:
|
|
90
|
+
|
|
91
|
+
```css
|
|
92
|
+
@theme {
|
|
93
|
+
--spacing: 0.25rem; /* 4px (assuming 16px root) */
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
| Class | Value |
|
|
98
|
+
| --- | --- |
|
|
99
|
+
| `p-1` | 4px |
|
|
100
|
+
| `p-2` | 8px |
|
|
101
|
+
| `p-3` | 12px |
|
|
102
|
+
| `p-4` | 16px |
|
|
103
|
+
| `p-5` | 20px |
|
|
104
|
+
| `p-6` | 24px |
|
|
105
|
+
| `p-8` | 32px |
|
|
106
|
+
| `p-10` | 40px |
|
|
107
|
+
| `p-12` | 48px |
|
|
108
|
+
| `p-16` | 64px |
|
|
109
|
+
| `p-20` | 80px |
|
|
110
|
+
| `p-24` | 96px |
|
|
111
|
+
|
|
112
|
+
Aligns with our 4-base scale per [`layout/spacing-and-grid.md`](../layout/spacing-and-grid.md).
|
|
113
|
+
|
|
114
|
+
## Typography
|
|
115
|
+
|
|
116
|
+
```css
|
|
117
|
+
@theme {
|
|
118
|
+
--font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
|
|
119
|
+
--font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif;
|
|
120
|
+
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
System-font stacks are the default — performant, no FOUT.
|
|
125
|
+
|
|
126
|
+
### Type scale
|
|
127
|
+
|
|
128
|
+
| Class | Size | Line height |
|
|
129
|
+
| --- | --- | --- |
|
|
130
|
+
| `text-xs` | 12px | 16px (1.33) |
|
|
131
|
+
| `text-sm` | 14px | 20px (1.43) |
|
|
132
|
+
| `text-base` | 16px | 24px (1.5) |
|
|
133
|
+
| `text-lg` | 18px | 28px (1.56) |
|
|
134
|
+
| `text-xl` | 20px | 28px (1.4) |
|
|
135
|
+
| `text-2xl` | 24px | 32px (1.33) |
|
|
136
|
+
| `text-3xl` | 30px | 36px (1.2) |
|
|
137
|
+
| `text-4xl` | 36px | 40px (1.11) |
|
|
138
|
+
| `text-5xl` | 48px | 1 |
|
|
139
|
+
| `text-6xl` | 60px | 1 |
|
|
140
|
+
| `text-7xl` | 72px | 1 |
|
|
141
|
+
| `text-8xl` | 96px | 1 |
|
|
142
|
+
| `text-9xl` | 128px | 1 |
|
|
143
|
+
|
|
144
|
+
Note: large sizes (`5xl+`) drop to `line-height: 1` (display use). Body sizes have generous leading.
|
|
145
|
+
|
|
146
|
+
### Weights
|
|
147
|
+
|
|
148
|
+
`font-thin` 100 / `font-extralight` 200 / `font-light` 300 / `font-normal` 400 / `font-medium` 500 / `font-semibold` 600 / `font-bold` 700 / `font-extrabold` 800 / `font-black` 900.
|
|
149
|
+
|
|
150
|
+
## Breakpoints
|
|
151
|
+
|
|
152
|
+
```css
|
|
153
|
+
@theme {
|
|
154
|
+
--breakpoint-sm: 40rem; /* 640px */
|
|
155
|
+
--breakpoint-md: 48rem; /* 768px */
|
|
156
|
+
--breakpoint-lg: 64rem; /* 1024px */
|
|
157
|
+
--breakpoint-xl: 80rem; /* 1280px */
|
|
158
|
+
--breakpoint-2xl: 96rem; /* 1536px */
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Mobile-first: utilities apply at all sizes by default; `md:bg-blue-500` applies at ≥ 768px.
|
|
163
|
+
|
|
164
|
+
## Border radius
|
|
165
|
+
|
|
166
|
+
| Class | Value |
|
|
167
|
+
| --- | --- |
|
|
168
|
+
| `rounded-none` | 0 |
|
|
169
|
+
| `rounded-sm` | 0.125rem (2px) |
|
|
170
|
+
| `rounded` | 0.25rem (4px) |
|
|
171
|
+
| `rounded-md` | 0.375rem (6px) |
|
|
172
|
+
| `rounded-lg` | 0.5rem (8px) |
|
|
173
|
+
| `rounded-xl` | 0.75rem (12px) |
|
|
174
|
+
| `rounded-2xl` | 1rem (16px) |
|
|
175
|
+
| `rounded-3xl` | 1.5rem (24px) |
|
|
176
|
+
| `rounded-full` | 9999px |
|
|
177
|
+
|
|
178
|
+
## Shadows
|
|
179
|
+
|
|
180
|
+
```
|
|
181
|
+
shadow-2xs / shadow-xs / shadow-sm / shadow /
|
|
182
|
+
shadow-md / shadow-lg / shadow-xl / shadow-2xl /
|
|
183
|
+
shadow-inner / shadow-none
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Default values use `rgb(0 0 0 / x)` with varying offset and blur.
|
|
187
|
+
|
|
188
|
+
## Transitions
|
|
189
|
+
|
|
190
|
+
| Class | Properties |
|
|
191
|
+
| --- | --- |
|
|
192
|
+
| `transition` | most common (color, bg, border, opacity, shadow, transform, filter, backdrop-filter) |
|
|
193
|
+
| `transition-all` | everything (avoid in production) |
|
|
194
|
+
| `transition-colors` | color-only |
|
|
195
|
+
| `transition-opacity` | opacity-only |
|
|
196
|
+
| `transition-shadow` | shadow-only |
|
|
197
|
+
| `transition-transform` | transform-only |
|
|
198
|
+
|
|
199
|
+
Default duration `150ms`, ease `cubic-bezier(0.4, 0, 0.2, 1)`.
|
|
200
|
+
|
|
201
|
+
| Class | Duration |
|
|
202
|
+
| --- | --- |
|
|
203
|
+
| `duration-75` | 75ms |
|
|
204
|
+
| `duration-100` | 100ms |
|
|
205
|
+
| `duration-150` | 150ms |
|
|
206
|
+
| `duration-200` | 200ms |
|
|
207
|
+
| `duration-300` | 300ms |
|
|
208
|
+
| `duration-500` | 500ms |
|
|
209
|
+
| `duration-700` | 700ms |
|
|
210
|
+
| `duration-1000` | 1000ms |
|
|
211
|
+
|
|
212
|
+
Consistent with [`motion/principles.md`](../motion/principles.md) duration tiers.
|
|
213
|
+
|
|
214
|
+
## Z-index scale
|
|
215
|
+
|
|
216
|
+
`z-0`, `z-10`, `z-20`, `z-30`, `z-40`, `z-50`, `z-auto`.
|
|
217
|
+
|
|
218
|
+
For component systems with modals/popovers/tooltips: extend with semantic z-tokens (`--z-modal`, `--z-popover`, etc.) above this default.
|
|
219
|
+
|
|
220
|
+
## Dark mode
|
|
221
|
+
|
|
222
|
+
Tailwind v4 supports two strategies:
|
|
223
|
+
|
|
224
|
+
### Media query (default)
|
|
225
|
+
|
|
226
|
+
```css
|
|
227
|
+
.dark\:bg-slate-900 { ... }
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Applied via `@media (prefers-color-scheme: dark)`.
|
|
231
|
+
|
|
232
|
+
### Class-based (most product apps)
|
|
233
|
+
|
|
234
|
+
```css
|
|
235
|
+
@variant dark (&:where(.dark, .dark *));
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Then `<html class="dark">` toggles dark mode globally.
|
|
239
|
+
|
|
240
|
+
### Token override
|
|
241
|
+
|
|
242
|
+
```css
|
|
243
|
+
@theme {
|
|
244
|
+
--color-bg: oklch(1 0 0); /* white */
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@layer base {
|
|
248
|
+
.dark {
|
|
249
|
+
--color-bg: oklch(0.18 0 0); /* near-black */
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## How to customize
|
|
255
|
+
|
|
256
|
+
To make Tailwind v4 yours:
|
|
257
|
+
|
|
258
|
+
1. Override `@theme` with your brand tokens.
|
|
259
|
+
2. Add semantic aliases:
|
|
260
|
+
```css
|
|
261
|
+
@theme {
|
|
262
|
+
--color-primary-default: var(--color-violet-600);
|
|
263
|
+
--color-primary-hover: var(--color-violet-700);
|
|
264
|
+
}
|
|
265
|
+
```
|
|
266
|
+
3. Drop unused color families if bundle size matters (Tailwind tree-shakes; minimal concern).
|
|
267
|
+
|
|
268
|
+
## When NOT to use Tailwind v4 defaults
|
|
269
|
+
|
|
270
|
+
- **Brand has very specific palette**: replace the chromatic families with your brand ramps.
|
|
271
|
+
- **Korean fintech needing red=up convention**: replace `--color-money-positive` / `--color-money-negative` semantically; keep primary scale.
|
|
272
|
+
- **Material Design alignment**: use Material 3 tokens instead — see [`material-3.md`](material-3.md).
|
|
273
|
+
- **Apps where `oklch()` browser support matters** (older browsers): provide hex fallbacks via PostCSS plugin or extract hex equivalents.
|
|
274
|
+
|
|
275
|
+
## Worked example using Tailwind v4
|
|
276
|
+
|
|
277
|
+
See [`examples/palette-saas-violet.md`](../../examples/palette-saas-violet.md) for a complete palette generated from Tailwind v4 violet ramps.
|
|
278
|
+
|
|
279
|
+
## Cross-reference
|
|
280
|
+
|
|
281
|
+
- [`knowledge/colors/color-theory.md`](../colors/color-theory.md) — OKLCH rationale, ramp construction
|
|
282
|
+
- [`knowledge/design-tokens/material-3.md`](material-3.md) — alternative HCT-based token system
|
|
283
|
+
- [`knowledge/design-tokens/ant-design.md`](ant-design.md) — alternative seed-token system
|
|
284
|
+
- [Tailwind CSS v4 docs](https://tailwindcss.com/docs/theme)
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: Game accessibility (subtitles, color-blind, remap, motor, cognitive)
|
|
4
|
+
applies_to: [game-ui, accessibility, a11y]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Game accessibility
|
|
11
|
+
|
|
12
|
+
Games are entertainment for everyone. ~15% of the global population has some disability; for games specifically, the impact areas are vision, hearing, motor, and cognitive.
|
|
13
|
+
|
|
14
|
+
Modern AAA games (The Last of Us Part II, Forza Horizon, God of War Ragnarök) have raised the bar dramatically. Korean games are catching up, but still trail Western.
|
|
15
|
+
|
|
16
|
+
## The four axes
|
|
17
|
+
|
|
18
|
+
### 1. Vision
|
|
19
|
+
|
|
20
|
+
- **Low vision**: small text, low contrast.
|
|
21
|
+
- **Color blindness**: red-green most common.
|
|
22
|
+
- **Total blindness**: rare in games; some screen-reader-supported games exist.
|
|
23
|
+
|
|
24
|
+
### 2. Hearing
|
|
25
|
+
|
|
26
|
+
- **Deaf / hard-of-hearing**: missing audio cues, missing dialogue.
|
|
27
|
+
- **Sound sensitivity**: loud, sudden sounds.
|
|
28
|
+
|
|
29
|
+
### 3. Motor / physical
|
|
30
|
+
|
|
31
|
+
- **Limited dexterity**: rapid button presses, complex combos.
|
|
32
|
+
- **Single-hand**: many games assume two hands on controller.
|
|
33
|
+
- **Cognitive impact on motor**: tremor, RSI.
|
|
34
|
+
|
|
35
|
+
### 4. Cognitive
|
|
36
|
+
|
|
37
|
+
- **Reading speed**: subtitle pace.
|
|
38
|
+
- **Attention / focus**: complex HUDs.
|
|
39
|
+
- **Memory**: long sequences without notes.
|
|
40
|
+
- **Reaction time**: time-pressured mechanics.
|
|
41
|
+
|
|
42
|
+
## Universal options menu (the new standard)
|
|
43
|
+
|
|
44
|
+
Modern games surface accessibility options prominently. Often a separate top-level menu (not buried under "Options").
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
┌──────────────────────────────────┐
|
|
48
|
+
│ Accessibility │
|
|
49
|
+
│ ─────────── │
|
|
50
|
+
│ │
|
|
51
|
+
│ Display │
|
|
52
|
+
│ • Subtitles [On] │
|
|
53
|
+
│ • Subtitle size [Med] │
|
|
54
|
+
│ • Subtitle background [On] │
|
|
55
|
+
│ • Color-blind mode [Off] │
|
|
56
|
+
│ • High contrast [Off] │
|
|
57
|
+
│ • Brightness [50%] │
|
|
58
|
+
│ • Reduce motion [Off] │
|
|
59
|
+
│ │
|
|
60
|
+
│ Audio │
|
|
61
|
+
│ • Visual sound indicators [Off]│
|
|
62
|
+
│ • Music volume [80%] │
|
|
63
|
+
│ • Voice volume [100%] │
|
|
64
|
+
│ │
|
|
65
|
+
│ Controls │
|
|
66
|
+
│ • Remap buttons ▶ │
|
|
67
|
+
│ • Toggle hold-to-press [On] │
|
|
68
|
+
│ • Auto-aim [Off] │
|
|
69
|
+
│ │
|
|
70
|
+
│ Difficulty │
|
|
71
|
+
│ • Combat difficulty [Normal]│
|
|
72
|
+
│ • Puzzle hints [On] │
|
|
73
|
+
│ • Story mode [Off]│
|
|
74
|
+
└──────────────────────────────────┘
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Subtitles + closed captions
|
|
78
|
+
|
|
79
|
+
Subtitles: dialogue. Closed captions: dialogue + audio cues ("[footsteps approaching]").
|
|
80
|
+
|
|
81
|
+
| Setting | Default | Options |
|
|
82
|
+
| --- | --- | --- |
|
|
83
|
+
| **On / off** | On | binary |
|
|
84
|
+
| **Size** | Medium | Small / Med / Large / X-Large |
|
|
85
|
+
| **Background** | Semi-transparent | None / Light / Dark / Black |
|
|
86
|
+
| **Color** | White | White / Yellow / Custom |
|
|
87
|
+
| **Speaker name** | On | binary |
|
|
88
|
+
| **Sound effect cues** | Off | binary |
|
|
89
|
+
|
|
90
|
+
For Korean games:
|
|
91
|
+
- 자막 default ON (high default expectation).
|
|
92
|
+
- Pretendard / NanumSquare; readable at distance.
|
|
93
|
+
- Color contrast WCAG AA minimum.
|
|
94
|
+
|
|
95
|
+
### Speaker labels
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
[Character name]: 안녕하세요!
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Or color-coded per speaker:
|
|
102
|
+
```
|
|
103
|
+
[Hero — blue]: ...
|
|
104
|
+
[Villain — red]: ...
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Color-blind modes
|
|
108
|
+
|
|
109
|
+
Three main types:
|
|
110
|
+
- **Protanopia / Protanomaly**: red-blind / weak.
|
|
111
|
+
- **Deuteranopia / Deuteranomaly**: green-blind / weak.
|
|
112
|
+
- **Tritanopia / Tritanomaly**: blue-yellow blind.
|
|
113
|
+
|
|
114
|
+
Most common: red-green (deuteranopia ~6% of men).
|
|
115
|
+
|
|
116
|
+
### Approaches
|
|
117
|
+
|
|
118
|
+
| Approach | Pros | Cons |
|
|
119
|
+
| --- | --- | --- |
|
|
120
|
+
| **Color-blind preset filters** | Easy toggle | Affects whole game appearance |
|
|
121
|
+
| **Color-blind-aware design from start** | No filter needed | More design work upfront |
|
|
122
|
+
| **Custom color picker** | Player tunes individually | More complex UX |
|
|
123
|
+
|
|
124
|
+
Best practice: **don't rely on color alone**. Reinforce with shape, pattern, position, or text:
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
Red enemy: [shape: skull icon] + red color
|
|
128
|
+
Green ally: [shape: shield icon] + green color
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Then color-blind filter is a backup, not the only way.
|
|
132
|
+
|
|
133
|
+
For Korean MMO context:
|
|
134
|
+
- Many enemies / allies use color exclusively. Modernize with shape redundancy.
|
|
135
|
+
- Damage type icons (fire / ice / lightning) help.
|
|
136
|
+
|
|
137
|
+
## Motor accessibility
|
|
138
|
+
|
|
139
|
+
### Remappable controls
|
|
140
|
+
|
|
141
|
+
EVERY button must be remappable. No exceptions.
|
|
142
|
+
|
|
143
|
+
### Toggle vs hold
|
|
144
|
+
|
|
145
|
+
For sustained actions (sprint, aim down sights):
|
|
146
|
+
- **Hold** is default (intuitive).
|
|
147
|
+
- **Toggle** option (less finger strain).
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Sprint: [Hold to sprint] / [Toggle sprint]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### Auto-aim / aim assist
|
|
154
|
+
|
|
155
|
+
- **Off / Low / Medium / High** levels.
|
|
156
|
+
- Helps reduced-dexterity players.
|
|
157
|
+
- Competitive games may disable in PvP for fairness.
|
|
158
|
+
|
|
159
|
+
### Reduce QTE (quick-time events)
|
|
160
|
+
|
|
161
|
+
For QTEs (rapid button presses):
|
|
162
|
+
- **Hold instead of press repeatedly** option.
|
|
163
|
+
- **Auto-complete** option.
|
|
164
|
+
- **Disable** option (may skip cinematic).
|
|
165
|
+
|
|
166
|
+
### Difficulty options
|
|
167
|
+
|
|
168
|
+
Common tiers:
|
|
169
|
+
- **Story mode** — minimal challenge; focus on narrative.
|
|
170
|
+
- **Easy** — forgiving.
|
|
171
|
+
- **Normal** — default.
|
|
172
|
+
- **Hard** — challenging.
|
|
173
|
+
- **Expert / Nightmare** — punishing.
|
|
174
|
+
|
|
175
|
+
Difficulty should be changeable mid-game. Don't lock players into a choice from main menu.
|
|
176
|
+
|
|
177
|
+
## Cognitive accessibility
|
|
178
|
+
|
|
179
|
+
### HUD options
|
|
180
|
+
|
|
181
|
+
- **HUD on / off** toggle.
|
|
182
|
+
- **Element-level toggles** (hide compass but show health).
|
|
183
|
+
- **HUD scale** (50%-200%).
|
|
184
|
+
- **Damage number visibility**.
|
|
185
|
+
|
|
186
|
+
### Hint systems
|
|
187
|
+
|
|
188
|
+
For puzzles:
|
|
189
|
+
- **Auto-hint after N seconds**.
|
|
190
|
+
- **Manual hint button**.
|
|
191
|
+
- **Walkthrough mode** (full solve).
|
|
192
|
+
|
|
193
|
+
Don't lock progression behind cognitively-difficult puzzle.
|
|
194
|
+
|
|
195
|
+
### Tutorial
|
|
196
|
+
|
|
197
|
+
- **Skip tutorial** (after first time).
|
|
198
|
+
- **Replay tutorial** (open via menu).
|
|
199
|
+
- **Tooltips toggle**.
|
|
200
|
+
|
|
201
|
+
### Save anywhere / save often
|
|
202
|
+
|
|
203
|
+
Don't require players to play 30+ minutes between saves. Allow:
|
|
204
|
+
- **Manual save anywhere**.
|
|
205
|
+
- **Auto-save frequently**.
|
|
206
|
+
- **Cloud save** for cross-device.
|
|
207
|
+
|
|
208
|
+
## Hearing accessibility
|
|
209
|
+
|
|
210
|
+
### Visual sound indicators
|
|
211
|
+
|
|
212
|
+
Show direction-of-sound for important audio cues:
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
[player center]
|
|
216
|
+
↗ footsteps (faint)
|
|
217
|
+
← gunshot (loud)
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Direction + intensity visualization. Critical for FPS deaf players.
|
|
221
|
+
|
|
222
|
+
### Subtitled SFX
|
|
223
|
+
|
|
224
|
+
Closed captions extend to:
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
[door creaking]
|
|
228
|
+
[distant explosion]
|
|
229
|
+
[heart beating fast]
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Less common; Last of Us Part II does this well.
|
|
233
|
+
|
|
234
|
+
### Audio sliders
|
|
235
|
+
|
|
236
|
+
Per-channel:
|
|
237
|
+
- Master.
|
|
238
|
+
- Music.
|
|
239
|
+
- Dialogue.
|
|
240
|
+
- SFX.
|
|
241
|
+
- Ambient.
|
|
242
|
+
- Voice chat (multiplayer).
|
|
243
|
+
|
|
244
|
+
Player can mute music, keep dialogue audible.
|
|
245
|
+
|
|
246
|
+
## Motion sickness / reduced motion
|
|
247
|
+
|
|
248
|
+
- **Camera shake** off / reduced.
|
|
249
|
+
- **Field of view** adjustable (wider FOV = less nausea for some).
|
|
250
|
+
- **Motion blur** off.
|
|
251
|
+
- **Chromatic aberration** off.
|
|
252
|
+
- **Head bob** off.
|
|
253
|
+
- **Vignette** off.
|
|
254
|
+
|
|
255
|
+
For VR specifically: comfort options critical (teleport vs smooth locomotion, reduced peripheral vision).
|
|
256
|
+
|
|
257
|
+
## Color contrast in game UI
|
|
258
|
+
|
|
259
|
+
WCAG-aligned guidelines:
|
|
260
|
+
- **Body text**: 4.5:1 contrast against background.
|
|
261
|
+
- **Large text** (18pt+): 3:1.
|
|
262
|
+
- **HUD numbers**: 4.5:1 minimum.
|
|
263
|
+
- **Subtitles**: 7:1 (higher because over moving backgrounds).
|
|
264
|
+
|
|
265
|
+
Use a contrast checker. Don't ship with low-contrast UI.
|
|
266
|
+
|
|
267
|
+
## Korean game accessibility
|
|
268
|
+
|
|
269
|
+
Korean games have historically had less accessibility focus. Catching up:
|
|
270
|
+
- 자막 toggles standard.
|
|
271
|
+
- Color-blind options increasingly common.
|
|
272
|
+
- Auto-battle helps motor-impaired (functional accessibility).
|
|
273
|
+
- Localized subtitles (Korean / Japanese / Chinese / English).
|
|
274
|
+
|
|
275
|
+
Areas where Korean games often lag:
|
|
276
|
+
- Screen reader support (rare).
|
|
277
|
+
- Visual sound indicators (rare).
|
|
278
|
+
- Comprehensive remap (some games).
|
|
279
|
+
|
|
280
|
+
Korean players with disabilities increasingly demand parity. Catching up to Western standards is a 2024+ trend.
|
|
281
|
+
|
|
282
|
+
## Testing for accessibility
|
|
283
|
+
|
|
284
|
+
Recommended:
|
|
285
|
+
- **Test with players with disabilities**. AbleGamers, Special Effect provide consulting.
|
|
286
|
+
- **Color-blind simulation tools** (Sim Daltonism, Color Oracle).
|
|
287
|
+
- **Play with mute** (subtitle test).
|
|
288
|
+
- **Play with one hand** (motor test).
|
|
289
|
+
- **Play at low resolution / blurred** (vision test).
|
|
290
|
+
|
|
291
|
+
## Resources
|
|
292
|
+
|
|
293
|
+
- **AbleGamers** — accessibility consulting + community.
|
|
294
|
+
- **Special Effect** — UK-based gaming accessibility.
|
|
295
|
+
- **Game Accessibility Guidelines** (gameaccessibilityguidelines.com) — comprehensive checklist.
|
|
296
|
+
- **CVAA** — US Communications and Video Accessibility Act; affects some online gaming.
|
|
297
|
+
- **EU EAA** — EU Accessibility Act; mobile games included from 2025.
|
|
298
|
+
|
|
299
|
+
## Don't
|
|
300
|
+
|
|
301
|
+
- Don't bury accessibility in submenus. Top-level menu.
|
|
302
|
+
- Don't lock difficulty.
|
|
303
|
+
- Don't make accessibility opt-in for everything. Some defaults should be on (subtitles).
|
|
304
|
+
- Don't rely only on color for crucial info.
|
|
305
|
+
- Don't make remapping require an external tool.
|
|
306
|
+
- Don't skip QTE accessibility.
|
|
307
|
+
- Don't make tutorials non-skippable.
|
|
308
|
+
- Don't ignore Korean players with disabilities. Same demands, same standards.
|
|
309
|
+
|
|
310
|
+
## Cross-reference
|
|
311
|
+
|
|
312
|
+
- [`knowledge/game-ui/game-ui-fundamentals.md`](game-ui-fundamentals.md) — fundamentals
|
|
313
|
+
- [`knowledge/game-ui/hud-design.md`](hud-design.md) — HUD a11y
|
|
314
|
+
- [`knowledge/game-ui/menu-systems.md`](menu-systems.md) — settings menu
|
|
315
|
+
- [`knowledge/game-ui/korean-gaming-conventions.md`](korean-gaming-conventions.md) — KR market
|
|
316
|
+
- [`knowledge/a11y/contrast.md`](../a11y/contrast.md) — color contrast standards
|
|
317
|
+
- [`knowledge/a11y/keyboard-and-focus.md`](../a11y/keyboard-and-focus.md) — keyboard / focus
|