933 B
933 B
Motion Physics Rule
All M3 Expressive animations must use physics-based springs instead of fixed durations/easing where possible.
Spatial Springs
Use for movement, position, and layout changes.
- Goal: Mirror real-world object physics.
- Flutter Implementation:
Curves.elasticOut,Curves.bounceOut, orSpringSimulation. - Primary Curve:
Cubic(0.34, 1.56, 0.64, 1)(The Expressive Curve).
Effects Springs
Use for non-spatial properties like color, opacity, and scale.
- Goal: Smooth, responsive transitions.
- Flutter Implementation:
Curves.easeInOutCubicorCurves.fastOutSlowIn.
Standards
- Interactive Feedback: All touch interactions must trigger a scale or translation response using a Spatial spring.
- Speed: Response must be immediate (<50ms start) even if the settling takes longer.
- Co-ordination: Co-ordinate visual motion with
HapticFeedback.lightImpact().