Context
QueryaMotion foundation shipped in 0.4.4. After shell UX #339 (on dev / planned 0.4.11), tokens cover toast/tab strip/dialogs/trees, but major shell transitions are still hard-cuts.
Design / plan: Obsidian 06 — Планирование/Fluid morphing и QueryaMotion (based on dev post-#339).
Goal
Make the desktop shell feel continuous (morphing), without rewriting shadcn or blocking the 0.4.11 release.
Prefer: land after 0.4.11 packaging, or small non-blocking PRs on dev if release is delayed.
Workstreams
Phase A — Primitives (lib/core/motion/)
- QueryaFadeSlide (enter/exit + offset)
- QueryaHoverSurface (unified hover)
- QueryaSwitchingBody (preserve mounted children like CrossFadeStack)
- QueryaStagger (first-paint only, capped)
- Widget tests + honor Full/Reduced/Off + OS disableAnimations
Phase B — Shell morphing
- Empty hero ↔ connected workspace (workspace_panel / workspace_empty_hero)
- Tab strip sliding indicator (querya_tab_strip)
- Hero quick-start ↔ recent list transition
- Results idle → running → grid/error (no per-row scroll animation)
- Dialog/dropdown exit curves + fade-slide enter
- Theme animation tied to motion level
- Split-handle focus / sidebar drag-end settle (not mid-drag)
Phase C — Guardrails
- Update docs/perf-baseline.md scenarios @ 120 Hz
- Review rule: no magic UI Duration for animations
Non-goals
- Animating virtualized grid rows on scroll
- Replacing shadcn / expanding third_party for motion
- Rust core (parallel research track)
Depends on
Reactions are currently unavailable
Context
QueryaMotion foundation shipped in 0.4.4. After shell UX #339 (on dev / planned 0.4.11), tokens cover toast/tab strip/dialogs/trees, but major shell transitions are still hard-cuts.
Design / plan: Obsidian 06 — Планирование/Fluid morphing и QueryaMotion (based on dev post-#339).
Goal
Make the desktop shell feel continuous (morphing), without rewriting shadcn or blocking the 0.4.11 release.
Prefer: land after 0.4.11 packaging, or small non-blocking PRs on dev if release is delayed.
Workstreams
Phase A — Primitives (lib/core/motion/)
Phase B — Shell morphing
Phase C — Guardrails
Non-goals
Depends on