@wazir-dev/cli 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/AGENTS.md +111 -0
- package/CHANGELOG.md +14 -0
- package/CONTRIBUTING.md +101 -0
- package/LICENSE +21 -0
- package/README.md +314 -0
- package/assets/composition-engine.mmd +34 -0
- package/assets/demo-script.sh +17 -0
- package/assets/logo-dark.svg +14 -0
- package/assets/logo.svg +14 -0
- package/assets/pipeline.mmd +39 -0
- package/assets/record-demo.sh +51 -0
- package/docs/README.md +51 -0
- package/docs/adapters/context-mode.md +60 -0
- package/docs/concepts/architecture.md +87 -0
- package/docs/concepts/artifact-model.md +60 -0
- package/docs/concepts/composition-engine.md +36 -0
- package/docs/concepts/indexing-and-recall.md +160 -0
- package/docs/concepts/observability.md +41 -0
- package/docs/concepts/roles-and-workflows.md +59 -0
- package/docs/concepts/terminology-policy.md +27 -0
- package/docs/getting-started/01-installation.md +78 -0
- package/docs/getting-started/02-first-run.md +102 -0
- package/docs/getting-started/03-adding-to-project.md +15 -0
- package/docs/getting-started/04-host-setup.md +15 -0
- package/docs/guides/ci-integration.md +15 -0
- package/docs/guides/creating-skills.md +15 -0
- package/docs/guides/expertise-module-authoring.md +15 -0
- package/docs/guides/hook-development.md +15 -0
- package/docs/guides/memory-and-learnings.md +34 -0
- package/docs/guides/multi-host-export.md +15 -0
- package/docs/guides/troubleshooting.md +101 -0
- package/docs/guides/writing-custom-roles.md +15 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-design.md +592 -0
- package/docs/plans/2026-03-15-cli-pipeline-integration-plan.md +598 -0
- package/docs/plans/2026-03-15-docs-enforcement-plan.md +238 -0
- package/docs/readmes/INDEX.md +99 -0
- package/docs/readmes/features/expertise/README.md +171 -0
- package/docs/readmes/features/exports/README.md +222 -0
- package/docs/readmes/features/hooks/README.md +103 -0
- package/docs/readmes/features/hooks/loop-cap-guard.md +133 -0
- package/docs/readmes/features/hooks/post-tool-capture.md +121 -0
- package/docs/readmes/features/hooks/post-tool-lint.md +130 -0
- package/docs/readmes/features/hooks/pre-compact-summary.md +122 -0
- package/docs/readmes/features/hooks/pre-tool-capture-route.md +100 -0
- package/docs/readmes/features/hooks/protected-path-write-guard.md +128 -0
- package/docs/readmes/features/hooks/session-start.md +119 -0
- package/docs/readmes/features/hooks/stop-handoff-harvest.md +125 -0
- package/docs/readmes/features/roles/README.md +157 -0
- package/docs/readmes/features/roles/clarifier.md +152 -0
- package/docs/readmes/features/roles/content-author.md +190 -0
- package/docs/readmes/features/roles/designer.md +193 -0
- package/docs/readmes/features/roles/executor.md +184 -0
- package/docs/readmes/features/roles/learner.md +210 -0
- package/docs/readmes/features/roles/planner.md +182 -0
- package/docs/readmes/features/roles/researcher.md +164 -0
- package/docs/readmes/features/roles/reviewer.md +184 -0
- package/docs/readmes/features/roles/specifier.md +162 -0
- package/docs/readmes/features/roles/verifier.md +215 -0
- package/docs/readmes/features/schemas/README.md +178 -0
- package/docs/readmes/features/skills/README.md +63 -0
- package/docs/readmes/features/skills/brainstorming.md +96 -0
- package/docs/readmes/features/skills/debugging.md +148 -0
- package/docs/readmes/features/skills/design.md +120 -0
- package/docs/readmes/features/skills/prepare-next.md +109 -0
- package/docs/readmes/features/skills/run-audit.md +159 -0
- package/docs/readmes/features/skills/scan-project.md +109 -0
- package/docs/readmes/features/skills/self-audit.md +176 -0
- package/docs/readmes/features/skills/tdd.md +137 -0
- package/docs/readmes/features/skills/using-skills.md +92 -0
- package/docs/readmes/features/skills/verification.md +120 -0
- package/docs/readmes/features/skills/writing-plans.md +104 -0
- package/docs/readmes/features/tooling/README.md +320 -0
- package/docs/readmes/features/workflows/README.md +186 -0
- package/docs/readmes/features/workflows/author.md +181 -0
- package/docs/readmes/features/workflows/clarify.md +154 -0
- package/docs/readmes/features/workflows/design-review.md +171 -0
- package/docs/readmes/features/workflows/design.md +169 -0
- package/docs/readmes/features/workflows/discover.md +162 -0
- package/docs/readmes/features/workflows/execute.md +173 -0
- package/docs/readmes/features/workflows/learn.md +167 -0
- package/docs/readmes/features/workflows/plan-review.md +165 -0
- package/docs/readmes/features/workflows/plan.md +170 -0
- package/docs/readmes/features/workflows/prepare-next.md +167 -0
- package/docs/readmes/features/workflows/review.md +169 -0
- package/docs/readmes/features/workflows/run-audit.md +191 -0
- package/docs/readmes/features/workflows/spec-challenge.md +159 -0
- package/docs/readmes/features/workflows/specify.md +160 -0
- package/docs/readmes/features/workflows/verify.md +177 -0
- package/docs/readmes/packages/README.md +50 -0
- package/docs/readmes/packages/ajv.md +117 -0
- package/docs/readmes/packages/context-mode.md +118 -0
- package/docs/readmes/packages/gray-matter.md +116 -0
- package/docs/readmes/packages/node-test.md +137 -0
- package/docs/readmes/packages/yaml.md +112 -0
- package/docs/reference/configuration-reference.md +159 -0
- package/docs/reference/expertise-index.md +52 -0
- package/docs/reference/git-flow.md +43 -0
- package/docs/reference/hooks.md +87 -0
- package/docs/reference/host-exports.md +50 -0
- package/docs/reference/launch-checklist.md +172 -0
- package/docs/reference/marketplace-listings.md +76 -0
- package/docs/reference/release-process.md +34 -0
- package/docs/reference/roles-reference.md +77 -0
- package/docs/reference/skills.md +33 -0
- package/docs/reference/templates.md +29 -0
- package/docs/reference/tooling-cli.md +94 -0
- package/docs/truth-claims.yaml +222 -0
- package/expertise/PROGRESS.md +63 -0
- package/expertise/README.md +18 -0
- package/expertise/antipatterns/PROGRESS.md +56 -0
- package/expertise/antipatterns/backend/api-design-antipatterns.md +1271 -0
- package/expertise/antipatterns/backend/auth-antipatterns.md +1195 -0
- package/expertise/antipatterns/backend/caching-antipatterns.md +622 -0
- package/expertise/antipatterns/backend/database-antipatterns.md +1038 -0
- package/expertise/antipatterns/backend/index.md +24 -0
- package/expertise/antipatterns/backend/microservices-antipatterns.md +850 -0
- package/expertise/antipatterns/code/architecture-antipatterns.md +919 -0
- package/expertise/antipatterns/code/async-antipatterns.md +622 -0
- package/expertise/antipatterns/code/code-smells.md +1186 -0
- package/expertise/antipatterns/code/dependency-antipatterns.md +1209 -0
- package/expertise/antipatterns/code/error-handling-antipatterns.md +1360 -0
- package/expertise/antipatterns/code/index.md +27 -0
- package/expertise/antipatterns/code/naming-and-abstraction.md +1118 -0
- package/expertise/antipatterns/code/state-management-antipatterns.md +1076 -0
- package/expertise/antipatterns/code/testing-antipatterns.md +1053 -0
- package/expertise/antipatterns/design/accessibility-antipatterns.md +1136 -0
- package/expertise/antipatterns/design/dark-patterns.md +1121 -0
- package/expertise/antipatterns/design/index.md +22 -0
- package/expertise/antipatterns/design/ui-antipatterns.md +1202 -0
- package/expertise/antipatterns/design/ux-antipatterns.md +680 -0
- package/expertise/antipatterns/frontend/css-layout-antipatterns.md +691 -0
- package/expertise/antipatterns/frontend/flutter-antipatterns.md +1827 -0
- package/expertise/antipatterns/frontend/index.md +23 -0
- package/expertise/antipatterns/frontend/mobile-antipatterns.md +573 -0
- package/expertise/antipatterns/frontend/react-antipatterns.md +1128 -0
- package/expertise/antipatterns/frontend/spa-antipatterns.md +1235 -0
- package/expertise/antipatterns/index.md +31 -0
- package/expertise/antipatterns/performance/index.md +20 -0
- package/expertise/antipatterns/performance/performance-antipatterns.md +1013 -0
- package/expertise/antipatterns/performance/premature-optimization.md +623 -0
- package/expertise/antipatterns/performance/scaling-antipatterns.md +785 -0
- package/expertise/antipatterns/process/ai-coding-antipatterns.md +853 -0
- package/expertise/antipatterns/process/code-review-antipatterns.md +656 -0
- package/expertise/antipatterns/process/deployment-antipatterns.md +920 -0
- package/expertise/antipatterns/process/index.md +23 -0
- package/expertise/antipatterns/process/technical-debt-antipatterns.md +647 -0
- package/expertise/antipatterns/security/index.md +20 -0
- package/expertise/antipatterns/security/secrets-antipatterns.md +849 -0
- package/expertise/antipatterns/security/security-theater.md +843 -0
- package/expertise/antipatterns/security/vulnerability-patterns.md +801 -0
- package/expertise/architecture/PROGRESS.md +70 -0
- package/expertise/architecture/data/caching-architecture.md +671 -0
- package/expertise/architecture/data/data-consistency.md +574 -0
- package/expertise/architecture/data/data-modeling.md +536 -0
- package/expertise/architecture/data/event-streams-and-queues.md +634 -0
- package/expertise/architecture/data/index.md +25 -0
- package/expertise/architecture/data/search-architecture.md +663 -0
- package/expertise/architecture/data/sql-vs-nosql.md +708 -0
- package/expertise/architecture/decisions/architecture-decision-records.md +640 -0
- package/expertise/architecture/decisions/build-vs-buy.md +616 -0
- package/expertise/architecture/decisions/index.md +23 -0
- package/expertise/architecture/decisions/monolith-to-microservices.md +790 -0
- package/expertise/architecture/decisions/technology-selection.md +616 -0
- package/expertise/architecture/distributed/cap-theorem-and-tradeoffs.md +800 -0
- package/expertise/architecture/distributed/circuit-breaker-bulkhead.md +741 -0
- package/expertise/architecture/distributed/consensus-and-coordination.md +796 -0
- package/expertise/architecture/distributed/distributed-systems-fundamentals.md +564 -0
- package/expertise/architecture/distributed/idempotency-and-retry.md +796 -0
- package/expertise/architecture/distributed/index.md +25 -0
- package/expertise/architecture/distributed/saga-pattern.md +797 -0
- package/expertise/architecture/foundations/architectural-thinking.md +460 -0
- package/expertise/architecture/foundations/coupling-and-cohesion.md +770 -0
- package/expertise/architecture/foundations/design-principles-solid.md +649 -0
- package/expertise/architecture/foundations/domain-driven-design.md +719 -0
- package/expertise/architecture/foundations/index.md +25 -0
- package/expertise/architecture/foundations/separation-of-concerns.md +472 -0
- package/expertise/architecture/foundations/twelve-factor-app.md +797 -0
- package/expertise/architecture/index.md +34 -0
- package/expertise/architecture/integration/api-design-graphql.md +638 -0
- package/expertise/architecture/integration/api-design-grpc.md +804 -0
- package/expertise/architecture/integration/api-design-rest.md +892 -0
- package/expertise/architecture/integration/index.md +25 -0
- package/expertise/architecture/integration/third-party-integration.md +795 -0
- package/expertise/architecture/integration/webhooks-and-callbacks.md +1152 -0
- package/expertise/architecture/integration/websockets-realtime.md +791 -0
- package/expertise/architecture/mobile-architecture/index.md +22 -0
- package/expertise/architecture/mobile-architecture/mobile-app-architecture.md +780 -0
- package/expertise/architecture/mobile-architecture/mobile-backend-for-frontend.md +670 -0
- package/expertise/architecture/mobile-architecture/offline-first.md +719 -0
- package/expertise/architecture/mobile-architecture/push-and-sync.md +782 -0
- package/expertise/architecture/patterns/cqrs-event-sourcing.md +717 -0
- package/expertise/architecture/patterns/event-driven.md +797 -0
- package/expertise/architecture/patterns/hexagonal-clean-architecture.md +870 -0
- package/expertise/architecture/patterns/index.md +27 -0
- package/expertise/architecture/patterns/layered-architecture.md +736 -0
- package/expertise/architecture/patterns/microservices.md +753 -0
- package/expertise/architecture/patterns/modular-monolith.md +692 -0
- package/expertise/architecture/patterns/monolith.md +626 -0
- package/expertise/architecture/patterns/plugin-architecture.md +735 -0
- package/expertise/architecture/patterns/serverless.md +780 -0
- package/expertise/architecture/scaling/database-scaling.md +615 -0
- package/expertise/architecture/scaling/feature-flags-and-rollouts.md +757 -0
- package/expertise/architecture/scaling/horizontal-vs-vertical.md +606 -0
- package/expertise/architecture/scaling/index.md +24 -0
- package/expertise/architecture/scaling/multi-tenancy.md +800 -0
- package/expertise/architecture/scaling/stateless-design.md +787 -0
- package/expertise/backend/embedded-firmware.md +625 -0
- package/expertise/backend/go.md +853 -0
- package/expertise/backend/index.md +24 -0
- package/expertise/backend/java-spring.md +448 -0
- package/expertise/backend/node-typescript.md +625 -0
- package/expertise/backend/python-fastapi.md +724 -0
- package/expertise/backend/rust.md +458 -0
- package/expertise/backend/solidity.md +711 -0
- package/expertise/composition-map.yaml +443 -0
- package/expertise/content/foundations/content-modeling.md +395 -0
- package/expertise/content/foundations/editorial-standards.md +449 -0
- package/expertise/content/foundations/index.md +24 -0
- package/expertise/content/foundations/microcopy.md +455 -0
- package/expertise/content/foundations/terminology-governance.md +509 -0
- package/expertise/content/index.md +34 -0
- package/expertise/content/patterns/accessibility-copy.md +518 -0
- package/expertise/content/patterns/index.md +24 -0
- package/expertise/content/patterns/notification-content.md +433 -0
- package/expertise/content/patterns/sample-content.md +486 -0
- package/expertise/content/patterns/state-copy.md +439 -0
- package/expertise/design/PROGRESS.md +58 -0
- package/expertise/design/disciplines/dark-mode-theming.md +577 -0
- package/expertise/design/disciplines/design-systems.md +595 -0
- package/expertise/design/disciplines/index.md +25 -0
- package/expertise/design/disciplines/information-architecture.md +800 -0
- package/expertise/design/disciplines/interaction-design.md +788 -0
- package/expertise/design/disciplines/responsive-design.md +552 -0
- package/expertise/design/disciplines/usability-testing.md +516 -0
- package/expertise/design/disciplines/user-research.md +792 -0
- package/expertise/design/foundations/accessibility-design.md +796 -0
- package/expertise/design/foundations/color-theory.md +797 -0
- package/expertise/design/foundations/iconography.md +795 -0
- package/expertise/design/foundations/index.md +26 -0
- package/expertise/design/foundations/motion-and-animation.md +653 -0
- package/expertise/design/foundations/rtl-design.md +585 -0
- package/expertise/design/foundations/spacing-and-layout.md +607 -0
- package/expertise/design/foundations/typography.md +800 -0
- package/expertise/design/foundations/visual-hierarchy.md +761 -0
- package/expertise/design/index.md +32 -0
- package/expertise/design/patterns/authentication-flows.md +474 -0
- package/expertise/design/patterns/content-consumption.md +789 -0
- package/expertise/design/patterns/data-display.md +618 -0
- package/expertise/design/patterns/e-commerce.md +1494 -0
- package/expertise/design/patterns/feedback-and-states.md +642 -0
- package/expertise/design/patterns/forms-and-input.md +819 -0
- package/expertise/design/patterns/gamification.md +801 -0
- package/expertise/design/patterns/index.md +31 -0
- package/expertise/design/patterns/microinteractions.md +449 -0
- package/expertise/design/patterns/navigation.md +800 -0
- package/expertise/design/patterns/notifications.md +705 -0
- package/expertise/design/patterns/onboarding.md +700 -0
- package/expertise/design/patterns/search-and-filter.md +601 -0
- package/expertise/design/patterns/settings-and-preferences.md +768 -0
- package/expertise/design/patterns/social-and-community.md +748 -0
- package/expertise/design/platforms/desktop-native.md +612 -0
- package/expertise/design/platforms/index.md +25 -0
- package/expertise/design/platforms/mobile-android.md +825 -0
- package/expertise/design/platforms/mobile-cross-platform.md +983 -0
- package/expertise/design/platforms/mobile-ios.md +699 -0
- package/expertise/design/platforms/tablet.md +794 -0
- package/expertise/design/platforms/web-dashboard.md +790 -0
- package/expertise/design/platforms/web-responsive.md +550 -0
- package/expertise/design/psychology/behavioral-nudges.md +449 -0
- package/expertise/design/psychology/cognitive-load.md +1191 -0
- package/expertise/design/psychology/error-psychology.md +778 -0
- package/expertise/design/psychology/index.md +22 -0
- package/expertise/design/psychology/persuasive-design.md +736 -0
- package/expertise/design/psychology/user-mental-models.md +623 -0
- package/expertise/design/tooling/open-pencil.md +266 -0
- package/expertise/frontend/angular.md +1073 -0
- package/expertise/frontend/desktop-electron.md +546 -0
- package/expertise/frontend/flutter.md +782 -0
- package/expertise/frontend/index.md +27 -0
- package/expertise/frontend/native-android.md +409 -0
- package/expertise/frontend/native-ios.md +490 -0
- package/expertise/frontend/react-native.md +1160 -0
- package/expertise/frontend/react.md +808 -0
- package/expertise/frontend/vue.md +1089 -0
- package/expertise/humanize/domain-rules-code.md +79 -0
- package/expertise/humanize/domain-rules-content.md +67 -0
- package/expertise/humanize/domain-rules-technical-docs.md +56 -0
- package/expertise/humanize/index.md +35 -0
- package/expertise/humanize/self-audit-checklist.md +87 -0
- package/expertise/humanize/sentence-patterns.md +218 -0
- package/expertise/humanize/vocabulary-blacklist.md +105 -0
- package/expertise/i18n/PROGRESS.md +65 -0
- package/expertise/i18n/advanced/accessibility-and-i18n.md +28 -0
- package/expertise/i18n/advanced/bidirectional-text-algorithm.md +38 -0
- package/expertise/i18n/advanced/complex-scripts.md +30 -0
- package/expertise/i18n/advanced/performance-and-i18n.md +27 -0
- package/expertise/i18n/advanced/testing-i18n.md +28 -0
- package/expertise/i18n/content/content-adaptation.md +23 -0
- package/expertise/i18n/content/locale-specific-formatting.md +23 -0
- package/expertise/i18n/content/machine-translation-integration.md +28 -0
- package/expertise/i18n/content/translation-management.md +29 -0
- package/expertise/i18n/foundations/date-time-calendars.md +67 -0
- package/expertise/i18n/foundations/i18n-architecture.md +272 -0
- package/expertise/i18n/foundations/locale-and-language-tags.md +79 -0
- package/expertise/i18n/foundations/numbers-currency-units.md +61 -0
- package/expertise/i18n/foundations/pluralization-and-gender.md +109 -0
- package/expertise/i18n/foundations/string-externalization.md +236 -0
- package/expertise/i18n/foundations/text-direction-bidi.md +241 -0
- package/expertise/i18n/foundations/unicode-and-encoding.md +86 -0
- package/expertise/i18n/index.md +38 -0
- package/expertise/i18n/platform/backend-i18n.md +31 -0
- package/expertise/i18n/platform/flutter-i18n.md +148 -0
- package/expertise/i18n/platform/native-android-i18n.md +36 -0
- package/expertise/i18n/platform/native-ios-i18n.md +36 -0
- package/expertise/i18n/platform/react-i18n.md +103 -0
- package/expertise/i18n/platform/web-css-i18n.md +81 -0
- package/expertise/i18n/rtl/arabic-specific.md +175 -0
- package/expertise/i18n/rtl/hebrew-specific.md +149 -0
- package/expertise/i18n/rtl/rtl-animations-and-transitions.md +111 -0
- package/expertise/i18n/rtl/rtl-forms-and-input.md +161 -0
- package/expertise/i18n/rtl/rtl-fundamentals.md +211 -0
- package/expertise/i18n/rtl/rtl-icons-and-images.md +181 -0
- package/expertise/i18n/rtl/rtl-layout-mirroring.md +252 -0
- package/expertise/i18n/rtl/rtl-navigation-and-gestures.md +107 -0
- package/expertise/i18n/rtl/rtl-testing-and-qa.md +147 -0
- package/expertise/i18n/rtl/rtl-typography.md +160 -0
- package/expertise/index.md +113 -0
- package/expertise/index.yaml +216 -0
- package/expertise/infrastructure/cloud-aws.md +597 -0
- package/expertise/infrastructure/cloud-gcp.md +599 -0
- package/expertise/infrastructure/cybersecurity.md +816 -0
- package/expertise/infrastructure/database-mongodb.md +447 -0
- package/expertise/infrastructure/database-postgres.md +400 -0
- package/expertise/infrastructure/devops-cicd.md +787 -0
- package/expertise/infrastructure/index.md +27 -0
- package/expertise/performance/PROGRESS.md +50 -0
- package/expertise/performance/backend/api-latency.md +1204 -0
- package/expertise/performance/backend/background-jobs.md +506 -0
- package/expertise/performance/backend/connection-pooling.md +1209 -0
- package/expertise/performance/backend/database-query-optimization.md +515 -0
- package/expertise/performance/backend/index.md +23 -0
- package/expertise/performance/backend/rate-limiting-and-throttling.md +971 -0
- package/expertise/performance/foundations/algorithmic-complexity.md +954 -0
- package/expertise/performance/foundations/caching-strategies.md +489 -0
- package/expertise/performance/foundations/concurrency-and-parallelism.md +847 -0
- package/expertise/performance/foundations/index.md +24 -0
- package/expertise/performance/foundations/measuring-and-profiling.md +440 -0
- package/expertise/performance/foundations/memory-management.md +964 -0
- package/expertise/performance/foundations/performance-budgets.md +1314 -0
- package/expertise/performance/index.md +31 -0
- package/expertise/performance/infrastructure/auto-scaling.md +1059 -0
- package/expertise/performance/infrastructure/cdn-and-edge.md +1081 -0
- package/expertise/performance/infrastructure/index.md +22 -0
- package/expertise/performance/infrastructure/load-balancing.md +1081 -0
- package/expertise/performance/infrastructure/observability.md +1079 -0
- package/expertise/performance/mobile/index.md +23 -0
- package/expertise/performance/mobile/mobile-animations.md +544 -0
- package/expertise/performance/mobile/mobile-memory-battery.md +416 -0
- package/expertise/performance/mobile/mobile-network.md +452 -0
- package/expertise/performance/mobile/mobile-rendering.md +599 -0
- package/expertise/performance/mobile/mobile-startup-time.md +505 -0
- package/expertise/performance/platform-specific/flutter-performance.md +647 -0
- package/expertise/performance/platform-specific/index.md +22 -0
- package/expertise/performance/platform-specific/node-performance.md +1307 -0
- package/expertise/performance/platform-specific/postgres-performance.md +1366 -0
- package/expertise/performance/platform-specific/react-performance.md +1403 -0
- package/expertise/performance/web/bundle-optimization.md +1239 -0
- package/expertise/performance/web/image-and-media.md +636 -0
- package/expertise/performance/web/index.md +24 -0
- package/expertise/performance/web/network-optimization.md +1133 -0
- package/expertise/performance/web/rendering-performance.md +1098 -0
- package/expertise/performance/web/ssr-and-hydration.md +918 -0
- package/expertise/performance/web/web-vitals.md +1374 -0
- package/expertise/quality/accessibility.md +985 -0
- package/expertise/quality/evidence-based-verification.md +499 -0
- package/expertise/quality/index.md +24 -0
- package/expertise/quality/ml-model-audit.md +614 -0
- package/expertise/quality/performance.md +600 -0
- package/expertise/quality/testing-api.md +891 -0
- package/expertise/quality/testing-mobile.md +496 -0
- package/expertise/quality/testing-web.md +849 -0
- package/expertise/security/PROGRESS.md +54 -0
- package/expertise/security/agentic-identity.md +540 -0
- package/expertise/security/compliance-frameworks.md +601 -0
- package/expertise/security/data/data-encryption.md +364 -0
- package/expertise/security/data/data-privacy-gdpr.md +692 -0
- package/expertise/security/data/database-security.md +1171 -0
- package/expertise/security/data/index.md +22 -0
- package/expertise/security/data/pii-handling.md +531 -0
- package/expertise/security/foundations/authentication.md +1041 -0
- package/expertise/security/foundations/authorization.md +603 -0
- package/expertise/security/foundations/cryptography.md +1001 -0
- package/expertise/security/foundations/index.md +25 -0
- package/expertise/security/foundations/owasp-top-10.md +1354 -0
- package/expertise/security/foundations/secrets-management.md +1217 -0
- package/expertise/security/foundations/secure-sdlc.md +700 -0
- package/expertise/security/foundations/supply-chain-security.md +698 -0
- package/expertise/security/index.md +31 -0
- package/expertise/security/infrastructure/cloud-security-aws.md +1296 -0
- package/expertise/security/infrastructure/cloud-security-gcp.md +1376 -0
- package/expertise/security/infrastructure/container-security.md +721 -0
- package/expertise/security/infrastructure/incident-response.md +1295 -0
- package/expertise/security/infrastructure/index.md +24 -0
- package/expertise/security/infrastructure/logging-and-monitoring.md +1618 -0
- package/expertise/security/infrastructure/network-security.md +1337 -0
- package/expertise/security/mobile/index.md +23 -0
- package/expertise/security/mobile/mobile-android-security.md +1218 -0
- package/expertise/security/mobile/mobile-binary-protection.md +1229 -0
- package/expertise/security/mobile/mobile-data-storage.md +1265 -0
- package/expertise/security/mobile/mobile-ios-security.md +1401 -0
- package/expertise/security/mobile/mobile-network-security.md +1520 -0
- package/expertise/security/smart-contract-security.md +594 -0
- package/expertise/security/testing/index.md +22 -0
- package/expertise/security/testing/penetration-testing.md +1258 -0
- package/expertise/security/testing/security-code-review.md +1765 -0
- package/expertise/security/testing/threat-modeling.md +1074 -0
- package/expertise/security/testing/vulnerability-scanning.md +1062 -0
- package/expertise/security/web/api-security.md +586 -0
- package/expertise/security/web/cors-and-headers.md +433 -0
- package/expertise/security/web/csrf.md +562 -0
- package/expertise/security/web/file-upload.md +1477 -0
- package/expertise/security/web/index.md +25 -0
- package/expertise/security/web/injection.md +1375 -0
- package/expertise/security/web/session-management.md +1101 -0
- package/expertise/security/web/xss.md +1158 -0
- package/exports/README.md +17 -0
- package/exports/hosts/claude/.claude/agents/clarifier.md +42 -0
- package/exports/hosts/claude/.claude/agents/content-author.md +63 -0
- package/exports/hosts/claude/.claude/agents/designer.md +55 -0
- package/exports/hosts/claude/.claude/agents/executor.md +55 -0
- package/exports/hosts/claude/.claude/agents/learner.md +51 -0
- package/exports/hosts/claude/.claude/agents/planner.md +53 -0
- package/exports/hosts/claude/.claude/agents/researcher.md +43 -0
- package/exports/hosts/claude/.claude/agents/reviewer.md +54 -0
- package/exports/hosts/claude/.claude/agents/specifier.md +47 -0
- package/exports/hosts/claude/.claude/agents/verifier.md +71 -0
- package/exports/hosts/claude/.claude/commands/author.md +42 -0
- package/exports/hosts/claude/.claude/commands/clarify.md +38 -0
- package/exports/hosts/claude/.claude/commands/design-review.md +46 -0
- package/exports/hosts/claude/.claude/commands/design.md +44 -0
- package/exports/hosts/claude/.claude/commands/discover.md +37 -0
- package/exports/hosts/claude/.claude/commands/execute.md +48 -0
- package/exports/hosts/claude/.claude/commands/learn.md +38 -0
- package/exports/hosts/claude/.claude/commands/plan-review.md +42 -0
- package/exports/hosts/claude/.claude/commands/plan.md +39 -0
- package/exports/hosts/claude/.claude/commands/prepare-next.md +37 -0
- package/exports/hosts/claude/.claude/commands/review.md +40 -0
- package/exports/hosts/claude/.claude/commands/run-audit.md +41 -0
- package/exports/hosts/claude/.claude/commands/spec-challenge.md +41 -0
- package/exports/hosts/claude/.claude/commands/specify.md +38 -0
- package/exports/hosts/claude/.claude/commands/verify.md +37 -0
- package/exports/hosts/claude/.claude/settings.json +34 -0
- package/exports/hosts/claude/CLAUDE.md +19 -0
- package/exports/hosts/claude/export.manifest.json +38 -0
- package/exports/hosts/claude/host-package.json +67 -0
- package/exports/hosts/codex/AGENTS.md +19 -0
- package/exports/hosts/codex/export.manifest.json +38 -0
- package/exports/hosts/codex/host-package.json +41 -0
- package/exports/hosts/cursor/.cursor/hooks.json +16 -0
- package/exports/hosts/cursor/.cursor/rules/wazir-core.mdc +19 -0
- package/exports/hosts/cursor/export.manifest.json +38 -0
- package/exports/hosts/cursor/host-package.json +42 -0
- package/exports/hosts/gemini/GEMINI.md +19 -0
- package/exports/hosts/gemini/export.manifest.json +38 -0
- package/exports/hosts/gemini/host-package.json +41 -0
- package/hooks/README.md +18 -0
- package/hooks/definitions/loop_cap_guard.yaml +21 -0
- package/hooks/definitions/post_tool_capture.yaml +24 -0
- package/hooks/definitions/pre_compact_summary.yaml +19 -0
- package/hooks/definitions/pre_tool_capture_route.yaml +19 -0
- package/hooks/definitions/protected_path_write_guard.yaml +19 -0
- package/hooks/definitions/session_start.yaml +19 -0
- package/hooks/definitions/stop_handoff_harvest.yaml +20 -0
- package/hooks/loop-cap-guard +17 -0
- package/hooks/post-tool-lint +36 -0
- package/hooks/protected-path-write-guard +17 -0
- package/hooks/session-start +41 -0
- package/llms-full.txt +2355 -0
- package/llms.txt +43 -0
- package/package.json +79 -0
- package/roles/README.md +20 -0
- package/roles/clarifier.md +42 -0
- package/roles/content-author.md +63 -0
- package/roles/designer.md +55 -0
- package/roles/executor.md +55 -0
- package/roles/learner.md +51 -0
- package/roles/planner.md +53 -0
- package/roles/researcher.md +43 -0
- package/roles/reviewer.md +54 -0
- package/roles/specifier.md +47 -0
- package/roles/verifier.md +71 -0
- package/schemas/README.md +24 -0
- package/schemas/accepted-learning.schema.json +20 -0
- package/schemas/author-artifact.schema.json +156 -0
- package/schemas/clarification.schema.json +19 -0
- package/schemas/design-artifact.schema.json +80 -0
- package/schemas/docs-claim.schema.json +18 -0
- package/schemas/export-manifest.schema.json +20 -0
- package/schemas/hook.schema.json +67 -0
- package/schemas/host-export-package.schema.json +18 -0
- package/schemas/implementation-plan.schema.json +19 -0
- package/schemas/proposed-learning.schema.json +19 -0
- package/schemas/research.schema.json +18 -0
- package/schemas/review.schema.json +29 -0
- package/schemas/run-manifest.schema.json +18 -0
- package/schemas/spec-challenge.schema.json +18 -0
- package/schemas/spec.schema.json +20 -0
- package/schemas/usage.schema.json +102 -0
- package/schemas/verification-proof.schema.json +29 -0
- package/schemas/wazir-manifest.schema.json +173 -0
- package/skills/README.md +40 -0
- package/skills/brainstorming/SKILL.md +77 -0
- package/skills/debugging/SKILL.md +50 -0
- package/skills/design/SKILL.md +61 -0
- package/skills/dispatching-parallel-agents/SKILL.md +128 -0
- package/skills/executing-plans/SKILL.md +70 -0
- package/skills/finishing-a-development-branch/SKILL.md +169 -0
- package/skills/humanize/SKILL.md +123 -0
- package/skills/init-pipeline/SKILL.md +124 -0
- package/skills/prepare-next/SKILL.md +20 -0
- package/skills/receiving-code-review/SKILL.md +123 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requesting-code-review/code-reviewer.md +108 -0
- package/skills/run-audit/SKILL.md +197 -0
- package/skills/scan-project/SKILL.md +41 -0
- package/skills/self-audit/SKILL.md +153 -0
- package/skills/subagent-driven-development/SKILL.md +154 -0
- package/skills/subagent-driven-development/code-quality-reviewer-prompt.md +26 -0
- package/skills/subagent-driven-development/implementer-prompt.md +102 -0
- package/skills/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/tdd/SKILL.md +23 -0
- package/skills/using-git-worktrees/SKILL.md +163 -0
- package/skills/using-skills/SKILL.md +95 -0
- package/skills/verification/SKILL.md +22 -0
- package/skills/wazir/SKILL.md +463 -0
- package/skills/writing-plans/SKILL.md +30 -0
- package/skills/writing-skills/SKILL.md +157 -0
- package/skills/writing-skills/anthropic-best-practices.md +122 -0
- package/skills/writing-skills/persuasion-principles.md +50 -0
- package/templates/README.md +20 -0
- package/templates/artifacts/README.md +10 -0
- package/templates/artifacts/accepted-learning.md +19 -0
- package/templates/artifacts/accepted-learning.template.json +12 -0
- package/templates/artifacts/author.md +74 -0
- package/templates/artifacts/author.template.json +19 -0
- package/templates/artifacts/clarification.md +21 -0
- package/templates/artifacts/clarification.template.json +12 -0
- package/templates/artifacts/execute-notes.md +19 -0
- package/templates/artifacts/implementation-plan.md +21 -0
- package/templates/artifacts/implementation-plan.template.json +11 -0
- package/templates/artifacts/learning-proposal.md +19 -0
- package/templates/artifacts/next-run-handoff.md +21 -0
- package/templates/artifacts/plan-review.md +19 -0
- package/templates/artifacts/proposed-learning.template.json +12 -0
- package/templates/artifacts/research.md +21 -0
- package/templates/artifacts/research.template.json +12 -0
- package/templates/artifacts/review-findings.md +19 -0
- package/templates/artifacts/review.template.json +11 -0
- package/templates/artifacts/run-manifest.template.json +8 -0
- package/templates/artifacts/spec-challenge.md +19 -0
- package/templates/artifacts/spec-challenge.template.json +11 -0
- package/templates/artifacts/spec.md +21 -0
- package/templates/artifacts/spec.template.json +12 -0
- package/templates/artifacts/verification-proof.md +19 -0
- package/templates/artifacts/verification-proof.template.json +11 -0
- package/templates/examples/accepted-learning.example.json +14 -0
- package/templates/examples/author.example.json +152 -0
- package/templates/examples/clarification.example.json +15 -0
- package/templates/examples/docs-claim.example.json +8 -0
- package/templates/examples/export-manifest.example.json +7 -0
- package/templates/examples/host-export-package.example.json +11 -0
- package/templates/examples/implementation-plan.example.json +17 -0
- package/templates/examples/proposed-learning.example.json +13 -0
- package/templates/examples/research.example.json +15 -0
- package/templates/examples/research.example.md +6 -0
- package/templates/examples/review.example.json +17 -0
- package/templates/examples/run-manifest.example.json +9 -0
- package/templates/examples/spec-challenge.example.json +14 -0
- package/templates/examples/spec.example.json +21 -0
- package/templates/examples/verification-proof.example.json +21 -0
- package/templates/examples/wazir-manifest.example.yaml +65 -0
- package/templates/task-definition-schema.md +99 -0
- package/tooling/README.md +20 -0
- package/tooling/src/adapters/context-mode.js +50 -0
- package/tooling/src/capture/command.js +376 -0
- package/tooling/src/capture/store.js +99 -0
- package/tooling/src/capture/usage.js +270 -0
- package/tooling/src/checks/branches.js +50 -0
- package/tooling/src/checks/brand-truth.js +110 -0
- package/tooling/src/checks/changelog.js +231 -0
- package/tooling/src/checks/command-registry.js +36 -0
- package/tooling/src/checks/commits.js +102 -0
- package/tooling/src/checks/docs-drift.js +103 -0
- package/tooling/src/checks/docs-truth.js +201 -0
- package/tooling/src/checks/runtime-surface.js +156 -0
- package/tooling/src/cli.js +116 -0
- package/tooling/src/command-options.js +56 -0
- package/tooling/src/commands/validate.js +320 -0
- package/tooling/src/doctor/command.js +91 -0
- package/tooling/src/export/command.js +77 -0
- package/tooling/src/export/compiler.js +498 -0
- package/tooling/src/guards/loop-cap-guard.js +52 -0
- package/tooling/src/guards/protected-path-write-guard.js +67 -0
- package/tooling/src/index/command.js +152 -0
- package/tooling/src/index/storage.js +1061 -0
- package/tooling/src/index/summarizers.js +261 -0
- package/tooling/src/loaders.js +18 -0
- package/tooling/src/project-root.js +22 -0
- package/tooling/src/recall/command.js +225 -0
- package/tooling/src/schema-validator.js +30 -0
- package/tooling/src/state-root.js +40 -0
- package/tooling/src/status/command.js +71 -0
- package/wazir.manifest.yaml +135 -0
- package/workflows/README.md +19 -0
- package/workflows/author.md +42 -0
- package/workflows/clarify.md +38 -0
- package/workflows/design-review.md +46 -0
- package/workflows/design.md +44 -0
- package/workflows/discover.md +37 -0
- package/workflows/execute.md +48 -0
- package/workflows/learn.md +38 -0
- package/workflows/plan-review.md +42 -0
- package/workflows/plan.md +39 -0
- package/workflows/prepare-next.md +37 -0
- package/workflows/review.md +40 -0
- package/workflows/run-audit.md +41 -0
- package/workflows/spec-challenge.md +41 -0
- package/workflows/specify.md +38 -0
- package/workflows/verify.md +37 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Directory Purpose
|
|
2
|
+
|
|
3
|
+
The `patterns` directory catalogs standard, reusable UX flows and UI components for solving common user problems.
|
|
4
|
+
|
|
5
|
+
# Key Concepts
|
|
6
|
+
|
|
7
|
+
- Reducing friction in core workflows
|
|
8
|
+
- Standardizing data input and display
|
|
9
|
+
- Enhancing user engagement
|
|
10
|
+
|
|
11
|
+
# File Map
|
|
12
|
+
|
|
13
|
+
- `authentication-flows.md` — login, signup, and password reset
|
|
14
|
+
- `content-consumption.md` — reading interfaces, feeds, and articles
|
|
15
|
+
- `data-display.md` — tables, charts, and dashboards
|
|
16
|
+
- `e-commerce.md` — product pages, carts, and checkout
|
|
17
|
+
- `feedback-and-states.md` — empty states, loading, and success messages
|
|
18
|
+
- `forms-and-input.md` — validation, layout, and input types
|
|
19
|
+
- `gamification.md` — rewards, progress, and engagement
|
|
20
|
+
- `navigation.md` — tabs, drawers, sidebars, and breadcrumbs
|
|
21
|
+
- `notifications.md` — push, in-app alerts, and banners
|
|
22
|
+
- `onboarding.md` — tours, tooltips, and first-time setups
|
|
23
|
+
- `search-and-filter.md` — search bars, facets, and sorting
|
|
24
|
+
- `settings-and-preferences.md` — user profiles and toggles
|
|
25
|
+
- `social-and-community.md` — profiles, comments, and sharing
|
|
26
|
+
|
|
27
|
+
# Reading Guide
|
|
28
|
+
|
|
29
|
+
If designing a dashboard → read `data-display.md`
|
|
30
|
+
If building a login screen → read `authentication-flows.md`
|
|
31
|
+
If improving user retention → read `onboarding.md` and `gamification.md`
|
|
@@ -0,0 +1,449 @@
|
|
|
1
|
+
# Microinteractions & Delight -- Expertise Module
|
|
2
|
+
|
|
3
|
+
> Microinteractions are the small, contained moments of feedback that make a product feel
|
|
4
|
+
> alive and responsive. This module covers taxonomy, implementation, choreography, and
|
|
5
|
+
> performance constraints for designing delight that serves usability rather than undermining it.
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. Authority & Foundations
|
|
10
|
+
|
|
11
|
+
Dan Saffer's *Microinteractions: Designing with Details* (2013) defines the canonical
|
|
12
|
+
structure: **Trigger, Rules, Feedback, Loops & Modes.** A user action (or system event)
|
|
13
|
+
triggers a rule, the rule produces feedback, and the interaction may loop or change modes.
|
|
14
|
+
|
|
15
|
+
**Industry benchmarks referenced throughout:**
|
|
16
|
+
|
|
17
|
+
| Source | Contribution |
|
|
18
|
+
|--------|-------------|
|
|
19
|
+
| **Dan Saffer** -- *Microinteractions* (2013) | Trigger-Rules-Feedback-Loops framework; "the difference between a product you love and a product you tolerate" |
|
|
20
|
+
| **Stripe checkout animation** | Industry benchmark for payment UX -- progress shimmer, card flip, success checkmark. Proves microinteractions build trust in high-stakes flows |
|
|
21
|
+
| **Duolingo gamification** | Owl celebrations, streak animations, XP counters. Demonstrates that layered micro-feedback drives 3x daily return rates |
|
|
22
|
+
| **Apple HIG animation principles** | Purpose-driven motion: orient, focus, express, inform. Spring-based defaults since iOS 17 |
|
|
23
|
+
| **Google Material Motion** | Container transforms, shared axis, fade-through. Token-based duration/easing system |
|
|
24
|
+
| **Lottie (Airbnb Engineering)** | JSON-based animation format enabling designer-to-developer handoff without frame loss. Adopted by Stripe, Duolingo, Google, Uber |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 2. Delight Taxonomy
|
|
29
|
+
|
|
30
|
+
Not all delight is equal. Categorize by intent to avoid deploying the wrong type at
|
|
31
|
+
the wrong moment.
|
|
32
|
+
|
|
33
|
+
| Type | Purpose | Example | When to Use |
|
|
34
|
+
|------|---------|---------|-------------|
|
|
35
|
+
| **Subtle** | Reduce cognitive load | Button hover state, focus ring, input highlight | Always -- these are baseline expectations |
|
|
36
|
+
| **Interactive** | Provide immediate feedback | Pull-to-refresh spring, swipe-to-dismiss, toggle snap | User-initiated actions requiring confirmation |
|
|
37
|
+
| **Discovery** | Reward exploration | Hidden keyboard shortcuts revealed via tooltip, long-press menus | Power users; never gate core functionality |
|
|
38
|
+
| **Contextual** | Celebrate milestones | Confetti on task completion, level-up burst, streak badge | Key moments only -- overuse destroys impact |
|
|
39
|
+
| **Informational** | Show system state | Skeleton loading pulse, progress ring fill, upload percentage | Data fetching, async operations, background tasks |
|
|
40
|
+
|
|
41
|
+
**Selection rule:** Subtle + Informational are mandatory baselines. Add Interactive
|
|
42
|
+
for state-changing actions. Reserve Discovery and Contextual for engagement-driven
|
|
43
|
+
products.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 3. CSS Micro-Interactions
|
|
48
|
+
|
|
49
|
+
Production-ready patterns. All animations use only `transform` and `opacity` for
|
|
50
|
+
GPU-composited 60fps performance.
|
|
51
|
+
|
|
52
|
+
### 3.1 Shimmer Button on Hover
|
|
53
|
+
|
|
54
|
+
```css
|
|
55
|
+
/* Shimmer button on hover */
|
|
56
|
+
.btn-shimmer {
|
|
57
|
+
position: relative;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
transition: transform 0.15s ease;
|
|
60
|
+
}
|
|
61
|
+
.btn-shimmer:hover { transform: translateY(-1px); }
|
|
62
|
+
.btn-shimmer::after {
|
|
63
|
+
content: '';
|
|
64
|
+
position: absolute;
|
|
65
|
+
top: -50%; left: -50%;
|
|
66
|
+
width: 200%; height: 200%;
|
|
67
|
+
background: linear-gradient(
|
|
68
|
+
to right,
|
|
69
|
+
transparent 0%,
|
|
70
|
+
rgba(255,255,255,0.08) 50%,
|
|
71
|
+
transparent 100%
|
|
72
|
+
);
|
|
73
|
+
transform: rotate(30deg);
|
|
74
|
+
animation: shimmer 3s ease-in-out infinite;
|
|
75
|
+
}
|
|
76
|
+
@keyframes shimmer {
|
|
77
|
+
0% { transform: translateX(-100%) rotate(30deg); }
|
|
78
|
+
100% { transform: translateX(100%) rotate(30deg); }
|
|
79
|
+
}
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 3.2 Success Validation Sparkle
|
|
83
|
+
|
|
84
|
+
```css
|
|
85
|
+
/* Success validation sparkle */
|
|
86
|
+
.input-valid {
|
|
87
|
+
animation: sparkle 0.6s ease-out;
|
|
88
|
+
border-color: var(--color-success);
|
|
89
|
+
}
|
|
90
|
+
@keyframes sparkle {
|
|
91
|
+
0% { box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.4); }
|
|
92
|
+
100% { box-shadow: 0 0 0 8px rgba(34, 197, 94, 0); }
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 3.3 Skeleton Loading Pulse
|
|
97
|
+
|
|
98
|
+
```css
|
|
99
|
+
/* Skeleton loading pulse */
|
|
100
|
+
.skeleton {
|
|
101
|
+
background: linear-gradient(90deg,
|
|
102
|
+
var(--color-surface) 25%,
|
|
103
|
+
var(--color-surface-raised) 50%,
|
|
104
|
+
var(--color-surface) 75%
|
|
105
|
+
);
|
|
106
|
+
background-size: 200% 100%;
|
|
107
|
+
animation: skeleton-pulse 1.5s ease-in-out infinite;
|
|
108
|
+
border-radius: 4px;
|
|
109
|
+
}
|
|
110
|
+
@keyframes skeleton-pulse {
|
|
111
|
+
0% { background-position: 200% 0; }
|
|
112
|
+
100% { background-position: -200% 0; }
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### 3.4 Bounce Loading Dots
|
|
117
|
+
|
|
118
|
+
```css
|
|
119
|
+
/* Bounce loading dots */
|
|
120
|
+
.loading-dot {
|
|
121
|
+
animation: bounce 1.4s ease-in-out infinite both;
|
|
122
|
+
}
|
|
123
|
+
.loading-dot:nth-child(1) { animation-delay: -0.32s; }
|
|
124
|
+
.loading-dot:nth-child(2) { animation-delay: -0.16s; }
|
|
125
|
+
@keyframes bounce {
|
|
126
|
+
0%, 80%, 100% { transform: scale(0); }
|
|
127
|
+
40% { transform: scale(1); }
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 4. Transition Choreography
|
|
134
|
+
|
|
135
|
+
Choreography governs how multiple elements animate together to maintain spatial
|
|
136
|
+
clarity -- the user always understands where content came from and where it went.
|
|
137
|
+
|
|
138
|
+
### 4.1 Staggered List Animations
|
|
139
|
+
|
|
140
|
+
Stagger at 50ms per item, capped at 300ms total (6 items). Beyond 6, batch-fade.
|
|
141
|
+
|
|
142
|
+
```css
|
|
143
|
+
/* Staggered list animation */
|
|
144
|
+
.list-item {
|
|
145
|
+
opacity: 0;
|
|
146
|
+
transform: translateY(8px);
|
|
147
|
+
animation: list-enter 0.3s ease-out forwards;
|
|
148
|
+
}
|
|
149
|
+
.list-item:nth-child(1) { animation-delay: 0ms; }
|
|
150
|
+
.list-item:nth-child(2) { animation-delay: 50ms; }
|
|
151
|
+
.list-item:nth-child(3) { animation-delay: 100ms; }
|
|
152
|
+
.list-item:nth-child(4) { animation-delay: 150ms; }
|
|
153
|
+
.list-item:nth-child(5) { animation-delay: 200ms; }
|
|
154
|
+
.list-item:nth-child(6) { animation-delay: 250ms; }
|
|
155
|
+
@keyframes list-enter {
|
|
156
|
+
to { opacity: 1; transform: translateY(0); }
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 4.2 Skeleton to Content Fade-In
|
|
161
|
+
|
|
162
|
+
Skeleton fades out (150ms ease-in) while content fades in (250ms ease-out) with
|
|
163
|
+
a 4px upward translate. Overlap the two by starting content-in 100ms after
|
|
164
|
+
skeleton-out begins.
|
|
165
|
+
|
|
166
|
+
```css
|
|
167
|
+
.skeleton-exit {
|
|
168
|
+
animation: skeleton-out 0.15s ease-in forwards;
|
|
169
|
+
}
|
|
170
|
+
@keyframes skeleton-out { to { opacity: 0; } }
|
|
171
|
+
|
|
172
|
+
.content-enter {
|
|
173
|
+
opacity: 0;
|
|
174
|
+
transform: translateY(4px);
|
|
175
|
+
animation: content-in 0.25s ease-out 0.1s forwards;
|
|
176
|
+
}
|
|
177
|
+
@keyframes content-in { to { opacity: 1; transform: translateY(0); } }
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 4.3 Modal Enter/Exit
|
|
181
|
+
|
|
182
|
+
Enter: scale-up + opacity (300ms ease-out). Exit: scale-down + opacity (200ms
|
|
183
|
+
ease-in). Exits are 30% faster than entrances.
|
|
184
|
+
|
|
185
|
+
```css
|
|
186
|
+
.modal-enter {
|
|
187
|
+
animation: modal-in 0.3s cubic-bezier(0, 0, 0.2, 1) forwards;
|
|
188
|
+
}
|
|
189
|
+
@keyframes modal-in {
|
|
190
|
+
from { opacity: 0; transform: scale(0.95); }
|
|
191
|
+
to { opacity: 1; transform: scale(1); }
|
|
192
|
+
}
|
|
193
|
+
.modal-exit {
|
|
194
|
+
animation: modal-out 0.2s cubic-bezier(0.4, 0, 1, 1) forwards;
|
|
195
|
+
}
|
|
196
|
+
@keyframes modal-out {
|
|
197
|
+
from { opacity: 1; transform: scale(1); }
|
|
198
|
+
to { opacity: 0; transform: scale(0.95); }
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
### 4.4 Page Transitions (Shared Element)
|
|
203
|
+
|
|
204
|
+
Morph a list item into its detail view (300-400ms) using CSS View Transitions API.
|
|
205
|
+
|
|
206
|
+
```css
|
|
207
|
+
.card-thumbnail { view-transition-name: hero-image; }
|
|
208
|
+
::view-transition-old(hero-image),
|
|
209
|
+
::view-transition-new(hero-image) {
|
|
210
|
+
animation-duration: 0.35s;
|
|
211
|
+
animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 5. Playful Microcopy Library
|
|
218
|
+
|
|
219
|
+
Microcopy is a microinteraction of language. The right words at the right moment
|
|
220
|
+
create delight equal to the right animation.
|
|
221
|
+
|
|
222
|
+
| Context | Generic | Playful | When to Use Playful |
|
|
223
|
+
|---------|---------|---------|---------------------|
|
|
224
|
+
| Loading | "Loading..." | "Brewing your results..." | Consumer apps |
|
|
225
|
+
| Error 404 | "Page not found" | "This page went on vacation" | Marketing sites |
|
|
226
|
+
| Empty state | "No items" | "Nothing here yet. Let's fix that!" | Productivity apps |
|
|
227
|
+
| Success | "Saved" | "Nailed it! All saved." | Casual apps |
|
|
228
|
+
| Offline | "No connection" | "Looks like you're off the grid" | Mobile apps |
|
|
229
|
+
| Slow connection | "Loading slowly" | "Your internet is taking a nap" | Consumer apps |
|
|
230
|
+
| First use | "Welcome" | "Ready to make something awesome?" | Onboarding |
|
|
231
|
+
|
|
232
|
+
**Playful copy is NOT appropriate for:**
|
|
233
|
+
- Financial transactions (payment confirmations, balance displays)
|
|
234
|
+
- Error states with data loss risk (unsaved work, failed writes)
|
|
235
|
+
- Accessibility-critical messages (screen reader announcements)
|
|
236
|
+
- Legal/compliance text (terms, privacy notices, consent forms)
|
|
237
|
+
- Healthcare, emergency, or safety-critical contexts
|
|
238
|
+
|
|
239
|
+
**Rule:** When in doubt, use generic. Playful copy that falls flat is worse than
|
|
240
|
+
professional copy that feels safe.
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 6. Easter Egg Patterns
|
|
245
|
+
|
|
246
|
+
Easter eggs reward exploration and build emotional connection (Discovery delight,
|
|
247
|
+
Section 2). They must follow strict guardrails.
|
|
248
|
+
|
|
249
|
+
### 6.1 Trigger Patterns
|
|
250
|
+
|
|
251
|
+
| Trigger | Implementation | Example |
|
|
252
|
+
|---------|---------------|---------|
|
|
253
|
+
| Konami code | Keydown sequence: Up Up Down Down Left Right Left Right B A | Dev tools panel, hidden theme |
|
|
254
|
+
| Click sequence | Logo click x5 within 3 seconds | Version info, debug panel |
|
|
255
|
+
| Hidden shortcuts | Undocumented keyboard combos | Power-user features, quick actions |
|
|
256
|
+
| Seasonal themes | Date-based CSS class injection | Holiday decorations, anniversary badges |
|
|
257
|
+
| Achievement badges | Behavioral tracking milestones | "Power User" after 100 actions |
|
|
258
|
+
|
|
259
|
+
### 6.2 Implementation (TypeScript)
|
|
260
|
+
|
|
261
|
+
```typescript
|
|
262
|
+
function createKonamiListener(callback: () => void): () => void {
|
|
263
|
+
const sequence = [
|
|
264
|
+
'ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown',
|
|
265
|
+
'ArrowLeft', 'ArrowRight', 'ArrowLeft', 'ArrowRight',
|
|
266
|
+
'KeyB', 'KeyA',
|
|
267
|
+
];
|
|
268
|
+
let position = 0;
|
|
269
|
+
const handler = (e: KeyboardEvent): void => {
|
|
270
|
+
position = e.code === sequence[position] ? position + 1 : 0;
|
|
271
|
+
if (position === sequence.length) { position = 0; callback(); }
|
|
272
|
+
};
|
|
273
|
+
document.addEventListener('keydown', handler);
|
|
274
|
+
return () => document.removeEventListener('keydown', handler);
|
|
275
|
+
}
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
### 6.3 Guardrails
|
|
279
|
+
|
|
280
|
+
- Easter eggs must NOT affect core functionality or user data
|
|
281
|
+
- Easter eggs must NOT break accessibility (screen readers, keyboard navigation)
|
|
282
|
+
- Easter eggs must NOT confuse users who trigger them accidentally
|
|
283
|
+
- Easter eggs must be dismissible immediately (Escape key, tap outside)
|
|
284
|
+
- Easter eggs must respect `prefers-reduced-motion` if they involve animation
|
|
285
|
+
- Easter eggs must NOT appear in error flows, payment flows, or critical paths
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## 7. Performance Budget for Animations
|
|
290
|
+
|
|
291
|
+
Every animation is a contract with the user's hardware. Violating the frame budget
|
|
292
|
+
destroys the delight you intended.
|
|
293
|
+
|
|
294
|
+
### 7.1 Core Rules
|
|
295
|
+
|
|
296
|
+
| Rule | Constraint | Reason |
|
|
297
|
+
|------|-----------|--------|
|
|
298
|
+
| GPU-only properties | Animate ONLY `transform` and `opacity` | No layout/paint recalculation per frame |
|
|
299
|
+
| 60fps budget | 16.67ms per frame maximum | Below this threshold, visible jank occurs |
|
|
300
|
+
| `will-change` discipline | Apply only to elements about to animate; remove after | Permanent `will-change` wastes GPU memory |
|
|
301
|
+
| CSS over JS for simple motion | Use CSS transitions/animations when possible | Lower overhead, compositor-thread execution |
|
|
302
|
+
| `requestAnimationFrame` for JS | Never use `setTimeout`/`setInterval` for animation | rAF syncs to display refresh rate |
|
|
303
|
+
| Simultaneous limit | Max 3-4 elements animating at once | More elements = frame budget competition |
|
|
304
|
+
|
|
305
|
+
### 7.2 Mandatory Reduced Motion Support
|
|
306
|
+
|
|
307
|
+
`prefers-reduced-motion` is a WCAG 2.3.3 requirement and ADA/EAA legal obligation.
|
|
308
|
+
|
|
309
|
+
```css
|
|
310
|
+
@media (prefers-reduced-motion: reduce) {
|
|
311
|
+
*, *::before, *::after {
|
|
312
|
+
animation-duration: 0.01ms !important;
|
|
313
|
+
animation-iteration-count: 1 !important;
|
|
314
|
+
transition-duration: 0.01ms !important;
|
|
315
|
+
scroll-behavior: auto !important;
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
**Reduced motion does NOT mean no feedback.** Replace with instant opacity snaps,
|
|
321
|
+
color changes, static icons, and `aria-live` announcements.
|
|
322
|
+
|
|
323
|
+
### 7.3 Lottie Animation Budget
|
|
324
|
+
|
|
325
|
+
| Constraint | Target | Reason |
|
|
326
|
+
|-----------|--------|--------|
|
|
327
|
+
| File size (gzipped) | < 30KB | Prevents layout shift from late-loading assets |
|
|
328
|
+
| Author frame rate | 30fps | Halves file size; imperceptible vs 60fps |
|
|
329
|
+
| Layer count | 3-4 max | Masks and mattes are render-expensive |
|
|
330
|
+
| Renderer | `svg` (quality) or `canvas` (perf) | Match to use case |
|
|
331
|
+
| Reduced motion | Static fallback frame required | Accessibility compliance |
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## 8. Anti-Patterns
|
|
336
|
+
|
|
337
|
+
### 8.1 Delight That Distracts
|
|
338
|
+
Animations competing with the primary task (bouncing badge during form entry).
|
|
339
|
+
**Fix:** Defer non-critical delight to natural pause points.
|
|
340
|
+
|
|
341
|
+
### 8.2 Non-Skippable Animations (>500ms)
|
|
342
|
+
Blocking interaction behind a celebratory animation. NNG: beyond 500ms, animations
|
|
343
|
+
feel like delays. **Fix:** All celebrations must be dismissible (tap/click/Escape).
|
|
344
|
+
|
|
345
|
+
### 8.3 Forced Whimsy
|
|
346
|
+
Confetti in a banking app. Bouncing icons on a medical portal. Tone-context mismatch
|
|
347
|
+
erodes trust. **Fix:** Match delight intensity to product gravity.
|
|
348
|
+
|
|
349
|
+
### 8.4 Missing `prefers-reduced-motion`
|
|
350
|
+
Shipping animations without reduced-motion support. 35% of adults over 40 experience
|
|
351
|
+
vestibular disorders. **Fix:** Add the global query from Section 7.2 first.
|
|
352
|
+
|
|
353
|
+
### 8.5 Sound Effects Without Mute
|
|
354
|
+
Audio that cannot be silenced forces users to mute their entire device. **Fix:**
|
|
355
|
+
Independent mute toggle, default to muted on first use.
|
|
356
|
+
|
|
357
|
+
### 8.6 Animations Blocking Content on Page Load
|
|
358
|
+
Staggered fade-in delays content visibility. **Fix:** Above-the-fold content appears
|
|
359
|
+
within 300ms. Stagger only below-the-fold content entering via scroll.
|
|
360
|
+
|
|
361
|
+
### 8.7 Over-Animating (Everything Moves)
|
|
362
|
+
When everything animates, nothing stands out. **Fix:** Motion hierarchy -- primary
|
|
363
|
+
actions get expressive motion, secondary get subtle transitions, background stays static.
|
|
364
|
+
|
|
365
|
+
### 8.8 Inconsistent Animation Curves
|
|
366
|
+
Mixing ease-in and ease-out randomly across components. **Fix:** Define a motion token
|
|
367
|
+
system. Entrances: ease-out. Exits: ease-in. Repositioning: ease-in-out. No exceptions.
|
|
368
|
+
|
|
369
|
+
### 8.9 Gratuitous Loading Animations
|
|
370
|
+
Complex animations masking slow performance. **Fix:** Optimize performance first.
|
|
371
|
+
Use skeletons. Reserve Lottie for truly indeterminate waits.
|
|
372
|
+
|
|
373
|
+
### 8.10 Animating Off-Screen Elements
|
|
374
|
+
Running animations outside the viewport wastes CPU/GPU. **Fix:** Use Intersection
|
|
375
|
+
Observer to start on viewport entry and pause on exit.
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## 9. Accessibility Checklist for Microinteractions
|
|
380
|
+
|
|
381
|
+
Every microinteraction must pass all items before shipping:
|
|
382
|
+
|
|
383
|
+
- [ ] `prefers-reduced-motion: reduce` handled -- tested with OS setting enabled
|
|
384
|
+
- [ ] No animation relies on motion alone to convey information (pair with color,
|
|
385
|
+
icon, or text)
|
|
386
|
+
- [ ] Interactive animations are keyboard-operable (not touch/mouse-only)
|
|
387
|
+
- [ ] Celebratory overlays (confetti, modals) are dismissible via Escape key
|
|
388
|
+
- [ ] Focus management: overlays trap focus; dismissal returns focus to trigger
|
|
389
|
+
- [ ] `aria-live` regions announce state changes that animations convey visually
|
|
390
|
+
- [ ] Sound effects have independent mute control and visual equivalents
|
|
391
|
+
- [ ] Animations do not exceed 5 seconds without pause/stop control (WCAG 2.2.2)
|
|
392
|
+
- [ ] Color is never the sole indicator of animation state (WCAG 1.4.1)
|
|
393
|
+
- [ ] Animated content meets 4.5:1 contrast ratio at every frame (WCAG 1.4.3)
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## 10. Decision Tree: When to Add Microinteractions
|
|
398
|
+
|
|
399
|
+
```
|
|
400
|
+
Is the user performing an action that changes state?
|
|
401
|
+
No --> Is the system communicating status?
|
|
402
|
+
No --> No microinteraction needed. Stop.
|
|
403
|
+
Yes --> Use Informational type (skeleton, progress ring, pulse).
|
|
404
|
+
Yes --> Does the action need immediate confirmation?
|
|
405
|
+
No --> Subtle hover/focus feedback only.
|
|
406
|
+
Yes --> Is this a milestone or completion moment?
|
|
407
|
+
No --> Interactive type (toggle snap, swipe spring, button press).
|
|
408
|
+
Yes --> Is the product tone casual or playful?
|
|
409
|
+
No --> Subtle success (checkmark draw, green border sparkle).
|
|
410
|
+
Yes --> Contextual celebration (confetti, badge unlock, XP burst).
|
|
411
|
+
BUT: must be dismissible, under 500ms, reduced-motion safe.
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
## 11. Quick Reference: Timing Cheat Sheet
|
|
417
|
+
|
|
418
|
+
| Interaction | Duration | Easing | Properties |
|
|
419
|
+
|-------------|----------|--------|------------|
|
|
420
|
+
| Button hover lift | 150ms | ease | transform (translateY) |
|
|
421
|
+
| Toggle/checkbox snap | 100-200ms | ease-out | transform (scale), opacity |
|
|
422
|
+
| Input focus ring | 150ms | ease-out | box-shadow (repaint OK, infrequent) |
|
|
423
|
+
| Validation sparkle | 600ms | ease-out | box-shadow |
|
|
424
|
+
| Skeleton shimmer cycle | 1500ms | ease-in-out | background-position |
|
|
425
|
+
| List item stagger | 300ms + 50ms/item | ease-out | transform (translateY), opacity |
|
|
426
|
+
| Modal enter | 300ms | ease-out (decelerate) | transform (scale), opacity |
|
|
427
|
+
| Modal exit | 200ms | ease-in (accelerate) | transform (scale), opacity |
|
|
428
|
+
| Toast enter | 200ms | ease-out | transform (translateY), opacity |
|
|
429
|
+
| Toast exit | 150ms | ease-in | transform (translateY), opacity |
|
|
430
|
+
| Page cross-fade | 250ms | ease-in-out | opacity |
|
|
431
|
+
| Confetti burst | 800ms | ease-out | transform, opacity |
|
|
432
|
+
| Success checkmark draw | 350-500ms | ease-out | stroke-dashoffset |
|
|
433
|
+
|
|
434
|
+
---
|
|
435
|
+
|
|
436
|
+
## References
|
|
437
|
+
|
|
438
|
+
- Dan Saffer, *Microinteractions: Designing with Details* (O'Reilly, 2013)
|
|
439
|
+
- [Stripe Checkout UX](https://stripe.com/payments/checkout) -- Payment animation benchmark
|
|
440
|
+
- [Duolingo Gamification Case Study](https://trophy.so/blog/duolingo-gamification-case-study) -- Layered micro-feedback
|
|
441
|
+
- [Apple HIG: Motion](https://developer.apple.com/design/human-interface-guidelines/motion) -- Purpose-driven animation
|
|
442
|
+
- [Material Design 3: Motion](https://m3.material.io/styles/motion/overview/how-it-works) -- Token-based motion system
|
|
443
|
+
- [Lottie by Airbnb](https://airbnb.design/lottie/) -- JSON animation format and tooling
|
|
444
|
+
- [NNG: Animation Duration](https://www.nngroup.com/articles/animation-duration/) -- Research-backed timing
|
|
445
|
+
- [NNG: Microinteractions in UX](https://www.nngroup.com/articles/microinteractions/) -- Taxonomy and guidelines
|
|
446
|
+
- [MDN: prefers-reduced-motion](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion) -- Accessibility media query
|
|
447
|
+
- [WCAG 2.2.2: Pause, Stop, Hide](https://www.w3.org/WAI/WCAG21/Understanding/pause-stop-hide.html) -- Animation accessibility requirement
|
|
448
|
+
- [WCAG 2.3.3: Animation from Interactions](https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions.html) -- Motion sensitivity
|
|
449
|
+
- [web.dev: Animations and Performance](https://web.dev/articles/animations-and-performance) -- GPU-composited properties
|