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