Specializes 00-shared/08 for this module. All motion tokens from 02_Design_Tokens.md §6 .
Gesture Behaviour Screen
Tap row Ink ripple (m-fast) → S2 S1
Long-press row AppMenu: Edit, Deactivate (+ selectionClick haptic)S1
Swipe left Remove assignment (with confirm) — keep ≤ 2 actions (08 §1 ) S3 rows
Pull down Refresh list / tab content S1, S3, S4
Tap FAB Scale-in (m-entrance) → S5 S1
Back gesture Form → detail (discard confirm if dirty, (proposed)); detail → list S5/S6
Tap assignment card No navigation (info only) — remove via trailing menu S3
Input Behaviour
Hover row m-fast surface tint; tooltip after 500 ms (08 §2 )
Right-click row same AppMenu as long-press
+ / NNew teacher (S5) on list screen (05_Global_Information_Architecture.md §7 )
Ctrl+FFocus search bar (proposed)
EscClose editor sheet / dialog / menu
EnterSubmit focused form; Tab logical order; visible focus ring primary 2 dp (09 §6 )
Delete keyOn selected row → deactivate confirm (proposed)
Event Haptic
Assignment added lightImpact()
Deactivate confirmed heavyImpact()
Duplicate-assignment blocked mediumImpact()
Long-press menu selectionClick()
Pull-to-refresh done lightImpact()
Rule disabled when system haptics off; none on web/desktop (08 §3 )
Screen Entrance Element motion
S1 page fade+rise m-slow; list rows stagger m-entrance 40 ms chips animate selection m-fast; status chip badge pop
S2 header card hero from list avatar (Hero m-slow) tab indicator slide m-base; info rows fade-in staggered 40 ms
S3 tab content fade m-fast year dropdown m-base; row add/remove: AnimatedList insert/remove m-base
S4 grid fade m-fast none (data-dense)
S5/S6 full-page slide m-base field focus states m-fast; button spinner replaces label
S7 sheet slide-up m-base, r-xl corners picker option highlight m-fast
S8 dialog scale+fade m-base destructive button press ripple m-fast
S9/S10 page fade+rise summary tiles entrance stagger 40 ms
Reduced-motion: all above collapse to fades ≤ m-instant, no stagger, no hero
(08 §4 , 09 §8 ).
FAB hide/show on scroll (S1): hide on scroll-down, show on scroll-up (03 §D ).
Submit button : label → spinner; on success brief check + snackbar
(08 §5 ); disabled while pending (anti-double-submit 08 §6 ).
Year switch in S3 : dropdown + matrix cross-fade m-fast; stale request dropped
(request generation token, 13 §4 ).
Infinite scroll : bottom spinner fade-in m-instant; "End of list" footer
bodySmall (03 §F ).
Status chip change after PATCH : AnimatedSwitcher icon morph m-fast.
Every interactive element responds ≤ 100 ms (08 §6 ).
Network-bound actions always pending-visible — never silent.
Form save double-tap prevented; deactivate dialog requires explicit confirm (typed
confirm of employeeNumber NOT required — soft-delete is reversible server-side;
05_Global_Information_Architecture.md §5 rule applies only to irreversible purge).