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,730 @@
|
|
|
1
|
+
# Nielsen's Usability Heuristics Reference
|
|
2
|
+
|
|
3
|
+
This reference covers Category 19 of the Design Auditor skill.
|
|
4
|
+
|
|
5
|
+
Nielsen's 10 Usability Heuristics are the most widely used framework for evaluating interface usability. They were developed by Jakob Nielsen and are grounded in decades of usability research.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Korean Language Support / νκ΅μ΄ μ§μ
|
|
10
|
+
|
|
11
|
+
When auditing in Korean, use the following terminology:
|
|
12
|
+
|
|
13
|
+
| English | Korean |
|
|
14
|
+
|---|---|
|
|
15
|
+
| Usability heuristics | μ¬μ©μ± ν΄λ¦¬μ€ν± |
|
|
16
|
+
| Visibility of system status | μμ€ν
μν κ°μμ± |
|
|
17
|
+
| Match between system and real world | μμ€ν
κ³Ό νμ€ μΈκ³μ μΌμΉ |
|
|
18
|
+
| User control and freedom | μ¬μ©μ μ μ΄ λ° μμ |
|
|
19
|
+
| Recognition rather than recall | κΈ°μ΅λ³΄λ€ μΈμ |
|
|
20
|
+
| Flexibility and efficiency of use | μ¬μ©μ μ μ°μ± λ° ν¨μ¨μ± |
|
|
21
|
+
| Help and documentation | λμλ§ λ° λ¬Έμ |
|
|
22
|
+
| Loading state | λ‘λ© μν |
|
|
23
|
+
| Progress indicator | μ§ν νμκΈ° |
|
|
24
|
+
| Confirmation dialog | νμΈ λνμμ |
|
|
25
|
+
| Destructive action | νκ΄΄μ μμ
|
|
|
26
|
+
| Helper text | λμλ§ ν
μ€νΈ |
|
|
27
|
+
| Tooltip | ν΄ν |
|
|
28
|
+
| Onboarding | μ¨λ³΄λ© |
|
|
29
|
+
| Bulk action | μΌκ΄ μμ
|
|
|
30
|
+
| Keyboard shortcut | ν€λ³΄λ λ¨μΆν€ |
|
|
31
|
+
| Floating label | νλ‘ν
λΌλ²¨ |
|
|
32
|
+
| Error message | μ€λ₯ λ©μμ§ |
|
|
33
|
+
| Dropdown | λλ‘λ€μ΄ |
|
|
34
|
+
| Multi-step flow | λ©ν°μ€ν
νλ‘μ° |
|
|
35
|
+
| Empty state | λΉ μν |
|
|
36
|
+
| Jargon | μ λ¬Έ μ©μ΄ / μ
κ³ μ©μ΄ |
|
|
37
|
+
|
|
38
|
+
**Korean severity labels (same as main audit):**
|
|
39
|
+
- π« μ°¨λ¨ (Blocker)
|
|
40
|
+
- π΄ μ¬κ° (Critical)
|
|
41
|
+
- π‘ κ²½κ³ (Warning)
|
|
42
|
+
- π’ ν (Tip)
|
|
43
|
+
|
|
44
|
+
**Korean heuristic note in reports:**
|
|
45
|
+
> "H4(μΌκ΄μ±), H5(μ€λ₯ μλ°©), H8(λ―Έμ λμμΈ), H9(μ€λ₯ 볡ꡬ)λ κ°κ° μΉ΄ν
κ³ λ¦¬ 5, 7, 4, 11/12μμ λ€λ£Ήλλ€."
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
**Scope of this category:**
|
|
50
|
+
4 heuristics are already fully covered by existing categories and are not re-audited here:
|
|
51
|
+
- H4 (Consistency and Standards) β Cat 5
|
|
52
|
+
- H5 (Error Prevention) β Cat 7
|
|
53
|
+
- H8 (Aesthetic and Minimalist Design) β Cat 4
|
|
54
|
+
- H9 (Help Users Recover from Errors) β Cat 11 + Cat 12
|
|
55
|
+
|
|
56
|
+
This category audits the 6 heuristics with genuine gaps: H1, H2, H3, H6, H7, H10.
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Usability Score
|
|
61
|
+
|
|
62
|
+
The Usability Score is separate from the Overall Score and the Accessibility Score.
|
|
63
|
+
Start at 100. Apply standard deduction tiers from the main audit:
|
|
64
|
+
- π« Blocker: β12pts (rare in heuristics β reserved for complete absence of fundamental feedback)
|
|
65
|
+
- π΄ Critical: β8pts
|
|
66
|
+
- π‘ Warning: β4pts
|
|
67
|
+
- π’ Tip: β1pt
|
|
68
|
+
|
|
69
|
+
**Floor is 0.**
|
|
70
|
+
|
|
71
|
+
**Scoring bands:**
|
|
72
|
+
- **90β100** β Heuristically sound / μ¬μ©μ± κΈ°μ€ μΆ©μ‘±
|
|
73
|
+
- **70β89** β Minor usability gaps / μ¬μν μ¬μ©μ± λ¬Έμ
|
|
74
|
+
- **50β69** β Significant usability issues β likely frustrating real users / μ¬κ°ν μ¬μ©μ± λ¬Έμ
|
|
75
|
+
- **< 50** β Fundamental usability failures β warrants user testing before shipping / κ·Όλ³Έμ μΈ μ¬μ©μ± μ€ν¨
|
|
76
|
+
|
|
77
|
+
Display as: **Usability Score: X/100**
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## H1 β Visibility of System Status (gaps only)
|
|
82
|
+
|
|
83
|
+
*Cat 11 covers loading, empty, and error states. This section covers the gaps Cat 11 doesn't.*
|
|
84
|
+
|
|
85
|
+
**Definition:** The system should always keep users informed about what is going on, through appropriate feedback within a reasonable time.
|
|
86
|
+
|
|
87
|
+
**Why it matters:** When users don't know what the system is doing, they lose trust, repeat actions, or abandon the task. Silence after an action is one of the most common causes of double-submission and frustration.
|
|
88
|
+
|
|
89
|
+
**Gaps not covered by Cat 11:**
|
|
90
|
+
|
|
91
|
+
### H1a β No feedback on button/CTA click
|
|
92
|
+
|
|
93
|
+
**Figma detection:**
|
|
94
|
+
- Identify primary action buttons (submit, save, send, confirm)
|
|
95
|
+
- Check if a loading state variant exists in the component
|
|
96
|
+
- Flag if: button has no loading/processing state β π΄ Critical
|
|
97
|
+
|
|
98
|
+
**Code detection:**
|
|
99
|
+
```
|
|
100
|
+
Look for async action handlers on buttons:
|
|
101
|
+
β onClick β async function / fetch / axios / supabase / API call
|
|
102
|
+
β Button has no disabled or loading state during the async operation β π΄
|
|
103
|
+
|
|
104
|
+
Patterns to flag:
|
|
105
|
+
<button onClick={handleSubmit}>Submit</button>
|
|
106
|
+
async function handleSubmit() { await api.post(...) }
|
|
107
|
+
// No button.disabled = true or loading state set β π΄
|
|
108
|
+
|
|
109
|
+
Correct pattern:
|
|
110
|
+
<button disabled={isLoading} onClick={handleSubmit}>
|
|
111
|
+
{isLoading ? <Spinner /> : 'Submit'}
|
|
112
|
+
</button>
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Severity:** π΄ Critical β users will click multiple times
|
|
116
|
+
|
|
117
|
+
**Fix:** Every button that triggers an async action must have a loading state. Disable the button during processing. Show a spinner or "Savingβ¦" label.
|
|
118
|
+
|
|
119
|
+
**Context note:** Static buttons (navigation, modal open) don't need loading states. Only buttons that trigger async operations or processing.
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
### H1b β No success confirmation after form submit
|
|
124
|
+
|
|
125
|
+
**Figma detection:**
|
|
126
|
+
- On multi-step forms or standalone forms: check if a success/confirmation screen or toast exists after submission
|
|
127
|
+
- Flag if: form audit reveals no confirmation state in the component or flow
|
|
128
|
+
|
|
129
|
+
**Code detection:**
|
|
130
|
+
```
|
|
131
|
+
Look for form submission handlers:
|
|
132
|
+
β onSubmit / handleSubmit β async operation
|
|
133
|
+
β No toast, alert, redirect, or success message triggered after resolve β π΄
|
|
134
|
+
|
|
135
|
+
Patterns to flag:
|
|
136
|
+
async function handleSubmit() {
|
|
137
|
+
await api.post('/contact', data)
|
|
138
|
+
// Nothing happens after β π΄
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
Correct patterns:
|
|
142
|
+
β toast.success('Message sent!') β β
|
|
143
|
+
β router.push('/success') β β
|
|
144
|
+
β setSubmitted(true) β show confirmation UI β β
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
**Severity:** π΄ Critical
|
|
148
|
+
|
|
149
|
+
**Fix:** Every form submission must confirm completion. Use a toast for minor actions, a confirmation screen for significant ones (order placed, account created).
|
|
150
|
+
|
|
151
|
+
**Context note:** Real-time forms (search-as-you-type, autosave) don't need explicit confirmation on every keystroke β only on intentional submit actions.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
### H1c β No progress indicator on multi-step flows
|
|
156
|
+
|
|
157
|
+
**Figma detection:**
|
|
158
|
+
- Identify multi-step flows (onboarding, checkout, signup, forms with 3+ screens)
|
|
159
|
+
- Flag if: no step indicator (numbered steps, progress bar, breadcrumb trail) is visible
|
|
160
|
+
|
|
161
|
+
**Code detection:**
|
|
162
|
+
```
|
|
163
|
+
Multi-step flow patterns:
|
|
164
|
+
β Component with step/currentStep state and no progress indicator rendered β π‘
|
|
165
|
+
|
|
166
|
+
Patterns to flag:
|
|
167
|
+
const [step, setStep] = useState(1)
|
|
168
|
+
// No <ProgressBar step={step} total={4} /> or step indicator β π‘
|
|
169
|
+
|
|
170
|
+
Correct patterns:
|
|
171
|
+
β <StepIndicator current={2} total={4} /> β β
|
|
172
|
+
β <ProgressBar value={50} /> β β
|
|
173
|
+
β "Step 2 of 4" text label β β
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
**Severity:** π‘ Warning
|
|
177
|
+
|
|
178
|
+
**Fix:** Any flow with 3+ steps needs a visible progress indicator. Users need to know how far they are and how much remains.
|
|
179
|
+
|
|
180
|
+
**Context note:** Linear single-purpose flows (e.g. a 2-step payment) can use a simple "Step 1 of 2" label. Full step indicator components are recommended for flows with 4+ steps.
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## H2 β Match Between System and the Real World
|
|
185
|
+
|
|
186
|
+
**Definition:** The system should speak the user's language β using words, phrases, and concepts familiar to the user rather than system-oriented language.
|
|
187
|
+
|
|
188
|
+
**Why it matters:** Technical jargon, error codes, and developer-facing language in the UI forces users to translate system concepts into human meaning. Every translation step is a potential point of confusion or abandonment.
|
|
189
|
+
|
|
190
|
+
### H2a β Technical jargon in UI copy
|
|
191
|
+
|
|
192
|
+
**Figma detection:**
|
|
193
|
+
- Read all visible text nodes
|
|
194
|
+
- Flag any of the following if they appear in user-facing UI (not dev console):
|
|
195
|
+
- Raw error codes: `404`, `500`, `ECONNREFUSED`, `null`, `undefined`, `NaN`
|
|
196
|
+
- Developer terms: `payload`, `endpoint`, `boolean`, `string`, `array`, `object`, `API`, `JSON`, `HTTP`, `timeout`
|
|
197
|
+
- Database terms: `query failed`, `foreign key`, `constraint violation`, `transaction rolled back`
|
|
198
|
+
- System paths: `/usr/local/...`, stack traces
|
|
199
|
+
|
|
200
|
+
**Code detection:**
|
|
201
|
+
```
|
|
202
|
+
Search string literals and error message strings for:
|
|
203
|
+
β Raw HTTP status codes shown to users: "Error 404", "500 Internal Server Error" β π΄
|
|
204
|
+
β Developer terms in user-facing strings:
|
|
205
|
+
"Invalid payload" β π΄
|
|
206
|
+
"Null value returned" β π΄
|
|
207
|
+
"API request failed" β π‘ (acceptable in some contexts)
|
|
208
|
+
"Connection timeout" β π‘ (too technical β use "Connection lost. Check your internet.")
|
|
209
|
+
β Stack traces or file paths in error messages β π΄
|
|
210
|
+
β i18n keys shown raw: "error.auth.token_expired" instead of resolved string β π΄
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
**Severity:** π΄ Critical (raw error codes, stack traces) Β· π‘ Warning (developer terminology)
|
|
214
|
+
|
|
215
|
+
**Fix:** Translate all system language into user language:
|
|
216
|
+
- "Error 404" β "We can't find that page"
|
|
217
|
+
- "Invalid payload" β "Something went wrong with your request β please try again"
|
|
218
|
+
- "ECONNREFUSED" β "Can't connect to the server β check your internet connection"
|
|
219
|
+
- "null" β remove entirely or replace with meaningful empty state
|
|
220
|
+
|
|
221
|
+
**Context note:** Technical content in developer tools, API documentation, or admin/debug panels is acceptable β those users expect and understand it. Only flag jargon in consumer-facing UI.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
### H2b β Icons that don't match their real-world meaning
|
|
226
|
+
|
|
227
|
+
**Figma detection:**
|
|
228
|
+
- Identify icon + label pairs in nav, buttons, and actions
|
|
229
|
+
- Flag if: an icon's conventional meaning doesn't match its function in this UI
|
|
230
|
+
- Floppy disk for save β β
(still universally understood)
|
|
231
|
+
- Magnifying glass for search β β
|
|
232
|
+
- Magnifying glass for "zoom in" (same icon as search in same product) β π‘
|
|
233
|
+
- House icon for "Dashboard" (when user's home is elsewhere) β π’ Tip
|
|
234
|
+
- Hamburger menu on desktop in a non-menu context β π‘
|
|
235
|
+
|
|
236
|
+
**Code detection:**
|
|
237
|
+
```
|
|
238
|
+
Icon component name vs aria-label or button context:
|
|
239
|
+
β <SearchIcon /> inside a button labeled "Zoom" β π‘
|
|
240
|
+
β <TrashIcon /> used for "Archive" action β π‘
|
|
241
|
+
β <HeartIcon /> used for "Bookmark" or "Save" (not favourites) β π‘
|
|
242
|
+
|
|
243
|
+
Check aria-label against icon component name for semantic mismatch:
|
|
244
|
+
<button aria-label="Delete"><ArchiveIcon /></button> β π‘
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**Severity:** π‘ Warning
|
|
248
|
+
|
|
249
|
+
**Fix:** Use the icon that matches the action's real-world mental model. When an icon's meaning is ambiguous in context, always pair it with a visible text label.
|
|
250
|
+
|
|
251
|
+
**Context note:** Some icon meanings have evolved (e.g. floppy disk = save) β don't flag established conventions even if the real-world object is obsolete. Only flag mismatches that would genuinely confuse a new user.
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
### H2c β Date, number, and unit formats that don't match user locale
|
|
256
|
+
|
|
257
|
+
*Cat 13 covers this in detail for i18n/RTL contexts. This check applies even when full i18n is not implemented.*
|
|
258
|
+
|
|
259
|
+
**Figma detection:**
|
|
260
|
+
- Look for hardcoded date formats in text nodes: "MM/DD/YYYY", "DD-MM-YY"
|
|
261
|
+
- Flag if: a specific format is hardcoded that may not match the user's locale
|
|
262
|
+
|
|
263
|
+
**Code detection:**
|
|
264
|
+
```
|
|
265
|
+
β Hardcoded date format strings: "MM/DD/YYYY", new Date().toLocaleDateString() without locale β π‘
|
|
266
|
+
β Hardcoded currency symbols ($, Β£, β¬) outside a locale formatter β π‘
|
|
267
|
+
β Large numbers without thousand separators in UI text β π’ Tip
|
|
268
|
+
|
|
269
|
+
Correct patterns:
|
|
270
|
+
β new Intl.DateTimeFormat(userLocale, options).format(date) β β
|
|
271
|
+
β new Intl.NumberFormat(userLocale).format(number) β β
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
**Severity:** π‘ Warning
|
|
275
|
+
|
|
276
|
+
**Fix:** Use `Intl.DateTimeFormat` and `Intl.NumberFormat` for all date and number rendering. Never hardcode format strings.
|
|
277
|
+
|
|
278
|
+
---
|
|
279
|
+
|
|
280
|
+
## H3 β User Control and Freedom (gaps only)
|
|
281
|
+
|
|
282
|
+
*Cat 16 covers back buttons and breadcrumbs. Cat 11 covers undo for destructive actions. This section covers the remaining gaps.*
|
|
283
|
+
|
|
284
|
+
**Definition:** Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue.
|
|
285
|
+
|
|
286
|
+
**Why it matters:** When users feel trapped β in a modal, flow, or state they didn't intend β they lose confidence in the product. An obvious exit path is a sign of respect for user autonomy.
|
|
287
|
+
|
|
288
|
+
### H3a β Modal/dialog without a close mechanism
|
|
289
|
+
|
|
290
|
+
**Figma detection:**
|
|
291
|
+
- Identify modal and dialog components
|
|
292
|
+
- Flag if: no close button (Γ), no "Cancel" CTA, and no visible backdrop-click dismissal signal
|
|
293
|
+
- Flag if: close button is < 24Γ24px or has < 3:1 contrast (too hard to find)
|
|
294
|
+
|
|
295
|
+
**Code detection:**
|
|
296
|
+
```
|
|
297
|
+
Modal/dialog patterns:
|
|
298
|
+
β <dialog>, role="dialog", or modal class with no close button β π΄
|
|
299
|
+
β No Escape key handler on modal β π‘
|
|
300
|
+
β No backdrop click handler (when modal is dismissible) β π‘
|
|
301
|
+
|
|
302
|
+
Patterns to flag:
|
|
303
|
+
<div role="dialog">
|
|
304
|
+
<h2>Confirm action</h2>
|
|
305
|
+
<button onClick={confirm}>Yes</button>
|
|
306
|
+
// No cancel/close button β π΄
|
|
307
|
+
</div>
|
|
308
|
+
|
|
309
|
+
Correct pattern:
|
|
310
|
+
<div role="dialog" aria-modal="true">
|
|
311
|
+
<button aria-label="Close" onClick={onClose}>Γ</button>
|
|
312
|
+
<h2>Confirm action</h2>
|
|
313
|
+
<button onClick={confirm}>Yes</button>
|
|
314
|
+
<button onClick={onClose}>Cancel</button>
|
|
315
|
+
</div>
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**Severity:** π΄ Critical
|
|
319
|
+
|
|
320
|
+
**Fix:** Every modal must have a visible close mechanism β an Γ button, a Cancel CTA, or both. Modals must also respond to Escape key. Never trap users in a modal without an exit.
|
|
321
|
+
|
|
322
|
+
**Context note:** Intentionally uncloseable modals (e.g. session expired, forced upgrade) are acceptable in specific product contexts β but even these must have a clear next action so users aren't stuck indefinitely.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
### H3b β Multi-step flow with no way to go back
|
|
327
|
+
|
|
328
|
+
**Figma detection:**
|
|
329
|
+
- On multi-step flows: check each step for a visible Back button or previous step navigation
|
|
330
|
+
- Flag if: steps 2+ have no backward navigation
|
|
331
|
+
- Flag if: flow can only be exited by completing it (no cancel/exit option)
|
|
332
|
+
|
|
333
|
+
**Code detection:**
|
|
334
|
+
```
|
|
335
|
+
Multi-step flow with no back:
|
|
336
|
+
β step > 1 rendered with no back button / setStep(step - 1) handler β π‘
|
|
337
|
+
β Wizard flow with no cancel or exit path β π‘
|
|
338
|
+
|
|
339
|
+
Patterns to flag:
|
|
340
|
+
{step === 2 && <Step2 onNext={() => setStep(3)} />}
|
|
341
|
+
// No onBack prop or cancel option β π‘
|
|
342
|
+
|
|
343
|
+
Correct pattern:
|
|
344
|
+
<Step2
|
|
345
|
+
onNext={() => setStep(3)}
|
|
346
|
+
onBack={() => setStep(1)}
|
|
347
|
+
onCancel={handleCancel}
|
|
348
|
+
/>
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Severity:** π‘ Warning (back navigation) Β· π΄ Critical (no exit from a committed flow like checkout)
|
|
352
|
+
|
|
353
|
+
**Fix:** Every step in a multi-step flow must have a Back option. Long flows (3+ steps) must also have a Cancel or Save & Exit option so users can leave without losing progress.
|
|
354
|
+
|
|
355
|
+
**Context note:** Some flows legitimately prevent going back for data integrity reasons (e.g. payment processing step). In these cases, disable the Back button with a clear explanation rather than hiding it.
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
### H3c β Destructive action with no confirmation or undo
|
|
360
|
+
|
|
361
|
+
*Cat 11 covers this partially. This check focuses on detection signals.*
|
|
362
|
+
|
|
363
|
+
**Figma detection:**
|
|
364
|
+
- Identify destructive actions: delete, remove, archive, cancel subscription, clear all
|
|
365
|
+
- Flag if: no confirmation dialog, warning modal, or undo mechanism is shown
|
|
366
|
+
- Flag if: destructive CTA is styled the same as safe CTAs (no red/warning treatment)
|
|
367
|
+
|
|
368
|
+
**Code detection:**
|
|
369
|
+
```
|
|
370
|
+
Destructive action patterns:
|
|
371
|
+
β onClick={handleDelete} with no confirmation dialog triggered β π‘
|
|
372
|
+
β window.confirm() used (browser native β poor UX but functional) β π’ Tip
|
|
373
|
+
β No toast with undo after soft-delete β π‘
|
|
374
|
+
|
|
375
|
+
Patterns to flag:
|
|
376
|
+
<button onClick={() => deleteItem(id)}>Delete</button>
|
|
377
|
+
// No confirmation, no undo β π‘
|
|
378
|
+
|
|
379
|
+
Correct patterns:
|
|
380
|
+
β Custom confirmation dialog: "Delete 'Project Alpha'? This cannot be undone." β β
|
|
381
|
+
β Soft-delete with toast: "Deleted β Undo" (5 second window) β β
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
**Severity:** π‘ Warning (reversible actions) Β· π΄ Critical (permanently destructive with no confirmation)
|
|
385
|
+
|
|
386
|
+
**Fix:** Permanent destructive actions must have a confirmation dialog that names the item being deleted. Reversible destructive actions should offer an Undo toast (3β5 seconds). Never use a generic "Are you sure?" β name the thing being deleted.
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
## H6 β Recognition Rather Than Recall
|
|
391
|
+
|
|
392
|
+
**Definition:** Minimize the user's memory load by making objects, actions, and options visible. The user should not have to remember information from one part of the interface to another.
|
|
393
|
+
|
|
394
|
+
**Why it matters:** Human short-term memory is limited. Every time the UI requires a user to remember something from a previous step or screen, it increases cognitive load and error rate.
|
|
395
|
+
|
|
396
|
+
### H6a β Icon-only navigation with no visible labels
|
|
397
|
+
|
|
398
|
+
**Figma detection:**
|
|
399
|
+
- Identify navigation components (sidebar nav, bottom nav, toolbar)
|
|
400
|
+
- Flag if: nav items have icons but no visible text labels
|
|
401
|
+
- Exception: tooltips on hover are acceptable for secondary actions but not primary navigation
|
|
402
|
+
|
|
403
|
+
**Code detection:**
|
|
404
|
+
```
|
|
405
|
+
Icon-only nav items:
|
|
406
|
+
β <nav> or role="navigation" items with icon child but no visible text β π‘
|
|
407
|
+
β aria-label present but no visible label β π‘ (accessible but not heuristically ideal)
|
|
408
|
+
|
|
409
|
+
Patterns to flag:
|
|
410
|
+
<nav>
|
|
411
|
+
<a href="/home"><HomeIcon /></a>
|
|
412
|
+
<a href="/settings"><SettingsIcon /></a>
|
|
413
|
+
</nav>
|
|
414
|
+
// Icons only, no labels β π‘
|
|
415
|
+
|
|
416
|
+
Correct pattern:
|
|
417
|
+
<a href="/home">
|
|
418
|
+
<HomeIcon aria-hidden="true" />
|
|
419
|
+
<span>Home</span>
|
|
420
|
+
</a>
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
**Severity:** π‘ Warning (primary nav) Β· π’ Tip (secondary/toolbar actions)
|
|
424
|
+
|
|
425
|
+
**Fix:** Primary navigation items must have visible text labels alongside icons. Icon-only nav forces users to memorise icon meanings, which is a recall burden. Tooltips are acceptable for toolbars and secondary actions.
|
|
426
|
+
|
|
427
|
+
**Context note:** Bottom navigation bars on mobile commonly use icon-only or icon+label layouts β flag icon-only on mobile bottom nav as π’ Tip (space constrained) not π‘. Desktop sidebars and top nav always need labels.
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
### H6b β Floating labels that disappear on focus
|
|
432
|
+
|
|
433
|
+
**Figma detection:**
|
|
434
|
+
- Identify input fields with floating label behaviour
|
|
435
|
+
- Flag if: the label moves inside the input and disappears when the user starts typing (label used as placeholder)
|
|
436
|
+
- Flag if: the value is entered and the label is no longer visible (user cannot see what field they filled)
|
|
437
|
+
|
|
438
|
+
**Code detection:**
|
|
439
|
+
```
|
|
440
|
+
Floating label patterns that remove the label:
|
|
441
|
+
β input:focus + label { display: none } β π΄
|
|
442
|
+
β placeholder used as label with no persistent label β π΄
|
|
443
|
+
(already flagged in Cat 12, reinforce here)
|
|
444
|
+
|
|
445
|
+
Acceptable floating label:
|
|
446
|
+
β Label moves to top of field on focus, remains visible throughout β β
|
|
447
|
+
β Label + separate placeholder hint below field β β
|
|
448
|
+
|
|
449
|
+
Problematic pattern:
|
|
450
|
+
β Label disappears entirely when user types, showing only the value β π‘
|
|
451
|
+
(user can't verify which field they're editing)
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
**Severity:** π΄ Critical (label disappears) Β· π‘ Warning (label obscured during input)
|
|
455
|
+
|
|
456
|
+
**Fix:** Labels must remain persistently visible β above the input, not inside it. If floating labels are used, ensure they persist at the top of the field during and after input, never disappear.
|
|
457
|
+
|
|
458
|
+
**Context note:** The "material design floating label" pattern (label moves from inside to above the field on focus) is acceptable if the label remains fully visible throughout. The issue is specifically when the label disappears at any point.
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
### H6c β No visible selected state in dropdowns or filters
|
|
463
|
+
|
|
464
|
+
**Figma detection:**
|
|
465
|
+
- Identify dropdown, select, filter, and segmented control components
|
|
466
|
+
- Flag if: selected/active option has no clear visual differentiation from unselected options
|
|
467
|
+
- Flag if: after closing a dropdown, the selected value is not shown in the trigger button
|
|
468
|
+
|
|
469
|
+
**Code detection:**
|
|
470
|
+
```
|
|
471
|
+
Dropdown trigger after selection:
|
|
472
|
+
β Trigger button shows placeholder text even after selection β π΄
|
|
473
|
+
e.g. <button>Select a category</button> after user selected "Design" β π΄
|
|
474
|
+
|
|
475
|
+
Selected state in open dropdown:
|
|
476
|
+
β Selected option has no checkmark, highlight, or bold treatment β π‘
|
|
477
|
+
β aria-selected="true" present but no visual distinction β π‘
|
|
478
|
+
|
|
479
|
+
Filter active state:
|
|
480
|
+
β Active filter tag/pill has no visual distinction from inactive β π‘
|
|
481
|
+
β Active filter count badge missing β π’ Tip
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
**Severity:** π΄ Critical (trigger doesn't show selection) Β· π‘ Warning (no visual distinction in list)
|
|
485
|
+
|
|
486
|
+
**Fix:** Dropdown triggers must always show the currently selected value. Open dropdown lists must clearly mark the selected option with a checkmark, highlight, or bold. Active filters must be visually distinct from inactive ones.
|
|
487
|
+
|
|
488
|
+
---
|
|
489
|
+
|
|
490
|
+
## H7 β Flexibility and Efficiency of Use
|
|
491
|
+
|
|
492
|
+
**Definition:** Accelerators β unseen by the novice user β may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users.
|
|
493
|
+
|
|
494
|
+
**Why it matters:** As users gain experience, they develop expectations of being able to do things faster. An interface that can only be used slowly frustrates power users and reduces productivity.
|
|
495
|
+
|
|
496
|
+
### H7a β No keyboard shortcut hints for power users
|
|
497
|
+
|
|
498
|
+
**Figma detection:**
|
|
499
|
+
- Look for tooltip components in the design
|
|
500
|
+
- Flag if: complex or frequently-used actions (save, new item, search, undo) have no keyboard shortcut hint in their tooltip or adjacent label
|
|
501
|
+
- Flag if: tooltip components exist but show no shortcut hints
|
|
502
|
+
|
|
503
|
+
**Code detection:**
|
|
504
|
+
```
|
|
505
|
+
Keyboard shortcut accessibility:
|
|
506
|
+
β accesskey attributes used β β
(check for conflicts with browser shortcuts)
|
|
507
|
+
β Keyboard event listeners for shortcuts (Cmd+S, Ctrl+K, etc.) β β
|
|
508
|
+
|
|
509
|
+
Shortcut hint display:
|
|
510
|
+
β Shortcut exists in code but tooltip doesn't show it β π’ Tip
|
|
511
|
+
β No keyboard shortcuts at all on a complex productivity tool β π‘
|
|
512
|
+
|
|
513
|
+
Look for:
|
|
514
|
+
β document.addEventListener('keydown', ...) with shortcut logic β if no hint shown β π’ Tip
|
|
515
|
+
β useHotkeys / react-hotkeys / mousetrap library imported β check if hints are shown
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
**Severity:** π’ Tip (general) Β· π‘ Warning (on tools where power users are the primary audience)
|
|
519
|
+
|
|
520
|
+
**Fix:** Add keyboard shortcut hints to tooltips for frequently-used actions. Format: "Save (βS)" or "New item (βN)". This is low effort and high value for productivity tools.
|
|
521
|
+
|
|
522
|
+
**Context note:** Consumer apps (social, e-commerce) rarely need keyboard shortcuts. This check is most relevant for productivity tools, design tools, dashboards, and admin interfaces where users spend significant time.
|
|
523
|
+
|
|
524
|
+
---
|
|
525
|
+
|
|
526
|
+
### H7b β No bulk action support where expected
|
|
527
|
+
|
|
528
|
+
**Figma detection:**
|
|
529
|
+
- Identify list views, table views, or grid views with multiple items
|
|
530
|
+
- Flag if: no "select all" checkbox, no bulk action toolbar, no multi-select pattern in a list that clearly warrants it (emails, tasks, files, orders)
|
|
531
|
+
|
|
532
|
+
**Code detection:**
|
|
533
|
+
```
|
|
534
|
+
List/table with no bulk selection:
|
|
535
|
+
β Table/list component with no checkbox column β π‘ if list implies management
|
|
536
|
+
β No selectedItems state in a list that clearly supports management operations β π‘
|
|
537
|
+
|
|
538
|
+
Context signals that warrant bulk actions:
|
|
539
|
+
β Items have delete/archive/move actions β no bulk = π‘
|
|
540
|
+
β List has 10+ items β no bulk = π‘
|
|
541
|
+
β Admin interface β no bulk = π‘
|
|
542
|
+
|
|
543
|
+
Correct pattern:
|
|
544
|
+
β <input type="checkbox" onChange={handleSelectAll} /> in table header β β
|
|
545
|
+
β selectedItems.length > 0 && <BulkActionBar /> β β
|
|
546
|
+
```
|
|
547
|
+
|
|
548
|
+
**Severity:** π‘ Warning (clearly management-oriented lists) Β· π’ Tip (general lists)
|
|
549
|
+
|
|
550
|
+
**Fix:** Any list or table where users are expected to manage multiple items should support bulk selection. Add a checkbox column, a "Select all" header, and a contextual bulk action toolbar.
|
|
551
|
+
|
|
552
|
+
**Context note:** Display-only lists (search results, feeds, product listings) don't need bulk actions. Only management-oriented lists (inbox, file manager, task list, order management) warrant this check.
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
### H7c β No saved preferences or recently used items
|
|
557
|
+
|
|
558
|
+
**Figma detection:**
|
|
559
|
+
- Look for dropdowns, selectors, or pickers that users use repeatedly
|
|
560
|
+
- Flag if: no "Recently used", "Pinned", or "Favourites" section in search, filters, or pickers that clearly warrant it (emoji pickers, colour pickers, template selectors)
|
|
561
|
+
|
|
562
|
+
**Code detection:**
|
|
563
|
+
```
|
|
564
|
+
Persistence patterns:
|
|
565
|
+
β Frequently used form fields with no autocomplete/remembered values β π’ Tip
|
|
566
|
+
β Search component with no recent searches stored in localStorage β π’ Tip
|
|
567
|
+
β Settings changed by user with no persistence across sessions β π‘
|
|
568
|
+
|
|
569
|
+
Positive signals:
|
|
570
|
+
β localStorage / sessionStorage used to remember user preferences β β
|
|
571
|
+
β Autocomplete with recent/suggested values β β
|
|
572
|
+
β "Remember me" / "Save as default" option on settings β β
|
|
573
|
+
```
|
|
574
|
+
|
|
575
|
+
**Severity:** π’ Tip (general) Β· π‘ Warning (productivity tools where re-entering settings is frequent)
|
|
576
|
+
|
|
577
|
+
**Fix:** Persist user preferences across sessions using localStorage or a backend store. Add "Recently used" sections to frequently-accessed pickers. Autocomplete previous values in repeat-use form fields.
|
|
578
|
+
|
|
579
|
+
---
|
|
580
|
+
|
|
581
|
+
## H10 β Help and Documentation
|
|
582
|
+
|
|
583
|
+
**Definition:** Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.
|
|
584
|
+
|
|
585
|
+
**Why it matters:** Complex interfaces inevitably have learning curves. When help is absent or hard to find, users abandon tasks or develop incorrect mental models that cause repeated errors.
|
|
586
|
+
|
|
587
|
+
### H10a β Complex inputs with no helper text
|
|
588
|
+
|
|
589
|
+
**Figma detection:**
|
|
590
|
+
- Identify complex or non-obvious form fields:
|
|
591
|
+
- Password fields (no strength indicator or requirements shown)
|
|
592
|
+
- Fields with specific format requirements (phone, date, credit card, VAT number)
|
|
593
|
+
- Fields with character limits
|
|
594
|
+
- Upload fields (no file type/size guidance)
|
|
595
|
+
- Flag if: no helper text, hint, or tooltip explains what's expected
|
|
596
|
+
|
|
597
|
+
**Code detection:**
|
|
598
|
+
```
|
|
599
|
+
Missing helper text patterns:
|
|
600
|
+
β <input type="password"> with no password requirements shown β π‘
|
|
601
|
+
β <input type="tel"> with no format hint β π’ Tip
|
|
602
|
+
β <input maxLength={280}> with no character counter β π‘
|
|
603
|
+
β <input type="file"> with no accepted types shown β π‘
|
|
604
|
+
|
|
605
|
+
Correct patterns:
|
|
606
|
+
β <p id="password-hint">8+ chars, 1 number, 1 symbol</p>
|
|
607
|
+
<input aria-describedby="password-hint" type="password"> β β
|
|
608
|
+
β Character counter: {value.length}/280 β β
|
|
609
|
+
β Dropzone: "Accepted: JPG, PNG, PDF. Max 10MB." β β
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
**Severity:** π‘ Warning (password, character-limited, formatted fields) Β· π’ Tip (simple fields)
|
|
613
|
+
|
|
614
|
+
**Fix:** Every field with a specific format requirement, character limit, or file constraint must show that information before the user submits β not only in an error message after failure.
|
|
615
|
+
|
|
616
|
+
**Context note:** Simple text fields (first name, email) don't need helper text unless there's a specific constraint. Only flag fields where the requirements are non-obvious.
|
|
617
|
+
|
|
618
|
+
---
|
|
619
|
+
|
|
620
|
+
### H10b β Error messages with no guidance on how to fix
|
|
621
|
+
|
|
622
|
+
*Cat 12 covers error message tone. This check covers error messages that fail to guide recovery.*
|
|
623
|
+
|
|
624
|
+
**Figma detection:**
|
|
625
|
+
- Read all error message text nodes
|
|
626
|
+
- Flag if: error message states what went wrong but gives no actionable next step
|
|
627
|
+
- "Invalid email" alone β π‘ (states the problem, no guidance)
|
|
628
|
+
- "Please enter a valid email address (e.g. name@example.com)" β β
|
|
629
|
+
|
|
630
|
+
**Code detection:**
|
|
631
|
+
```
|
|
632
|
+
Error message strings:
|
|
633
|
+
β "Invalid input" β π΄ (no information at all)
|
|
634
|
+
β "Error" β π΄ (completely unhelpful)
|
|
635
|
+
β "Invalid email" β π‘ (states problem, no fix)
|
|
636
|
+
β "Please enter a valid email (e.g. name@example.com)" β β
|
|
637
|
+
β "Password must be at least 8 characters" β β
(actionable)
|
|
638
|
+
|
|
639
|
+
Search for error strings shorter than 4 words β likely too vague β π‘
|
|
640
|
+
```
|
|
641
|
+
|
|
642
|
+
**Severity:** π΄ Critical (no information) Β· π‘ Warning (states problem but no fix guidance)
|
|
643
|
+
|
|
644
|
+
**Fix:** Every error message must: (1) say what went wrong, (2) say how to fix it. The format: "[What's wrong] β [how to fix it]". "Invalid email" β "Please enter a valid email address (e.g. name@example.com)."
|
|
645
|
+
|
|
646
|
+
---
|
|
647
|
+
|
|
648
|
+
### H10c β No contextual help on ambiguous or complex UI sections
|
|
649
|
+
|
|
650
|
+
**Figma detection:**
|
|
651
|
+
- Identify complex dashboard sections, settings with non-obvious implications, or forms with technical fields
|
|
652
|
+
- Flag if: no tooltip, info icon, or help text is present on fields/sections where a new user would reasonably be confused
|
|
653
|
+
|
|
654
|
+
**Code detection:**
|
|
655
|
+
```
|
|
656
|
+
Tooltip/help signal detection:
|
|
657
|
+
β Tooltip component or [?] icon near complex fields β β
|
|
658
|
+
β title attribute on non-interactive elements β π’ Tip (not keyboard accessible)
|
|
659
|
+
β aria-describedby with helper text β β
|
|
660
|
+
|
|
661
|
+
Missing help patterns:
|
|
662
|
+
β Complex settings section (billing cycle, permissions, webhook config) with no help text β π‘
|
|
663
|
+
β Technical fields (API key, webhook URL, CRON expression) with no explanation β π‘
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
**Severity:** π‘ Warning (clearly complex or technical fields) Β· π’ Tip (generally non-obvious)
|
|
667
|
+
|
|
668
|
+
**Fix:** Add a tooltip or inline helper to any field or setting where a new user would reasonably not know what to enter or what the consequence of their choice is. Link to documentation for truly complex features.
|
|
669
|
+
|
|
670
|
+
**Context note:** Don't add helper text to every field β that creates noise. Reserve it for genuinely ambiguous inputs and high-stakes settings. If everything has a tooltip, nothing does.
|
|
671
|
+
|
|
672
|
+
---
|
|
673
|
+
|
|
674
|
+
### H10d β No onboarding guidance on first use
|
|
675
|
+
|
|
676
|
+
**Figma detection:**
|
|
677
|
+
- Look for empty state screens, first-time user flows, or blank dashboard states
|
|
678
|
+
- Flag if: empty state shows no guidance on what to do first
|
|
679
|
+
- Flag if: there is no onboarding tooltip sequence, welcome message, or getting started prompt on a complex product
|
|
680
|
+
|
|
681
|
+
**Code detection:**
|
|
682
|
+
```
|
|
683
|
+
First-use detection:
|
|
684
|
+
β localStorage.getItem('hasOnboarded') check with no onboarding UI β π‘
|
|
685
|
+
β Empty state component with no CTA or next-step guidance β π‘
|
|
686
|
+
β Dashboard with no tutorial prompt on first login β π’ Tip
|
|
687
|
+
|
|
688
|
+
Correct patterns:
|
|
689
|
+
β {!hasOnboarded && <WelcomeTour />} β β
|
|
690
|
+
β Empty state: <p>No projects yet β <a href="/new">Create your first project</a></p> β β
|
|
691
|
+
```
|
|
692
|
+
|
|
693
|
+
**Severity:** π‘ Warning (complex product with no onboarding) Β· π’ Tip (simple product)
|
|
694
|
+
|
|
695
|
+
**Fix:** New users landing on an empty state need direction. Every empty state must tell the user what this section is for and how to populate it. Complex products should have a lightweight first-use tour or checklist.
|
|
696
|
+
|
|
697
|
+
---
|
|
698
|
+
|
|
699
|
+
## Quick Reference Checklist / λΉ λ₯Έ μ°Έμ‘° 체ν¬λ¦¬μ€νΈ
|
|
700
|
+
|
|
701
|
+
**H1 β Visibility of System Status / μμ€ν
μν κ°μμ± (gaps)**
|
|
702
|
+
- [ ] Buttons that trigger async actions have loading states / λΉλκΈ° μμ
λ²νΌμ λ‘λ© μν μμ
|
|
703
|
+
- [ ] Form submissions confirm success / νΌ μ μΆ μ μ±κ³΅ νμΈ λ©μμ§ νμ
|
|
704
|
+
- [ ] Multi-step flows (3+) have a visible progress indicator / λ©ν°μ€ν
νλ‘μ°μ μ§ν νμκΈ° μμ
|
|
705
|
+
|
|
706
|
+
**H2 β Match Between System and Real World / μμ€ν
κ³Ό νμ€ μΈκ³μ μΌμΉ**
|
|
707
|
+
- [ ] No raw error codes or developer terms in UI / UIμ μμ μ€λ₯ μ½λ λλ κ°λ°μ μ©μ΄ μμ
|
|
708
|
+
- [ ] Icons match their conventional real-world meaning / μμ΄μ½μ΄ μ€μ μλ―Έμ μΌμΉ
|
|
709
|
+
- [ ] Date and number formats use locale-aware formatting / λ μ§Β·μ«μ νμμ λ‘μΌμΌ μ μ©
|
|
710
|
+
|
|
711
|
+
**H3 β User Control and Freedom / μ¬μ©μ μ μ΄ λ° μμ (gaps)**
|
|
712
|
+
- [ ] All modals have a close mechanism and respond to Escape / λͺ¨λ λͺ¨λ¬μ λ«κΈ° κΈ°λ₯ λ° Escape ν€ μ§μ
|
|
713
|
+
- [ ] Multi-step flows have a Back option on every step / λ©ν°μ€ν
νλ‘μ°μ λͺ¨λ λ¨κ³μ λ€λ‘ κ°κΈ° μ΅μ
|
|
714
|
+
- [ ] Destructive actions have confirmation dialogs / νκ΄΄μ μμ
μ νμΈ λνμμ μμ
|
|
715
|
+
|
|
716
|
+
**H6 β Recognition Rather Than Recall / κΈ°μ΅λ³΄λ€ μΈμ**
|
|
717
|
+
- [ ] Primary navigation items have visible text labels / κΈ°λ³Έ λ΄λΉκ²μ΄μ
μ ν
μ€νΈ λΌλ²¨ μμ
|
|
718
|
+
- [ ] Form labels remain visible during and after input / νΌ λΌλ²¨μ΄ μ
λ ₯ μ€Β·νμλ νμλ¨
|
|
719
|
+
- [ ] Dropdown triggers show the currently selected value / λλ‘λ€μ΄ νΈλ¦¬κ±°μ νμ¬ μ νκ° νμ
|
|
720
|
+
|
|
721
|
+
**H7 β Flexibility and Efficiency of Use / μ¬μ©μ μ μ°μ± λ° ν¨μ¨μ±**
|
|
722
|
+
- [ ] Keyboard shortcut hints shown where relevant / κ΄λ ¨ νλͺ©μ ν€λ³΄λ λ¨μΆν€ ννΈ νμ
|
|
723
|
+
- [ ] Management lists have bulk selection where warranted / κ΄λ¦¬ λͺ©λ‘μ μΌκ΄ μ ν μ§μ
|
|
724
|
+
- [ ] User preferences are persisted across sessions / μ¬μ©μ νκ²½μ€μ μ΄ μΈμ
κ° μ μ§λ¨
|
|
725
|
+
|
|
726
|
+
**H10 β Help and Documentation / λμλ§ λ° λ¬Έμ**
|
|
727
|
+
- [ ] Fields with format requirements show helper text / νμ μκ±΄μ΄ μλ νλμ λμλ§ ν
μ€νΈ μμ
|
|
728
|
+
- [ ] Error messages state what went wrong AND how to fix it / μ€λ₯ λ©μμ§μ λ¬Έμ μ κ³Ό ν΄κ²° λ°©λ² λͺ¨λ ν¬ν¨
|
|
729
|
+
- [ ] Complex or technical fields have contextual tooltips / 볡μ‘ν νλμ μν©λ³ ν΄ν μμ
|
|
730
|
+
- [ ] Empty states and first-use screens give clear next-step guidance / λΉ μνμ 첫 μ¬μ© νλ©΄μ λ€μ λ¨κ³ μλ΄ μμ
|