imhcode 1.0.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/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +39 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +29 -0
- package/.github/copilot-instructions.md +43 -0
- package/.github/workflows/framework-validator.yml +53 -0
- package/.gitignore.template +15 -0
- package/AGENTS.md +69 -0
- package/CLAUDE.md +27 -0
- package/README.md +63 -0
- package/SETUP.md +81 -0
- package/USER_MANUAL.md +70 -0
- package/agents/android-executor/SYSTEM.md +32 -0
- package/agents/android-executor/agent.yml +53 -0
- package/agents/debugger/SYSTEM.md +32 -0
- package/agents/debugger/agent.yml +56 -0
- package/agents/designer/SYSTEM.md +32 -0
- package/agents/designer/agent.yml +59 -0
- package/agents/devops-executor/SYSTEM.md +32 -0
- package/agents/devops-executor/agent.yml +56 -0
- package/agents/flutter-executor/SYSTEM.md +32 -0
- package/agents/flutter-executor/agent.yml +54 -0
- package/agents/ios-executor/SYSTEM.md +32 -0
- package/agents/ios-executor/agent.yml +53 -0
- package/agents/java-executor/SYSTEM.md +32 -0
- package/agents/java-executor/agent.yml +57 -0
- package/agents/laravel-executor/SYSTEM.md +32 -0
- package/agents/laravel-executor/agent.yml +59 -0
- package/agents/nextjs-executor/SYSTEM.md +32 -0
- package/agents/nextjs-executor/agent.yml +60 -0
- package/agents/planner/SYSTEM.md +32 -0
- package/agents/planner/agent.yml +56 -0
- package/agents/python-executor/SYSTEM.md +32 -0
- package/agents/python-executor/agent.yml +58 -0
- package/agents/react-executor/SYSTEM.md +32 -0
- package/agents/react-executor/agent.yml +58 -0
- package/agents/react-native-executor/SYSTEM.md +32 -0
- package/agents/react-native-executor/agent.yml +53 -0
- package/agents/security-auditor/SYSTEM.md +32 -0
- package/agents/security-auditor/agent.yml +56 -0
- package/agents/seo-optimizer/SYSTEM.md +32 -0
- package/agents/seo-optimizer/agent.yml +54 -0
- package/agents/systems-executor/SYSTEM.md +32 -0
- package/agents/systems-executor/agent.yml +54 -0
- package/agents/tester/SYSTEM.md +32 -0
- package/agents/tester/agent.yml +58 -0
- package/agents/vue-executor/SYSTEM.md +32 -0
- package/agents/vue-executor/agent.yml +58 -0
- package/agents/web3-executor/SYSTEM.md +32 -0
- package/agents/web3-executor/agent.yml +55 -0
- package/bin/imhcode.js +1634 -0
- package/dist/orchestrator/builder.d.ts +23 -0
- package/dist/orchestrator/builder.d.ts.map +1 -0
- package/dist/orchestrator/builder.js +231 -0
- package/dist/orchestrator/builder.js.map +1 -0
- package/dist/orchestrator/executor.d.ts +43 -0
- package/dist/orchestrator/executor.d.ts.map +1 -0
- package/dist/orchestrator/executor.js +356 -0
- package/dist/orchestrator/executor.js.map +1 -0
- package/dist/orchestrator/index.d.ts +35 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/index.js +490 -0
- package/dist/orchestrator/index.js.map +1 -0
- package/dist/orchestrator/loader.d.ts +33 -0
- package/dist/orchestrator/loader.d.ts.map +1 -0
- package/dist/orchestrator/loader.js +203 -0
- package/dist/orchestrator/loader.js.map +1 -0
- package/dist/orchestrator/registry.d.ts +63 -0
- package/dist/orchestrator/registry.d.ts.map +1 -0
- package/dist/orchestrator/registry.js +181 -0
- package/dist/orchestrator/registry.js.map +1 -0
- package/dist/orchestrator/schema.d.ts +132 -0
- package/dist/orchestrator/schema.d.ts.map +1 -0
- package/dist/orchestrator/schema.js +101 -0
- package/dist/orchestrator/schema.js.map +1 -0
- package/dist/orchestrator/session.d.ts +25 -0
- package/dist/orchestrator/session.d.ts.map +1 -0
- package/dist/orchestrator/session.js +80 -0
- package/dist/orchestrator/session.js.map +1 -0
- package/dist/orchestrator/types.d.ts +91 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/orchestrator/types.js +7 -0
- package/dist/orchestrator/types.js.map +1 -0
- package/package.json +95 -0
- package/skills/AnimatePresence/SKILL.md +3 -0
- package/skills/accessibility/SKILL.md +146 -0
- package/skills/agent-architecture-audit/SKILL.md +256 -0
- package/skills/agent-eval/SKILL.md +145 -0
- package/skills/agent-introspection-debugging/SKILL.md +153 -0
- package/skills/agentic-engineering/SKILL.md +63 -0
- package/skills/ai-regression-testing/SKILL.md +385 -0
- package/skills/android-clean-architecture/SKILL.md +339 -0
- package/skills/animated-component-libraries/SKILL.md +8 -0
- package/skills/animejs/SKILL.md +8 -0
- package/skills/api-connector-builder/SKILL.md +120 -0
- package/skills/api-design/SKILL.md +523 -0
- package/skills/apple/SKILL.md +158 -0
- package/skills/apple/metadata.json +16 -0
- package/skills/architecture-decision-records/SKILL.md +179 -0
- package/skills/article-writing/SKILL.md +79 -0
- package/skills/automation-audit-ops/SKILL.md +142 -0
- package/skills/awwwards/SKILL.md +162 -0
- package/skills/awwwards/metadata.json +16 -0
- package/skills/babylonjs-engine/SKILL.md +8 -0
- package/skills/backend-patterns/SKILL.md +561 -0
- package/skills/baqir-docs/SKILL.md +3 -0
- package/skills/barba-js/SKILL.md +8 -0
- package/skills/benchmark/SKILL.md +93 -0
- package/skills/best-practice/SKILL.md +7 -0
- package/skills/best-practice/assets/claude-memory/claude-memory-monorepo.jpg +0 -0
- package/skills/best-practice/assets/claude-power-ups/dial-the-model-1.png +0 -0
- package/skills/best-practice/assets/claude-power-ups/dial-the-model-2.png +0 -0
- package/skills/best-practice/assets/claude-power-ups/dial-the-model-3.png +0 -0
- package/skills/best-practice/assets/claude-power-ups/powerup-menu.png +0 -0
- package/skills/best-practice/claude-cli-startup-flags.md +231 -0
- package/skills/best-practice/claude-commands.md +132 -0
- package/skills/best-practice/claude-mcp.md +132 -0
- package/skills/best-practice/claude-memory.md +121 -0
- package/skills/best-practice/claude-power-ups.md +66 -0
- package/skills/best-practice/claude-settings.md +1170 -0
- package/skills/best-practice/claude-skills.md +58 -0
- package/skills/best-practice/claude-subagents.md +56 -0
- package/skills/blender-motion-state-inspection/SKILL.md +164 -0
- package/skills/bootstrap-patterns/SKILL.md +316 -0
- package/skills/brand-guidelines/LICENSE.txt +202 -0
- package/skills/brand-guidelines/SKILL.md +73 -0
- package/skills/brand-voice/SKILL.md +97 -0
- package/skills/brand-voice/references/voice-profile-schema.md +55 -0
- package/skills/browser-qa/SKILL.md +87 -0
- package/skills/canary-watch/SKILL.md +107 -0
- package/skills/canvas-design/LICENSE.txt +202 -0
- package/skills/canvas-design/SKILL.md +8 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/canvas-design/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/canvas-design/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/caveman/SKILL.md +74 -0
- package/skills/changelog-generator/SKILL.md +104 -0
- package/skills/cisco-ios-patterns/SKILL.md +163 -0
- package/skills/ckm:design-system/SKILL.md +3 -0
- package/skills/ckm:slides/SKILL.md +3 -0
- package/skills/claude-red/SKILL.md +35 -0
- package/skills/click-path-audit/SKILL.md +244 -0
- package/skills/clickhouse-io/SKILL.md +439 -0
- package/skills/codebase-onboarding/SKILL.md +233 -0
- package/skills/coding-standards/SKILL.md +549 -0
- package/skills/compose-multiplatform-patterns/SKILL.md +299 -0
- package/skills/computational-architecture/SKILL.md +31 -0
- package/skills/content-engine/SKILL.md +131 -0
- package/skills/content-research-writer/SKILL.md +538 -0
- package/skills/continuous-agent-loop/SKILL.md +45 -0
- package/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/skills/cpp-coding-standards/SKILL.md +723 -0
- package/skills/crosspost/SKILL.md +111 -0
- package/skills/css-container-queries/SKILL.md +132 -0
- package/skills/customer-billing-ops/SKILL.md +140 -0
- package/skills/customs-trade-compliance/SKILL.md +263 -0
- package/skills/dart-flutter-patterns/SKILL.md +563 -0
- package/skills/dashboard-builder/SKILL.md +108 -0
- package/skills/data-scraper-agent/SKILL.md +764 -0
- package/skills/database-migrations/SKILL.md +429 -0
- package/skills/deep-research/SKILL.md +159 -0
- package/skills/defi-amm-security/SKILL.md +166 -0
- package/skills/deployment-patterns/SKILL.md +427 -0
- package/skills/design-auditor/README.md +504 -0
- package/skills/design-auditor/README_KR.md +327 -0
- package/skills/design-auditor/SKILL.md +8 -0
- package/skills/design-auditor/references/animation.md +300 -0
- package/skills/design-auditor/references/color.md +241 -0
- package/skills/design-auditor/references/corner-radius.md +331 -0
- package/skills/design-auditor/references/elevation.md +249 -0
- package/skills/design-auditor/references/ethics.md +877 -0
- package/skills/design-auditor/references/figma-mcp.md +377 -0
- package/skills/design-auditor/references/heuristics.md +730 -0
- package/skills/design-auditor/references/i18n.md +254 -0
- package/skills/design-auditor/references/iconography.md +201 -0
- package/skills/design-auditor/references/microcopy.md +227 -0
- package/skills/design-auditor/references/navigation.md +311 -0
- package/skills/design-auditor/references/spacing.md +313 -0
- package/skills/design-auditor/references/states.md +254 -0
- package/skills/design-auditor/references/tokens.md +286 -0
- package/skills/design-auditor/references/typography.md +273 -0
- package/skills/design-system/SKILL.md +82 -0
- package/skills/design-tokens-system/SKILL.md +156 -0
- package/skills/development-workflows/SKILL.md +7 -0
- package/skills/development-workflows/cross-model-workflow/assets/cross-model-workflow.png +0 -0
- package/skills/development-workflows/cross-model-workflow/cross-model-workflow.md +55 -0
- package/skills/development-workflows/rpi/.claude/agents/code-reviewer.md +21 -0
- package/skills/development-workflows/rpi/.claude/agents/constitutional-validator.md +288 -0
- package/skills/development-workflows/rpi/.claude/agents/documentation-analyst-writer.md +64 -0
- package/skills/development-workflows/rpi/.claude/agents/product-manager.md +15 -0
- package/skills/development-workflows/rpi/.claude/agents/requirement-parser.md +238 -0
- package/skills/development-workflows/rpi/.claude/agents/senior-software-engineer.md +15 -0
- package/skills/development-workflows/rpi/.claude/agents/technical-cto-advisor.md +201 -0
- package/skills/development-workflows/rpi/.claude/agents/ux-designer.md +14 -0
- package/skills/development-workflows/rpi/.claude/commands/rpi/implement.md +634 -0
- package/skills/development-workflows/rpi/.claude/commands/rpi/plan.md +416 -0
- package/skills/development-workflows/rpi/.claude/commands/rpi/research.md +381 -0
- package/skills/development-workflows/rpi/rpi-workflow.md +101 -0
- package/skills/development-workflows/rpi/rpi-workflow.svg +178 -0
- package/skills/django-celery/SKILL.md +457 -0
- package/skills/django-patterns/SKILL.md +734 -0
- package/skills/django-security/SKILL.md +593 -0
- package/skills/django-tdd/SKILL.md +729 -0
- package/skills/dmux-workflows/SKILL.md +7 -0
- package/skills/docker-patterns/SKILL.md +364 -0
- package/skills/documentation-lookup/SKILL.md +90 -0
- package/skills/domain-name-brainstormer/SKILL.md +212 -0
- package/skills/dribbble/SKILL.md +160 -0
- package/skills/dribbble/metadata.json +16 -0
- package/skills/e2e-testing/SKILL.md +326 -0
- package/skills/empirical-research/SKILL.md +22 -0
- package/skills/error-handling/SKILL.md +376 -0
- package/skills/eval-harness/SKILL.md +270 -0
- package/skills/evm-token-decimals/SKILL.md +130 -0
- package/skills/fastapi-patterns/SKILL.md +327 -0
- package/skills/finance-billing-ops/SKILL.md +127 -0
- package/skills/flox-environments/SKILL.md +496 -0
- package/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/skills/foundation-models-on-device/SKILL.md +243 -0
- package/skills/framer/SKILL.md +159 -0
- package/skills/framer/metadata.json +16 -0
- package/skills/frontend-design/LICENSE.txt +21 -0
- package/skills/frontend-design/README.md +71 -0
- package/skills/frontend-design/SKILL.md +115 -0
- package/skills/frontend-design-direction/SKILL.md +92 -0
- package/skills/frontend-patterns/SKILL.md +7 -0
- package/skills/frontend-slides/SKILL.md +184 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/skills/frontend-slides/animation-patterns.md +122 -0
- package/skills/frontend-slides/html-template.md +419 -0
- package/skills/frontend-slides/scripts/export-pdf.sh +418 -0
- package/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/skills/frontend-slides/viewport-base.css +153 -0
- package/skills/gateguard/SKILL.md +125 -0
- package/skills/git-workflow/SKILL.md +715 -0
- package/skills/github-ops/SKILL.md +144 -0
- package/skills/golang-patterns/SKILL.md +674 -0
- package/skills/golang-testing/SKILL.md +720 -0
- package/skills/graphify/__init__.py +28 -0
- package/skills/graphify/__main__.py +2899 -0
- package/skills/graphify/analyze.py +608 -0
- package/skills/graphify/benchmark.py +152 -0
- package/skills/graphify/build.py +366 -0
- package/skills/graphify/cache.py +244 -0
- package/skills/graphify/callflow_html.py +2014 -0
- package/skills/graphify/cluster.py +267 -0
- package/skills/graphify/dedup.py +414 -0
- package/skills/graphify/detect.py +1018 -0
- package/skills/graphify/export.py +1264 -0
- package/skills/graphify/extract.py +6646 -0
- package/skills/graphify/global_graph.py +155 -0
- package/skills/graphify/google_workspace.py +223 -0
- package/skills/graphify/hooks.py +304 -0
- package/skills/graphify/ingest.py +331 -0
- package/skills/graphify/llm.py +1111 -0
- package/skills/graphify/manifest.py +4 -0
- package/skills/graphify/prs.py +746 -0
- package/skills/graphify/report.py +203 -0
- package/skills/graphify/security.py +242 -0
- package/skills/graphify/serve.py +899 -0
- package/skills/graphify/skill-aider.md +1229 -0
- package/skills/graphify/skill-claw.md +1229 -0
- package/skills/graphify/skill-codex.md +1290 -0
- package/skills/graphify/skill-copilot.md +1317 -0
- package/skills/graphify/skill-droid.md +1285 -0
- package/skills/graphify/skill-kiro.md +1228 -0
- package/skills/graphify/skill-opencode.md +1340 -0
- package/skills/graphify/skill-pi.md +1228 -0
- package/skills/graphify/skill-trae.md +1254 -0
- package/skills/graphify/skill-vscode.md +258 -0
- package/skills/graphify/skill-windows.md +1434 -0
- package/skills/graphify/skill.md +1086 -0
- package/skills/graphify/transcribe.py +184 -0
- package/skills/graphify/tree_html.py +580 -0
- package/skills/graphify/validate.py +72 -0
- package/skills/graphify/watch.py +728 -0
- package/skills/graphify/wiki.py +259 -0
- package/skills/growth-marketing/SKILL.md +26 -0
- package/skills/gsap-scrolltrigger/SKILL.md +8 -0
- package/skills/healthcare-cdss-patterns/SKILL.md +245 -0
- package/skills/healthcare-emr-patterns/SKILL.md +159 -0
- package/skills/healthcare-phi-compliance/SKILL.md +145 -0
- package/skills/hexagonal-architecture/SKILL.md +276 -0
- package/skills/hipaa-compliance/SKILL.md +78 -0
- package/skills/homelab-network-setup/SKILL.md +129 -0
- package/skills/imhcode/SKILL.md +183 -0
- package/skills/imhcode-brainstorm/SKILL.md +37 -0
- package/skills/imhcode-codebase-knowledge/SKILL.md +37 -0
- package/skills/imhcode-codebase-knowledge/assets/templates/ARCHITECTURE.md +49 -0
- package/skills/imhcode-codebase-knowledge/assets/templates/CONCERNS.md +56 -0
- package/skills/imhcode-codebase-knowledge/assets/templates/CONVENTIONS.md +52 -0
- package/skills/imhcode-codebase-knowledge/assets/templates/INTEGRATIONS.md +48 -0
- package/skills/imhcode-codebase-knowledge/assets/templates/STACK.md +56 -0
- package/skills/imhcode-codebase-knowledge/assets/templates/STRUCTURE.md +44 -0
- package/skills/imhcode-codebase-knowledge/assets/templates/TESTING.md +57 -0
- package/skills/imhcode-codebase-knowledge/references/inquiry-checkpoints.md +70 -0
- package/skills/imhcode-codebase-knowledge/references/stack-detection.md +131 -0
- package/skills/imhcode-codebase-knowledge/scripts/scan.py +712 -0
- package/skills/imhcode-dispatch/SKILL.md +31 -0
- package/skills/imhcode-saas-architect/SKILL.md +55 -0
- package/skills/imhcode-security/SKILL.md +42 -0
- package/skills/imhcode-sprint-planner/SKILL.md +42 -0
- package/skills/inventory-demand-planning/SKILL.md +247 -0
- package/skills/investor-materials/SKILL.md +96 -0
- package/skills/investor-outreach/SKILL.md +91 -0
- package/skills/ios-icon-gen/SKILL.md +157 -0
- package/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
- package/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
- package/skills/java-coding-standards/SKILL.md +383 -0
- package/skills/jpa-patterns/SKILL.md +151 -0
- package/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/skills/kotlin-patterns/SKILL.md +711 -0
- package/skills/laravel-patterns/SKILL.md +415 -0
- package/skills/laravel-plugin-discovery/SKILL.md +229 -0
- package/skills/laravel-security/SKILL.md +285 -0
- package/skills/laravel-tdd/SKILL.md +283 -0
- package/skills/laravel-verification/SKILL.md +179 -0
- package/skills/lightweight-3d-effects/SKILL.md +8 -0
- package/skills/linear/SKILL.md +156 -0
- package/skills/linear/metadata.json +16 -0
- package/skills/liquid-glass-design/SKILL.md +279 -0
- package/skills/llm-trading-agent-security/SKILL.md +146 -0
- package/skills/locomotive-scroll/SKILL.md +8 -0
- package/skills/logistics-exception-management/SKILL.md +222 -0
- package/skills/lottie-animations/SKILL.md +8 -0
- package/skills/make-interfaces-feel-better/SKILL.md +151 -0
- package/skills/mcp-server-patterns/SKILL.md +69 -0
- package/skills/meeting-insights-analyzer/SKILL.md +327 -0
- package/skills/micro-interactions/SKILL.md +178 -0
- package/skills/mle-workflow/SKILL.md +346 -0
- package/skills/mobbin/SKILL.md +157 -0
- package/skills/mobbin/metadata.json +16 -0
- package/skills/mobile-app-design/README.md +302 -0
- package/skills/mobile-app-design/SKILL.md +330 -0
- package/skills/mobile-app-design/examples/design-system-config.ts +685 -0
- package/skills/mobile-app-design/examples/form-validation-example.tsx +501 -0
- package/skills/mobile-app-design/examples/optimized-list-example.tsx +384 -0
- package/skills/mobile-app-design/examples/profile-screen-example.tsx +450 -0
- package/skills/mobile-app-design/references/accessibility-checklist.md +525 -0
- package/skills/mobile-app-design/references/android-guidelines.md +582 -0
- package/skills/mobile-app-design/references/common-mistakes.md +834 -0
- package/skills/mobile-app-design/references/ios-guidelines.md +421 -0
- package/skills/mobile-app-design/references/performance-patterns.md +705 -0
- package/skills/mobile-app-design/references/platform-differences.md +353 -0
- package/skills/mobile-app-design/references/ui-libraries.md +729 -0
- package/skills/mobile-app-design/scripts/accessibility-audit.sh +281 -0
- package/skills/mobile-app-design/scripts/check-contrast.py +188 -0
- package/skills/mobile-app-design/scripts/validate-touch-targets.sh +228 -0
- package/skills/mobile-app-ui-design/INDEX.md +131 -0
- package/skills/mobile-app-ui-design/README.md +135 -0
- package/skills/mobile-app-ui-design/SKILL.md +7 -0
- package/skills/mobile-app-ui-design/references/industry-conventions.md +151 -0
- package/skills/modern-web-design/SKILL.md +8 -0
- package/skills/motion-advanced/SKILL.md +596 -0
- package/skills/motion-design/SKILL.md +21 -0
- package/skills/motion-foundations/SKILL.md +299 -0
- package/skills/motion-framer/SKILL.md +8 -0
- package/skills/motion-patterns/SKILL.md +435 -0
- package/skills/motion-ui/SKILL.md +575 -0
- package/skills/mysql-patterns/SKILL.md +412 -0
- package/skills/nestjs-patterns/SKILL.md +230 -0
- package/skills/network-config-validation/SKILL.md +210 -0
- package/skills/nextjs-turbopack/SKILL.md +44 -0
- package/skills/nodejs-keccak256/SKILL.md +102 -0
- package/skills/nothing-design/SKILL.md +177 -0
- package/skills/nothing-design/references/components.md +153 -0
- package/skills/nothing-design/references/platform-mapping.md +64 -0
- package/skills/nothing-design/references/tokens.md +142 -0
- package/skills/nuxt4-patterns/SKILL.md +100 -0
- package/skills/openclaw-persona-forge/SKILL.md +288 -0
- package/skills/openclaw-persona-forge/gacha.py +224 -0
- package/skills/openclaw-persona-forge/gacha.sh +5 -0
- package/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
- package/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
- package/skills/openclaw-persona-forge/references/error-handling.md +53 -0
- package/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
- package/skills/openclaw-persona-forge/references/naming-system.md +39 -0
- package/skills/openclaw-persona-forge/references/output-template.md +166 -0
- package/skills/orchestration-workflow/SKILL.md +199 -0
- package/skills/orchestration-workflow/orchestration-workflow.gif +0 -0
- package/skills/orchestration-workflow/orchestration-workflow.md +199 -0
- package/skills/orchestration-workflow/orchestration-workflow.svg +78 -0
- package/skills/orchestration-workflow/output.md +13 -0
- package/skills/orchestration-workflow/weather.svg +6 -0
- package/skills/pixijs-2d/SKILL.md +8 -0
- package/skills/plan-orchestrate/SKILL.md +262 -0
- package/skills/plankton-code-quality/SKILL.md +236 -0
- package/skills/postgres-patterns/SKILL.md +147 -0
- package/skills/ppt-mckinsey/SKILL.md +27 -0
- package/skills/prisma-patterns/SKILL.md +371 -0
- package/skills/product-capability/SKILL.md +141 -0
- package/skills/product-lens/SKILL.md +92 -0
- package/skills/production-audit/SKILL.md +206 -0
- package/skills/project-flow-ops/SKILL.md +111 -0
- package/skills/prompt-optimizer/SKILL.md +398 -0
- package/skills/python-patterns/SKILL.md +750 -0
- package/skills/python-testing/SKILL.md +816 -0
- package/skills/pytorch-patterns/SKILL.md +396 -0
- package/skills/quarkus-patterns/SKILL.md +722 -0
- package/skills/radix-ui-primitives/SKILL.md +86 -0
- package/skills/react-native-best-practices/SKILL.md +83 -0
- package/skills/react-native-brownfield-migration/SKILL.md +115 -0
- package/skills/react-spring-physics/SKILL.md +8 -0
- package/skills/react-three-fiber/SKILL.md +8 -0
- package/skills/recsys-pipeline-architect/SKILL.md +114 -0
- package/skills/redis-patterns/SKILL.md +403 -0
- package/skills/remotion-video-creation/SKILL.md +43 -0
- package/skills/remotion-video-creation/rules/3d.md +86 -0
- package/skills/remotion-video-creation/rules/animations.md +29 -0
- package/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
- package/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
- package/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/skills/remotion-video-creation/rules/assets.md +78 -0
- package/skills/remotion-video-creation/rules/audio.md +172 -0
- package/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
- package/skills/remotion-video-creation/rules/can-decode.md +75 -0
- package/skills/remotion-video-creation/rules/charts.md +58 -0
- package/skills/remotion-video-creation/rules/compositions.md +146 -0
- package/skills/remotion-video-creation/rules/display-captions.md +126 -0
- package/skills/remotion-video-creation/rules/extract-frames.md +229 -0
- package/skills/remotion-video-creation/rules/fonts.md +152 -0
- package/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
- package/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
- package/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
- package/skills/remotion-video-creation/rules/gifs.md +138 -0
- package/skills/remotion-video-creation/rules/images.md +130 -0
- package/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
- package/skills/remotion-video-creation/rules/lottie.md +67 -0
- package/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
- package/skills/remotion-video-creation/rules/measuring-text.md +143 -0
- package/skills/remotion-video-creation/rules/sequencing.md +106 -0
- package/skills/remotion-video-creation/rules/tailwind.md +11 -0
- package/skills/remotion-video-creation/rules/text-animations.md +20 -0
- package/skills/remotion-video-creation/rules/timing.md +179 -0
- package/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
- package/skills/remotion-video-creation/rules/transitions.md +122 -0
- package/skills/remotion-video-creation/rules/trimming.md +52 -0
- package/skills/remotion-video-creation/rules/videos.md +171 -0
- package/skills/repo-scan/SKILL.md +78 -0
- package/skills/responsive-email-templates/SKILL.md +110 -0
- package/skills/rive-interactive/SKILL.md +8 -0
- package/skills/rust-patterns/SKILL.md +499 -0
- package/skills/rust-testing/SKILL.md +500 -0
- package/skills/scroll-reveal-libraries/SKILL.md +8 -0
- package/skills/security-bounty-hunter/SKILL.md +99 -0
- package/skills/security-review/SKILL.md +503 -0
- package/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/skills/security-scan/SKILL.md +165 -0
- package/skills/seo/SKILL.md +154 -0
- package/skills/seo-growth/SKILL.md +34 -0
- package/skills/shadcn-ui-patterns/SKILL.md +123 -0
- package/skills/spline-interactive/SKILL.md +8 -0
- package/skills/springboot-patterns/SKILL.md +314 -0
- package/skills/springboot-security/SKILL.md +272 -0
- package/skills/springboot-tdd/SKILL.md +158 -0
- package/skills/strategic-compact/SKILL.md +131 -0
- package/skills/stripe/SKILL.md +168 -0
- package/skills/stripe/metadata.json +16 -0
- package/skills/swift-actor-persistence/SKILL.md +143 -0
- package/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/skills/swiftui-patterns/SKILL.md +259 -0
- package/skills/systematic-debugging/CREATION-LOG.md +119 -0
- package/skills/systematic-debugging/SKILL.md +296 -0
- package/skills/systematic-debugging/condition-based-waiting-example.ts +158 -0
- package/skills/systematic-debugging/condition-based-waiting.md +115 -0
- package/skills/systematic-debugging/defense-in-depth.md +122 -0
- package/skills/systematic-debugging/find-polluter.sh +63 -0
- package/skills/systematic-debugging/root-cause-tracing.md +169 -0
- package/skills/systematic-debugging/test-academic.md +14 -0
- package/skills/systematic-debugging/test-pressure-1.md +58 -0
- package/skills/systematic-debugging/test-pressure-2.md +68 -0
- package/skills/systematic-debugging/test-pressure-3.md +69 -0
- package/skills/tailwindcss-v4/SKILL.md +107 -0
- package/skills/tdd-workflow/SKILL.md +463 -0
- package/skills/team-builder/SKILL.md +168 -0
- package/skills/test-driven-development/SKILL.md +371 -0
- package/skills/test-driven-development/testing-anti-patterns.md +299 -0
- package/skills/theme-factory/LICENSE.txt +202 -0
- package/skills/theme-factory/SKILL.md +59 -0
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/theme-factory/themes/arctic-frost.md +19 -0
- package/skills/theme-factory/themes/botanical-garden.md +19 -0
- package/skills/theme-factory/themes/desert-rose.md +19 -0
- package/skills/theme-factory/themes/forest-canopy.md +19 -0
- package/skills/theme-factory/themes/golden-hour.md +19 -0
- package/skills/theme-factory/themes/midnight-galaxy.md +19 -0
- package/skills/theme-factory/themes/modern-minimalist.md +19 -0
- package/skills/theme-factory/themes/ocean-depths.md +19 -0
- package/skills/theme-factory/themes/sunset-boulevard.md +19 -0
- package/skills/theme-factory/themes/tech-innovation.md +19 -0
- package/skills/threejs-webgl/SKILL.md +8 -0
- package/skills/trailofbits-auditing/SKILL.md +30 -0
- package/skills/twitter-algorithm-optimizer/SKILL.md +327 -0
- package/skills/typeui-cli/SKILL.md +90 -0
- package/skills/typeui-main/DESIGN.md +114 -0
- package/skills/typeui-main/LICENSE.md +9 -0
- package/skills/typeui-main/README.md +84 -0
- package/skills/typeui-main/REGISTRY.md +60 -0
- package/skills/typeui-main/SKILL.md +114 -0
- package/skills/typeui-main/package-lock.json +2123 -0
- package/skills/typeui-main/package.json +56 -0
- package/skills/typeui-main/skills/typeui-cli/SKILL.md +90 -0
- package/skills/typeui-main/src/cli.ts +282 -0
- package/skills/typeui-main/src/config.ts +28 -0
- package/skills/typeui-main/src/domain/designSystemSchema.ts +77 -0
- package/skills/typeui-main/src/generation/existingDesignSystem.ts +228 -0
- package/skills/typeui-main/src/generation/randomDesignSystem.ts +348 -0
- package/skills/typeui-main/src/generation/runDesignGeneration.ts +31 -0
- package/skills/typeui-main/src/generation/runGeneration.ts +36 -0
- package/skills/typeui-main/src/generation/runPull.ts +62 -0
- package/skills/typeui-main/src/io/updateSkillFile.ts +118 -0
- package/skills/typeui-main/src/prompts/designSystem.ts +755 -0
- package/skills/typeui-main/src/prompts/registry.ts +72 -0
- package/skills/typeui-main/src/registry/registryClient.ts +246 -0
- package/skills/typeui-main/src/renderers/claudeRenderer.ts +10 -0
- package/skills/typeui-main/src/renderers/codexRenderer.ts +10 -0
- package/skills/typeui-main/src/renderers/cursorRenderer.ts +10 -0
- package/skills/typeui-main/src/renderers/index.ts +14 -0
- package/skills/typeui-main/src/renderers/openCodeRenderer.ts +10 -0
- package/skills/typeui-main/src/renderers/shared.ts +252 -0
- package/skills/typeui-main/src/skillMetadata.ts +19 -0
- package/skills/typeui-main/src/types.ts +204 -0
- package/skills/typeui-main/src/ui/banner.ts +20 -0
- package/skills/typeui-main/test/existingDesignSystem.test.ts +67 -0
- package/skills/typeui-main/test/orchestrator.test.ts +113 -0
- package/skills/typeui-main/test/randomDesignSystem.test.ts +20 -0
- package/skills/typeui-main/test/registryClient.test.ts +408 -0
- package/skills/typeui-main/test/renderers.test.ts +41 -0
- package/skills/typeui-main/test/runDesignGeneration.test.ts +52 -0
- package/skills/typeui-main/test/runPull.test.ts +92 -0
- package/skills/typeui-main/test/skillMetadata.test.ts +11 -0
- package/skills/typeui-main/test/updateSkillFile.test.ts +160 -0
- package/skills/typeui-main/tsconfig.json +16 -0
- package/skills/ui-demo/SKILL.md +465 -0
- package/skills/ui-to-vue/SKILL.md +134 -0
- package/skills/ui-ux-pro-max/.claude/skills/banner-design/SKILL.md +192 -0
- package/skills/ui-ux-pro-max/.claude/skills/banner-design/references/banner-sizes-and-styles.md +118 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/SKILL.md +97 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/approval-checklist.md +169 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/asset-organization.md +157 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/brand-guideline-template.md +140 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/color-palette-management.md +186 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/consistency-checklist.md +94 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/logo-usage-rules.md +185 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/messaging-framework.md +85 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/typography-specifications.md +214 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/update.md +118 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/visual-identity.md +96 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/references/voice-framework.md +88 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/extract-colors.cjs +341 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/inject-brand-context.cjs +349 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/sync-brand-to-tokens.cjs +266 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/scripts/validate-asset.cjs +387 -0
- package/skills/ui-ux-pro-max/.claude/skills/brand/templates/brand-guidelines-starter.md +275 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/SKILL.md +302 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/deliverables.csv +51 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/industries.csv +21 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/mockup-contexts.csv +21 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/cip/styles.csv +21 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/icon/styles.csv +16 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/logo/colors.csv +56 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/logo/industries.csv +56 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/data/logo/styles.csv +56 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/banner-sizes-and-styles.md +118 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-deliverable-guide.md +95 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-design.md +121 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-prompt-engineering.md +84 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/cip-style-guide.md +68 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/design-routing.md +207 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/icon-design.md +122 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-color-psychology.md +101 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-design.md +92 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-prompt-engineering.md +158 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/logo-style-guide.md +109 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-copywriting-formulas.md +84 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-create.md +4 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-html-template.md +295 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-layout-patterns.md +137 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/slides-strategies.md +94 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/slides.md +42 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/references/social-photos-design.md +329 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/core.py +215 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/generate.py +484 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/render-html.py +424 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/cip/search.py +127 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/icon/generate.py +487 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/logo/core.py +175 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/logo/generate.py +362 -0
- package/skills/ui-ux-pro-max/.claude/skills/design/scripts/logo/search.py +114 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/SKILL.md +244 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-backgrounds.csv +11 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-charts.csv +26 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-color-logic.csv +14 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-copy.csv +26 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-layout-logic.csv +16 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-layouts.csv +26 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-strategies.csv +16 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/data/slide-typography.csv +15 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/references/component-specs.md +236 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/references/component-tokens.md +214 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/references/primitive-tokens.md +203 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/references/semantic-tokens.md +215 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/references/states-and-variants.md +241 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/references/tailwind-integration.md +251 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/references/token-architecture.md +224 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/embed-tokens.cjs +99 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/fetch-background.py +317 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/generate-slide.py +753 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/generate-tokens.cjs +205 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/html-token-validator.py +327 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/search-slides.py +218 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/slide-token-validator.py +35 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/slide_search_core.py +453 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/scripts/validate-tokens.cjs +251 -0
- package/skills/ui-ux-pro-max/.claude/skills/design-system/templates/design-tokens-starter.json +143 -0
- package/skills/ui-ux-pro-max/.claude/skills/slides/SKILL.md +42 -0
- package/skills/ui-ux-pro-max/.claude/skills/slides/references/copywriting-formulas.md +84 -0
- package/skills/ui-ux-pro-max/.claude/skills/slides/references/create.md +4 -0
- package/skills/ui-ux-pro-max/.claude/skills/slides/references/html-template.md +295 -0
- package/skills/ui-ux-pro-max/.claude/skills/slides/references/layout-patterns.md +137 -0
- package/skills/ui-ux-pro-max/.claude/skills/slides/references/slide-strategies.md +94 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/LICENSE.txt +202 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/SKILL.md +324 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/shadcn-components.md +424 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/.coverage +0 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/requirements.txt +17 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/coverage-ui.json +1 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/requirements.txt +3 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/skills/ui-ux-pro-max/.claude/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/skills/ui-ux-pro-max/.claude-plugin/marketplace.json +35 -0
- package/skills/ui-ux-pro-max/.claude-plugin/plugin.json +11 -0
- package/skills/ui-ux-pro-max/.github/workflows/claude-code-review.yml +44 -0
- package/skills/ui-ux-pro-max/.github/workflows/claude.yml +50 -0
- package/skills/ui-ux-pro-max/.github/workflows/python-package-conda.yml +34 -0
- package/skills/ui-ux-pro-max/CLAUDE.md +98 -0
- package/skills/ui-ux-pro-max/LICENSE +21 -0
- package/skills/ui-ux-pro-max/README.md +513 -0
- package/skills/ui-ux-pro-max/SKILL.md +292 -0
- package/skills/ui-ux-pro-max/cli/README.md +63 -0
- package/skills/ui-ux-pro-max/cli/assets/data/_sync_all.py +414 -0
- package/skills/ui-ux-pro-max/cli/assets/data/app-interface.csv +31 -0
- package/skills/ui-ux-pro-max/cli/assets/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/cli/assets/data/colors.csv +162 -0
- package/skills/ui-ux-pro-max/cli/assets/data/design.csv +1776 -0
- package/skills/ui-ux-pro-max/cli/assets/data/draft.csv +1779 -0
- package/skills/ui-ux-pro-max/cli/assets/data/google-fonts.csv +1924 -0
- package/skills/ui-ux-pro-max/cli/assets/data/icons.csv +105 -0
- package/skills/ui-ux-pro-max/cli/assets/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/cli/assets/data/products.csv +162 -0
- package/skills/ui-ux-pro-max/cli/assets/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/angular.csv +51 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/laravel.csv +51 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/threejs.csv +54 -0
- package/skills/ui-ux-pro-max/cli/assets/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/cli/assets/data/styles.csv +85 -0
- package/skills/ui-ux-pro-max/cli/assets/data/typography.csv +74 -0
- package/skills/ui-ux-pro-max/cli/assets/data/ui-reasoning.csv +162 -0
- package/skills/ui-ux-pro-max/cli/assets/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/cli/assets/scripts/core.py +247 -0
- package/skills/ui-ux-pro-max/cli/assets/scripts/design_system.py +1148 -0
- package/skills/ui-ux-pro-max/cli/assets/scripts/search.py +114 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/base/quick-reference.md +297 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/base/skill-content.md +353 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/agent.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/augment.json +18 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/claude.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/codebuddy.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/codex.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/continue.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/copilot.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/cursor.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/droid.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/gemini.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/kilocode.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/kiro.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/opencode.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/qoder.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/roocode.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/trae.json +21 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/warp.json +18 -0
- package/skills/ui-ux-pro-max/cli/assets/templates/platforms/windsurf.json +21 -0
- package/skills/ui-ux-pro-max/cli/bun.lock +77 -0
- package/skills/ui-ux-pro-max/cli/package-lock.json +370 -0
- package/skills/ui-ux-pro-max/cli/package.json +48 -0
- package/skills/ui-ux-pro-max/cli/src/commands/init.ts +216 -0
- package/skills/ui-ux-pro-max/cli/src/commands/uninstall.ts +135 -0
- package/skills/ui-ux-pro-max/cli/src/commands/update.ts +36 -0
- package/skills/ui-ux-pro-max/cli/src/commands/versions.ts +42 -0
- package/skills/ui-ux-pro-max/cli/src/index.ts +83 -0
- package/skills/ui-ux-pro-max/cli/src/types/index.ts +68 -0
- package/skills/ui-ux-pro-max/cli/src/utils/detect.ts +120 -0
- package/skills/ui-ux-pro-max/cli/src/utils/extract.ts +149 -0
- package/skills/ui-ux-pro-max/cli/src/utils/github.ts +104 -0
- package/skills/ui-ux-pro-max/cli/src/utils/logger.ts +11 -0
- package/skills/ui-ux-pro-max/cli/src/utils/template.ts +243 -0
- package/skills/ui-ux-pro-max/cli/tsconfig.json +17 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/skills/ui-ux-pro-max/docs//344/270/211/344/270/252 data-scripts-templates /347/232/204/345/214/272/345/210/253.md" +30 -0
- package/skills/ui-ux-pro-max/preview/xiaomaomi-app.html +411 -0
- package/skills/ui-ux-pro-max/screenshots/website.png +0 -0
- package/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/ui-ux-pro-max/skill.json +41 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/colors.csv +162 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/design.csv +1776 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/draft.csv +1779 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/icons.csv +106 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/landing.csv +35 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/products.csv +162 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/angular.csv +51 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/laravel.csv +51 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/threejs.csv +54 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/styles.csv +85 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/typography.csv +74 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/scripts/core.py +262 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/scripts/design_system.py +1148 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/base/quick-reference.md +297 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/base/skill-content.md +358 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/agent.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/augment.json +18 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/claude.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/codebuddy.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/codex.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/continue.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/copilot.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/cursor.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/droid.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/gemini.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/kilocode.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/kiro.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/opencode.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/qoder.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/roocode.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/trae.json +21 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/warp.json +18 -0
- package/skills/ui-ux-pro-max/src/ui-ux-pro-max/templates/platforms/windsurf.json +21 -0
- package/skills/uncloud/SKILL.md +343 -0
- package/skills/upgrading-react-native/SKILL.md +58 -0
- package/skills/using-git-worktrees/SKILL.md +215 -0
- package/skills/vercel/SKILL.md +161 -0
- package/skills/vercel/metadata.json +16 -0
- package/skills/verification-loop/SKILL.md +126 -0
- package/skills/view-transitions-api/SKILL.md +108 -0
- package/skills/vite-patterns/SKILL.md +449 -0
- package/skills/vue3-composition-patterns/SKILL.md +375 -0
- package/skills/waza-habits/SKILL.md +22 -0
- package/skills/webapp-testing/LICENSE.txt +202 -0
- package/skills/webapp-testing/SKILL.md +96 -0
- package/skills/webapp-testing/examples/console_logging.py +35 -0
- package/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/skills/webapp-testing/scripts/with_server.py +106 -0
- package/src/orchestrator/builder.ts +234 -0
- package/src/orchestrator/executor.ts +386 -0
- package/src/orchestrator/index.ts +535 -0
- package/src/orchestrator/loader.ts +237 -0
- package/src/orchestrator/registry.ts +211 -0
- package/src/orchestrator/schema.ts +141 -0
- package/src/orchestrator/session.ts +128 -0
- package/src/orchestrator/types.ts +109 -0
- package/tsconfig.json +21 -0
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
# Internationalization (i18n) & RTL Reference
|
|
2
|
+
|
|
3
|
+
Internationalization is building a product that can be adapted for different languages and regions without engineering changes. Localization (l10n) is the actual adaptation for a specific locale.
|
|
4
|
+
|
|
5
|
+
This reference focuses on what's visible in the design — the things that break or look wrong when a product goes multilingual.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Text Expansion
|
|
10
|
+
|
|
11
|
+
Different languages take up very different amounts of space than English. This is the most common i18n design failure.
|
|
12
|
+
|
|
13
|
+
### Typical Expansion Rates vs English
|
|
14
|
+
|
|
15
|
+
| Language | Expansion |
|
|
16
|
+
|---|---|
|
|
17
|
+
| German | +30–40% |
|
|
18
|
+
| Finnish | +30–40% |
|
|
19
|
+
| French | +15–25% |
|
|
20
|
+
| Spanish | +15–25% |
|
|
21
|
+
| Portuguese | +15–30% |
|
|
22
|
+
| Russian | +15–25% |
|
|
23
|
+
| Arabic | -20–25% (shorter but RTL) |
|
|
24
|
+
| Chinese/Japanese/Korean | -30–50% (denser characters) |
|
|
25
|
+
|
|
26
|
+
### How to Design for Text Expansion
|
|
27
|
+
|
|
28
|
+
**Buttons:**
|
|
29
|
+
- Don't use fixed-width buttons. Use `min-width` with horizontal padding, so the button grows with the text.
|
|
30
|
+
- Test with a German or Finnish string — if the button wraps or overflows, the design isn't ready.
|
|
31
|
+
- Avoid putting two buttons side by side in a tight space — one may grow and overlap the other.
|
|
32
|
+
|
|
33
|
+
**Navigation:**
|
|
34
|
+
- Horizontal nav bars are the most vulnerable — they clip or wrap when labels expand.
|
|
35
|
+
- Test nav items with longer strings. Consider icon-only nav on mobile, with labels on desktop.
|
|
36
|
+
|
|
37
|
+
**Labels & headings:**
|
|
38
|
+
- Truncation (`text-overflow: ellipsis`) is acceptable for secondary content, never for critical labels.
|
|
39
|
+
- Two-line truncation is safer than one-line for headings.
|
|
40
|
+
|
|
41
|
+
**Cards & table cells:**
|
|
42
|
+
- Fixed-height cards clip translated text. Use `min-height` not `height`.
|
|
43
|
+
- Table cells should allow text wrapping, not fixed heights.
|
|
44
|
+
|
|
45
|
+
### Testing for Expansion
|
|
46
|
+
The quickest test: temporarily replace all strings with a string 40% longer than the original and scan for breakage.
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## RTL (Right-to-Left) Languages
|
|
51
|
+
|
|
52
|
+
RTL languages: **Arabic, Hebrew, Persian (Farsi), Urdu, Pashto, Sindhi**
|
|
53
|
+
|
|
54
|
+
In RTL, the entire reading direction reverses — and the UI layout should mirror accordingly.
|
|
55
|
+
|
|
56
|
+
### What Mirrors in RTL
|
|
57
|
+
|
|
58
|
+
| Element | LTR | RTL |
|
|
59
|
+
|---|---|---|
|
|
60
|
+
| Text alignment | Left | Right |
|
|
61
|
+
| Page layout direction | Left to right | Right to left |
|
|
62
|
+
| Navigation | Logo left, actions right | Logo right, actions left |
|
|
63
|
+
| Sidebar | Left | Right |
|
|
64
|
+
| Form fields | Left-aligned | Right-aligned |
|
|
65
|
+
| Progress bars | Fill left → right | Fill right → left |
|
|
66
|
+
| Breadcrumbs | Home > Section > Page | Page < Section < Home |
|
|
67
|
+
| List bullets/numbers | Left of text | Right of text |
|
|
68
|
+
| Tooltips | Open right | Open left |
|
|
69
|
+
| Scrollbar | Right side | Left side |
|
|
70
|
+
| Back button icon | ← | → |
|
|
71
|
+
|
|
72
|
+
### What Does NOT Mirror in RTL
|
|
73
|
+
|
|
74
|
+
| Element | Stays the Same |
|
|
75
|
+
|---|---|
|
|
76
|
+
| Clock direction | Always clockwise |
|
|
77
|
+
| Phone numbers | Always LTR |
|
|
78
|
+
| Prices / currencies | Depends on locale standard |
|
|
79
|
+
| Code snippets | Always LTR |
|
|
80
|
+
| Non-directional icons | Heart, star, trash, settings |
|
|
81
|
+
| Media controls | Play/pause buttons stay the same |
|
|
82
|
+
| Logos | Unless specifically designed with RTL version |
|
|
83
|
+
| Mathematical expressions | Always LTR |
|
|
84
|
+
|
|
85
|
+
### Implementing RTL in Code
|
|
86
|
+
|
|
87
|
+
**HTML level:**
|
|
88
|
+
```html
|
|
89
|
+
<html dir="rtl" lang="ar">
|
|
90
|
+
```
|
|
91
|
+
Or per section:
|
|
92
|
+
```html
|
|
93
|
+
<div dir="rtl">...</div>
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
**CSS — Use logical properties instead of directional ones:**
|
|
97
|
+
|
|
98
|
+
| ❌ Directional (breaks in RTL) | ✅ Logical (works in both) |
|
|
99
|
+
|---|---|
|
|
100
|
+
| `margin-left` | `margin-inline-start` |
|
|
101
|
+
| `margin-right` | `margin-inline-end` |
|
|
102
|
+
| `padding-left` | `padding-inline-start` |
|
|
103
|
+
| `padding-right` | `padding-inline-end` |
|
|
104
|
+
| `border-left` | `border-inline-start` |
|
|
105
|
+
| `left: 0` | `inset-inline-start: 0` |
|
|
106
|
+
| `text-align: left` | `text-align: start` |
|
|
107
|
+
| `text-align: right` | `text-align: end` |
|
|
108
|
+
| `float: left` | `float: inline-start` |
|
|
109
|
+
|
|
110
|
+
**CSS `transform` for directional icons:**
|
|
111
|
+
```css
|
|
112
|
+
/* Flip directional icons in RTL */
|
|
113
|
+
[dir="rtl"] .icon-arrow,
|
|
114
|
+
[dir="rtl"] .icon-chevron,
|
|
115
|
+
[dir="rtl"] .icon-back {
|
|
116
|
+
transform: scaleX(-1);
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### RTL-Specific Design Checklist
|
|
121
|
+
- [ ] `dir="rtl"` applied at html or section level
|
|
122
|
+
- [ ] CSS uses logical properties (`inline-start/end`) not directional (`left/right`)
|
|
123
|
+
- [ ] Directional icons (arrows, chevrons) flip in RTL
|
|
124
|
+
- [ ] Layout mirrors (sidebar, nav, cards)
|
|
125
|
+
- [ ] Progress bars and sliders fill from correct direction
|
|
126
|
+
- [ ] Form fields are right-aligned
|
|
127
|
+
- [ ] Text is right-aligned
|
|
128
|
+
- [ ] Scrollbar moves to left side (handled by browser with `dir="rtl"`)
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Date, Time & Number Formats
|
|
133
|
+
|
|
134
|
+
Never hardcode locale-specific formats. Use the browser's `Intl` API.
|
|
135
|
+
|
|
136
|
+
### Date Formats by Region
|
|
137
|
+
|
|
138
|
+
| Region | Format | Example |
|
|
139
|
+
|---|---|---|
|
|
140
|
+
| US | MM/DD/YYYY | 01/15/2025 |
|
|
141
|
+
| UK / Australia | DD/MM/YYYY | 15/01/2025 |
|
|
142
|
+
| ISO / Technical | YYYY-MM-DD | 2025-01-15 |
|
|
143
|
+
| Germany | DD.MM.YYYY | 15.01.2025 |
|
|
144
|
+
| Japan | YYYY年MM月DD日 | 2025年01月15日 |
|
|
145
|
+
| Arabic | Right-to-left, varies | Locale-dependent |
|
|
146
|
+
|
|
147
|
+
**Always use `Intl.DateTimeFormat`:**
|
|
148
|
+
```javascript
|
|
149
|
+
new Intl.DateTimeFormat('de-DE').format(new Date()) // 15.1.2025
|
|
150
|
+
new Intl.DateTimeFormat('en-US').format(new Date()) // 1/15/2025
|
|
151
|
+
new Intl.DateTimeFormat('ar-SA').format(new Date()) // Arabic numeral date
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Number Formats
|
|
155
|
+
|
|
156
|
+
| Locale | Thousands separator | Decimal separator | Example |
|
|
157
|
+
|---|---|---|---|
|
|
158
|
+
| en-US | , | . | 1,234,567.89 |
|
|
159
|
+
| de-DE | . | , | 1.234.567,89 |
|
|
160
|
+
| fr-FR | (thin space) | , | 1 234 567,89 |
|
|
161
|
+
| ar | (varies) | (varies) | Use Intl API |
|
|
162
|
+
|
|
163
|
+
**Always use `Intl.NumberFormat`:**
|
|
164
|
+
```javascript
|
|
165
|
+
new Intl.NumberFormat('de-DE').format(1234567.89) // 1.234.567,89
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Currency
|
|
169
|
+
|
|
170
|
+
- Symbol position varies: `$100` (US) vs `100 €` (Europe) vs `¥100` (Japan)
|
|
171
|
+
- Always use `Intl.NumberFormat` with `style: 'currency'`
|
|
172
|
+
- Never hardcode `$` prefix
|
|
173
|
+
|
|
174
|
+
```javascript
|
|
175
|
+
new Intl.NumberFormat('de-DE', { style: 'currency', currency: 'EUR' }).format(1234)
|
|
176
|
+
// → 1.234,00 €
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Font Support for Non-Latin Scripts
|
|
182
|
+
|
|
183
|
+
Most web fonts only support Latin characters. If you use a custom font and the user's OS language is Arabic, Chinese, Korean, etc., the browser will fall back to a system font — creating a jarring inconsistency.
|
|
184
|
+
|
|
185
|
+
### Check Font Coverage
|
|
186
|
+
|
|
187
|
+
| Script | Common Web Font Support |
|
|
188
|
+
|---|---|
|
|
189
|
+
| Latin (English, French, German...) | ✅ Most web fonts |
|
|
190
|
+
| Cyrillic (Russian, Bulgarian...) | ✅ Many Google Fonts |
|
|
191
|
+
| Greek | ✅ Many Google Fonts |
|
|
192
|
+
| Arabic | ❌ Most Latin web fonts — needs dedicated Arabic font |
|
|
193
|
+
| Hebrew | ❌ Most Latin web fonts — needs dedicated Hebrew font |
|
|
194
|
+
| CJK (Chinese, Japanese, Korean) | ❌ Most Latin web fonts — system fonts usually |
|
|
195
|
+
| Devanagari (Hindi) | ❌ Most Latin web fonts — Noto fonts or dedicated |
|
|
196
|
+
|
|
197
|
+
### Recommended Universal Font: Noto
|
|
198
|
+
|
|
199
|
+
Google's **Noto** font family is designed to support all scripts without "tofu" (□ characters). It's a safe fallback for multilingual products.
|
|
200
|
+
|
|
201
|
+
### CSS Font Stack for Multilingual
|
|
202
|
+
|
|
203
|
+
```css
|
|
204
|
+
font-family: 'YourFont', 'Noto Sans', system-ui, sans-serif;
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Text in Images
|
|
210
|
+
|
|
211
|
+
**Never embed text inside images** if the product will be translated.
|
|
212
|
+
|
|
213
|
+
- Images with text can't be localized without recreating the image
|
|
214
|
+
- Screen readers can't read text in images
|
|
215
|
+
- Text in images doesn't scale with browser font settings
|
|
216
|
+
|
|
217
|
+
**Solution:** Use CSS text overlays on top of images. Keep the image as a background, text as a separate HTML element.
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Pluralization
|
|
222
|
+
|
|
223
|
+
Languages handle plurals very differently. English has 2 forms (1 item, 2 items). Arabic has 6 plural forms. Russian has 3.
|
|
224
|
+
|
|
225
|
+
**Never do this in code:**
|
|
226
|
+
```javascript
|
|
227
|
+
`${count} item${count === 1 ? '' : 's'}` // Only works for English
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
**Do this instead:**
|
|
231
|
+
Use an i18n library that handles plural rules (i18next, react-intl, FormatJS):
|
|
232
|
+
```javascript
|
|
233
|
+
t('items', { count }) // Library handles the plural form per locale
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Design implication: Leave room for plural variations
|
|
237
|
+
In designs, don't assume a short string stays short in all plural forms. "1 item" vs "1,234 items" is one thing — but in some languages, the word itself changes length significantly across plural forms.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## i18n Design Audit Checklist
|
|
242
|
+
|
|
243
|
+
- [ ] No hardcoded strings visible in the UI (all from translation files)
|
|
244
|
+
- [ ] Buttons use `min-width` not fixed width
|
|
245
|
+
- [ ] Fixed-height containers use `min-height` to accommodate expansion
|
|
246
|
+
- [ ] RTL layout tested with `dir="rtl"` (if targeting RTL languages)
|
|
247
|
+
- [ ] Directional icons flip in RTL
|
|
248
|
+
- [ ] Dates use `Intl.DateTimeFormat`
|
|
249
|
+
- [ ] Numbers use `Intl.NumberFormat`
|
|
250
|
+
- [ ] Currency uses `Intl.NumberFormat` with currency style
|
|
251
|
+
- [ ] No text embedded in images
|
|
252
|
+
- [ ] Pluralization handled by an i18n library, not string concatenation
|
|
253
|
+
- [ ] Font stack includes multilingual fallback (Noto or system-ui)
|
|
254
|
+
- [ ] Navigation tested with 40% longer strings
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# Iconography Rules Reference
|
|
2
|
+
|
|
3
|
+
Icons are a universal UI language — but only when used consistently and correctly. Inconsistent iconography is one of the most noticeable signs of an unpolished UI.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Choosing an Icon Library
|
|
8
|
+
|
|
9
|
+
### The One Library Rule
|
|
10
|
+
Use exactly **one icon library** throughout the product. Mixing libraries creates visual inconsistency because each library has its own optical proportions, stroke weights, and corner rounding.
|
|
11
|
+
|
|
12
|
+
### Popular Libraries & Their Character
|
|
13
|
+
|
|
14
|
+
| Library | Style | Best For |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| **Lucide** | Clean outline, 2px stroke | Modern SaaS, developer tools |
|
|
17
|
+
| **Phosphor** | Multi-weight, very versatile | Any product, highly flexible |
|
|
18
|
+
| **Heroicons** | Outline + solid variants | Tailwind-based projects |
|
|
19
|
+
| **Material Symbols** | Google's system | Android-adjacent, data-heavy UIs |
|
|
20
|
+
| **Feather** | Minimal outline | Clean, minimal interfaces |
|
|
21
|
+
| **Tabler Icons** | Outline, very complete | Enterprise tools |
|
|
22
|
+
| **Radix Icons** | Compact, precise | UI components, design systems |
|
|
23
|
+
|
|
24
|
+
### Picking a Style
|
|
25
|
+
Each library usually offers multiple styles. Pick **one** and don't mix:
|
|
26
|
+
- **Outline** — light, airy, modern
|
|
27
|
+
- **Filled / Solid** — heavier, more assertive, better at small sizes
|
|
28
|
+
- **Duotone** — two-tone, decorative, good for empty states and illustrations
|
|
29
|
+
- **Bold / Thick** — accessible, high-contrast, punchy
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Icon Sizing
|
|
34
|
+
|
|
35
|
+
### The Optical Grid
|
|
36
|
+
Icons look best at sizes that align to the 4-point grid AND are optical grid-friendly:
|
|
37
|
+
|
|
38
|
+
| Size | Use Case |
|
|
39
|
+
|---|---|
|
|
40
|
+
| 12px | Tiny inline indicators (status dots with label) |
|
|
41
|
+
| 16px | Dense UI, inline with small text (12–13px) |
|
|
42
|
+
| 20px | Default inline with body text (14–16px) |
|
|
43
|
+
| 24px | Standard icon button, nav item, list row |
|
|
44
|
+
| 32px | Feature icons, section headings |
|
|
45
|
+
| 40px | Empty state icons, card decorations |
|
|
46
|
+
| 48px | Large empty states, onboarding |
|
|
47
|
+
| 64–96px | Hero illustrations (use SVG illustrations, not icons) |
|
|
48
|
+
|
|
49
|
+
**Avoid:** 18px, 22px, 26px, 28px, 36px — these fall between optical grid lines and look slightly off.
|
|
50
|
+
|
|
51
|
+
### Matching Icon Size to Text Size
|
|
52
|
+
|
|
53
|
+
| Text Size | Paired Icon Size |
|
|
54
|
+
|---|---|
|
|
55
|
+
| 12px | 12–14px |
|
|
56
|
+
| 14px | 16px |
|
|
57
|
+
| 16px | 20px |
|
|
58
|
+
| 18–20px | 24px |
|
|
59
|
+
| 24px+ | 28–32px |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Stroke Weight Consistency
|
|
64
|
+
|
|
65
|
+
Outline icons have a stroke weight. Mixing stroke weights in the same UI feels inconsistent.
|
|
66
|
+
|
|
67
|
+
| Context | Stroke Weight |
|
|
68
|
+
|---|---|
|
|
69
|
+
| Dense UI, small icons (16px) | 1.5px |
|
|
70
|
+
| Standard UI (20–24px) | 2px |
|
|
71
|
+
| Bold/accessible UI | 2.5px |
|
|
72
|
+
| Large decorative icons (32px+) | 1.5–2px (lighter at large sizes) |
|
|
73
|
+
|
|
74
|
+
**Rule:** If your icon library uses 2px strokes and you manually scale an icon up, the stroke doesn't scale — it stays 2px. At 48px, a 2px stroke looks too thin. Either use a bolder variant or adjust stroke weight.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## Optical Alignment
|
|
79
|
+
|
|
80
|
+
Icons are not the same as text — they don't sit on the baseline. Aligning them to text requires care.
|
|
81
|
+
|
|
82
|
+
### The Bounding Box Problem
|
|
83
|
+
Most icons have invisible padding baked into their bounding box. The actual visual weight sits in the center, but the bounding box is square (24×24px). This means:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
❌ Bad: align icon bounding box to text baseline → icon looks high
|
|
87
|
+
✅ Good: align icon to optical center of adjacent text
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
In CSS, use `vertical-align: middle` or flexbox with `align-items: center`:
|
|
91
|
+
|
|
92
|
+
```css
|
|
93
|
+
.icon-with-label {
|
|
94
|
+
display: flex;
|
|
95
|
+
align-items: center;
|
|
96
|
+
gap: 8px;
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
For inline icons inside text, `vertical-align: -0.125em` (shifting slightly below baseline) often gives the best optical result.
|
|
101
|
+
|
|
102
|
+
### Optical Centering in Buttons
|
|
103
|
+
When an icon is inside a button with a label, the icon + label combination should feel optically centered — not mathematically centered. Sometimes this means adding 1–2px more padding on one side.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Touch Target Padding
|
|
108
|
+
|
|
109
|
+
A 24px icon used as an interactive button is too small to tap comfortably. You need padding.
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
Icon size + padding = touch target
|
|
113
|
+
|
|
114
|
+
24px icon + 10px padding each side = 44px touch target ✅
|
|
115
|
+
16px icon + 14px padding each side = 44px touch target ✅
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
In CSS:
|
|
119
|
+
```css
|
|
120
|
+
.icon-button {
|
|
121
|
+
width: 44px;
|
|
122
|
+
height: 44px;
|
|
123
|
+
display: flex;
|
|
124
|
+
align-items: center;
|
|
125
|
+
justify-content: center;
|
|
126
|
+
/* The icon inside is 20–24px; padding provides the rest */
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Icon Meaning & Consistency
|
|
133
|
+
|
|
134
|
+
### Universal Icons (No label needed)
|
|
135
|
+
These are understood cross-culturally and don't need a visible label (but a tooltip is still good practice):
|
|
136
|
+
- ✕ or × — Close
|
|
137
|
+
- ☰ — Menu / hamburger
|
|
138
|
+
- ⌕ / 🔍 — Search
|
|
139
|
+
- ⬆ ⬇ ← → — Directional arrows
|
|
140
|
+
- + — Add
|
|
141
|
+
- ✓ — Confirm / checked
|
|
142
|
+
|
|
143
|
+
### Ambiguous Icons (Always need a label)
|
|
144
|
+
These mean different things in different contexts and should always have a visible label:
|
|
145
|
+
- ★ — Could mean favourite, rating, or featured
|
|
146
|
+
- 🔔 — Could mean notifications, alerts, or reminders
|
|
147
|
+
- ⚙ — Could mean settings, configuration, or preferences
|
|
148
|
+
- 📁 — Could mean files, projects, or categories
|
|
149
|
+
- 🏠 — Could mean home page, dashboard, or main menu
|
|
150
|
+
|
|
151
|
+
### The Meaning Consistency Rule
|
|
152
|
+
Once an icon has a meaning in your product, that meaning must be consistent everywhere.
|
|
153
|
+
|
|
154
|
+
❌ Bad: Using ★ for "favourite" on the home page and ★ for "rating" in the review section
|
|
155
|
+
✅ Good: Using ★ for "favourite" everywhere, and a separate ⭐ filled style for ratings
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Icon + Label Patterns
|
|
160
|
+
|
|
161
|
+
### When to Show Labels
|
|
162
|
+
| Context | Label Required? |
|
|
163
|
+
|---|---|
|
|
164
|
+
| Primary navigation (desktop) | Recommended |
|
|
165
|
+
| Primary navigation (mobile bottom bar) | Required |
|
|
166
|
+
| Toolbar / action bar | Tooltip minimum, label preferred |
|
|
167
|
+
| Inline with text | No (context is enough) |
|
|
168
|
+
| Icon-only button | Tooltip required (`aria-label` always required) |
|
|
169
|
+
| Empty state illustrations | Yes — with heading + body text |
|
|
170
|
+
|
|
171
|
+
### Accessibility: aria-label
|
|
172
|
+
Every icon used as a button or interactive element MUST have an `aria-label` even if it has a visual label:
|
|
173
|
+
|
|
174
|
+
```html
|
|
175
|
+
<!-- Icon-only button -->
|
|
176
|
+
<button aria-label="Close dialog">
|
|
177
|
+
<XIcon size={20} />
|
|
178
|
+
</button>
|
|
179
|
+
|
|
180
|
+
<!-- Icon + visible label (aria-label still recommended) -->
|
|
181
|
+
<button aria-label="Add new task">
|
|
182
|
+
<PlusIcon size={16} />
|
|
183
|
+
Add task
|
|
184
|
+
</button>
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## Common Iconography Mistakes
|
|
190
|
+
|
|
191
|
+
| Mistake | Fix |
|
|
192
|
+
|---|---|
|
|
193
|
+
| Mixing outline and filled icons in same UI | Pick one style and stick to it |
|
|
194
|
+
| Using icons from 2+ different libraries | Pick one library |
|
|
195
|
+
| Scaling icons to non-grid sizes (18px, 22px) | Use 16, 20, 24, 32px |
|
|
196
|
+
| Using icon bounding box for alignment | Use optical/flex center alignment |
|
|
197
|
+
| No label on ambiguous icons | Add visible label or tooltip |
|
|
198
|
+
| No `aria-label` on icon buttons | Always add `aria-label` |
|
|
199
|
+
| Icon touch target too small (under 44px) | Add padding to reach 44×44px |
|
|
200
|
+
| Same icon, different meanings in same product | Pick one meaning per icon, use different icons for different meanings |
|
|
201
|
+
| Decreasing icon size on mobile | Icons need to be the same or larger on mobile for touch |
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# Microcopy Reference
|
|
2
|
+
|
|
3
|
+
Microcopy is the small functional text throughout a UI — button labels, error messages, tooltips, placeholders, confirmations, and empty states. It's often written by developers as an afterthought, but it has an outsized impact on usability and user trust.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Button Labels
|
|
8
|
+
|
|
9
|
+
### The Verb Rule
|
|
10
|
+
Buttons should always be a **verb** (or verb phrase) that describes the action:
|
|
11
|
+
|
|
12
|
+
| ❌ Vague | ✅ Specific |
|
|
13
|
+
|---|---|
|
|
14
|
+
| OK | Got it / Save / Confirm |
|
|
15
|
+
| Submit | Send Message / Create Account / Place Order |
|
|
16
|
+
| Yes | Delete / Remove / Yes, cancel my plan |
|
|
17
|
+
| Cancel | Keep editing / Go back |
|
|
18
|
+
| Upload | Upload photo / Add file |
|
|
19
|
+
| Continue | Next: Shipping / Continue to payment |
|
|
20
|
+
|
|
21
|
+
### Rules
|
|
22
|
+
- **Be specific about what happens.** "Save Changes" is better than "Save" when the user might not know what they're saving.
|
|
23
|
+
- **Match the button to the outcome.** If clicking a button sends an email, say "Send Email" — not "Confirm."
|
|
24
|
+
- **Destructive buttons should name the thing being destroyed.** "Delete Project" not just "Delete." "Cancel Subscription" not just "Cancel."
|
|
25
|
+
- **Primary CTA should be 2–4 words max.** Longer labels don't scan well in buttons.
|
|
26
|
+
- **Sentence case, not Title Case.** "Create account" not "Create Account" (unless your brand style is Title Case throughout).
|
|
27
|
+
|
|
28
|
+
### Confirmation Dialogs
|
|
29
|
+
A good destructive confirmation dialog has:
|
|
30
|
+
```
|
|
31
|
+
Title: Delete "Project Alpha"?
|
|
32
|
+
Body: This will permanently delete the project and all its tasks.
|
|
33
|
+
This action cannot be undone.
|
|
34
|
+
Buttons: [Cancel] [Delete project] ← specific, not just "Delete"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Never:
|
|
38
|
+
```
|
|
39
|
+
Title: Are you sure?
|
|
40
|
+
Body: This action cannot be undone.
|
|
41
|
+
Buttons: [No] [Yes]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Error Messages
|
|
47
|
+
|
|
48
|
+
### The Formula
|
|
49
|
+
A good error message answers three questions:
|
|
50
|
+
1. **What went wrong?**
|
|
51
|
+
2. **Why did it go wrong?** (if not obvious)
|
|
52
|
+
3. **How do I fix it?**
|
|
53
|
+
|
|
54
|
+
| ❌ Bad | ✅ Good |
|
|
55
|
+
|---|---|
|
|
56
|
+
| Invalid input | Please enter a valid email address |
|
|
57
|
+
| Error | We couldn't save your changes — check your connection and try again |
|
|
58
|
+
| Password incorrect | That password doesn't match — try again or reset your password |
|
|
59
|
+
| Required field | Please add a project name to continue |
|
|
60
|
+
| 500 Internal Server Error | Something went wrong on our end. We're looking into it — try again in a moment |
|
|
61
|
+
| File too large | This file is too large. Maximum size is 10MB |
|
|
62
|
+
|
|
63
|
+
### Rules
|
|
64
|
+
- **Don't blame the user.** Passive voice helps: "That email wasn't recognized" vs "You entered an invalid email."
|
|
65
|
+
- **Be specific.** "Something went wrong" is a last resort, not a default.
|
|
66
|
+
- **Tell them what to do next.** End with an action: "try again", "reset your password", "check your connection."
|
|
67
|
+
- **Match your brand's tone.** A playful app can say "Oops! That didn't work." An enterprise tool should stay neutral and professional.
|
|
68
|
+
- **Never expose technical details** to end users. No stack traces, no HTTP status codes, no "null pointer exception."
|
|
69
|
+
- **Keep error messages short.** 1–2 sentences max. If it needs more explanation, link to a help article.
|
|
70
|
+
|
|
71
|
+
### Validation Timing
|
|
72
|
+
- **Validate on blur** (when leaving a field) for format errors (email, URL, phone).
|
|
73
|
+
- **Validate on change** for things like password strength (give live feedback).
|
|
74
|
+
- **Validate on submit** for required field checks — don't interrupt typing.
|
|
75
|
+
- **Never validate on every keystroke** for format errors — showing "Invalid email" while the user is still typing is annoying.
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Placeholder Text
|
|
80
|
+
|
|
81
|
+
Placeholders appear inside empty inputs and disappear when the user starts typing. They are **not labels**.
|
|
82
|
+
|
|
83
|
+
### What Placeholders Are Good For
|
|
84
|
+
- Showing the expected format: `name@example.com`, `(555) 000-0000`, `YYYY-MM-DD`
|
|
85
|
+
- Giving a short hint: `Search by name or email`
|
|
86
|
+
- Example values: `e.g. Project Alpha`, `e.g. San Francisco`
|
|
87
|
+
|
|
88
|
+
### What Placeholders Are NOT Good For
|
|
89
|
+
- Replacing labels (they disappear, users forget what goes there)
|
|
90
|
+
- Long instructions (they get cut off)
|
|
91
|
+
- Required information (users skip it)
|
|
92
|
+
|
|
93
|
+
### Rules
|
|
94
|
+
- **Always have a visible label** in addition to placeholder text.
|
|
95
|
+
- **Keep placeholders short** — one phrase, max.
|
|
96
|
+
- **Prefix style** — When showing an example value, write it as `e.g. Project Alpha` (with a space after the period). Avoid `eg:`, `eg.`, or `E.g:` — these are informal and inconsistent. Flag as 🟡 Warning.
|
|
97
|
+
- **Don't duplicate the label** — A placeholder that says exactly the same thing as its label adds no value. Use the placeholder for format hints or examples only.
|
|
98
|
+
- **Placeholder contrast** should be noticeably lighter than real input text — but still meet 3:1 contrast for readability.
|
|
99
|
+
|
|
100
|
+
### Citing Placeholder Issues in Audit Reports
|
|
101
|
+
When flagging a placeholder issue, always cite:
|
|
102
|
+
- The exact placeholder text (quoted)
|
|
103
|
+
- The node ID if available from `get_design_context`
|
|
104
|
+
- The specific rule it violates
|
|
105
|
+
|
|
106
|
+
Example: 🟡 Placeholder `"eg: 5"` (node 68:27994) — uses informal `eg:` prefix. Use `e.g. 5` or just the unit hint.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Tooltips & Helper Text
|
|
111
|
+
|
|
112
|
+
### When to Use Tooltips
|
|
113
|
+
- To explain an icon button with no label
|
|
114
|
+
- To clarify a non-obvious field ("API keys are case-sensitive")
|
|
115
|
+
- To explain why something is disabled ("You need admin access")
|
|
116
|
+
|
|
117
|
+
### When NOT to Use Tooltips
|
|
118
|
+
- For essential information — if it's critical, put it on the screen, not hidden in a hover
|
|
119
|
+
- For mobile (tooltips don't work on touch — use inline helper text or a modal instead)
|
|
120
|
+
- For long explanations — tooltips should be 1–2 sentences max
|
|
121
|
+
|
|
122
|
+
### Helper Text (Below Input)
|
|
123
|
+
Use static helper text below inputs for:
|
|
124
|
+
- Format hints: "Use 8+ characters with at least one number"
|
|
125
|
+
- Consequences: "This will be visible to everyone on your team"
|
|
126
|
+
- Counts: "0/280 characters"
|
|
127
|
+
|
|
128
|
+
Position: directly below the input, above where the error message will appear.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## Tone Guidelines
|
|
133
|
+
|
|
134
|
+
### Pick One Tone and Stick to It
|
|
135
|
+
|
|
136
|
+
| Tone | Best For | Example |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| **Friendly & casual** | Consumer apps, social, creative tools | "Looks great! Your changes are saved ✓" |
|
|
139
|
+
| **Warm & professional** | SaaS, productivity, HR tools | "Your changes have been saved." |
|
|
140
|
+
| **Neutral & clinical** | Finance, legal, healthcare, enterprise | "Transaction completed successfully." |
|
|
141
|
+
| **Playful** | Games, kids apps, lifestyle | "Woohoo! You crushed it 🎉" |
|
|
142
|
+
|
|
143
|
+
### Consistency Rules
|
|
144
|
+
- If you use contractions ("you're", "we'll") in one place, use them everywhere.
|
|
145
|
+
- If you use first person ("Your account") vs second person ("My account") — pick one.
|
|
146
|
+
- If you address users casually in empty states, don't suddenly switch to formal language in error messages.
|
|
147
|
+
- If your brand is friendly, never let technical/legal copy sneak in with a completely different voice.
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Terminology Consistency
|
|
152
|
+
|
|
153
|
+
One of the most common microcopy mistakes is calling the same concept different things in different parts of the app.
|
|
154
|
+
|
|
155
|
+
### How to Audit Terminology
|
|
156
|
+
Search for synonyms being used for the same thing. Common traps:
|
|
157
|
+
|
|
158
|
+
| Concept | Don't Mix These |
|
|
159
|
+
|---|---|
|
|
160
|
+
| The user's workspace | "workspace" / "project" / "team" / "organization" |
|
|
161
|
+
| Content items | "task" / "item" / "card" / "ticket" / "to-do" |
|
|
162
|
+
| Saving | "save" / "update" / "apply" / "confirm" |
|
|
163
|
+
| Removing | "delete" / "remove" / "archive" / "clear" |
|
|
164
|
+
| Members | "members" / "users" / "collaborators" / "teammates" |
|
|
165
|
+
|
|
166
|
+
### Rule: Pick One Word Per Concept
|
|
167
|
+
Create a short glossary and stick to it. Every button, label, confirmation, and error message should use the same word for the same thing.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Numbers, Dates & Formatting
|
|
172
|
+
|
|
173
|
+
- **Dates**: Use unambiguous formats. "Jan 15, 2025" or "15 January 2025" beats "01/15/25" (is that Jan 15 or the 1st of the 15th month?).
|
|
174
|
+
- **Relative time**: "2 hours ago" is friendlier than a timestamp for recent events. But always show the full date on hover/focus.
|
|
175
|
+
- **Large numbers**: Use commas: 1,000,000 not 1000000. Or abbreviate for dashboards: 1.2M, 45K.
|
|
176
|
+
- **Percentages**: "You're 75% done" not "75% complete" — the possessive makes it feel personal.
|
|
177
|
+
- **File sizes**: Show in the most readable unit. 1.4 MB not 1,400,000 bytes.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Confirmation & Success Messages
|
|
182
|
+
|
|
183
|
+
| Action | ✅ Good Confirmation |
|
|
184
|
+
|---|---|
|
|
185
|
+
| Saved | "Changes saved" or "Project saved" |
|
|
186
|
+
| Sent | "Message sent to Jamie" |
|
|
187
|
+
| Deleted | "Task deleted" + Undo option |
|
|
188
|
+
| Copied | "Link copied to clipboard" |
|
|
189
|
+
| Uploaded | "Photo uploaded successfully" |
|
|
190
|
+
| Invited | "Invitation sent to alex@example.com" |
|
|
191
|
+
|
|
192
|
+
### Rules
|
|
193
|
+
- **Be specific** — name the thing that was acted on when possible.
|
|
194
|
+
- **Offer undo** for destructive or hard-to-reverse actions.
|
|
195
|
+
- **Don't celebrate too hard** — "🎉 Amazing! You saved a file!" is patronizing. Save enthusiasm for genuinely exciting moments (first project created, subscription upgraded).
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Required Field Legend
|
|
200
|
+
|
|
201
|
+
If asterisks (*) are used to mark required fields, a visible legend must appear in the form — typically at the top or bottom:
|
|
202
|
+
|
|
203
|
+
| ✅ Good | ❌ Bad |
|
|
204
|
+
|---|---|
|
|
205
|
+
| "* Required fields" near the form title | Asterisks with no explanation |
|
|
206
|
+
| "Fields marked * are required" | Assuming all users know the convention |
|
|
207
|
+
|
|
208
|
+
**Rule:** The `*` convention is widely understood but not universal. A legend is always required for accessibility. Absence of a legend is a 🟢 Tip — not critical, but worth flagging at handoff.
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Per-Role Text Audit Guide
|
|
213
|
+
|
|
214
|
+
When auditing text content in a Figma frame or codebase, classify each text node by role before checking it:
|
|
215
|
+
|
|
216
|
+
| Role | How to Identify | Key Rule |
|
|
217
|
+
|---|---|---|
|
|
218
|
+
| **CTA button** | Text inside button/interactive component | Must be a verb. "Save", "Submit", "Send Message" |
|
|
219
|
+
| **Label** | Text above or beside an input field | Must be visible, not placeholder. Required = * with legend |
|
|
220
|
+
| **Placeholder** | Greyed text inside empty input | Format hint only. Never a label replacement |
|
|
221
|
+
| **Error message** | Red/warning text near field or at form top | Answers what/why/how. No blame, no tech jargon |
|
|
222
|
+
| **Empty state** | Text shown when list/content area is empty | Explains the state + gives a next action |
|
|
223
|
+
| **Section header** | Largest text in a content block | Should describe the content, not be decorative |
|
|
224
|
+
| **Confirmation/toast** | Success/feedback text after an action | Names the thing acted on. Offers undo if destructive |
|
|
225
|
+
|
|
226
|
+
**Audit citation format:** Always quote the exact text and include the node ID when available.
|
|
227
|
+
`🟡 Button label "Submit" (node 68:27811) — vague verb. Use "Save Changes" or "Send Report" instead.`
|