diff --git a/packages/dashboard/app/components/ChatView.css b/packages/dashboard/app/components/ChatView.css index 11f4b8d1b..340159395 100644 --- a/packages/dashboard/app/components/ChatView.css +++ b/packages/dashboard/app/components/ChatView.css @@ -1105,8 +1105,14 @@ .chat-thread[style*="--keyboard-overlap"] { height: calc(var(--vv-height, calc(100dvh - var(--keyboard-overlap, 0px))) - var(--header-height)); max-height: calc(var(--vv-height, calc(100dvh - var(--keyboard-overlap, 0px))) - var(--header-height)); - transform: translateY(var(--vv-offset-top, 0px)); - will-change: transform; + /* The previous translateY(--vv-offset-top) compensated for iOS + shifting the visual viewport on focus, but it also amplified + jitter during a swipe — visualViewport scroll events update + --vv-offset-top rapidly, the transform follows, and the thread + jutters / shifts ~300px / exposes the body background. Dropping + the transform lets the browser place the thread where iOS + expects; height-shrink to vv-height still keeps it inside the + visible area. */ } /* On mobile, the "New Chat" affordance uses a full-width pinned footer. */