Fix Dax legs cut off on the onboarding end CTA#8955
Open
lmac012 wants to merge 2 commits into
Open
Conversation
c0393b0 to
03909e5
Compare
The end CTA's waving Dax sits at the bottom of the new-tab scroll viewport, and its asset has no legs - so it needs to sit flush against the input field to read correctly. The content offset reserved the full input-widget height as NTP bottom padding, but the widget extends below the NTP container (into the nav-bar area), so it over-reserved and left a dead gap above the input. Reserve only the height by which the input card actually overlaps each content target (target bottom up to the card's top). The NTP/scroll viewport now ends at the card's top, so the Dax extends down to it and its legless bottom is clipped right behind the card - no gap. This also removes the dead space above the input for all bottom-address-bar NTP content. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
With a bottom address bar the end-CTA waving Dax is tucked behind the input card, but its legless asset left the left leg poking past the card's left edge/corner. Shift the DAX_END Dax right (translationX -40 -> -30), only when the address bar is at the bottom; a top address bar keeps the original position. The DAX_DUCK_AI_END Dax sits clear, so it's left unchanged. Gated in CtaViewModel via settingsDataStore.omnibarType. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
03909e5 to
cbd9838
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Task/Issue URL: https://app.asana.com/1/137249556945/task/1215937292229504
Description
The waving Dax on the onboarding end CTA has no legs in its asset, so it needs to sit flush against the bottom input field to read correctly. With a bottom address bar it floated above the input with its body cut off, because the new-tab content offset reserved the full input-widget height — including the part of the widget below the NTP container — leaving a dead gap.
Now the offset reserves only the height by which the input card overlaps the content, so NTP content (and the Dax) sits at the input card's top. The
DAX_ENDDax is also nudged right (bottom address bar only) so both legs tuck behind the card. TheDUCK_AI_DAX_ENDDax doesn't need similar nudge, because it is shown on top of input toggle, which is wider and covers his legs already.Steps to test this PR
Onboarding end CTA — bottom address bar
Top address bar (regression)
UI changes
Note
Low Risk
Localized UI layout and onboarding CTA positioning; no auth, data, or API changes.
Overview
Fixes the onboarding “You've got this” end CTA when the address bar is at the bottom with the native input widget: waving Dax was floating above the field with his body cut off because new-tab content reserved padding for the full widget height instead of only the overlap with the input card.
NativeInputLayoutCoordinatornow computes bottom content padding from how far each target view extends below the input card’s top (using window positions for the card and content), including during widget enter/exit animation frames. That removes the dead gap under the card so NTP/onboarding content—and Dax—sit flush with the card top.DaxEndBrandDesignUpdateBubbleCtareceivesisOmnibarBottomfromCtaViewModeland nudges Dax slightly right (-30dpvs-40dp) on bottom omnibar only so both legs tuck behind the narrower address bar.Reviewed by Cursor Bugbot for commit cbd9838. Bugbot is set up for automated code reviews on this repo. Configure here.