Problem
DataGridStagingToolbar contains custom animated buttons with a hardcoded duration and missing easing curve:
// lib/features/workspace/data_grid_staging_toolbar.dart:251
child: material.AnimatedContainer(
duration: const Duration(milliseconds: 150),
padding: const material.EdgeInsets.symmetric(...),
decoration: material.BoxDecoration(...),
...
)
Issues
- Accessibility / Reduced Motion Bypass: Because const Duration(milliseconds: 150) is hardcoded rather than passed through context.motionDuration(), users with OS disableAnimations or QueryaMotionLevel.reduced / QueryaMotionLevel.off still trigger this animation.
- Missing Easing Curve: AnimatedContainer defaults to Curves.linear when no curve is specified, creating a robotic transition rather than standard cubic deceleration (QueryaMotion.enter).
- Inconsistent Design System Tokens: The project standard for micro-state changes and hover surfaces is QueryaMotion.fast (120ms) and QueryaMotion.enter (Curves.easeOutCubic), or unified QueryaHoverSurface.
Proposed Solution
Refactor _ToolbarButton in lib/features/workspace/data_grid_staging_toolbar.dart to:
- Use duration: context.motionDuration(QueryaMotion.fast)
- Use curve: context.motionCurve(QueryaMotion.enter)
- Or replace with QueryaHoverSurface from lib/core/motion/querya_hover_surface.dart.
Acceptance Criteria
- No hardcoded Duration in DataGridStagingToolbar
- Hover states use QueryaMotion.fast with QueryaMotion.enter
- Reduced motion and animation-disabled settings properly turn off or halve the transition
Reactions are currently unavailable
Problem
DataGridStagingToolbar contains custom animated buttons with a hardcoded duration and missing easing curve:
Issues
Proposed Solution
Refactor _ToolbarButton in lib/features/workspace/data_grid_staging_toolbar.dart to:
Acceptance Criteria