@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,159 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: shadcn-ui registry catalog
|
|
3
|
+
source: refs/shadcn-ui/apps/v4/registry/new-york-v4/
|
|
4
|
+
upstream: https://github.com/shadcn-ui/ui/tree/main/apps/v4/registry/new-york-v4
|
|
5
|
+
extracted_at: 2026-05-19
|
|
6
|
+
applies_to: [react, tailwindcss, radix-ui]
|
|
7
|
+
version: 1.0.0
|
|
8
|
+
last_updated: 2026-05
|
|
9
|
+
stability: stable
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# shadcn-ui registry catalog (new-york-v4)
|
|
13
|
+
|
|
14
|
+
shadcn-ui is **not** an installable package — it's a registry of source files you copy into your project. The "new-york-v4" style is the modern default. Each entry below is a component you can `npx shadcn add <name>`.
|
|
15
|
+
|
|
16
|
+
## UI primitives (57)
|
|
17
|
+
|
|
18
|
+
| | | | |
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
|
+
| `_registry` | `accordion` | `alert-dialog` | `alert` |
|
|
21
|
+
| `aspect-ratio` | `avatar` | `badge` | `breadcrumb` |
|
|
22
|
+
| `button-group` | `button` | `calendar` | `card` |
|
|
23
|
+
| `carousel` | `chart` | `checkbox` | `collapsible` |
|
|
24
|
+
| `combobox` | `command` | `context-menu` | `dialog` |
|
|
25
|
+
| `direction` | `drawer` | `dropdown-menu` | `empty` |
|
|
26
|
+
| `field` | `form` | `hover-card` | `input-group` |
|
|
27
|
+
| `input-otp` | `input` | `item` | `kbd` |
|
|
28
|
+
| `label` | `menubar` | `native-select` | `navigation-menu` |
|
|
29
|
+
| `pagination` | `popover` | `progress` | `radio-group` |
|
|
30
|
+
| `resizable` | `scroll-area` | `select` | `separator` |
|
|
31
|
+
| `sheet` | `sidebar` | `skeleton` | `slider` |
|
|
32
|
+
| `sonner` | `spinner` | `switch` | `table` |
|
|
33
|
+
| `tabs` | `textarea` | `toggle-group` | `toggle` |
|
|
34
|
+
| `tooltip` | | | |
|
|
35
|
+
|
|
36
|
+
## Blocks (28)
|
|
37
|
+
|
|
38
|
+
| | | | |
|
|
39
|
+
| --- | --- | --- | --- |
|
|
40
|
+
| `_registry` | `dashboard-01` | `login-01` | `login-02` |
|
|
41
|
+
| `login-03` | `login-04` | `login-05` | `sidebar-01` |
|
|
42
|
+
| `sidebar-02` | `sidebar-03` | `sidebar-04` | `sidebar-05` |
|
|
43
|
+
| `sidebar-06` | `sidebar-07` | `sidebar-08` | `sidebar-09` |
|
|
44
|
+
| `sidebar-10` | `sidebar-11` | `sidebar-12` | `sidebar-13` |
|
|
45
|
+
| `sidebar-14` | `sidebar-15` | `sidebar-16` | `signup-01` |
|
|
46
|
+
| `signup-02` | `signup-03` | `signup-04` | `signup-05` |
|
|
47
|
+
|
|
48
|
+
## Charts (70)
|
|
49
|
+
|
|
50
|
+
| | | | |
|
|
51
|
+
| --- | --- | --- | --- |
|
|
52
|
+
| `chart-area-axes` | `chart-area-default` | `chart-area-gradient` | `chart-area-icons` |
|
|
53
|
+
| `chart-area-interactive` | `chart-area-legend` | `chart-area-linear` | `chart-area-stacked-expand` |
|
|
54
|
+
| `chart-area-stacked` | `chart-area-step` | `chart-bar-active` | `chart-bar-default` |
|
|
55
|
+
| `chart-bar-horizontal` | `chart-bar-interactive` | `chart-bar-label-custom` | `chart-bar-label` |
|
|
56
|
+
| `chart-bar-mixed` | `chart-bar-multiple` | `chart-bar-negative` | `chart-bar-stacked` |
|
|
57
|
+
| `chart-line-default` | `chart-line-dots-colors` | `chart-line-dots-custom` | `chart-line-dots` |
|
|
58
|
+
| `chart-line-interactive` | `chart-line-label-custom` | `chart-line-label` | `chart-line-linear` |
|
|
59
|
+
| `chart-line-multiple` | `chart-line-step` | `chart-pie-donut-active` | `chart-pie-donut-text` |
|
|
60
|
+
| `chart-pie-donut` | `chart-pie-interactive` | `chart-pie-label-custom` | `chart-pie-label-list` |
|
|
61
|
+
| `chart-pie-label` | `chart-pie-legend` | `chart-pie-separator-none` | `chart-pie-simple` |
|
|
62
|
+
| `chart-pie-stacked` | `chart-radar-default` | `chart-radar-dots` | `chart-radar-grid-circle-fill` |
|
|
63
|
+
| `chart-radar-grid-circle-no-lines` | `chart-radar-grid-circle` | `chart-radar-grid-custom` | `chart-radar-grid-fill` |
|
|
64
|
+
| `chart-radar-grid-none` | `chart-radar-icons` | `chart-radar-label-custom` | `chart-radar-legend` |
|
|
65
|
+
| `chart-radar-lines-only` | `chart-radar-multiple` | `chart-radar-radius` | `chart-radial-grid` |
|
|
66
|
+
| `chart-radial-label` | `chart-radial-shape` | `chart-radial-simple` | `chart-radial-stacked` |
|
|
67
|
+
| `chart-radial-text` | `chart-tooltip-advanced` | `chart-tooltip-default` | `chart-tooltip-formatter` |
|
|
68
|
+
| `chart-tooltip-icons` | `chart-tooltip-indicator-line` | `chart-tooltip-indicator-none` | `chart-tooltip-label-custom` |
|
|
69
|
+
| `chart-tooltip-label-formatter` | `chart-tooltip-label-none` | | |
|
|
70
|
+
|
|
71
|
+
## Hooks (2)
|
|
72
|
+
|
|
73
|
+
| | | | |
|
|
74
|
+
| --- | --- | --- | --- |
|
|
75
|
+
| `_registry` | `use-mobile` | | |
|
|
76
|
+
|
|
77
|
+
## Examples (230)
|
|
78
|
+
|
|
79
|
+
| | | | |
|
|
80
|
+
| --- | --- | --- | --- |
|
|
81
|
+
| `accordion-demo` | `alert-demo` | `alert-destructive` | `alert-dialog-demo` |
|
|
82
|
+
| `aspect-ratio-demo` | `avatar-demo` | `badge-demo` | `badge-destructive` |
|
|
83
|
+
| `badge-outline` | `badge-secondary` | `breadcrumb-demo` | `breadcrumb-dropdown` |
|
|
84
|
+
| `breadcrumb-ellipsis` | `breadcrumb-link` | `breadcrumb-responsive` | `breadcrumb-separator` |
|
|
85
|
+
| `button-as-child` | `button-default` | `button-demo` | `button-destructive` |
|
|
86
|
+
| `button-ghost` | `button-group-demo` | `button-group-dropdown` | `button-group-input-group` |
|
|
87
|
+
| `button-group-input` | `button-group-nested` | `button-group-orientation` | `button-group-popover` |
|
|
88
|
+
| `button-group-select` | `button-group-separator` | `button-group-size` | `button-group-split` |
|
|
89
|
+
| `button-icon` | `button-link` | `button-loading` | `button-outline` |
|
|
90
|
+
| `button-rounded` | `button-secondary` | `button-size` | `button-with-icon` |
|
|
91
|
+
| `calendar-demo` | `calendar-hijri` | `card-demo` | `card-with-form` |
|
|
92
|
+
| `carousel-api` | `carousel-demo` | `carousel-orientation` | `carousel-plugin` |
|
|
93
|
+
| `carousel-size` | `carousel-spacing` | `chart-bar-demo-axis` | `chart-bar-demo-grid` |
|
|
94
|
+
| `chart-bar-demo-legend` | `chart-bar-demo-tooltip` | `chart-bar-demo` | `chart-tooltip-demo` |
|
|
95
|
+
| `checkbox-demo` | `checkbox-disabled` | `checkbox-with-text` | `collapsible-demo` |
|
|
96
|
+
| `combobox-demo` | `combobox-dropdown-menu` | `combobox-popover` | `combobox-responsive` |
|
|
97
|
+
| `command-demo` | `command-dialog` | `context-menu-demo` | `data-table-demo` |
|
|
98
|
+
| `date-picker-demo` | `date-picker-with-presets` | `date-picker-with-range` | `dialog-close-button` |
|
|
99
|
+
| `dialog-demo` | `drawer-demo` | `drawer-dialog` | `dropdown-menu-checkboxes` |
|
|
100
|
+
| `dropdown-menu-demo` | `dropdown-menu-dialog` | `dropdown-menu-radio-group` | `empty-avatar-group` |
|
|
101
|
+
| `empty-avatar` | `empty-background` | `empty-demo` | `empty-icon` |
|
|
102
|
+
| `empty-input-group` | `empty-outline` | `field-checkbox` | `field-choice-card` |
|
|
103
|
+
| `field-demo` | `field-fieldset` | `field-group` | `field-input` |
|
|
104
|
+
| `field-radio` | `field-responsive` | `field-select` | `field-slider` |
|
|
105
|
+
| `field-switch` | `field-textarea` | `form-next-complex` | `form-next-demo` |
|
|
106
|
+
| `form-rhf-array` | `form-rhf-checkbox` | `form-rhf-complex` | `form-rhf-demo` |
|
|
107
|
+
| `form-rhf-input` | `form-rhf-password` | `form-rhf-radiogroup` | `form-rhf-select` |
|
|
108
|
+
| `form-rhf-switch` | `form-rhf-textarea` | `form-tanstack-array` | `form-tanstack-checkbox` |
|
|
109
|
+
| `form-tanstack-complex` | `form-tanstack-demo` | `form-tanstack-input` | `form-tanstack-radiogroup` |
|
|
110
|
+
| `form-tanstack-select` | `form-tanstack-switch` | `form-tanstack-textarea` | `hover-card-demo` |
|
|
111
|
+
| `input-demo` | `input-disabled` | `input-file` | `input-group-button-group` |
|
|
112
|
+
| `input-group-button` | `input-group-custom` | `input-group-demo` | `input-group-dropdown` |
|
|
113
|
+
| `input-group-icon` | `input-group-label` | `input-group-spinner` | `input-group-text` |
|
|
114
|
+
| `input-group-textarea` | `input-group-tooltip` | `input-otp-controlled` | `input-otp-demo` |
|
|
115
|
+
| `input-otp-pattern` | `input-otp-separator` | `input-with-button` | `input-with-label` |
|
|
116
|
+
| `input-with-text` | `item-avatar` | `item-demo` | `item-dropdown` |
|
|
117
|
+
| `item-group` | `item-header` | `item-icon` | `item-image` |
|
|
118
|
+
| `item-link` | `item-size` | `item-variant` | `kbd-button` |
|
|
119
|
+
| `kbd-demo` | `kbd-group` | `kbd-input-group` | `kbd-tooltip` |
|
|
120
|
+
| `label-demo` | `menubar-demo` | `mode-toggle` | `native-select-demo` |
|
|
121
|
+
| `native-select-disabled` | `native-select-groups` | `native-select-invalid` | `navigation-menu-demo` |
|
|
122
|
+
| `pagination-demo` | `popover-demo` | `progress-demo` | `radio-group-demo` |
|
|
123
|
+
| `resizable-demo-with-handle` | `resizable-demo` | `resizable-handle` | `resizable-vertical` |
|
|
124
|
+
| `scroll-area-demo` | `scroll-area-horizontal-demo` | `select-demo` | `select-scrollable` |
|
|
125
|
+
| `separator-demo` | `sheet-demo` | `sheet-side` | `skeleton-card` |
|
|
126
|
+
| `skeleton-demo` | `slider-demo` | `sonner-demo` | `sonner-types` |
|
|
127
|
+
| `spinner-badge` | `spinner-basic` | `spinner-button` | `spinner-color` |
|
|
128
|
+
| `spinner-custom` | `spinner-demo` | `spinner-empty` | `spinner-input-group` |
|
|
129
|
+
| `spinner-item` | `spinner-size` | `switch-demo` | `table-demo` |
|
|
130
|
+
| `tabs-demo` | `textarea-demo` | `textarea-disabled` | `textarea-with-button` |
|
|
131
|
+
| `textarea-with-label` | `textarea-with-text` | `toggle-demo` | `toggle-disabled` |
|
|
132
|
+
| `toggle-group-demo` | `toggle-group-disabled` | `toggle-group-lg` | `toggle-group-outline` |
|
|
133
|
+
| `toggle-group-single` | `toggle-group-sm` | `toggle-group-spacing` | `toggle-lg` |
|
|
134
|
+
| `toggle-outline` | `toggle-sm` | `toggle-with-text` | `tooltip-demo` |
|
|
135
|
+
| `typography-blockquote` | `typography-demo` | `typography-h1` | `typography-h2` |
|
|
136
|
+
| `typography-h3` | `typography-h4` | `typography-inline-code` | `typography-large` |
|
|
137
|
+
| `typography-lead` | `typography-list` | `typography-muted` | `typography-p` |
|
|
138
|
+
| `typography-small` | `typography-table` | | |
|
|
139
|
+
|
|
140
|
+
## How to use
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npx shadcn@latest add button card dialog
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Components land in `components/ui/`. Edit them — they are yours, not a dependency.
|
|
147
|
+
|
|
148
|
+
## When to pick shadcn over MUI/Ant
|
|
149
|
+
|
|
150
|
+
- You want Tailwind, not CSS-in-JS.
|
|
151
|
+
- You want to **own** the component code.
|
|
152
|
+
- You're using Radix primitives or Headless UI elsewhere.
|
|
153
|
+
- You want minimal bundle (no theme runtime).
|
|
154
|
+
|
|
155
|
+
## When NOT to pick shadcn
|
|
156
|
+
|
|
157
|
+
- You need RTL out of the box (less polished than MUI/Ant).
|
|
158
|
+
- You need form/data-table primitives that are deeply pre-wired (use Ant Design Form/Table).
|
|
159
|
+
- You ship to non-React frameworks.
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
<!-- hand-written -->
|
|
2
|
+
---
|
|
3
|
+
title: AI chat interfaces (ChatGPT, Claude, LLM-based UX)
|
|
4
|
+
applies_to: [ai-chat, llm, chatgpt, conversational]
|
|
5
|
+
version: 1.0.0
|
|
6
|
+
last_updated: 2026-05
|
|
7
|
+
stability: stable
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# AI chat interfaces
|
|
11
|
+
|
|
12
|
+
LLM-based chat (ChatGPT, Claude, Gemini, Perplexity, character.ai) has its own emerging UX conventions. Different from rule-based chatbots: more capable, more open-ended, but with novel UX challenges around hallucinations, latency, context length, and trust.
|
|
13
|
+
|
|
14
|
+
Read [`conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) and [`chatbot-design.md`](chatbot-design.md) first.
|
|
15
|
+
|
|
16
|
+
## What's different about AI chat
|
|
17
|
+
|
|
18
|
+
vs traditional chatbot:
|
|
19
|
+
- **Free-form input** — users type anything, model interprets.
|
|
20
|
+
- **Long-form output** — paragraphs, code, lists, not just one-line replies.
|
|
21
|
+
- **Streamed responses** — token-by-token, not waiting for completion.
|
|
22
|
+
- **Multi-turn context** — system holds prior messages within session.
|
|
23
|
+
- **Multimodal** — image upload, file analysis, voice (varies by model).
|
|
24
|
+
- **Hallucinations** — model can be confidently wrong.
|
|
25
|
+
- **Cost per token** — long conversations expensive.
|
|
26
|
+
|
|
27
|
+
These shape the UI.
|
|
28
|
+
|
|
29
|
+
## Anatomy of an AI chat UI
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
┌──────────────────────────────────────────┐
|
|
33
|
+
│ [Brand] Chat [⚙ ⏷] │ ← header (model selector)
|
|
34
|
+
├──────────────────────────────────────────┤
|
|
35
|
+
│ [Sidebar] │ Today │
|
|
36
|
+
│ │ ───── │
|
|
37
|
+
│ + New chat │ │
|
|
38
|
+
│ │ User: How do I fix...? │
|
|
39
|
+
│ Today │ │
|
|
40
|
+
│ • Chat 1 │ Assistant: To fix this... │
|
|
41
|
+
│ • Chat 2 │ [code block] │
|
|
42
|
+
│ │ [continue][regenerate][copy]│
|
|
43
|
+
│ Yesterday │ │
|
|
44
|
+
│ • Chat 3 │ ───── input ───── │
|
|
45
|
+
│ │ [Type a message...] [▶] │
|
|
46
|
+
│ │ [Attach] [Voice] [Search] │
|
|
47
|
+
└──────────────────────────────────────────┘
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Input affordances
|
|
51
|
+
|
|
52
|
+
### Multi-line input
|
|
53
|
+
|
|
54
|
+
Most AI chat allows multi-line input (Shift+Enter for newline; Enter to send):
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
[Long multi-line text area, expanding as user types]
|
|
58
|
+
[Send button]
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
For complex queries, code paste, full-document review.
|
|
62
|
+
|
|
63
|
+
### Attachments
|
|
64
|
+
|
|
65
|
+
- **Image upload** (Claude, GPT-4o): drag-drop or button.
|
|
66
|
+
- **File upload** (PDFs, docs, code): paid tiers; drag-drop.
|
|
67
|
+
- **Multiple files** in one message.
|
|
68
|
+
- **Visible attachments** above input field as chips before send.
|
|
69
|
+
|
|
70
|
+
### Slash commands / mentions
|
|
71
|
+
|
|
72
|
+
Some AI tools have:
|
|
73
|
+
- **Slash commands** — `/help`, `/reset`, `/model gpt-4`.
|
|
74
|
+
- **Mentions** — `@persona` or `@tool` to invoke specific AI / tool.
|
|
75
|
+
- **Sample prompts** — pre-written suggestion chips.
|
|
76
|
+
|
|
77
|
+
For developer tools (Cursor, Claude Code): slash commands are core.
|
|
78
|
+
|
|
79
|
+
### Voice input
|
|
80
|
+
|
|
81
|
+
Increasingly common (ChatGPT voice mode, Claude voice on mobile):
|
|
82
|
+
- Tap-to-talk.
|
|
83
|
+
- Real-time transcription preview.
|
|
84
|
+
- Voice + text hybrid.
|
|
85
|
+
|
|
86
|
+
## Output rendering
|
|
87
|
+
|
|
88
|
+
AI responses are richer than chatbot replies:
|
|
89
|
+
|
|
90
|
+
| Element | Render |
|
|
91
|
+
| --- | --- |
|
|
92
|
+
| **Markdown** | Bold, italic, lists, headings rendered |
|
|
93
|
+
| **Code blocks** | Syntax-highlighted; with copy button |
|
|
94
|
+
| **Inline code** | Monospace |
|
|
95
|
+
| **Math (LaTeX)** | Rendered with KaTeX / MathJax |
|
|
96
|
+
| **Tables** | Proper HTML tables |
|
|
97
|
+
| **Links** | Clickable, sometimes with preview |
|
|
98
|
+
| **Mermaid diagrams** | Rendered if requested |
|
|
99
|
+
| **Images** | Inline if generated / referenced |
|
|
100
|
+
|
|
101
|
+
Don't show raw markdown — render it.
|
|
102
|
+
|
|
103
|
+
For Korean: same markdown rendering; Korean text in code blocks works (Pretendard / Monaspace Argon supports Korean monospace if needed).
|
|
104
|
+
|
|
105
|
+
## Streaming responses
|
|
106
|
+
|
|
107
|
+
The single most important UX difference:
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
[blank screen — bad]
|
|
111
|
+
↓
|
|
112
|
+
[• word ] ← starts at 200ms
|
|
113
|
+
[• word word ]
|
|
114
|
+
[• word word word ] ← user reads while it streams
|
|
115
|
+
[...]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Implementation:
|
|
119
|
+
- **Server-Sent Events (SSE)** stream tokens.
|
|
120
|
+
- **Render incrementally** — append to message bubble.
|
|
121
|
+
- **Cursor / blinking** indicator at end of streaming text.
|
|
122
|
+
- **Stop button** — let user halt mid-stream.
|
|
123
|
+
|
|
124
|
+
Streaming makes 30-second responses feel acceptable. Without streaming, 30s feels broken.
|
|
125
|
+
|
|
126
|
+
## Stop / regenerate / continue
|
|
127
|
+
|
|
128
|
+
Standard controls below an AI response:
|
|
129
|
+
|
|
130
|
+
| Action | Use |
|
|
131
|
+
| --- | --- |
|
|
132
|
+
| **Stop generating** | While streaming; halt response |
|
|
133
|
+
| **Regenerate** | New response to same prompt |
|
|
134
|
+
| **Continue** | Long response truncated; ask for more |
|
|
135
|
+
| **Copy** | Copy entire response or code block |
|
|
136
|
+
| **Edit** (user message) | Edit user's prior message; regenerates everything after |
|
|
137
|
+
| **Branch** | Save current path; explore alternative |
|
|
138
|
+
| **Share** | Share conversation link |
|
|
139
|
+
|
|
140
|
+
Place inline below each AI response, not in a hidden menu.
|
|
141
|
+
|
|
142
|
+
## Context length and truncation
|
|
143
|
+
|
|
144
|
+
Models have context limits (8k, 32k, 128k, 200k+ tokens). Long conversations exceed:
|
|
145
|
+
|
|
146
|
+
- **Sliding window** — drop oldest messages when over limit.
|
|
147
|
+
- **Summarization** — auto-summarize old messages, keep recent.
|
|
148
|
+
- **Visible indicator** — "context near limit" warning.
|
|
149
|
+
- **Manual reset** — "New chat" button always visible.
|
|
150
|
+
|
|
151
|
+
For long conversations: file uploads or "memory" features offload context.
|
|
152
|
+
|
|
153
|
+
## Hallucination handling
|
|
154
|
+
|
|
155
|
+
LLMs confidently produce wrong answers. UX mitigations:
|
|
156
|
+
|
|
157
|
+
- **Source citations** — show which docs / web results informed the answer.
|
|
158
|
+
- **Confidence indicators** — vague when unsure.
|
|
159
|
+
- **Disclaimers** — "AI can make mistakes. Verify important info."
|
|
160
|
+
- **Verifiable claims** — direct quotes / page references.
|
|
161
|
+
- **User feedback** — thumbs up/down to improve.
|
|
162
|
+
|
|
163
|
+
For factual products (search, research): always provide citations.
|
|
164
|
+
For creative products (writing, ideation): less critical.
|
|
165
|
+
|
|
166
|
+
## Trust and disclosure
|
|
167
|
+
|
|
168
|
+
Be transparent:
|
|
169
|
+
- **AI-generated label** — small but visible.
|
|
170
|
+
- **Model version** — "Powered by GPT-4o" / "Claude 3.5 Sonnet".
|
|
171
|
+
- **Data usage policy** — does prompt training happen? Disclose.
|
|
172
|
+
- **Conversation storage** — retained / deletable.
|
|
173
|
+
|
|
174
|
+
## Chat history sidebar
|
|
175
|
+
|
|
176
|
+
Sidebar shows past conversations:
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
[+ New chat]
|
|
180
|
+
|
|
181
|
+
Today
|
|
182
|
+
• Working on the design system
|
|
183
|
+
• Help with React component
|
|
184
|
+
• ...
|
|
185
|
+
|
|
186
|
+
Yesterday
|
|
187
|
+
• Korean language practice
|
|
188
|
+
• ...
|
|
189
|
+
|
|
190
|
+
Last week
|
|
191
|
+
• ...
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Features:
|
|
195
|
+
- **Search** through history.
|
|
196
|
+
- **Rename** conversations.
|
|
197
|
+
- **Delete** individual or all.
|
|
198
|
+
- **Export** conversation.
|
|
199
|
+
- **Pinned / favorites** at top.
|
|
200
|
+
|
|
201
|
+
## Multi-modal output
|
|
202
|
+
|
|
203
|
+
Some AI models output more than text:
|
|
204
|
+
|
|
205
|
+
| Output | Render |
|
|
206
|
+
| --- | --- |
|
|
207
|
+
| **Generated image** (DALL-E, Imagen) | Inline image with download |
|
|
208
|
+
| **Generated audio** (TTS, music) | Audio player |
|
|
209
|
+
| **Generated code execution** (Code Interpreter, Artifacts) | Sandboxed runtime, output rendering |
|
|
210
|
+
| **Generated documents** (Claude Artifacts) | Side-pane preview |
|
|
211
|
+
|
|
212
|
+
For Claude / GPT artifacts (live HTML / React preview): split-pane interface, code on left, preview on right.
|
|
213
|
+
|
|
214
|
+
## Suggestions / next steps
|
|
215
|
+
|
|
216
|
+
After a response, suggest follow-ups:
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
[AI response about React performance]
|
|
220
|
+
|
|
221
|
+
Ask follow-up:
|
|
222
|
+
[Show me an example with hooks] [What about Vue?] [Profile this code]
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
Reduces typing for common follow-ups.
|
|
226
|
+
|
|
227
|
+
## Voice mode UX
|
|
228
|
+
|
|
229
|
+
ChatGPT / Claude voice modes:
|
|
230
|
+
|
|
231
|
+
| Element | Behavior |
|
|
232
|
+
| --- | --- |
|
|
233
|
+
| Activation | Mic icon or wake word (varies) |
|
|
234
|
+
| Visual | Animated orb / wave during listening / speaking |
|
|
235
|
+
| Interruption | User can interrupt AI mid-speech |
|
|
236
|
+
| Transcript | Optional visible text |
|
|
237
|
+
| Modes | "push to talk" or "open conversation" |
|
|
238
|
+
|
|
239
|
+
Voice mode latency target: < 1 second to first audio for natural feel. Hard to achieve with full LLM round-trip + TTS.
|
|
240
|
+
|
|
241
|
+
## Mobile vs desktop
|
|
242
|
+
|
|
243
|
+
| Surface | Differences |
|
|
244
|
+
| --- | --- |
|
|
245
|
+
| Mobile | Vertical stack; full-screen chat; voice prominent |
|
|
246
|
+
| Desktop | Sidebar + main; multi-column; keyboard shortcuts |
|
|
247
|
+
| Tablet | Either; usually closer to desktop |
|
|
248
|
+
|
|
249
|
+
For developer tools (Cursor, Claude Code): heavy keyboard shortcuts, side-by-side code + chat, multi-window.
|
|
250
|
+
|
|
251
|
+
## Memory / personalization
|
|
252
|
+
|
|
253
|
+
Modern AI tools have "memory":
|
|
254
|
+
- **Persistent memory** — model remembers facts across sessions.
|
|
255
|
+
- **Custom instructions** — user-defined preferences applied to all chats.
|
|
256
|
+
- **Project / Workspace** — scoped memory + files for related work.
|
|
257
|
+
|
|
258
|
+
UX:
|
|
259
|
+
- **Memory indicator** — visible when memory used / created.
|
|
260
|
+
- **Edit / delete memory** — user can manage.
|
|
261
|
+
- **Per-project scope** — separate from general memory.
|
|
262
|
+
|
|
263
|
+
## Keyboard shortcuts (desktop)
|
|
264
|
+
|
|
265
|
+
| Shortcut | Action |
|
|
266
|
+
| --- | --- |
|
|
267
|
+
| Cmd/Ctrl + Enter | Send |
|
|
268
|
+
| Shift + Enter | Newline |
|
|
269
|
+
| Cmd/Ctrl + K | New chat |
|
|
270
|
+
| Cmd/Ctrl + L | Focus input |
|
|
271
|
+
| Cmd/Ctrl + Shift + O | New chat |
|
|
272
|
+
| Cmd/Ctrl + / | Show shortcuts |
|
|
273
|
+
| Esc | Close current modal / cancel generation |
|
|
274
|
+
| Up arrow | Edit last message |
|
|
275
|
+
|
|
276
|
+
For developer tools: more shortcuts (Vim-style, multi-cursor).
|
|
277
|
+
|
|
278
|
+
## Korean AI chat
|
|
279
|
+
|
|
280
|
+
Korean LLM products (2024+):
|
|
281
|
+
- **HyperCLOVA X** (Naver) — Korean-strong LLM.
|
|
282
|
+
- **Bixby Text Call** (Samsung) — AI text generation in messaging.
|
|
283
|
+
- **A.X / Kakao i** (Kakao) — Korean assistant.
|
|
284
|
+
- **GPT / Claude / Gemini** Korean support — adequate to strong.
|
|
285
|
+
|
|
286
|
+
For Korean AI chat UI:
|
|
287
|
+
- Korean primary; English code / technical content OK.
|
|
288
|
+
- 해요체 default tone (friendly).
|
|
289
|
+
- Pretendard / NanumSquare / Apple SD Gothic Neo for body.
|
|
290
|
+
- Korean code-block content rendered correctly (Pretendard JetBrains Mono / Monaspace Argon).
|
|
291
|
+
|
|
292
|
+
## Common AI chat mistakes
|
|
293
|
+
|
|
294
|
+
- **No streaming** — feels broken at 5+ second responses.
|
|
295
|
+
- **Hidden controls** — regenerate / stop in submenu.
|
|
296
|
+
- **Truncated responses without "continue"** — frustrating.
|
|
297
|
+
- **No copy button** — users can't copy code / responses.
|
|
298
|
+
- **Markdown not rendered** — raw asterisks / brackets visible.
|
|
299
|
+
- **No history search** — users can't find past chat.
|
|
300
|
+
- **No disclaimer** — users trust AI as authoritative.
|
|
301
|
+
- **No way to start fresh** — context grows indefinitely.
|
|
302
|
+
- **No model identification** — users don't know what they're using.
|
|
303
|
+
|
|
304
|
+
## Don't
|
|
305
|
+
|
|
306
|
+
- Don't ship without streaming.
|
|
307
|
+
- Don't hide stop / regenerate / copy.
|
|
308
|
+
- Don't render raw markdown.
|
|
309
|
+
- Don't pretend the AI is infallible. Disclose.
|
|
310
|
+
- Don't truncate without "continue" affordance.
|
|
311
|
+
- Don't lose chat history without warning.
|
|
312
|
+
- Don't make context-management opaque. Show when limits hit.
|
|
313
|
+
- Don't ship without keyboard shortcuts on desktop.
|
|
314
|
+
|
|
315
|
+
## Cross-reference
|
|
316
|
+
|
|
317
|
+
- [`knowledge/conversational/conversational-ui-fundamentals.md`](conversational-ui-fundamentals.md) — fundamentals
|
|
318
|
+
- [`knowledge/conversational/voice-ui-patterns.md`](voice-ui-patterns.md) — voice
|
|
319
|
+
- [`knowledge/conversational/chatbot-design.md`](chatbot-design.md) — traditional bots
|
|
320
|
+
- [`knowledge/conversational/korean-voice-conventions.md`](korean-voice-conventions.md) — KR
|
|
321
|
+
- [`examples/component-chat-interface.md`](../../examples/component-chat-interface.md) — chat UI spec
|
|
322
|
+
- [`examples/component-voice-input.md`](../../examples/component-voice-input.md) — voice input
|
|
323
|
+
- [`knowledge/patterns/technical-writing.md`](../patterns/technical-writing.md) — markdown rendering
|