Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

10 — Interaction Specification (Staff Module)

Module specialization of 00-shared/08_Interaction_&_Motion.md.

1. Gestures & inputs

GestureBehaviorScreen
Tap rowOpen detail (SS2); ripple m-fastS1, S6, S9
Tap FAB"Add staff / department / designation" — scale-in m-entranceS1, S6, S9
Tap row menu (⋮)AppMenu: View / Edit / Deactivate (destructive in error)S1, S6, S9
Long-press rowSame menu (phone); haptic selectionClickS1, S6, S9
Pull downRefresh (reset page 1, bypass cache); spinner primary; lightImpact on completionS1, S6, S9
Swipe left on row (proposed)Quick "Edit" only (deactivate stays in menu — destructive ops never swipe-first)S1
Back / back-gesturePop to list; on root tab → previous shell branchall
ESC (desktop)Close dialog/sheet/menu; cancel selectionall
Enter in form fieldNext field; Ctrl/Cmd+Enter submitsS3, S4, S8, S11

2. Motion language

InteractionMotionToken
List → detail pushSlide forward + content fade/risem-base / m-slow (00-shared/08 §4)
Avatar list → detail headerHero flight (shared element)m-slow
List rows on first loadEntrance stagger 40 msm-entrance
Status badge changeColor/size cross-fade; icon morph via AnimatedSwitcherm-fast
Skeleton → contentCross-fade, no popm-slow
Dialog (deactivate)Scale + fade in; slide down on dismissm-base
FAB hide/show on scrollFade + slidem-entrance
Filter chip selectInk ripple + pill slidem-fast
Infinite scroll footerBottom spinner fade-inm-instant
Submit pendingSpinner replaces label; success → brief check + snackbar

Reduced motion (system setting): everything → fade ≤ m-instant; no stagger, no shimmer loop, no hero (00-shared/08 §4).

3. Haptics

EventHaptic
Create/update successlightImpact
Validation/API errormediumImpact
Deactivate confirmheavyImpact (destructive)
Menu openselectionClick

Off when system haptics disabled; never on web/desktop (00-shared/08 §3).

4. Frustration controls

  • Every interactive element gives press feedback within 100 ms (00-shared/08 §6).
  • Submit buttons: disabled while pending (anti-double-submit); 409/404 never silently swallowed — inline or snackbar.
  • Network-bound actions always show pending state (spinner in button, skeleton in lists) — never a silent wait.
  • Long lists: keep scroll position across filter toggles; restore position after detail pop (master-detail preserves state per shell branch — 00-shared/05 §3).

5. Keyboard & desktop

  • Tab order: search → chips → rows → FAB; visible focus ring primary (00-shared/09 §6).
  • Ctrl+K global search (00-shared/05 §7); N on list screens → create (proposed); ESC closes dialogs/menus.
  • Right-click row = same menu as long-press (00-shared/08 §2).
  • Breadcrumbs on desktop at depth > 2: Staff / Departments / Administration (00-shared/05 §3).

6. Modal hierarchy (shared rule applied)

Snackbar > bottom sheet (pickers, filters) > dialog (deactivate confirm) > full-screen page (create/edit forms) (00-shared/05 §5). Deactivate is a dialog — not a sheet — because it is destructive and needs explicit confirm.