@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,1191 @@
|
|
|
1
|
+
# Cognitive Load in UI/UX Design
|
|
2
|
+
|
|
3
|
+
> **Domain**: UI/UX Design Psychology
|
|
4
|
+
> **Scope**: Working memory limits, decision fatigue, attention constraints, and their
|
|
5
|
+
> direct impact on interface design, measurement, ethics, and platform-specific concerns.
|
|
6
|
+
> **Key Authors**: George Miller, John Sweller, Don Norman, Jakob Nielsen, Nelson Cowan
|
|
7
|
+
> **Last Updated**: 2026-03-07
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Table of Contents
|
|
12
|
+
|
|
13
|
+
1. [The Science](#1-the-science)
|
|
14
|
+
- 1.1 Miller's Law (7 plus-or-minus 2)
|
|
15
|
+
- 1.2 Cowan's Refinement (4 chunks)
|
|
16
|
+
- 1.3 Cognitive Load Theory (Sweller)
|
|
17
|
+
- 1.4 Intrinsic vs Extraneous vs Germane Load
|
|
18
|
+
- 1.5 Working Memory Limits
|
|
19
|
+
- 1.6 Attention, Change Blindness, and Inattentional Blindness
|
|
20
|
+
- 1.7 Hick's Law and Decision Time
|
|
21
|
+
- 1.8 Progressive Disclosure
|
|
22
|
+
2. [Design Implications](#2-design-implications)
|
|
23
|
+
- 15 specific rules with principles and concrete examples
|
|
24
|
+
3. [Measurement](#3-measurement)
|
|
25
|
+
- Detecting high cognitive load through quantitative and qualitative signals
|
|
26
|
+
4. [Dark Patterns Warning](#4-dark-patterns-warning)
|
|
27
|
+
- Where cognitive load exploitation crosses the ethical line
|
|
28
|
+
5. [Platform-Specific Considerations](#5-platform-specific-considerations)
|
|
29
|
+
- Mobile, desktop, touch, and cross-platform concerns
|
|
30
|
+
6. [Quick Reference Checklist](#6-quick-reference-checklist)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 1. The Science
|
|
35
|
+
|
|
36
|
+
Cognitive load is the total amount of mental effort being used in working memory at any
|
|
37
|
+
given moment. Every interaction a user has with an interface consumes cognitive resources.
|
|
38
|
+
When those resources are exhausted, users make errors, abandon tasks, or develop negative
|
|
39
|
+
associations with the product. Understanding the science behind cognitive load is not
|
|
40
|
+
optional for designers -- it is foundational.
|
|
41
|
+
|
|
42
|
+
### 1.1 Miller's Law (7 Plus-or-Minus 2)
|
|
43
|
+
|
|
44
|
+
In 1956, cognitive psychologist George Miller published "The Magical Number Seven,
|
|
45
|
+
Plus or Minus Two: Some Limits on Our Capacity for Processing Information" in
|
|
46
|
+
*Psychological Review*. Miller demonstrated that the span of immediate (short-term)
|
|
47
|
+
memory and the accuracy of absolute judgment are both limited to approximately 7
|
|
48
|
+
discrete items (ranging from 5 to 9 depending on the individual and context).
|
|
49
|
+
|
|
50
|
+
**Core Findings:**
|
|
51
|
+
|
|
52
|
+
- The average person can hold approximately 7 (plus or minus 2) items in short-term
|
|
53
|
+
memory simultaneously.
|
|
54
|
+
- This limit applies to "chunks" of information, not raw data points. A chunk is a
|
|
55
|
+
meaningful unit -- a single digit, a word, a familiar phrase, or a recognizable
|
|
56
|
+
pattern can each constitute one chunk.
|
|
57
|
+
- The process of "chunking" allows humans to increase the effective capacity of
|
|
58
|
+
working memory by grouping individual items into larger, meaningful units.
|
|
59
|
+
|
|
60
|
+
**Common Misapplication:**
|
|
61
|
+
|
|
62
|
+
Miller's Law is frequently misquoted as "navigation menus must have no more than 7
|
|
63
|
+
items." This is an oversimplification. The law describes short-term memory capacity,
|
|
64
|
+
not a hard limit on visible UI elements. Users do not need to memorize a navigation
|
|
65
|
+
menu -- they can see it. The real design implication is about how many items a user
|
|
66
|
+
must *hold in working memory simultaneously* to complete a task, not how many items
|
|
67
|
+
are visible on screen.
|
|
68
|
+
|
|
69
|
+
**Correct Application:**
|
|
70
|
+
|
|
71
|
+
- Phone numbers are chunked as (555) 867-5309 rather than 5558675309.
|
|
72
|
+
- Credit card numbers display as 4 groups of 4 digits.
|
|
73
|
+
- When asking users to compare options, limit the comparison dimensions to
|
|
74
|
+
approximately 5-7 attributes at a time.
|
|
75
|
+
|
|
76
|
+
**Reference:** Miller, G.A. (1956). "The Magical Number Seven, Plus or Minus Two."
|
|
77
|
+
*Psychological Review*, 63(2), 81-97.
|
|
78
|
+
|
|
79
|
+
### 1.2 Cowan's Refinement (4 Chunks)
|
|
80
|
+
|
|
81
|
+
In 2001, Nelson Cowan challenged Miller's estimate. In "The Magical Mystery Four:
|
|
82
|
+
How Is Working Memory Capacity Limited, and Why?" Cowan argued that pure working
|
|
83
|
+
memory capacity -- without rehearsal strategies or long-term memory assistance --
|
|
84
|
+
is closer to 3-5 items, with 4 being the central tendency.
|
|
85
|
+
|
|
86
|
+
**Design Significance:**
|
|
87
|
+
|
|
88
|
+
Cowan's refinement suggests that Miller's 7 plus-or-minus 2 may be optimistic for
|
|
89
|
+
novel or complex information. When users encounter unfamiliar interfaces, unfamiliar
|
|
90
|
+
terminology, or tasks requiring active processing (not just recognition), designers
|
|
91
|
+
should target the lower bound: **4 items** is a safer ceiling for working memory
|
|
92
|
+
demands on new or infrequent users.
|
|
93
|
+
|
|
94
|
+
**Reference:** Cowan, N. (2001). "The Magical Number 4 in Short-Term Memory: A
|
|
95
|
+
Reconsideration of Mental Storage Capacity." *Behavioral and Brain Sciences*,
|
|
96
|
+
24(1), 87-114.
|
|
97
|
+
|
|
98
|
+
### 1.3 Cognitive Load Theory (Sweller)
|
|
99
|
+
|
|
100
|
+
John Sweller developed Cognitive Load Theory (CLT) in the late 1980s, originally
|
|
101
|
+
in the context of instructional design. The theory states that learning and task
|
|
102
|
+
performance are optimized when the total cognitive load does not exceed working
|
|
103
|
+
memory capacity.
|
|
104
|
+
|
|
105
|
+
**Foundational Premise:**
|
|
106
|
+
|
|
107
|
+
Working memory is limited in both capacity and duration. Information in working
|
|
108
|
+
memory that is not actively rehearsed decays within approximately 20 seconds.
|
|
109
|
+
Long-term memory, by contrast, has effectively unlimited capacity and duration.
|
|
110
|
+
The goal of good design is to facilitate the transfer of information from working
|
|
111
|
+
memory to long-term memory (schema construction) while minimizing unnecessary
|
|
112
|
+
mental effort.
|
|
113
|
+
|
|
114
|
+
**The Additive Model:**
|
|
115
|
+
|
|
116
|
+
Total Cognitive Load = Intrinsic Load + Extraneous Load + Germane Load
|
|
117
|
+
|
|
118
|
+
If the sum exceeds working memory capacity, performance degrades. The designer's
|
|
119
|
+
job is to minimize extraneous load and manage intrinsic load so that germane load
|
|
120
|
+
(actual learning and task completion) can be maximized.
|
|
121
|
+
|
|
122
|
+
**Reference:** Sweller, J. (1988). "Cognitive Load During Problem Solving: Effects
|
|
123
|
+
on Learning." *Cognitive Science*, 12(2), 257-285.
|
|
124
|
+
|
|
125
|
+
### 1.4 Intrinsic vs Extraneous vs Germane Load
|
|
126
|
+
|
|
127
|
+
Understanding the three types of cognitive load is essential for making precise
|
|
128
|
+
design decisions. Each type has different causes and different solutions.
|
|
129
|
+
|
|
130
|
+
#### Intrinsic Cognitive Load
|
|
131
|
+
|
|
132
|
+
The inherent difficulty of the task or information itself. Intrinsic load is
|
|
133
|
+
determined by the complexity of the material and the learner's prior knowledge.
|
|
134
|
+
It cannot be eliminated by design -- only managed.
|
|
135
|
+
|
|
136
|
+
**Characteristics:**
|
|
137
|
+
- Directly proportional to the number of interacting elements the user must
|
|
138
|
+
process simultaneously.
|
|
139
|
+
- A simple calculation (2 + 2) has low intrinsic load. Configuring a complex
|
|
140
|
+
API integration has high intrinsic load.
|
|
141
|
+
- Prior expertise reduces intrinsic load because experts have pre-built mental
|
|
142
|
+
schemas that chunk information automatically.
|
|
143
|
+
|
|
144
|
+
**Design Strategy:** You cannot reduce intrinsic load, but you can *manage* it
|
|
145
|
+
through sequencing, scaffolding, and progressive disclosure. Break complex tasks
|
|
146
|
+
into smaller subtasks. Provide worked examples. Use step-by-step wizards for
|
|
147
|
+
inherently complex operations.
|
|
148
|
+
|
|
149
|
+
#### Extraneous Cognitive Load
|
|
150
|
+
|
|
151
|
+
The unnecessary mental effort imposed by poor design, confusing presentation, or
|
|
152
|
+
irrelevant information. Extraneous load is entirely under the designer's control
|
|
153
|
+
and should be ruthlessly minimized.
|
|
154
|
+
|
|
155
|
+
**Sources of Extraneous Load:**
|
|
156
|
+
- Cluttered layouts with competing visual elements.
|
|
157
|
+
- Inconsistent navigation patterns that force users to re-learn interaction models.
|
|
158
|
+
- Jargon or ambiguous labels that require interpretation.
|
|
159
|
+
- Information spread across multiple locations that must be mentally integrated
|
|
160
|
+
(the "split-attention effect").
|
|
161
|
+
- Decorative elements that add no informational value.
|
|
162
|
+
- Requiring users to recall information from a previous screen instead of
|
|
163
|
+
displaying it in context.
|
|
164
|
+
|
|
165
|
+
**Design Strategy:** Eliminate, simplify, consolidate. Every element on screen
|
|
166
|
+
should earn its place. If removing an element does not reduce task completion
|
|
167
|
+
capability, remove it.
|
|
168
|
+
|
|
169
|
+
#### Germane Cognitive Load
|
|
170
|
+
|
|
171
|
+
The productive mental effort directed toward understanding, learning, and
|
|
172
|
+
constructing mental schemas. Germane load is the "good" cognitive load -- it
|
|
173
|
+
represents the user actually engaging with and mastering the task.
|
|
174
|
+
|
|
175
|
+
**Characteristics:**
|
|
176
|
+
- Germane load increases when extraneous load decreases, because freed working
|
|
177
|
+
memory resources can be directed toward meaningful processing.
|
|
178
|
+
- Effective onboarding, clear mental models, and well-designed feedback loops
|
|
179
|
+
increase germane load.
|
|
180
|
+
- If a user is spending cognitive resources on figuring out the interface
|
|
181
|
+
(extraneous), they have fewer resources for understanding the content (germane).
|
|
182
|
+
|
|
183
|
+
**Design Strategy:** Invest the cognitive budget you save by reducing extraneous
|
|
184
|
+
load into features that genuinely help users understand and accomplish their
|
|
185
|
+
goals -- meaningful feedback, clear status indicators, contextual help.
|
|
186
|
+
|
|
187
|
+
### 1.5 Working Memory Limits
|
|
188
|
+
|
|
189
|
+
Working memory is not a single system. Baddeley's model (1974, revised 2000)
|
|
190
|
+
identifies multiple components:
|
|
191
|
+
|
|
192
|
+
- **Phonological Loop:** Processes verbal and acoustic information. Capacity:
|
|
193
|
+
approximately 2 seconds of speech. Users subvocalize text they read, so overly
|
|
194
|
+
long labels and instructions consume phonological loop resources.
|
|
195
|
+
- **Visuospatial Sketchpad:** Processes visual and spatial information. Capacity:
|
|
196
|
+
approximately 3-4 objects. Complex visual layouts, dense data visualizations,
|
|
197
|
+
and animations compete for this resource.
|
|
198
|
+
- **Central Executive:** Coordinates attention and manages the other components.
|
|
199
|
+
This is the bottleneck. Multitasking, task-switching, and interruptions
|
|
200
|
+
overload the central executive.
|
|
201
|
+
- **Episodic Buffer:** Integrates information from different sources into
|
|
202
|
+
coherent episodes. Capacity: approximately 4 chunks.
|
|
203
|
+
|
|
204
|
+
**Design Implication:**
|
|
205
|
+
|
|
206
|
+
Different types of interface elements tax different working memory subsystems.
|
|
207
|
+
A form that requires reading instructions (phonological), examining a diagram
|
|
208
|
+
(visuospatial), and remembering earlier inputs (episodic) simultaneously is
|
|
209
|
+
attacking all subsystems at once. Distribute demands across time, not across
|
|
210
|
+
subsystems simultaneously.
|
|
211
|
+
|
|
212
|
+
**Reference:** Baddeley, A.D. (2000). "The Episodic Buffer: A New Component
|
|
213
|
+
of Working Memory?" *Trends in Cognitive Sciences*, 4(11), 417-423.
|
|
214
|
+
|
|
215
|
+
### 1.6 Attention, Change Blindness, and Inattentional Blindness
|
|
216
|
+
|
|
217
|
+
Human attention is not a passive spotlight -- it is an active, resource-limited
|
|
218
|
+
process that selects what to process and what to ignore.
|
|
219
|
+
|
|
220
|
+
#### Change Blindness
|
|
221
|
+
|
|
222
|
+
Change blindness is the failure to notice significant changes in a visual scene
|
|
223
|
+
when those changes coincide with a visual disruption (such as a page transition,
|
|
224
|
+
a blink, or a screen refresh). This is not a user failure -- it is a fundamental
|
|
225
|
+
property of human visual processing.
|
|
226
|
+
|
|
227
|
+
**UI Manifestations:**
|
|
228
|
+
- A user submits a form and a small error message appears at the top of the
|
|
229
|
+
page, but the user does not scroll up to see it.
|
|
230
|
+
- A status indicator changes color (e.g., from yellow to red) in a dashboard
|
|
231
|
+
while the user is focused on a different widget.
|
|
232
|
+
- Content in a carousel updates, but users do not notice the new content because
|
|
233
|
+
the transition was smooth and their attention was elsewhere.
|
|
234
|
+
|
|
235
|
+
**Design Countermeasures:**
|
|
236
|
+
- Make one change at a time whenever possible.
|
|
237
|
+
- Use animation and motion to draw attention to changes, but avoid competing
|
|
238
|
+
animations that dilute the signal.
|
|
239
|
+
- Position critical feedback (errors, confirmations, status changes) near the
|
|
240
|
+
user's current focal point, not in a distant corner.
|
|
241
|
+
- Use visual emphasis (contrast, size, color) to make changes conspicuous.
|
|
242
|
+
|
|
243
|
+
#### Inattentional Blindness
|
|
244
|
+
|
|
245
|
+
Inattentional blindness occurs when a user fails to perceive a clearly visible
|
|
246
|
+
element because their attention is consumed by another task. The classic
|
|
247
|
+
demonstration is the "invisible gorilla" experiment (Simons & Chabris, 1999),
|
|
248
|
+
where participants counting basketball passes failed to notice a person in a
|
|
249
|
+
gorilla suit walking through the scene.
|
|
250
|
+
|
|
251
|
+
**UI Manifestations:**
|
|
252
|
+
- Users miss prominent banners or announcements when they are focused on
|
|
253
|
+
completing a specific task.
|
|
254
|
+
- New features or UI elements go unnoticed after a redesign because users are
|
|
255
|
+
operating on autopilot.
|
|
256
|
+
- Critical warnings are ignored during complex multi-step workflows.
|
|
257
|
+
|
|
258
|
+
**Design Countermeasures:**
|
|
259
|
+
- Reduce overall cognitive load first -- inattentional blindness is more likely
|
|
260
|
+
under high cognitive load.
|
|
261
|
+
- Use modal interruptions sparingly but deliberately for truly critical
|
|
262
|
+
information.
|
|
263
|
+
- Avoid relying solely on passive indicators (badge counts, color changes)
|
|
264
|
+
for information that requires immediate action.
|
|
265
|
+
|
|
266
|
+
**Reference:** Simons, D.J. & Chabris, C.F. (1999). "Gorillas in Our Midst."
|
|
267
|
+
*Perception*, 28(9), 1059-1074.
|
|
268
|
+
|
|
269
|
+
**Reference (NNG):** Nielsen Norman Group. "Change Blindness in UX: Definition."
|
|
270
|
+
https://www.nngroup.com/articles/change-blindness-definition/
|
|
271
|
+
|
|
272
|
+
### 1.7 Hick's Law and Decision Time
|
|
273
|
+
|
|
274
|
+
Hick's Law (also Hick-Hyman Law) states that the time required to make a
|
|
275
|
+
decision increases logarithmically with the number of choices available.
|
|
276
|
+
|
|
277
|
+
**Formula:**
|
|
278
|
+
|
|
279
|
+
RT = a + b * log2(n)
|
|
280
|
+
|
|
281
|
+
Where:
|
|
282
|
+
- RT = reaction time
|
|
283
|
+
- a = time not related to decision (motor response, perception)
|
|
284
|
+
- b = empirical constant (approximately 150ms per bit of information)
|
|
285
|
+
- n = number of equally probable choices
|
|
286
|
+
|
|
287
|
+
**Practical Implications:**
|
|
288
|
+
|
|
289
|
+
| Choices | Relative Decision Time |
|
|
290
|
+
|---------|----------------------|
|
|
291
|
+
| 2 | Baseline |
|
|
292
|
+
| 4 | ~1.4x baseline |
|
|
293
|
+
| 8 | ~1.8x baseline |
|
|
294
|
+
| 16 | ~2.2x baseline |
|
|
295
|
+
| 32 | ~2.6x baseline |
|
|
296
|
+
| 64 | ~3.0x baseline |
|
|
297
|
+
|
|
298
|
+
**Important Nuances:**
|
|
299
|
+
|
|
300
|
+
1. Hick's Law applies to *equally probable* choices. If choices are categorized,
|
|
301
|
+
hierarchically organized, or differ in prominence, the law's effect is
|
|
302
|
+
attenuated. A well-organized menu of 20 items may produce faster decisions
|
|
303
|
+
than a flat list of 8 poorly labeled items.
|
|
304
|
+
|
|
305
|
+
2. The law applies to *decision time*, not search time. For recognition-based
|
|
306
|
+
tasks (scanning a list of familiar items), the relationship is different.
|
|
307
|
+
|
|
308
|
+
3. Expertise and familiarity reduce the effective number of choices. Expert
|
|
309
|
+
users mentally filter options and may not experience the full logarithmic
|
|
310
|
+
penalty.
|
|
311
|
+
|
|
312
|
+
**Reference:** Hick, W.E. (1952). "On the Rate of Gain of Information."
|
|
313
|
+
*Quarterly Journal of Experimental Psychology*, 4(1), 11-26.
|
|
314
|
+
|
|
315
|
+
### 1.8 Progressive Disclosure
|
|
316
|
+
|
|
317
|
+
Progressive disclosure is a design strategy that sequences information and
|
|
318
|
+
actions across multiple stages, revealing complexity only as the user needs it
|
|
319
|
+
or requests it. It is one of the most powerful tools for managing cognitive load.
|
|
320
|
+
|
|
321
|
+
**Principles:**
|
|
322
|
+
|
|
323
|
+
1. **Show the minimum viable interface first.** Present only the information
|
|
324
|
+
and controls necessary for the current step.
|
|
325
|
+
2. **Reveal details on demand.** Advanced options, additional information, and
|
|
326
|
+
edge-case controls should be accessible but not visible by default.
|
|
327
|
+
3. **Maintain a clear path to depth.** Users must be able to discover and access
|
|
328
|
+
hidden functionality without frustration.
|
|
329
|
+
|
|
330
|
+
**Examples:**
|
|
331
|
+
|
|
332
|
+
- **Search filters:** Google shows a simple search box. Advanced search operators
|
|
333
|
+
exist but are not displayed unless the user seeks them out.
|
|
334
|
+
- **Settings panels:** macOS System Settings shows top-level categories first,
|
|
335
|
+
with detailed configuration nested within each.
|
|
336
|
+
- **Form fields:** A shipping form shows basic address fields; "Add apartment
|
|
337
|
+
number" or "Add delivery instructions" appear as expandable links.
|
|
338
|
+
- **Feature onboarding:** Slack introduces features progressively -- users learn
|
|
339
|
+
messaging first, then channels, then integrations.
|
|
340
|
+
|
|
341
|
+
**When NOT to Use Progressive Disclosure:**
|
|
342
|
+
|
|
343
|
+
- When hiding options creates confusion about whether a capability exists.
|
|
344
|
+
- When the extra click or tap to reveal information is more costly than the
|
|
345
|
+
cognitive load of displaying it upfront.
|
|
346
|
+
- When users need to compare options that are hidden behind different
|
|
347
|
+
disclosure layers.
|
|
348
|
+
- In emergency or safety-critical interfaces where all relevant information
|
|
349
|
+
must be immediately visible.
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## 2. Design Implications
|
|
354
|
+
|
|
355
|
+
The following 15 rules translate cognitive load science into actionable design
|
|
356
|
+
decisions. Each rule includes the underlying principle, a specific actionable
|
|
357
|
+
guideline, and a concrete example.
|
|
358
|
+
|
|
359
|
+
### Rule 1: Chunk Information Into Digestible Groups
|
|
360
|
+
|
|
361
|
+
**Principle:** Miller's Law -- working memory handles approximately 7 (plus-or-minus 2)
|
|
362
|
+
chunks. Cowan's refinement suggests 4 chunks for novel information.
|
|
363
|
+
|
|
364
|
+
**Rule:** Break long lists, dense text, and complex data into visually distinct groups
|
|
365
|
+
of 3-5 items. Use whitespace, headings, dividers, and visual containers to delineate
|
|
366
|
+
chunk boundaries.
|
|
367
|
+
|
|
368
|
+
**Example:** A credit card form displays the number as four groups of four digits
|
|
369
|
+
(XXXX XXXX XXXX XXXX) rather than a single 16-digit field. An e-commerce product
|
|
370
|
+
listing page groups items into rows of 3-4 with clear spacing between rows. A
|
|
371
|
+
settings page organizes 30+ options under 5-6 category headings (Account, Privacy,
|
|
372
|
+
Notifications, Display, Accessibility, Advanced).
|
|
373
|
+
|
|
374
|
+
### Rule 2: Limit Primary Choices to 5-7 Options
|
|
375
|
+
|
|
376
|
+
**Principle:** Hick's Law -- decision time increases logarithmically with the
|
|
377
|
+
number of choices. Beyond 7 options, decision fatigue accelerates.
|
|
378
|
+
|
|
379
|
+
**Rule:** For primary navigation, action menus, and option selectors, present
|
|
380
|
+
5-7 choices maximum at any single level. Use categorization and hierarchy to
|
|
381
|
+
accommodate larger option sets.
|
|
382
|
+
|
|
383
|
+
**Example:** A SaaS application's main navigation shows 6 top-level items
|
|
384
|
+
(Dashboard, Projects, Team, Reports, Integrations, Settings). Each section
|
|
385
|
+
contains sub-navigation revealed on selection. A pricing page shows 3 plans
|
|
386
|
+
(Starter, Professional, Enterprise) rather than 8 granular tiers.
|
|
387
|
+
|
|
388
|
+
### Rule 3: Use Progressive Disclosure Systematically
|
|
389
|
+
|
|
390
|
+
**Principle:** Working memory is preserved when information is delivered at the
|
|
391
|
+
point of need rather than upfront.
|
|
392
|
+
|
|
393
|
+
**Rule:** Default to showing the simplest view. Provide clear, discoverable
|
|
394
|
+
mechanisms (expandable sections, "Show more" links, tabbed interfaces) for
|
|
395
|
+
users who need additional detail or advanced options.
|
|
396
|
+
|
|
397
|
+
**Example:** A project creation flow shows Name and Description fields initially.
|
|
398
|
+
A "More options" link reveals fields for Start Date, Priority, Tags, and Custom
|
|
399
|
+
Fields. GitHub's pull request form shows Title and Description by default, with
|
|
400
|
+
Reviewers, Assignees, Labels, and Milestone as collapsible sidebar sections.
|
|
401
|
+
|
|
402
|
+
### Rule 4: Reduce Cognitive Friction in Forms
|
|
403
|
+
|
|
404
|
+
**Principle:** Forms are among the highest cognitive load interactions in digital
|
|
405
|
+
products. Each field represents a decision point. Cognitive friction -- the mental
|
|
406
|
+
resistance encountered when an interface forces the user to stop and think --
|
|
407
|
+
accumulates across fields.
|
|
408
|
+
|
|
409
|
+
**Rule:** Minimize the number of fields. Use smart defaults, auto-completion, and
|
|
410
|
+
input masks. Group related fields visually. Show validation inline and in real time.
|
|
411
|
+
Never ask for information you can infer or already have.
|
|
412
|
+
|
|
413
|
+
**Example:** A checkout form auto-detects the card type from the first digits and
|
|
414
|
+
displays the card logo. The city and state auto-populate from the ZIP code. The
|
|
415
|
+
billing address defaults to "Same as shipping" with a checkbox to override. Phone
|
|
416
|
+
number fields use an input mask: (___) ___-____ so the user knows the expected
|
|
417
|
+
format without reading instructions.
|
|
418
|
+
|
|
419
|
+
### Rule 5: Favor Recognition Over Recall
|
|
420
|
+
|
|
421
|
+
**Principle:** Don Norman and Jakob Nielsen both emphasize that recognition
|
|
422
|
+
(identifying something as previously encountered) requires far less cognitive
|
|
423
|
+
effort than recall (retrieving information from memory without cues).
|
|
424
|
+
|
|
425
|
+
**Rule:** Make all relevant options, actions, and information visible or easily
|
|
426
|
+
retrievable. Never require users to remember information from one screen to use
|
|
427
|
+
on another. Provide recent items, favorites, and contextual suggestions.
|
|
428
|
+
|
|
429
|
+
**Example:** A search bar shows recent searches and autocomplete suggestions as
|
|
430
|
+
the user types, rather than requiring them to remember and type the exact query.
|
|
431
|
+
A file manager shows recently accessed files prominently. An email client shows
|
|
432
|
+
recipient suggestions based on past correspondence rather than requiring users to
|
|
433
|
+
type full email addresses from memory.
|
|
434
|
+
|
|
435
|
+
**Reference:** Nielsen, J. (1994). "10 Usability Heuristics for User Interface
|
|
436
|
+
Design." Heuristic #6: Recognition Rather Than Recall.
|
|
437
|
+
|
|
438
|
+
### Rule 6: Provide Intelligent Defaults
|
|
439
|
+
|
|
440
|
+
**Principle:** Every decision point consumes working memory. Defaults eliminate
|
|
441
|
+
decisions for the common case, preserving cognitive resources for the exceptional
|
|
442
|
+
case.
|
|
443
|
+
|
|
444
|
+
**Rule:** Pre-select the most common or recommended option. Base defaults on user
|
|
445
|
+
history, locale, device context, or industry norms. Always allow the user to
|
|
446
|
+
override the default.
|
|
447
|
+
|
|
448
|
+
**Example:** A scheduling tool defaults to the user's timezone and a 30-minute
|
|
449
|
+
meeting duration. A text editor defaults to the user's last-used font and size.
|
|
450
|
+
A deployment configuration defaults to the staging environment during business
|
|
451
|
+
hours and requires explicit selection for production. A date picker defaults to
|
|
452
|
+
today's date when creating a new task.
|
|
453
|
+
|
|
454
|
+
### Rule 7: Minimize Required Decisions Per Screen
|
|
455
|
+
|
|
456
|
+
**Principle:** Decision fatigue is cumulative. Each decision made reduces the
|
|
457
|
+
quality of subsequent decisions (Baumeister et al., 1998). Interfaces that
|
|
458
|
+
require many decisions in sequence produce worse outcomes.
|
|
459
|
+
|
|
460
|
+
**Rule:** Limit each screen to one primary decision or action. Secondary actions
|
|
461
|
+
should be visually subordinate. Eliminate unnecessary decision points through
|
|
462
|
+
automation and smart defaults.
|
|
463
|
+
|
|
464
|
+
**Example:** A wizard-style checkout process presents one decision per step:
|
|
465
|
+
Step 1 (Shipping Address), Step 2 (Shipping Method), Step 3 (Payment),
|
|
466
|
+
Step 4 (Review and Confirm). Each step has one primary action button. An
|
|
467
|
+
onboarding flow asks one preference per screen rather than presenting a
|
|
468
|
+
20-field preferences form.
|
|
469
|
+
|
|
470
|
+
### Rule 8: Use Familiar Design Patterns
|
|
471
|
+
|
|
472
|
+
**Principle:** Existing mental schemas (knowledge structures stored in long-term
|
|
473
|
+
memory) reduce intrinsic cognitive load. When users encounter familiar patterns,
|
|
474
|
+
they can operate on autopilot, freeing working memory for the actual task.
|
|
475
|
+
|
|
476
|
+
**Rule:** Follow platform conventions. Use standard interaction patterns (hamburger
|
|
477
|
+
menu on mobile, tabs for parallel content, modals for focused tasks). Deviate only
|
|
478
|
+
when the deviation provides a measurable, significant improvement that justifies the
|
|
479
|
+
learning cost.
|
|
480
|
+
|
|
481
|
+
**Example:** An e-commerce site places the shopping cart icon in the upper right,
|
|
482
|
+
the logo linking to the homepage in the upper left, and the search bar centered at
|
|
483
|
+
the top. A mobile app uses bottom tab navigation with standard icons (Home, Search,
|
|
484
|
+
Add, Notifications, Profile) matching the conventions of the platform's ecosystem.
|
|
485
|
+
The login form follows the standard email-then-password vertical layout with a
|
|
486
|
+
"Forgot Password?" link below the password field.
|
|
487
|
+
|
|
488
|
+
### Rule 9: Limit Simultaneous Tasks and Distractions
|
|
489
|
+
|
|
490
|
+
**Principle:** The central executive component of working memory cannot truly
|
|
491
|
+
multitask. What appears to be multitasking is actually rapid task-switching, which
|
|
492
|
+
incurs a cognitive switching cost of 200-400ms per switch and increases error rates
|
|
493
|
+
by 50% or more (Monsell, 2003).
|
|
494
|
+
|
|
495
|
+
**Rule:** Design interfaces that support single-task focus. Suppress non-critical
|
|
496
|
+
notifications during focused tasks. Avoid auto-playing media, chat pop-ups, and
|
|
497
|
+
promotional overlays during task completion flows.
|
|
498
|
+
|
|
499
|
+
**Example:** During a multi-step form submission (e.g., insurance application),
|
|
500
|
+
the interface hides the main navigation, promotional banners, and chat widget.
|
|
501
|
+
Only the form, progress indicator, and contextual help are visible. A code editor
|
|
502
|
+
provides a "Zen mode" that removes all chrome except the editing surface. A
|
|
503
|
+
reading app suppresses notifications and hides UI controls after a few seconds.
|
|
504
|
+
|
|
505
|
+
### Rule 10: Use Visual Hierarchy to Direct Attention
|
|
506
|
+
|
|
507
|
+
**Principle:** The visuospatial sketchpad processes visual information in parallel
|
|
508
|
+
but prioritizes high-contrast, large, and positioned-at-focal-point elements. A
|
|
509
|
+
clear visual hierarchy reduces the cognitive effort required to parse a layout.
|
|
510
|
+
|
|
511
|
+
**Rule:** Establish a clear hierarchy: one primary heading, one primary action,
|
|
512
|
+
and a clear visual flow from most important to least important. Use size, color,
|
|
513
|
+
contrast, spacing, and position to encode importance.
|
|
514
|
+
|
|
515
|
+
**Example:** A dashboard places the single most critical metric (e.g., total
|
|
516
|
+
revenue) in a large, bold font at the top left. Supporting metrics appear in
|
|
517
|
+
medium-sized cards below. Detailed data tables and charts occupy the lower
|
|
518
|
+
portion. The primary action button ("Create Report") uses the brand's primary
|
|
519
|
+
color; secondary actions use outlined or muted styles.
|
|
520
|
+
|
|
521
|
+
### Rule 11: Provide Clear, Immediate Feedback
|
|
522
|
+
|
|
523
|
+
**Principle:** Uncertainty consumes cognitive resources. When users are unsure
|
|
524
|
+
whether an action succeeded, they must hold the action and its expected outcome
|
|
525
|
+
in working memory while seeking confirmation. This is pure extraneous load.
|
|
526
|
+
|
|
527
|
+
**Rule:** Every user action should produce visible, immediate, and unambiguous
|
|
528
|
+
feedback. Loading states, success confirmations, error messages, and progress
|
|
529
|
+
indicators should appear within 100ms of the triggering action and near the
|
|
530
|
+
action's location.
|
|
531
|
+
|
|
532
|
+
**Example:** A "Save" button changes to "Saving..." with a spinner on click,
|
|
533
|
+
then shows a green checkmark with "Saved" for 2 seconds before reverting. A
|
|
534
|
+
form field shows a red border and inline error message ("Password must be at
|
|
535
|
+
least 8 characters") as soon as the user moves to the next field. A file
|
|
536
|
+
upload shows a progress bar with percentage and estimated time remaining.
|
|
537
|
+
|
|
538
|
+
### Rule 12: Write Clear, Concise Microcopy
|
|
539
|
+
|
|
540
|
+
**Principle:** The phonological loop processes text by subvocalizing it. Longer
|
|
541
|
+
text takes more time to subvocalize, consuming more working memory resources.
|
|
542
|
+
Ambiguous text requires additional processing to resolve meaning.
|
|
543
|
+
|
|
544
|
+
**Rule:** Use the fewest words that convey the full meaning. Prefer active voice.
|
|
545
|
+
Use the user's vocabulary, not internal jargon. Label buttons with verbs that
|
|
546
|
+
describe the outcome ("Delete Project" not "Submit").
|
|
547
|
+
|
|
548
|
+
**Example:** Instead of "Are you sure you want to proceed with the deletion of
|
|
549
|
+
this item? This action cannot be undone and all associated data will be
|
|
550
|
+
permanently removed from the system," write "Delete this project? This cannot
|
|
551
|
+
be undone." Instead of "Submit" on a form button, write "Create Account" or
|
|
552
|
+
"Place Order" -- the specific outcome.
|
|
553
|
+
|
|
554
|
+
### Rule 13: Maintain Consistent Mental Models
|
|
555
|
+
|
|
556
|
+
**Principle:** A mental model is the user's internal representation of how a
|
|
557
|
+
system works. Inconsistencies between the mental model and the actual system
|
|
558
|
+
behavior generate extraneous cognitive load as users must reconcile the
|
|
559
|
+
discrepancy.
|
|
560
|
+
|
|
561
|
+
**Rule:** Use consistent terminology, consistent visual patterns, and consistent
|
|
562
|
+
interaction behaviors throughout the product. If "Archive" means "hide but keep"
|
|
563
|
+
in one context, it must mean the same in every context. If swiping left deletes
|
|
564
|
+
in one list, it must not mean "edit" in another.
|
|
565
|
+
|
|
566
|
+
**Example:** A project management tool consistently uses blue for informational
|
|
567
|
+
elements, yellow for warnings, and red for errors/destructive actions across
|
|
568
|
+
all screens. The term "Workspace" always refers to the top-level organizational
|
|
569
|
+
unit, never sometimes meaning a personal space and sometimes meaning a team
|
|
570
|
+
space. The three-dot overflow menu always contains the same categories of actions
|
|
571
|
+
(Edit, Share, Archive, Delete) in the same order across all entity types.
|
|
572
|
+
|
|
573
|
+
### Rule 14: Use Spatial Memory and Consistent Layout
|
|
574
|
+
|
|
575
|
+
**Principle:** Users build spatial maps of interfaces. Moving elements between
|
|
576
|
+
sessions or between similar screens forces users to re-learn the spatial layout,
|
|
577
|
+
consuming working memory resources that could be directed toward the task.
|
|
578
|
+
|
|
579
|
+
**Rule:** Keep primary navigation, key actions, and frequently used controls in
|
|
580
|
+
fixed positions. Never move elements based on personalization algorithms without
|
|
581
|
+
explicit user consent. Maintain consistent grid systems and layout patterns
|
|
582
|
+
across similar page types.
|
|
583
|
+
|
|
584
|
+
**Example:** A mobile banking app keeps the bottom navigation bar (Accounts,
|
|
585
|
+
Transfers, Payments, More) in a fixed position across all screens. The "Compose"
|
|
586
|
+
button in an email client is always in the same corner regardless of which
|
|
587
|
+
folder the user is viewing. A data table keeps the action buttons (Edit, Delete)
|
|
588
|
+
in the same column position for every row.
|
|
589
|
+
|
|
590
|
+
### Rule 15: Offload Cognitive Work to the Interface
|
|
591
|
+
|
|
592
|
+
**Principle:** Any calculation, comparison, or integration that the interface can
|
|
593
|
+
perform for the user is cognitive load removed from the user's working memory.
|
|
594
|
+
Don Norman calls this distributing knowledge between "the head" and "the world."
|
|
595
|
+
|
|
596
|
+
**Rule:** Calculate totals, show comparisons, highlight changes, summarize
|
|
597
|
+
complex data, and surface relevant information proactively. Do not require users
|
|
598
|
+
to perform mental arithmetic, cross-reference between pages, or synthesize
|
|
599
|
+
information that the system already possesses.
|
|
600
|
+
|
|
601
|
+
**Example:** A shopping cart shows the running total, applied discounts, tax, and
|
|
602
|
+
final price -- the user never needs to add numbers. A version control interface
|
|
603
|
+
highlights the specific lines that changed between two versions side-by-side,
|
|
604
|
+
rather than showing two full files and expecting the user to spot differences.
|
|
605
|
+
A flight booking site shows which flights are "Best value" or "Fastest" rather
|
|
606
|
+
than requiring users to mentally sort by both price and duration.
|
|
607
|
+
|
|
608
|
+
---
|
|
609
|
+
|
|
610
|
+
## 3. Measurement
|
|
611
|
+
|
|
612
|
+
Cognitive load is invisible. You cannot directly observe it. But you can detect
|
|
613
|
+
its effects through a combination of behavioral metrics, self-reported measures,
|
|
614
|
+
and heuristic evaluation.
|
|
615
|
+
|
|
616
|
+
### 3.1 Behavioral Metrics (Quantitative)
|
|
617
|
+
|
|
618
|
+
#### Task Completion Time
|
|
619
|
+
|
|
620
|
+
**What it measures:** The time from task initiation to successful completion.
|
|
621
|
+
Higher-than-expected task completion times suggest cognitive friction or excessive
|
|
622
|
+
load.
|
|
623
|
+
|
|
624
|
+
**How to use it:**
|
|
625
|
+
- Establish baseline times for core tasks with representative users.
|
|
626
|
+
- Compare times across design variations (A/B testing).
|
|
627
|
+
- Look for specific steps where time increases disproportionately -- these are
|
|
628
|
+
cognitive bottlenecks.
|
|
629
|
+
|
|
630
|
+
**Benchmarks:**
|
|
631
|
+
- Simple actions (clicking a clearly labeled button): < 2 seconds.
|
|
632
|
+
- Form completion (5-7 fields with clear labels): 1-2 minutes.
|
|
633
|
+
- Complex configuration tasks: establish your own baselines, then track
|
|
634
|
+
improvement over iterations.
|
|
635
|
+
|
|
636
|
+
#### Task Completion Rate (Success Rate)
|
|
637
|
+
|
|
638
|
+
**What it measures:** The percentage of users who successfully complete a task
|
|
639
|
+
without assistance.
|
|
640
|
+
|
|
641
|
+
**Interpretation:**
|
|
642
|
+
- Below 70%: severe usability problems likely related to cognitive load.
|
|
643
|
+
- 70-85%: moderate issues; investigate specific failure points.
|
|
644
|
+
- Above 85%: acceptable for most consumer products.
|
|
645
|
+
- Above 95%: target for critical workflows (checkout, signup).
|
|
646
|
+
|
|
647
|
+
#### Error Rate
|
|
648
|
+
|
|
649
|
+
**What it measures:** The frequency and types of errors users make during task
|
|
650
|
+
completion.
|
|
651
|
+
|
|
652
|
+
**Cognitive Load Signals:**
|
|
653
|
+
- High error rates on fields that seem straightforward suggest confusing labels
|
|
654
|
+
or unclear expectations (extraneous load).
|
|
655
|
+
- Errors that increase later in a multi-step flow suggest fatigue and working
|
|
656
|
+
memory depletion.
|
|
657
|
+
- Repeated identical errors across users suggest a systematic design problem,
|
|
658
|
+
not individual user failure.
|
|
659
|
+
|
|
660
|
+
**Types to Track:**
|
|
661
|
+
- **Slips:** Users know the correct action but execute it incorrectly (clicking
|
|
662
|
+
the wrong button, typos). Often caused by poor layout and inadequate spacing.
|
|
663
|
+
- **Mistakes:** Users form an incorrect mental model and take intentionally
|
|
664
|
+
wrong actions. Often caused by unclear labeling, inconsistent patterns, or
|
|
665
|
+
missing feedback.
|
|
666
|
+
|
|
667
|
+
#### Abandonment Rate and Drop-off Points
|
|
668
|
+
|
|
669
|
+
**What it measures:** Where users quit mid-task.
|
|
670
|
+
|
|
671
|
+
**Cognitive Load Signals:**
|
|
672
|
+
- Sharp drop-off at a specific step suggests that step has disproportionately
|
|
673
|
+
high cognitive load.
|
|
674
|
+
- Gradual attrition across steps suggests cumulative cognitive fatigue.
|
|
675
|
+
- Drop-off after encountering a specific element (e.g., a terms-of-service
|
|
676
|
+
wall, a complex configuration panel) identifies the specific load source.
|
|
677
|
+
|
|
678
|
+
### 3.2 Self-Reported Measures
|
|
679
|
+
|
|
680
|
+
#### System Usability Scale (SUS)
|
|
681
|
+
|
|
682
|
+
A 10-item questionnaire administered after task completion. Produces a score
|
|
683
|
+
from 0-100.
|
|
684
|
+
|
|
685
|
+
**Cognitive Load Relevance:**
|
|
686
|
+
- SUS scores below 50 strongly correlate with high perceived cognitive load.
|
|
687
|
+
- SUS scores above 68 are considered above average.
|
|
688
|
+
- SUS scores above 80 indicate a system that is genuinely easy to use.
|
|
689
|
+
- Several SUS items directly address cognitive load: "I found the system
|
|
690
|
+
unnecessarily complex," "I needed to learn a lot of things before I could
|
|
691
|
+
get going with this system."
|
|
692
|
+
|
|
693
|
+
**Reference:** Brooke, J. (1996). "SUS: A Quick and Dirty Usability Scale."
|
|
694
|
+
*Usability Evaluation in Industry*, 189(194), 4-7.
|
|
695
|
+
|
|
696
|
+
#### NASA Task Load Index (NASA-TLX)
|
|
697
|
+
|
|
698
|
+
A multidimensional assessment tool measuring perceived workload across six
|
|
699
|
+
dimensions: Mental Demand, Physical Demand, Temporal Demand, Performance,
|
|
700
|
+
Effort, and Frustration.
|
|
701
|
+
|
|
702
|
+
**How to use it:**
|
|
703
|
+
- Administer immediately after task completion.
|
|
704
|
+
- The Mental Demand and Effort subscales are most relevant to cognitive load.
|
|
705
|
+
- Compare scores across design iterations to measure improvement.
|
|
706
|
+
- A weighted composite score above 60 (out of 100) indicates high cognitive
|
|
707
|
+
load that warrants design intervention.
|
|
708
|
+
|
|
709
|
+
**Reference:** Hart, S.G. & Staveland, L.E. (1988). "Development of NASA-TLX."
|
|
710
|
+
*Advances in Psychology*, 52, 139-183.
|
|
711
|
+
|
|
712
|
+
#### Single Ease Question (SEQ)
|
|
713
|
+
|
|
714
|
+
A single 7-point Likert scale question asked after each task: "Overall, how
|
|
715
|
+
easy or difficult was this task?"
|
|
716
|
+
|
|
717
|
+
**Advantages:**
|
|
718
|
+
- Minimal respondent burden (can be used after every task in a session).
|
|
719
|
+
- Scores below 4.5 (on the 7-point scale) indicate a task perceived as
|
|
720
|
+
difficult.
|
|
721
|
+
- Useful for pinpointing which specific tasks have the highest cognitive load.
|
|
722
|
+
|
|
723
|
+
**Reference:** Sauro, J. & Dumas, J.S. (2009). "Comparison of Three One-Question,
|
|
724
|
+
Post-Task Usability Questionnaires." *CHI 2009*, 1599-1608.
|
|
725
|
+
|
|
726
|
+
#### Subjective Mental Effort Questionnaire (SMEQ)
|
|
727
|
+
|
|
728
|
+
A single-item visual analog scale (0-150) measuring perceived mental effort.
|
|
729
|
+
|
|
730
|
+
**When to use:**
|
|
731
|
+
- For complex workflows where you need to measure the cognitive demand of
|
|
732
|
+
specific subtasks, not just overall usability.
|
|
733
|
+
- Particularly useful for comparing the cognitive cost of different approaches
|
|
734
|
+
to the same task.
|
|
735
|
+
|
|
736
|
+
### 3.3 Observational and Heuristic Methods
|
|
737
|
+
|
|
738
|
+
#### User Confusion Signals
|
|
739
|
+
|
|
740
|
+
During usability testing, watch for behavioral indicators of high cognitive load:
|
|
741
|
+
|
|
742
|
+
- **Pausing and staring:** Users stop interacting and look at the screen for
|
|
743
|
+
more than 3-5 seconds without acting.
|
|
744
|
+
- **Re-reading:** Users read the same text or label multiple times.
|
|
745
|
+
- **Hovering without clicking:** Mouse movement without commitment suggests
|
|
746
|
+
uncertainty.
|
|
747
|
+
- **Backtracking:** Users return to previous steps or undo actions.
|
|
748
|
+
- **Verbalizing confusion:** In think-aloud protocols, phrases like "I'm not
|
|
749
|
+
sure what this means," "Where do I...," or "Wait, what?" are direct
|
|
750
|
+
cognitive load indicators.
|
|
751
|
+
- **Seeking external help:** Users look away from the screen, consult
|
|
752
|
+
documentation, or ask the facilitator for clarification.
|
|
753
|
+
- **Sighing, leaning back, or rubbing eyes:** Physical manifestations of
|
|
754
|
+
cognitive fatigue.
|
|
755
|
+
|
|
756
|
+
#### Heuristic Evaluation for Cognitive Load
|
|
757
|
+
|
|
758
|
+
A structured expert review focused specifically on cognitive load. Evaluate
|
|
759
|
+
each screen against these questions:
|
|
760
|
+
|
|
761
|
+
1. **Chunking:** Is information grouped into logical, visually distinct chunks
|
|
762
|
+
of 3-5 items?
|
|
763
|
+
2. **Choice Count:** Are there more than 7 options competing for attention at
|
|
764
|
+
any decision point?
|
|
765
|
+
3. **Recall Demands:** Does the user need to remember information from a
|
|
766
|
+
previous screen?
|
|
767
|
+
4. **Consistency:** Are interaction patterns, terminology, and visual styles
|
|
768
|
+
consistent across the application?
|
|
769
|
+
5. **Feedback:** Does every action produce clear, immediate feedback?
|
|
770
|
+
6. **Defaults:** Are sensible defaults provided for all optional inputs?
|
|
771
|
+
7. **Progressive Disclosure:** Are advanced or infrequent options hidden behind
|
|
772
|
+
progressive disclosure?
|
|
773
|
+
8. **Visual Hierarchy:** Is there a clear visual hierarchy with one dominant
|
|
774
|
+
focal point per screen?
|
|
775
|
+
9. **Microcopy:** Are labels, instructions, and error messages concise and
|
|
776
|
+
unambiguous?
|
|
777
|
+
10. **Extraneous Elements:** Are there decorative, promotional, or informational
|
|
778
|
+
elements that do not serve the current task?
|
|
779
|
+
|
|
780
|
+
Score each criterion on a 1-5 scale. Aggregate scores below 3.0 on any criterion
|
|
781
|
+
indicate areas requiring immediate attention.
|
|
782
|
+
|
|
783
|
+
### 3.4 Physiological Measures (Advanced)
|
|
784
|
+
|
|
785
|
+
For teams with access to research lab equipment:
|
|
786
|
+
|
|
787
|
+
- **Eye tracking:** Fixation duration, saccade patterns, and pupil dilation
|
|
788
|
+
correlate with cognitive load. Longer fixations and increased pupil dilation
|
|
789
|
+
indicate higher load.
|
|
790
|
+
- **Electrodermal activity (EDA):** Skin conductance increases with cognitive
|
|
791
|
+
and emotional arousal.
|
|
792
|
+
- **Heart rate variability (HRV):** Decreased HRV correlates with increased
|
|
793
|
+
cognitive demand.
|
|
794
|
+
- **EEG:** Frontal theta band power increases with working memory load.
|
|
795
|
+
|
|
796
|
+
These methods are typically used in academic research or high-stakes product
|
|
797
|
+
development (medical devices, aviation interfaces), not in routine product design.
|
|
798
|
+
|
|
799
|
+
---
|
|
800
|
+
|
|
801
|
+
## 4. Dark Patterns Warning
|
|
802
|
+
|
|
803
|
+
Cognitive load science is a tool. Like any tool, it can be wielded ethically
|
|
804
|
+
(reducing load to help users) or unethically (manipulating load to exploit
|
|
805
|
+
users). Dark patterns deliberately increase or strategically deploy cognitive
|
|
806
|
+
load to trick users into decisions that benefit the business at the user's
|
|
807
|
+
expense.
|
|
808
|
+
|
|
809
|
+
### 4.1 Choice Overload as Manipulation
|
|
810
|
+
|
|
811
|
+
**Pattern:** Presenting an overwhelming number of privacy settings, cancellation
|
|
812
|
+
reasons, or opt-out options to make the user give up and accept the default
|
|
813
|
+
(which benefits the company).
|
|
814
|
+
|
|
815
|
+
**How it works:** The company technically provides user control but makes
|
|
816
|
+
exercising that control so cognitively expensive that most users abandon the
|
|
817
|
+
attempt. This exploits decision fatigue and the "law of less work" -- users
|
|
818
|
+
gravitate toward the path of least cognitive effort.
|
|
819
|
+
|
|
820
|
+
**Example:** A cookie consent dialog presents 347 individual vendor toggles
|
|
821
|
+
instead of a single "Reject All" button. A subscription service requires
|
|
822
|
+
navigating 6 screens, answering 4 retention surveys, and confirming via email
|
|
823
|
+
to cancel.
|
|
824
|
+
|
|
825
|
+
**The ethical line:** Providing granular control is good. Making the default
|
|
826
|
+
path (accepting all cookies, keeping the subscription) require zero effort
|
|
827
|
+
while making the alternative path require extreme effort is manipulation.
|
|
828
|
+
The ethical approach is to make both paths equally easy: "Accept All" and
|
|
829
|
+
"Reject All" should be equally prominent.
|
|
830
|
+
|
|
831
|
+
### 4.2 Hidden Unsubscribe and Buried Options
|
|
832
|
+
|
|
833
|
+
**Pattern:** Making the unsubscribe, cancel, or delete option extremely
|
|
834
|
+
difficult to find by burying it deep in navigation hierarchies, using low-
|
|
835
|
+
contrast text, or labeling it ambiguously.
|
|
836
|
+
|
|
837
|
+
**How it works:** This exploits the limited capacity of the central executive.
|
|
838
|
+
When users must search through multiple screens and menus to find a specific
|
|
839
|
+
action, the cognitive cost of the search may exceed their motivation, leading
|
|
840
|
+
them to abandon the attempt.
|
|
841
|
+
|
|
842
|
+
**Example:** An email unsubscribe link in 8px gray text at the bottom of a
|
|
843
|
+
marketing email, phrased as "Manage communication preferences" rather than
|
|
844
|
+
"Unsubscribe." A social media account deletion option buried under Settings >
|
|
845
|
+
Account > Security > Advanced > Data Management > Deactivation > "Actually,
|
|
846
|
+
I want to delete" > Confirm > Wait 30 days.
|
|
847
|
+
|
|
848
|
+
**The ethical line:** It is reasonable to confirm destructive actions. It is
|
|
849
|
+
not reasonable to add artificial steps whose sole purpose is to create
|
|
850
|
+
cognitive friction that discourages the action.
|
|
851
|
+
|
|
852
|
+
### 4.3 Confusing Cancellation Flows (Confirmshaming)
|
|
853
|
+
|
|
854
|
+
**Pattern:** Using emotionally manipulative or cognitively confusing language
|
|
855
|
+
in opt-out and cancellation dialogs.
|
|
856
|
+
|
|
857
|
+
**How it works:** The dialog presents the "stay" option in positive, clear
|
|
858
|
+
language and the "leave" option in negative, confusing, or guilt-inducing
|
|
859
|
+
language. This creates asymmetric cognitive load: the easy-to-understand
|
|
860
|
+
option benefits the company; the hard-to-parse option is the one the user
|
|
861
|
+
actually wants.
|
|
862
|
+
|
|
863
|
+
**Examples:**
|
|
864
|
+
- "Yes, I want to save money!" vs. "No, I don't like saving money."
|
|
865
|
+
- "Keep my premium features" vs. "Downgrade to limited access and lose
|
|
866
|
+
all my data preferences."
|
|
867
|
+
- Double negatives: "Uncheck this box if you do not wish to not receive
|
|
868
|
+
marketing communications."
|
|
869
|
+
|
|
870
|
+
**The ethical line:** The options presented should be cognitively symmetric.
|
|
871
|
+
Both the "yes" and "no" options should be equally clear, equally readable,
|
|
872
|
+
and equally easy to understand. The user should never have to re-read an
|
|
873
|
+
option to parse its meaning.
|
|
874
|
+
|
|
875
|
+
### 4.4 Manipulative Option Framing
|
|
876
|
+
|
|
877
|
+
**Pattern:** Structuring pricing pages, plan comparisons, or option selectors
|
|
878
|
+
to steer users toward the most profitable choice through cognitive
|
|
879
|
+
manipulation rather than genuine value comparison.
|
|
880
|
+
|
|
881
|
+
**How it works:** The decoy effect (adding an inferior option to make a
|
|
882
|
+
target option look better), asymmetric feature comparison tables (where the
|
|
883
|
+
preferred plan column is wider, highlighted, and labeled "Most Popular"),
|
|
884
|
+
and anchoring (showing an inflated "original price" to make the actual price
|
|
885
|
+
seem like a deal).
|
|
886
|
+
|
|
887
|
+
**Example:** A pricing page shows three plans. The middle plan is
|
|
888
|
+
highlighted, labeled "Most Popular," has a slightly larger card, and is
|
|
889
|
+
the only one with a "Recommended" badge. The cheapest plan deliberately
|
|
890
|
+
omits a key feature that most users need, making the middle plan feel like
|
|
891
|
+
the only reasonable choice. The most expensive plan exists solely as a
|
|
892
|
+
price anchor.
|
|
893
|
+
|
|
894
|
+
**The ethical line:** Recommending a plan is fine. Structuring the comparison
|
|
895
|
+
to make a genuinely informed choice difficult is not. The ethical approach:
|
|
896
|
+
all plans should be presented with equal visual weight, clear feature
|
|
897
|
+
descriptions, and an honest recommendation based on the user's stated needs.
|
|
898
|
+
|
|
899
|
+
### 4.5 The Broader Ethical Framework
|
|
900
|
+
|
|
901
|
+
When evaluating whether a design decision crosses the ethical line, apply
|
|
902
|
+
this test:
|
|
903
|
+
|
|
904
|
+
1. **Symmetry Test:** Is the cognitive effort required to choose Option A
|
|
905
|
+
equal to the effort required to choose Option B? If not, which option
|
|
906
|
+
benefits the company, and is the asymmetry justified by legitimate
|
|
907
|
+
user needs?
|
|
908
|
+
|
|
909
|
+
2. **Informed Consent Test:** Can the user make a fully informed decision
|
|
910
|
+
with the information presented? Or does the design deliberately withhold,
|
|
911
|
+
obscure, or overwhelm with information to prevent informed decision-making?
|
|
912
|
+
|
|
913
|
+
3. **Reversibility Test:** If the user later realizes they made the wrong
|
|
914
|
+
choice, how easy is it to reverse? Ethical designs make reversal no
|
|
915
|
+
harder than the original choice.
|
|
916
|
+
|
|
917
|
+
4. **Grandmother Test:** Would you be comfortable if your grandmother
|
|
918
|
+
encountered this interface? Would she understand what she was agreeing to?
|
|
919
|
+
|
|
920
|
+
**Reference:** Brignull, H. (2010). Dark Patterns -- Deceptive Design.
|
|
921
|
+
https://www.deceptive.design/
|
|
922
|
+
|
|
923
|
+
---
|
|
924
|
+
|
|
925
|
+
## 5. Platform-Specific Considerations
|
|
926
|
+
|
|
927
|
+
Cognitive load is not a constant. It varies based on the device, context,
|
|
928
|
+
environment, and mode of interaction. The same task can impose radically
|
|
929
|
+
different cognitive demands depending on whether the user is at a desktop
|
|
930
|
+
with a full keyboard, on a phone while walking, or on a tablet in a meeting.
|
|
931
|
+
|
|
932
|
+
### 5.1 Mobile: Constrained Attention, Constrained Screen
|
|
933
|
+
|
|
934
|
+
**Environmental Context:**
|
|
935
|
+
- Mobile users are frequently in divided-attention contexts: walking, in
|
|
936
|
+
transit, in conversations, in noisy environments.
|
|
937
|
+
- Sessions are shorter and more frequently interrupted.
|
|
938
|
+
- The available screen area is approximately 15-20% of a desktop display.
|
|
939
|
+
- The input mechanism (thumb on touchscreen) is less precise than a mouse
|
|
940
|
+
and keyboard.
|
|
941
|
+
|
|
942
|
+
**Cognitive Load Implications:**
|
|
943
|
+
- Every element competes for a much smaller share of visual attention.
|
|
944
|
+
- Working memory is further constrained by environmental distractions.
|
|
945
|
+
- Complex interactions that are tolerable on desktop become overwhelming on
|
|
946
|
+
mobile.
|
|
947
|
+
|
|
948
|
+
**Design Rules for Mobile:**
|
|
949
|
+
1. **Single-column layouts.** Do not force horizontal scanning or horizontal
|
|
950
|
+
scrolling.
|
|
951
|
+
2. **One primary action per screen.** The primary CTA should be immediately
|
|
952
|
+
obvious and reachable by thumb.
|
|
953
|
+
3. **Larger touch targets.** Minimum 44x44pt (Apple) or 48x48dp (Material
|
|
954
|
+
Design). Undersized targets increase cognitive load because users must
|
|
955
|
+
aim more carefully.
|
|
956
|
+
4. **Bottom-of-screen navigation and actions.** The thumb's natural arc
|
|
957
|
+
favors the bottom half of the screen. Placing key actions at the top
|
|
958
|
+
forces an awkward reach that adds physical and cognitive friction.
|
|
959
|
+
5. **Aggressive progressive disclosure.** Show less, link more. Content
|
|
960
|
+
that appears in full on desktop should be summarized with "Read more"
|
|
961
|
+
on mobile.
|
|
962
|
+
6. **Minimize typing.** Use pickers, toggles, and selection controls instead
|
|
963
|
+
of free-text input whenever possible. When text input is necessary, use
|
|
964
|
+
appropriate keyboard types (numeric, email, URL).
|
|
965
|
+
7. **Forgiving interactions.** Provide undo capabilities rather than
|
|
966
|
+
confirmation dialogs. A confirmation dialog on mobile adds a tap, a
|
|
967
|
+
reading task, and a decision -- significant cognitive load for a small
|
|
968
|
+
screen interaction.
|
|
969
|
+
|
|
970
|
+
**Research Finding:** Studies comparing online cognitive load on mobile versus
|
|
971
|
+
PC-based devices found that information-seeking tasks on mobile phones require
|
|
972
|
+
significantly higher cognitive load compared to desktop conditions. Design must
|
|
973
|
+
compensate for this inherent disadvantage.
|
|
974
|
+
|
|
975
|
+
### 5.2 Desktop: More Space, More Complexity Risk
|
|
976
|
+
|
|
977
|
+
**Environmental Context:**
|
|
978
|
+
- Desktop users typically have sustained attention and a controlled
|
|
979
|
+
environment.
|
|
980
|
+
- The larger screen area allows for richer layouts, but also tempts designers
|
|
981
|
+
to fill the space with more content, controls, and information -- which
|
|
982
|
+
can paradoxically increase cognitive load.
|
|
983
|
+
- Mouse and keyboard input is precise, enabling dense interactions that would
|
|
984
|
+
be impractical on touch devices.
|
|
985
|
+
|
|
986
|
+
**Cognitive Load Implications:**
|
|
987
|
+
- The risk on desktop is not insufficient space but **information overload**.
|
|
988
|
+
More screen space often leads to more elements, more options, and more
|
|
989
|
+
visual noise.
|
|
990
|
+
- Users expect more powerful features and denser information on desktop,
|
|
991
|
+
which is appropriate -- but only if the visual hierarchy is strong enough
|
|
992
|
+
to guide attention.
|
|
993
|
+
|
|
994
|
+
**Design Rules for Desktop:**
|
|
995
|
+
1. **Use the extra space for hierarchy, not density.** Whitespace is not
|
|
996
|
+
wasted space -- it is a cognitive load reduction tool.
|
|
997
|
+
2. **Support power-user efficiency without overwhelming novices.** Keyboard
|
|
998
|
+
shortcuts, command palettes, and contextual menus add zero cognitive load
|
|
999
|
+
for users who do not use them, while dramatically reducing load for
|
|
1000
|
+
experts.
|
|
1001
|
+
3. **Use multi-panel layouts judiciously.** A three-panel email layout
|
|
1002
|
+
(folders | message list | message content) distributes information
|
|
1003
|
+
spatially, reducing the need to navigate between views. But more than
|
|
1004
|
+
3 simultaneous panels creates visual overload.
|
|
1005
|
+
4. **Support customization.** Let users hide panels, columns, and widgets
|
|
1006
|
+
they do not use. An uncustomized dashboard with 12 widgets is
|
|
1007
|
+
overwhelming; a dashboard where the user has selected 4 relevant widgets
|
|
1008
|
+
is focused.
|
|
1009
|
+
5. **Leverage hover states.** Desktop interfaces can use hover to reveal
|
|
1010
|
+
additional information and actions without committing screen space.
|
|
1011
|
+
This is a form of progressive disclosure that is unavailable on touch
|
|
1012
|
+
devices.
|
|
1013
|
+
|
|
1014
|
+
### 5.3 Touch: Simpler Interactions Required
|
|
1015
|
+
|
|
1016
|
+
**Core Constraint:**
|
|
1017
|
+
Touch interactions lack the precision, hover states, and right-click context
|
|
1018
|
+
menus available on mouse-based interfaces. This means:
|
|
1019
|
+
|
|
1020
|
+
- **No hover previews.** Information that appears on hover must be revealed
|
|
1021
|
+
through tap or long-press on touch devices, adding an interaction step.
|
|
1022
|
+
- **No right-click context menus.** Long-press menus are less discoverable
|
|
1023
|
+
and less familiar to many users.
|
|
1024
|
+
- **Fat finger problem.** Touch targets that are too small or too close
|
|
1025
|
+
together cause misses, which force error recovery (an additional cognitive
|
|
1026
|
+
load).
|
|
1027
|
+
|
|
1028
|
+
**Design Rules for Touch:**
|
|
1029
|
+
1. **Simplify gesture vocabulary.** Stick to tap, swipe, and pinch-to-zoom.
|
|
1030
|
+
Multi-finger gestures, 3D touch, and edge swipes are not discoverable
|
|
1031
|
+
and increase the learning burden.
|
|
1032
|
+
2. **Make actions explicit.** Since hover tooltips are unavailable, labels,
|
|
1033
|
+
icons with text, and visible action buttons are necessary to communicate
|
|
1034
|
+
functionality.
|
|
1035
|
+
3. **Provide generous spacing.** Adjacent touch targets should have at
|
|
1036
|
+
least 8pt of padding between them to prevent accidental taps.
|
|
1037
|
+
4. **Support direct manipulation.** Touch users expect to interact with
|
|
1038
|
+
content directly -- dragging to reorder, pinching to zoom, swiping to
|
|
1039
|
+
dismiss. These direct manipulation patterns reduce cognitive load because
|
|
1040
|
+
the action maps intuitively to the physical gesture.
|
|
1041
|
+
5. **Design for thumb zones.** On phones, the comfortable thumb zone covers
|
|
1042
|
+
approximately the bottom two-thirds of the screen. Critical actions and
|
|
1043
|
+
navigation should fall within this zone.
|
|
1044
|
+
|
|
1045
|
+
### 5.4 Cross-Platform Consistency
|
|
1046
|
+
|
|
1047
|
+
When designing for multiple platforms, balance platform-specific conventions
|
|
1048
|
+
with product consistency:
|
|
1049
|
+
|
|
1050
|
+
- **Keep the mental model consistent.** The conceptual structure of the
|
|
1051
|
+
product (how entities relate, what actions are available, what terminology
|
|
1052
|
+
is used) should be identical across platforms.
|
|
1053
|
+
- **Adapt the interaction model.** How users access those actions may differ:
|
|
1054
|
+
hover on desktop, long-press on mobile, right-click on desktop, swipe on
|
|
1055
|
+
mobile.
|
|
1056
|
+
- **Maintain visual identity while respecting platform norms.** Use your
|
|
1057
|
+
brand's colors, typography, and visual language, but follow platform-
|
|
1058
|
+
specific patterns for navigation (tabs at bottom on iOS, top on Android),
|
|
1059
|
+
alerts, and system controls.
|
|
1060
|
+
- **Feature parity is not the goal.** Not every desktop feature needs to
|
|
1061
|
+
exist on mobile. Identify the core mobile use cases and optimize for those.
|
|
1062
|
+
A mobile-only user should never feel like they are using a degraded product,
|
|
1063
|
+
but they may access a focused subset of functionality.
|
|
1064
|
+
|
|
1065
|
+
---
|
|
1066
|
+
|
|
1067
|
+
## 6. Quick Reference Checklist
|
|
1068
|
+
|
|
1069
|
+
Use this checklist during design reviews and heuristic evaluations. Score
|
|
1070
|
+
each item as Pass (the design meets this criterion), Partial (room for
|
|
1071
|
+
improvement), or Fail (immediate attention needed).
|
|
1072
|
+
|
|
1073
|
+
### Information Architecture
|
|
1074
|
+
|
|
1075
|
+
- [ ] Information is chunked into groups of 3-5 items
|
|
1076
|
+
- [ ] Primary navigation has 7 or fewer top-level items
|
|
1077
|
+
- [ ] Progressive disclosure is used for advanced or infrequent options
|
|
1078
|
+
- [ ] Content hierarchy is clear (one dominant heading per section)
|
|
1079
|
+
- [ ] Related information is co-located (no split-attention effect)
|
|
1080
|
+
|
|
1081
|
+
### Decision Load
|
|
1082
|
+
|
|
1083
|
+
- [ ] Each screen presents one primary decision or action
|
|
1084
|
+
- [ ] Primary choices at any decision point number 5-7 or fewer
|
|
1085
|
+
- [ ] Intelligent defaults are provided for all optional inputs
|
|
1086
|
+
- [ ] Destructive actions require confirmation; routine actions do not
|
|
1087
|
+
- [ ] Options are labeled with clear, unambiguous language
|
|
1088
|
+
|
|
1089
|
+
### Memory and Recall
|
|
1090
|
+
|
|
1091
|
+
- [ ] Users never need to remember information from a previous screen
|
|
1092
|
+
- [ ] Recent items, favorites, and suggestions reduce recall demands
|
|
1093
|
+
- [ ] Form fields provide input masks, auto-complete, and format hints
|
|
1094
|
+
- [ ] Error messages explain what went wrong AND how to fix it
|
|
1095
|
+
- [ ] Status is always visible (where am I, what did I just do, what is next)
|
|
1096
|
+
|
|
1097
|
+
### Visual and Interaction Design
|
|
1098
|
+
|
|
1099
|
+
- [ ] Visual hierarchy is clear with consistent use of size, color, contrast
|
|
1100
|
+
- [ ] Layout is spatially consistent across similar screen types
|
|
1101
|
+
- [ ] Touch targets are at least 44x44pt (iOS) or 48x48dp (Android)
|
|
1102
|
+
- [ ] Feedback is immediate (< 100ms for direct manipulation, < 1s for system)
|
|
1103
|
+
- [ ] Animations serve a functional purpose (drawing attention to changes)
|
|
1104
|
+
|
|
1105
|
+
### Consistency
|
|
1106
|
+
|
|
1107
|
+
- [ ] Terminology is consistent throughout the product
|
|
1108
|
+
- [ ] Interaction patterns are consistent (same gesture = same action)
|
|
1109
|
+
- [ ] Visual patterns are consistent (same color = same meaning)
|
|
1110
|
+
- [ ] Platform conventions are followed unless deviation is justified
|
|
1111
|
+
- [ ] Error handling follows a consistent pattern across all flows
|
|
1112
|
+
|
|
1113
|
+
### Cognitive Load Red Flags
|
|
1114
|
+
|
|
1115
|
+
- [ ] No screen requires reading more than 3 paragraphs of instructions
|
|
1116
|
+
- [ ] No form has more than 7 visible fields at once
|
|
1117
|
+
- [ ] No modal or dialog has more than 3 action buttons
|
|
1118
|
+
- [ ] No drop-down menu has more than 15 unsorted items
|
|
1119
|
+
- [ ] No critical information is communicated solely through color
|
|
1120
|
+
|
|
1121
|
+
### Ethics
|
|
1122
|
+
|
|
1123
|
+
- [ ] Opt-in and opt-out paths require equal cognitive effort
|
|
1124
|
+
- [ ] Cancellation is as easy as signup
|
|
1125
|
+
- [ ] Pricing and options are presented with equal visual weight
|
|
1126
|
+
- [ ] No double negatives or confusing language in consent dialogs
|
|
1127
|
+
- [ ] Dark patterns checklist reviewed and no violations found
|
|
1128
|
+
|
|
1129
|
+
---
|
|
1130
|
+
|
|
1131
|
+
## References and Further Reading
|
|
1132
|
+
|
|
1133
|
+
### Foundational Works
|
|
1134
|
+
|
|
1135
|
+
- Miller, G.A. (1956). "The Magical Number Seven, Plus or Minus Two: Some Limits
|
|
1136
|
+
on Our Capacity for Processing Information." *Psychological Review*, 63(2), 81-97.
|
|
1137
|
+
- Sweller, J. (1988). "Cognitive Load During Problem Solving: Effects on Learning."
|
|
1138
|
+
*Cognitive Science*, 12(2), 257-285.
|
|
1139
|
+
- Cowan, N. (2001). "The Magical Number 4 in Short-Term Memory: A Reconsideration
|
|
1140
|
+
of Mental Storage Capacity." *Behavioral and Brain Sciences*, 24(1), 87-114.
|
|
1141
|
+
- Baddeley, A.D. (2000). "The Episodic Buffer: A New Component of Working Memory?"
|
|
1142
|
+
*Trends in Cognitive Sciences*, 4(11), 417-423.
|
|
1143
|
+
- Hick, W.E. (1952). "On the Rate of Gain of Information." *Quarterly Journal of
|
|
1144
|
+
Experimental Psychology*, 4(1), 11-26.
|
|
1145
|
+
- Norman, D.A. (1988). *The Design of Everyday Things*. Basic Books.
|
|
1146
|
+
(Revised and expanded edition, 2013.)
|
|
1147
|
+
|
|
1148
|
+
### Design and Usability
|
|
1149
|
+
|
|
1150
|
+
- Nielsen, J. (1994). "10 Usability Heuristics for User Interface Design."
|
|
1151
|
+
Nielsen Norman Group. https://www.nngroup.com/articles/ten-usability-heuristics/
|
|
1152
|
+
- Nielsen Norman Group. "Minimize Cognitive Load to Maximize Usability."
|
|
1153
|
+
https://www.nngroup.com/articles/minimize-cognitive-load/
|
|
1154
|
+
- Nielsen Norman Group. "Change Blindness in UX: Definition."
|
|
1155
|
+
https://www.nngroup.com/articles/change-blindness-definition/
|
|
1156
|
+
- Nielsen Norman Group. "Beyond the NPS: Measuring Perceived Usability with the
|
|
1157
|
+
SUS, NASA-TLX, and the Single Ease Question."
|
|
1158
|
+
https://www.nngroup.com/articles/measuring-perceived-usability/
|
|
1159
|
+
- Brooke, J. (1996). "SUS: A Quick and Dirty Usability Scale."
|
|
1160
|
+
*Usability Evaluation in Industry*, 189(194), 4-7.
|
|
1161
|
+
- Sauro, J. & Dumas, J.S. (2009). "Comparison of Three One-Question, Post-Task
|
|
1162
|
+
Usability Questionnaires." *CHI 2009*.
|
|
1163
|
+
- Laws of UX. https://lawsofux.com/
|
|
1164
|
+
|
|
1165
|
+
### Attention and Perception
|
|
1166
|
+
|
|
1167
|
+
- Simons, D.J. & Chabris, C.F. (1999). "Gorillas in Our Midst: Sustained
|
|
1168
|
+
Inattentional Blindness for Dynamic Events." *Perception*, 28(9), 1059-1074.
|
|
1169
|
+
- Monsell, S. (2003). "Task Switching." *Trends in Cognitive Sciences*, 7(3),
|
|
1170
|
+
134-140.
|
|
1171
|
+
|
|
1172
|
+
### Ethics and Dark Patterns
|
|
1173
|
+
|
|
1174
|
+
- Brignull, H. (2010). Dark Patterns -- Deceptive Design.
|
|
1175
|
+
https://www.deceptive.design/
|
|
1176
|
+
- Gray, C.M. et al. (2018). "The Dark (Patterns) Side of UX Design." *CHI 2018*.
|
|
1177
|
+
|
|
1178
|
+
### Measurement Tools
|
|
1179
|
+
|
|
1180
|
+
- Hart, S.G. & Staveland, L.E. (1988). "Development of NASA-TLX: Results of
|
|
1181
|
+
Empirical and Theoretical Research." *Advances in Psychology*, 52, 139-183.
|
|
1182
|
+
- MeasuringU. "10 Things to Know about the NASA TLX."
|
|
1183
|
+
https://measuringu.com/nasa-tlx/
|
|
1184
|
+
|
|
1185
|
+
---
|
|
1186
|
+
|
|
1187
|
+
*This document is a design expertise reference for cognitive load in UI/UX.
|
|
1188
|
+
It synthesizes cognitive psychology research and established design heuristics
|
|
1189
|
+
into actionable guidance for product designers, UX researchers, and front-end
|
|
1190
|
+
developers. Apply the principles proportionally -- small projects may need
|
|
1191
|
+
only the checklist; complex products warrant the full measurement framework.*
|