Swipe to complete or snooze

On a phone, swipe a task right to mark it done or left to snooze it to tomorrow at the same time.

What it is

Rows track horizontal touch movement and reveal a green Done panel on the right swipe and an accent Snooze panel on the left. Past a 72px threshold the action fires; a task with no due date opens instead of snoozing, since there is nothing to snooze from.

Also called: swipe a task · phone gestures · one-handed task list

See it
Swipe to complete or snooze
Area
Operations
Group
Tasks & reminders
System
Task Hub
Solves
2 named problems
01Gestures are enabled only for coarse pointers — matchMedia('(pointer: coarse)').
02A swipe engages only once horizontal movement exceeds 14px AND is 1.4x the vertical movement, with touch-action pan-y keeping normal scrolling native.
03The click that would follow the gesture is swallowed so a swipe never also opens the task.
A row mid-swipe with the green '✓ Done' panel behind it. TaskRow in TaskHub.tsx. Sample data — no customer information appears here.
How it works
  1. 1Gestures are enabled only for coarse pointers — matchMedia('(pointer: coarse)').
  2. 2A swipe engages only once horizontal movement exceeds 14px AND is 1.4x the vertical movement, with touch-action pan-y keeping normal scrolling native.
  3. 3The click that would follow the gesture is swallowed so a swipe never also opens the task.
Why we built it

Coarse-pointer gating is stated plainly: 'Coarse pointer = a finger. Swipe gestures only make sense there.' The engage threshold exists so vertical scrolling is never stolen by an accidental diagonal.

The problem
  • Tapping small checkboxes on a phone
  • Gesture handlers stealing vertical scroll
Sound familiar?
What you get
One-handed completion in the field
Scrolling still feels native

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →