diff --git a/frontend/src/app/pages/AgentChat/tool-bubbles/DefaultToolBubble.tsx b/frontend/src/app/pages/AgentChat/tool-bubbles/DefaultToolBubble.tsx index 29e66e20..b6a57533 100644 --- a/frontend/src/app/pages/AgentChat/tool-bubbles/DefaultToolBubble.tsx +++ b/frontend/src/app/pages/AgentChat/tool-bubbles/DefaultToolBubble.tsx @@ -222,6 +222,10 @@ export const DefaultToolBubble: React.FC = ({ ) : ( { const t = Math.min((now - startTime) / duration, 1); - const ease = 1 - Math.pow(1 - t, 3); // cubic ease-out + // Quintic ease-out: leaves fast, lands soft. The old cubic at 150ms read as a snap; the eye + // reads the long tail as "the camera settled" rather than "the world jumped". + const ease = 1 - Math.pow(1 - t, 5); applyLive({ panX: start.panX + (target.panX - start.panX) * ease, panY: start.panY + (target.panY - start.panY) * ease,