From 56b9df38660c29801e7591a68938bcd583d46385 Mon Sep 17 00:00:00 2001 From: Ben Davis <45952064+bmdavis419@users.noreply.github.com> Date: Sun, 25 Oct 2026 22:05:12 -0700 Subject: [PATCH 1/3] fix(web): beta composer footer sits closer to the bottom edge Co-Authored-By: Claude Opus 5.5 --- apps/web/src/components/chat/ChatComposer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/components/chat/ChatComposer.tsx b/apps/web/src/components/chat/ChatComposer.tsx index 2420604c8aabb..fd1d1918d0f13 100644 --- a/apps/web/src/components/chat/ChatComposer.tsx +++ b/apps/web/src/components/chat/ChatComposer.tsx @@ -3852,7 +3852,7 @@ export const ChatComposer = memo(function ChatComposer(props: ChatComposerProps) data-chat-composer-footer="true" data-chat-composer-footer-compact={isComposerFooterCompact ? "true" : "false"} className={cn( - "flex min-w-0 flex-nowrap items-center justify-between gap-2 overflow-visible px-3 pb-3 sm:px-4 sm:pb-4", + "flex min-w-0 flex-nowrap items-center justify-between gap-2 overflow-visible px-3 pb-3 sm:px-4 sm:pb-4 redesign:pb-2 redesign:sm:pb-2", pendingUserInputs.length > 0 && "pt-2", isComposerFooterCompact ? "gap-1.5" : "gap-2 sm:gap-0", showMobilePendingAnswerActions && "hidden sm:flex", From fe8673896a3e616de20ba7b1969d16b2b63945ea Mon Sep 17 00:00:00 2001 From: maria-rcks Date: Tue, 27 Oct 2026 00:39:30 +0000 Subject: [PATCH 2/3] fix(web): preserve collapsed composer footer spacing --- apps/web/src/components/chat/ChatComposer.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/web/src/components/chat/ChatComposer.tsx b/apps/web/src/components/chat/ChatComposer.tsx index 599ffb38adbe1..976035f48979f 100644 --- a/apps/web/src/components/chat/ChatComposer.tsx +++ b/apps/web/src/components/chat/ChatComposer.tsx @@ -3741,7 +3741,8 @@ export const ChatComposer = memo(function ChatComposer(props: ChatComposerProps) data-chat-composer-footer="true" data-chat-composer-footer-compact={isComposerFooterCompact ? "true" : "false"} className={cn( - "flex min-w-0 flex-nowrap items-center justify-between gap-2 overflow-visible px-3 pb-3 sm:px-4 sm:pb-4 redesign:pb-2 redesign:sm:pb-2", + "flex min-w-0 flex-nowrap items-center justify-between gap-2 overflow-visible px-3 pb-3 sm:px-4 sm:pb-4", + !isComposerResting && "redesign:pb-2 redesign:sm:pb-2", pendingUserInputs.length > 0 && "pt-2", isComposerFooterCompact ? "gap-1.5" : "gap-2 sm:gap-0", showMobilePendingAnswerActions && "hidden sm:flex", From 14e05149c6e352e895793c3bc6e7743864f74fc2 Mon Sep 17 00:00:00 2001 From: maria-rcks Date: Tue, 27 Oct 2026 00:43:31 +0000 Subject: [PATCH 3/3] fix(web): animate the measured composer footer height --- .../src/components/chat/useComposerRestingTransition.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/web/src/components/chat/useComposerRestingTransition.ts b/apps/web/src/components/chat/useComposerRestingTransition.ts index 64b18b6778019..0da421db9aace 100644 --- a/apps/web/src/components/chat/useComposerRestingTransition.ts +++ b/apps/web/src/components/chat/useComposerRestingTransition.ts @@ -172,7 +172,8 @@ export function useComposerRestingTransition( const nextActionTop = action?.getBoundingClientRect().top ?? null; const nextControlsRect = controls?.getBoundingClientRect() ?? null; const nextControlsTop = nextControlsRect?.top ?? null; - const footerBottom = footer ? nextRect.bottom - footer.getBoundingClientRect().bottom : 1; + const nextFooterRect = footer?.getBoundingClientRect(); + const footerBottom = nextFooterRect ? nextRect.bottom - nextFooterRect.bottom : 1; const previousHeight = interruptedHeight ?? previousHeightRef.current; const targetChanged = interruptedTargetHeight === null || Math.abs(interruptedTargetHeight - nextHeight) >= 0.5; @@ -213,11 +214,11 @@ export function useComposerRestingTransition( pinnedOverlayRef.current = overlay; } - if (footer) { + if (footer && nextFooterRect) { footer.style.position = "absolute"; footer.style.top = "auto"; footer.style.bottom = `${String(footerBottom)}px`; - footer.style.height = "3rem"; + footer.style.height = `${nextFooterRect.height}px`; if (nextIsCollapsed) { footer.style.left = "auto"; footer.style.right = "1px";