@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,262 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: Stationery (business cards, letterhead, envelopes)
|
|
4
|
+
applies_to: [print, stationery, business-card, brand]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Stationery
|
|
11
|
+
|
|
12
|
+
Business cards, letterhead, envelopes — the most-touched physical brand surface. Read [`print-fundamentals.md`](print-fundamentals.md) first for CMYK / bleed / paper.
|
|
13
|
+
|
|
14
|
+
## Business cards
|
|
15
|
+
|
|
16
|
+
The smallest, most-touched, most-defining piece of brand stationery. People judge a brand from a card in 5 seconds.
|
|
17
|
+
|
|
18
|
+
### Sizes
|
|
19
|
+
|
|
20
|
+
| Region | Size (mm) | Notes |
|
|
21
|
+
| --- | --- | --- |
|
|
22
|
+
| Korean 명함 | **90 × 50** | Standard. Slightly larger than international. |
|
|
23
|
+
| International | 85 × 55 | Most Western markets |
|
|
24
|
+
| US | 88.9 × 50.8 (3.5" × 2") | Slight variant |
|
|
25
|
+
| Japan | 91 × 55 | Slightly different again |
|
|
26
|
+
| Square | 65 × 65 | Boutique / creative |
|
|
27
|
+
| Mini | 70 × 28 | Designer / unconventional |
|
|
28
|
+
|
|
29
|
+
If your brand is Korean primary: **use 90 × 50mm**. Western cards in Korean wallets stick out (literal physical inconvenience).
|
|
30
|
+
|
|
31
|
+
### Anatomy
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
┌──────────────────────────────────┐
|
|
35
|
+
│ │
|
|
36
|
+
│ [Logo] │
|
|
37
|
+
│ │
|
|
38
|
+
│ Name 이름 (large) │
|
|
39
|
+
│ Title 직책 (medium) │
|
|
40
|
+
│ │
|
|
41
|
+
│ Company 회사 (small) │
|
|
42
|
+
│ ─────────── │
|
|
43
|
+
│ Phone 전화 │
|
|
44
|
+
│ Email 이메일 │
|
|
45
|
+
│ Address 주소 │
|
|
46
|
+
│ │
|
|
47
|
+
└──────────────────────────────────┘
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Front: identity (logo, name, title).
|
|
51
|
+
Back: contact info OR pure brand (just the logo big).
|
|
52
|
+
|
|
53
|
+
### Information hierarchy
|
|
54
|
+
|
|
55
|
+
Critical: **name + title + one contact method**. Everything else is secondary.
|
|
56
|
+
|
|
57
|
+
A card with too much info is a card people don't read:
|
|
58
|
+
- ✗ Phone, mobile, fax, email, web, two addresses, social handles, QR code
|
|
59
|
+
- ✓ Name, title, mobile, email
|
|
60
|
+
|
|
61
|
+
For Korean B2B: company name + position + mobile + email is the minimum. 회사 주소 if office-based.
|
|
62
|
+
|
|
63
|
+
### Bilingual cards (Korean + English)
|
|
64
|
+
|
|
65
|
+
Korean B2B cards are often bilingual:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Front (Korean): Back (English):
|
|
69
|
+
───────────── ─────────────
|
|
70
|
+
김철수 Cheolsu Kim
|
|
71
|
+
대표 / 디자이너 CEO / Designer
|
|
72
|
+
|
|
73
|
+
회사명 Company name
|
|
74
|
+
010-1234-5678 010-1234-5678
|
|
75
|
+
chulsu@company.com chulsu@company.com
|
|
76
|
+
서울 강남구 ... Seoul, Gangnam-gu, ...
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Or both languages on the same side (compact):
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
김철수 / Cheolsu Kim
|
|
83
|
+
대표 / CEO
|
|
84
|
+
|
|
85
|
+
010-1234-5678 | chulsu@company.com
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For Korean → international audiences: bilingual is expected.
|
|
89
|
+
For Korean-only domestic: Korean only is fine, more space for hierarchy.
|
|
90
|
+
For international primary: English only OK.
|
|
91
|
+
|
|
92
|
+
### Typography on business cards
|
|
93
|
+
|
|
94
|
+
- **Name**: 10-14pt (small enough to fit, large enough to read).
|
|
95
|
+
- **Title**: 8-10pt.
|
|
96
|
+
- **Contact**: 7-9pt.
|
|
97
|
+
|
|
98
|
+
Don't go below 6pt. Don't go above 16pt for name (looks shouty).
|
|
99
|
+
|
|
100
|
+
For Korean: Pretendard, Spoqa Han Sans Neo, AppleSDGothicNeo, NanumSquare are common. Pretendard is the default modern choice.
|
|
101
|
+
|
|
102
|
+
For mixed Korean + English: pick a font that has both (Pretendard, Noto Sans CJK KR work well).
|
|
103
|
+
|
|
104
|
+
### Paper
|
|
105
|
+
|
|
106
|
+
Korean business card defaults:
|
|
107
|
+
- **250-300gsm matte coated** — most common, mid-tier quality.
|
|
108
|
+
- **300-350gsm uncoated** — environmental / artisanal feel.
|
|
109
|
+
- **350-400gsm + soft-touch lamination** — premium, soft tactile.
|
|
110
|
+
- **350gsm + foil stamp logo** — luxury, brand-critical.
|
|
111
|
+
|
|
112
|
+
Avoid:
|
|
113
|
+
- Thin 200gsm or below — feels cheap, bends in wallet.
|
|
114
|
+
- Glossy / shiny finish for B2B — reads as low-end mass-market.
|
|
115
|
+
|
|
116
|
+
### Finishes (premium)
|
|
117
|
+
|
|
118
|
+
| Finish | Effect | Cost premium |
|
|
119
|
+
| --- | --- | --- |
|
|
120
|
+
| **Spot UV on logo** (matte stock + glossy logo only) | Tactile contrast | +15-30% |
|
|
121
|
+
| **Foil stamp** (gold / silver / copper / holographic) | Metallic shine | +30-100% |
|
|
122
|
+
| **Letterpress / 활판** | Antique-feel impression | +50-100% |
|
|
123
|
+
| **Emboss / 양각** (raised) | 3D logo | +30-60% |
|
|
124
|
+
| **Edge color** (painted edges) | Slim color line on edge | +20-40% |
|
|
125
|
+
| **Die-cut shape** (rounded corners, custom shape) | Differentiated silhouette | +20-50% |
|
|
126
|
+
| **Soft-touch lamination** | Velvety feel | +20-40% |
|
|
127
|
+
|
|
128
|
+
Korean premium business cards often use 1-2 of these. Going above 2 reads as overdone.
|
|
129
|
+
|
|
130
|
+
### Common card mistakes
|
|
131
|
+
|
|
132
|
+
- **Type too small** to read at arm's length.
|
|
133
|
+
- **Margins too tight** — text bleeds to the edge, looks cramped.
|
|
134
|
+
- **Trim cut crops critical info** — content not in safe area.
|
|
135
|
+
- **QR codes too small** to scan reliably (minimum 1cm × 1cm).
|
|
136
|
+
- **CMYK conversion too late** — bright RGB color → dull on press.
|
|
137
|
+
- **Contrast too low** — pale gray text on white doesn't read.
|
|
138
|
+
- **Two-sided design ignoring orientation** — front portrait, back landscape, doesn't flip naturally.
|
|
139
|
+
|
|
140
|
+
## Letterhead
|
|
141
|
+
|
|
142
|
+
The branded letter format. Less common in 2024+ (most letters are PDF / email), but still required for:
|
|
143
|
+
- Legal correspondence.
|
|
144
|
+
- Formal business letters.
|
|
145
|
+
- Invoices on company letterhead.
|
|
146
|
+
- Certificates / awards.
|
|
147
|
+
|
|
148
|
+
### Anatomy
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
┌─────────────────────────────────┐
|
|
152
|
+
│ [Logo top-left] [Date right] │ ← header
|
|
153
|
+
│ │
|
|
154
|
+
│ Recipient name │
|
|
155
|
+
│ Recipient address │
|
|
156
|
+
│ │
|
|
157
|
+
│ Re: Subject │
|
|
158
|
+
│ │
|
|
159
|
+
│ Dear ___, │
|
|
160
|
+
│ │
|
|
161
|
+
│ [Letter body — 1.5 line spacing]│
|
|
162
|
+
│ ... │
|
|
163
|
+
│ │
|
|
164
|
+
│ Sincerely, │
|
|
165
|
+
│ [Signature space] │
|
|
166
|
+
│ Sender name │
|
|
167
|
+
│ │
|
|
168
|
+
│ ───────────────────────── │ ← footer
|
|
169
|
+
│ Company name | Address │
|
|
170
|
+
│ Phone | Email | Website │
|
|
171
|
+
└─────────────────────────────────┘
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Margins
|
|
175
|
+
|
|
176
|
+
| Margin | Top | Bottom | Left | Right |
|
|
177
|
+
| --- | --- | --- | --- | --- |
|
|
178
|
+
| Korean | 25-30mm | 25-30mm | 25-30mm | 25-30mm |
|
|
179
|
+
| Western | 1" / 25mm | 1" | 1.25" | 1" |
|
|
180
|
+
|
|
181
|
+
Equal margins look balanced. The recipient address is usually 2-3 lines below the header.
|
|
182
|
+
|
|
183
|
+
### Typography
|
|
184
|
+
|
|
185
|
+
- **Body**: 11-12pt, 1.5 line spacing.
|
|
186
|
+
- **Korean**: Pretendard / Spoqa Han Sans Neo at 11pt is comfortable.
|
|
187
|
+
- **English**: Garamond, Times, Georgia, Inter at 11pt.
|
|
188
|
+
|
|
189
|
+
Single column. Margins control line length (45-75 char per line ideal).
|
|
190
|
+
|
|
191
|
+
### Color
|
|
192
|
+
|
|
193
|
+
- Letterhead is usually 1-color or 2-color (black + brand color).
|
|
194
|
+
- 4-color CMYK letterhead is unusual — most letters print on personal printers (color = expensive).
|
|
195
|
+
- Logo can be brand color; body text always black (best printer compatibility).
|
|
196
|
+
|
|
197
|
+
## Envelopes
|
|
198
|
+
|
|
199
|
+
| Korean envelope | Size (mm) | Use |
|
|
200
|
+
| --- | --- | --- |
|
|
201
|
+
| **DL** | 220 × 110 | Business letters, fits A4 folded in thirds |
|
|
202
|
+
| **C5** | 229 × 162 | Half A4 |
|
|
203
|
+
| **C4** | 324 × 229 | Full A4 unfolded (legal documents) |
|
|
204
|
+
| **A6 / 카드 봉투** | 110 × 155 | Greeting cards, invitations |
|
|
205
|
+
|
|
206
|
+
### Layout
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
┌────────────────────────────────────┐
|
|
210
|
+
│ [Logo] │ ← top-left, small
|
|
211
|
+
│ │
|
|
212
|
+
│ │
|
|
213
|
+
│ Recipient name │ ← center or right
|
|
214
|
+
│ Address line 1 │
|
|
215
|
+
│ Address line 2 │
|
|
216
|
+
│ City, Postcode │
|
|
217
|
+
│ │
|
|
218
|
+
│ Sender info ───── │ ← bottom-left, small
|
|
219
|
+
│ Sender name │
|
|
220
|
+
│ Address │
|
|
221
|
+
└────────────────────────────────────┘
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
For Korean post: postcode (우편번호) goes in a designated box; the format depends on KEPCO standards.
|
|
225
|
+
|
|
226
|
+
For modern envelopes: window envelopes (with cut-out window showing address from the inserted letter) are more efficient — the same letter address shows through. Match the window position to the letter's address block.
|
|
227
|
+
|
|
228
|
+
## Stationery as a system
|
|
229
|
+
|
|
230
|
+
Stationery should feel like a coordinated set:
|
|
231
|
+
- **Same logo** across all pieces.
|
|
232
|
+
- **Same brand colors** (CMYK + Pantone matching).
|
|
233
|
+
- **Same paper** (or coordinated paper system: 350gsm card + 100gsm letterhead in same color).
|
|
234
|
+
- **Same typography**.
|
|
235
|
+
- **Same hierarchy** (logo always top-left, address always bottom).
|
|
236
|
+
|
|
237
|
+
Don't have a fancy gold-foil business card and a Word-template letterhead. Inconsistent = unprofessional.
|
|
238
|
+
|
|
239
|
+
## Production tips
|
|
240
|
+
|
|
241
|
+
- **Order business cards in 100s minimum** — single-card price is high.
|
|
242
|
+
- **Order letterhead in 250-500 minimum** — printers' minimum.
|
|
243
|
+
- **Order envelopes in 500 minimum** — usually MOQ.
|
|
244
|
+
- **Reorder triggers**: business cards every 6-12 months (text changes), letterhead every 12-24 months.
|
|
245
|
+
- **Test before bulk run**: order 1-10 sample cards first ($20-50), proof color + finish, then scale.
|
|
246
|
+
|
|
247
|
+
## Don't
|
|
248
|
+
|
|
249
|
+
- Don't put 5 contact methods on a business card. Pick 1-2 critical.
|
|
250
|
+
- Don't use multiple fonts in stationery — pick 1-2 max.
|
|
251
|
+
- Don't print Korean cards in international 85×55 size — odd in wallets.
|
|
252
|
+
- Don't ship cards with low contrast. Card readers (people in dim restaurants) need legible text.
|
|
253
|
+
- Don't change the layout halfway through a stationery order ("just change my card; letterhead stays old").
|
|
254
|
+
- Don't print stationery before brand identity is locked. Reprints = full cost.
|
|
255
|
+
|
|
256
|
+
## Cross-reference
|
|
257
|
+
|
|
258
|
+
- [`knowledge/print/print-fundamentals.md`](print-fundamentals.md) — CMYK, bleed, DPI
|
|
259
|
+
- [`knowledge/print/korean-print-conventions.md`](korean-print-conventions.md) — KR specifics
|
|
260
|
+
- [`knowledge/patterns/brand-identity.md`](../patterns/brand-identity.md) — logo + brand
|
|
261
|
+
- [`knowledge/typography/font-pairings.md`](../typography/font-pairings.md) — Pretendard + English pairings
|
|
262
|
+
- [`knowledge/i18n/korean-document-style.md`](../i18n/korean-document-style.md) — Korean honorific level on formal letters
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: AR patterns (mobile AR, headset MR, world-anchored UI)
|
|
4
|
+
applies_to: [ar, mixed-reality, augmented-reality, arkit, arcore, hololens]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# AR patterns
|
|
11
|
+
|
|
12
|
+
Augmented Reality and Mixed Reality. The user's real environment is enhanced with virtual content. Mobile AR (ARKit on iOS, ARCore on Android), headset MR (Vision Pro passthrough, Quest passthrough, HoloLens).
|
|
13
|
+
|
|
14
|
+
Read [`spatial-design-fundamentals.md`](spatial-design-fundamentals.md) first.
|
|
15
|
+
|
|
16
|
+
## AR vs VR — design differences
|
|
17
|
+
|
|
18
|
+
| | VR | AR |
|
|
19
|
+
| --- | --- | --- |
|
|
20
|
+
| Background | Fully virtual | Real environment |
|
|
21
|
+
| Lighting | Controlled | Variable (sun, lamps, dim) |
|
|
22
|
+
| Surfaces | Designed | User's room (random) |
|
|
23
|
+
| Movement | Locomotion-aware | Real walking |
|
|
24
|
+
| Privacy | Closed | Public (shared cameras) |
|
|
25
|
+
| Battery | Tethered or VR-class | Mobile / headset shared |
|
|
26
|
+
|
|
27
|
+
AR designs **survive variable conditions**. White text on an off-white wall? Unreadable. Plan for any background.
|
|
28
|
+
|
|
29
|
+
## Three AR contexts
|
|
30
|
+
|
|
31
|
+
### 1. Mobile handheld AR
|
|
32
|
+
|
|
33
|
+
iPhone / Android holding the device up:
|
|
34
|
+
- **Phone screen as window** to AR world.
|
|
35
|
+
- **One hand for device, one for interaction**.
|
|
36
|
+
- **Limited session length** (arm fatigue at 30s+).
|
|
37
|
+
- **Looking at phone, not real world** (different from VR / headset).
|
|
38
|
+
|
|
39
|
+
Examples: Pokemon GO, Snap filters, IKEA Place, Google Lens AR translate.
|
|
40
|
+
|
|
41
|
+
Design:
|
|
42
|
+
- Treat as a moving viewport.
|
|
43
|
+
- Critical UI on screen (not in world).
|
|
44
|
+
- Short interaction sessions.
|
|
45
|
+
- Small visual angles (limited screen).
|
|
46
|
+
|
|
47
|
+
### 2. AR glasses / headset (HoloLens, Vision Pro passthrough, Magic Leap)
|
|
48
|
+
|
|
49
|
+
Wearable; hands free:
|
|
50
|
+
- **Both hands free**.
|
|
51
|
+
- **Full FOV** (varies by device).
|
|
52
|
+
- **Real environment visible** through display.
|
|
53
|
+
- **Long sessions possible**.
|
|
54
|
+
|
|
55
|
+
Examples: HoloLens medical training, Vision Pro productivity (passthrough mode), industrial AR.
|
|
56
|
+
|
|
57
|
+
Design:
|
|
58
|
+
- World-anchored UI works.
|
|
59
|
+
- Hand interactions natural.
|
|
60
|
+
- Real-world context informs UI.
|
|
61
|
+
|
|
62
|
+
### 3. World-anchored AR (object recognition / mapping)
|
|
63
|
+
|
|
64
|
+
Virtual content anchored to real things:
|
|
65
|
+
- **Marker-based** (QR code, image triggers content).
|
|
66
|
+
- **Plane-detection** (place virtual furniture on detected floor).
|
|
67
|
+
- **Object recognition** (recognize a product, show overlay).
|
|
68
|
+
- **Persistent anchors** (content stays where user placed it across sessions).
|
|
69
|
+
|
|
70
|
+
Examples: IKEA Place (place furniture), Hyundai AR car configurator, museum AR exhibits.
|
|
71
|
+
|
|
72
|
+
## Visibility against real backgrounds
|
|
73
|
+
|
|
74
|
+
The hardest AR design problem.
|
|
75
|
+
|
|
76
|
+
### Strategies
|
|
77
|
+
|
|
78
|
+
| Strategy | When |
|
|
79
|
+
| --- | --- |
|
|
80
|
+
| **Solid background panel** | Default — opaque or semi-opaque rectangle behind UI |
|
|
81
|
+
| **Drop shadow / outline** | Floating text / icons; visible on most backgrounds |
|
|
82
|
+
| **High-contrast colors** | Bright UI, dark text — forces visibility |
|
|
83
|
+
| **Animated highlight** | Pulsing brings attention even on busy backgrounds |
|
|
84
|
+
| **Semi-transparent backdrop** | Blur the real world behind UI panel |
|
|
85
|
+
|
|
86
|
+
For mobile AR (iPhone): use semi-opaque dark panels; readable on any background.
|
|
87
|
+
|
|
88
|
+
For headset MR (HoloLens, Vision Pro): plan for variable lighting; user can't dim their room.
|
|
89
|
+
|
|
90
|
+
## Spatial mapping and surface detection
|
|
91
|
+
|
|
92
|
+
ARKit / ARCore detect:
|
|
93
|
+
- **Horizontal planes** (floors, tables).
|
|
94
|
+
- **Vertical planes** (walls).
|
|
95
|
+
- **Mesh** (Vision Pro, HoloLens — full room mesh).
|
|
96
|
+
|
|
97
|
+
UI rules:
|
|
98
|
+
- **Place furniture on horizontal planes**, anchored to floor.
|
|
99
|
+
- **Hang artwork on vertical planes**, anchored to walls.
|
|
100
|
+
- **Snap to surfaces** for natural feel.
|
|
101
|
+
- **Show detection state** to user ("Move phone to detect surfaces", indicator showing detected plane).
|
|
102
|
+
|
|
103
|
+
## Anchoring strategies
|
|
104
|
+
|
|
105
|
+
### World-locked
|
|
106
|
+
|
|
107
|
+
Content stays where placed in the world. User moves around it.
|
|
108
|
+
|
|
109
|
+
- **Stable anchor** required (some surfaces drift over time).
|
|
110
|
+
- **Re-localization** when user returns to same space (cloud anchors).
|
|
111
|
+
|
|
112
|
+
### Image-locked
|
|
113
|
+
|
|
114
|
+
Content tied to a recognized image / marker:
|
|
115
|
+
- **Print marker** triggers content (museum signs, posters).
|
|
116
|
+
- **QR code** for entry point.
|
|
117
|
+
- **Object recognition** — Coca-Cola can recognized → branded experience plays.
|
|
118
|
+
|
|
119
|
+
### Body-locked / wrist
|
|
120
|
+
|
|
121
|
+
UI on body parts (Vision Pro Home View on wrist).
|
|
122
|
+
|
|
123
|
+
### Screen-locked (mobile AR)
|
|
124
|
+
|
|
125
|
+
UI overlaid on phone screen, not in 3D world. For:
|
|
126
|
+
- App controls (close, share).
|
|
127
|
+
- Persistent indicators.
|
|
128
|
+
- Status info.
|
|
129
|
+
|
|
130
|
+
Don't put everything in world — some 2D UI on the phone screen is better.
|
|
131
|
+
|
|
132
|
+
## Onboarding AR
|
|
133
|
+
|
|
134
|
+
First-run experience:
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Step 1: "Hold phone up and move slowly"
|
|
138
|
+
→ User scans environment
|
|
139
|
+
→ System detects surfaces
|
|
140
|
+
→ Visual feedback: dots / mesh on detected planes
|
|
141
|
+
|
|
142
|
+
Step 2: "Tap to place"
|
|
143
|
+
→ Reticle appears on detected surface
|
|
144
|
+
→ User taps; content appears
|
|
145
|
+
|
|
146
|
+
Step 3: "Walk around to see"
|
|
147
|
+
→ User moves; content stays anchored
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Rules:
|
|
151
|
+
- **Visual instructions** at each step (animated).
|
|
152
|
+
- **No long text walls** — show, don't tell.
|
|
153
|
+
- **Skip option** for repeat users.
|
|
154
|
+
- **Restart** if AR session fails (lost tracking).
|
|
155
|
+
|
|
156
|
+
## Common AR interactions
|
|
157
|
+
|
|
158
|
+
| Interaction | How |
|
|
159
|
+
| --- | --- |
|
|
160
|
+
| **Place object** | Tap-on-screen at detected surface |
|
|
161
|
+
| **Move object** | Drag (mobile) / pinch + move (headset) |
|
|
162
|
+
| **Rotate** | Two-finger twist (mobile) / hand gesture (headset) |
|
|
163
|
+
| **Scale** | Pinch (mobile) / two-hand spread (headset) |
|
|
164
|
+
| **Activate** | Tap (mobile) / pinch (headset) |
|
|
165
|
+
| **Delete** | Drag off-screen / dedicated button |
|
|
166
|
+
|
|
167
|
+
Provide visual feedback for each interaction.
|
|
168
|
+
|
|
169
|
+
## Permission and privacy
|
|
170
|
+
|
|
171
|
+
AR requires camera access. Permission flow:
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
"To use AR, [App] needs camera access"
|
|
175
|
+
[Allow] [Don't allow]
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Once granted: explain what happens with camera data:
|
|
179
|
+
- Local processing only? Or cloud?
|
|
180
|
+
- Storage? Sharing?
|
|
181
|
+
- Right to delete?
|
|
182
|
+
|
|
183
|
+
For privacy-sensitive AR (face filters, body capture):
|
|
184
|
+
- Local processing whenever possible.
|
|
185
|
+
- Disclose if cloud upload.
|
|
186
|
+
- Comply with regional privacy laws (GDPR, 개인정보보호법).
|
|
187
|
+
|
|
188
|
+
## Tracking failure handling
|
|
189
|
+
|
|
190
|
+
AR tracking can lose:
|
|
191
|
+
- **Low light** — can't see features.
|
|
192
|
+
- **Featureless surfaces** — blank wall.
|
|
193
|
+
- **Rapid motion** — blur.
|
|
194
|
+
- **Reflective surfaces** — glass, mirrors.
|
|
195
|
+
|
|
196
|
+
UX:
|
|
197
|
+
- **Visible tracking quality indicator**.
|
|
198
|
+
- **Recovery prompt**: "Move slowly... point camera at textured surface".
|
|
199
|
+
- **Pause AR** when tracking lost; resume when recovered.
|
|
200
|
+
- **Fallback to 2D mode** if persistent failure.
|
|
201
|
+
|
|
202
|
+
## Korean AR market
|
|
203
|
+
|
|
204
|
+
Limited but growing:
|
|
205
|
+
- **Naver Z (Zepeto)** — virtual avatars + AR features.
|
|
206
|
+
- **Snapchat / Instagram filters** — large user base.
|
|
207
|
+
- **Pokemon GO** — sustained popularity.
|
|
208
|
+
- **Retail AR** — Shinsegae, Hyundai car configurators.
|
|
209
|
+
- **Tourism / museum AR** — government-sponsored.
|
|
210
|
+
|
|
211
|
+
For Korean AR product:
|
|
212
|
+
- Korean voice / text overlays.
|
|
213
|
+
- Mobile-first (iPhone + Galaxy primary).
|
|
214
|
+
- Camera permission UX in Korean (개인정보보호법 compliance).
|
|
215
|
+
|
|
216
|
+
## Mobile AR performance
|
|
217
|
+
|
|
218
|
+
Mobile constraints:
|
|
219
|
+
- **Battery drain** — heavy CPU + GPU + camera.
|
|
220
|
+
- **Heat** — phone gets hot fast.
|
|
221
|
+
- **Limited session length** — 5-15 minutes typical before user puts phone down.
|
|
222
|
+
|
|
223
|
+
Optimize:
|
|
224
|
+
- **Reduce polygon count** — mobile-friendly models.
|
|
225
|
+
- **Bake lighting** instead of real-time.
|
|
226
|
+
- **Lower resolution** for distant objects.
|
|
227
|
+
- **Pause when idle** — turn off camera processing during dialog.
|
|
228
|
+
|
|
229
|
+
## Headset MR performance
|
|
230
|
+
|
|
231
|
+
Vision Pro / HoloLens / Quest 3 passthrough:
|
|
232
|
+
- **Passthrough rendering cost** — real-time camera feed processing.
|
|
233
|
+
- **Hand tracking compute** — separate from rendering.
|
|
234
|
+
- **Higher polygon budget** than mobile but still finite.
|
|
235
|
+
|
|
236
|
+
## Don't
|
|
237
|
+
|
|
238
|
+
- Don't ignore variable lighting. Test in dark, bright, mixed.
|
|
239
|
+
- Don't put critical UI invisible against common backgrounds (white text on white wall).
|
|
240
|
+
- Don't ignore tracking loss. Always show recovery path.
|
|
241
|
+
- Don't make sessions too long. Mobile AR is 5-15 min comfort limit.
|
|
242
|
+
- Don't request camera without explaining why.
|
|
243
|
+
- Don't ship persistent anchors without re-localization fallback.
|
|
244
|
+
- Don't ignore privacy. Camera data is sensitive.
|
|
245
|
+
- Don't assume horizontal floor exists — some users in standing-only spaces.
|
|
246
|
+
|
|
247
|
+
## Cross-reference
|
|
248
|
+
|
|
249
|
+
- [`knowledge/spatial/spatial-design-fundamentals.md`](spatial-design-fundamentals.md) — fundamentals
|
|
250
|
+
- [`knowledge/spatial/vr-patterns.md`](vr-patterns.md) — VR
|
|
251
|
+
- [`knowledge/spatial/spatial-ui-elements.md`](spatial-ui-elements.md) — panels, controls
|
|
252
|
+
- [`knowledge/spatial/comfort-and-accessibility.md`](comfort-and-accessibility.md) — comfort + a11y
|
|
253
|
+
- [`knowledge/i18n/korean-payments.md`](../i18n/korean-payments.md) — KR privacy law
|