ADHD UX Guidelines

These guidelines are acceptance criteria, not suggestions. Every UI component, interaction, and notification in Life Copilot must pass the relevant criteria here before it ships. When a design decision is contested, this document is the tiebreaker.

This spec is informed by ADHD research and lived experience. It will evolve as we gather user feedback.

Core Principles

P1 — Capture First, Organize Never (if you don't want to)

The single most important interaction in the app is capturing a thought before it disappears. The app must make this possible in under 2 seconds from any screen with zero categorization required.

Acceptance criteria:

  • A global capture input is accessible from every screen via a persistent UI element or keyboard shortcut.
  • The input accepts free text. No fields other than text are required.
  • Pressing Enter (or tapping the button) creates a note in the Inbox and clears the input. No confirmation dialog.
  • The Inbox is always one tap/click away from any screen.

P2 — No Punishment for Inconsistency

Streak counters, "X days missed" banners, and overdue badges trigger shame and avoidance. ADHD users will abandon an app that makes them feel guilty for being human. Momentum replaces streaks.

Acceptance criteria:

  • No UI element shall display a count of consecutive days missed.
  • Routines that were not completed do not display a red "failed" or "missed" state. They reset silently.
  • The only backward-looking metric displayed is total completions (e.g., "Completed 42 times"), not failure rate.
  • Overdue tasks are visually distinct (e.g., a muted amber highlight) but not alarming (no red exclamation marks or critical badges).

P3 — Progressive Disclosure of Complexity

Advanced features — recurrence rules, subtask trees, reminders with complex conditions — must not be visible until explicitly requested. The default view is always the simplest possible view.

Acceptance criteria:

  • A newly created task shows only: title, done checkbox, and an expand handle.
  • Details (due date, notes, subtasks, labels, priority) appear behind a single tap/click "expand" action.
  • Settings menus surface the 3 most commonly changed options first; advanced options are collapsed behind a "Show more" disclosure.
  • The app must be fully usable by someone who never opens any settings panel.

P4 — Reduce Time Blindness

People with ADHD frequently lose track of time, especially during hyperfocus. The app must make time visible and tangible without being intrusive.

Acceptance criteria:

  • The Focus Session timer is always visible when a session is active (persistent in the app shell status bar).
  • Time displays use relative language where possible: "in 20 min", "started 45 min ago" — not just timestamps.
  • When a session ends, a gentle notification is shown — not a dismissal that the user must acknowledge to continue working.
  • Time estimates on tasks are optional but, when present, are displayed prominently next to the task title.

P5 — Actionable Everything

A reminder or notification that requires navigation to act on is a notification that gets dismissed and forgotten. Every notification must allow the primary action to be completed from the notification itself.

Acceptance criteria:

  • Reminder notifications include at least one action button (e.g., "Mark done", "Snooze 15 min", "Start focus session").
  • The app must not show any alert that only has a single "Dismiss" or "OK" button.
  • Navigation from a notification lands the user on the relevant item, not the app home screen.

P6 — Sensory Safety

Flashing, pulsing, or rapidly animating UI causes distraction and can be harmful. Default animations must be functional and brief.

Acceptance criteria:

  • All transitions must respect the OS prefers-reduced-motion media query.
  • No looping or ambient animations exist in the default theme.
  • Audio notifications must default to off.
  • The app must not use red as the primary color for any status that is not a destructive action (delete, error).

Interaction Patterns

Brain Dump (Global Capture)

The Brain Dump is the most critical UI element. It is a persistent, always-accessible text input.

PropertySpecification
TriggerKeyboard shortcut (configurable, default: Ctrl+Space / Cmd+Space), or a floating "+" button always visible in the app shell.
InputSingle-line text. Multiline is supported via Shift+Enter.
SubmissionEnter key or tap/click. No separate "Save" button.
ResultItem appears in the Inbox. A brief, non-blocking toast confirms: "Added to Inbox".
Voice inputA microphone icon allows voice-to-text on mobile.
ParsingThe app parses natural language in the background (e.g., "Call dentist tomorrow at 3pm") and suggests extracted metadata. The user can ignore the suggestion.

Task Lifecycle

[Inbox] ──(process)──► [Active] ──(complete)──► [Done archive]
            │                        │
            └──(defer)──► [Backlog]  └──(undo)──► [Active]
  • Items in the Inbox are unprocessed Brain Dump captures.
  • Processing an Inbox item means assigning it to a list, routine, or session (or deleting it). This is optional — items can live in the Inbox indefinitely.
  • Completing a task moves it to the Done archive. It can always be undone.
  • There is no "Archived", "Someday", or "Reference" distinction in V1. These are plugin territory.

Routine Momentum

Rather than tracking streaks, routines display a momentum sparkline — a compact 30-day bar chart where each bar represents one period, and the height of the bar reflects how many items were completed. This gives positive reinforcement for good days without punishing bad ones.

Routine: Morning Wind-Down
Momentum (last 30 days):
  ▁▃▅▇█▇▅▃▁▃▅▇█▇▅▇▇▅▅▃▁▃▅▇█▇▅▃▁

Focus Session States

StateVisualUser Action
IdleTimer icon, greyed out"Start Focus" button
ActiveCountdown ring, accent color, in status barPause / End
PausedRing paused, amber colorResume / End
EndedSoft completion animationReview / Start new

Anti-Patterns to Avoid

These patterns are explicitly forbidden in the UI:

Anti-PatternWhyAlternative
Streak counter with reset on missInduces shame spiralMomentum sparkline
"You have 12 overdue tasks" bannerCreates paralysisShow count only if asked
Required fields on task creationRaises the capture barrierTitle-only creation
Confirmation dialogs for completionAdds friction to rewardInstant completion with undo toast
Full-screen modals for simple actionsInterrupts flow stateInline editing, bottom sheets on mobile
Ambient loading spinnersVisual noiseOptimistic UI updates
Red badge on routine if missedImplies failureNo badge; silent reset