Skip to content

feat(ui): add Fluid spring primitives and workspace morph (#342) - #347

Merged
ZhuchkaTriplesix merged 2 commits into
devfrom
issue/342-fluid-motion-primitives
Jul 26, 2026
Merged

feat(ui): add Fluid spring primitives and workspace morph (#342)#347
ZhuchkaTriplesix merged 2 commits into
devfrom
issue/342-fluid-motion-primitives

Conversation

@ZhuchkaTriplesix

Copy link
Copy Markdown
Member

Summary

  • Add Fluid motion primitives: QueryaSpring / QueryaSpringController (interruptible retarget), QueryaFadeSlide, QueryaHoverSurface, QueryaSwitchingBody, QueryaStagger.
  • Wire empty↔connected workspace through keep-alive QueryaSwitchingBody so editor/shell state survives morphs.
  • Expand widget tests for Full/Reduced/Off + OS disableAnimations, retarget continuity, keep-alive, hover, and stagger.

This lands Phase A of #342 and the empty↔connected slice of Phase B. Remaining shell morphing (tab indicator, dialogs, stagger on recent list, etc.) stays on the epic.

Linked issue

Refs #342

Checklist

  • flutter analyze and flutter test pass locally
  • Scope matches the linked issue only (no drive-by refactors)
  • PR targets dev (not main, unless hotfix)

Test plan

  • flutter test test/core/motion/ test/features/main_screen/workspace_panel_layout_test.dart
  • Manual: empty workspace → connect stub/unsupported → disconnect; confirm fade/slide and no state loss feel
  • Manual: Settings motion Full / Reduced / Off — morph durations / springs behave accordingly
  • Manual: OS reduce-motion / disable animations — transitions snap or shorten

Made with Cursor

Land QueryaSpring/controller plus FadeSlide, HoverSurface, SwitchingBody,
and Stagger with broad widget coverage; wire empty↔connected via keep-alive
switching body so shell state survives morphs under Full/Reduced/Off.

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions github-actions Bot added epic Epic / umbrella issue accessibility Reduced motion, OS accessibility preferences ui User interface components and widgets labels Jul 26, 2026
CI Flutter rejects ThemeData as a const constructor; keep the theme
fallback coverage without const_with_non_const.

Co-authored-by: Cursor <cursoragent@cursor.com>
@ZhuchkaTriplesix
ZhuchkaTriplesix merged commit b77be25 into dev Jul 26, 2026
4 checks passed
ZhuchkaTriplesix added a commit that referenced this pull request Jul 27, 2026
feat(ui): add Fluid spring primitives and workspace morph (#342)
@ZhuchkaTriplesix ZhuchkaTriplesix self-assigned this Jul 27, 2026
@ZhuchkaTriplesix
ZhuchkaTriplesix deleted the issue/342-fluid-motion-primitives branch July 27, 2026 20:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

accessibility Reduced motion, OS accessibility preferences epic Epic / umbrella issue ui User interface components and widgets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant