Skip to content

Fix Dax legs cut off on the onboarding end CTA#8955

Open
lmac012 wants to merge 2 commits into
developfrom
fix/lukasz/dax-legs-cut-off-onboarding
Open

Fix Dax legs cut off on the onboarding end CTA#8955
lmac012 wants to merge 2 commits into
developfrom
fix/lukasz/dax-legs-cut-off-onboarding

Conversation

@lmac012

@lmac012 lmac012 commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

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_END Dax is also nudged right (bottom address bar only) so both legs tuck behind the card. The DUCK_AI_DAX_END Dax 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

  • Set the address bar to the bottom, then run onboarding to the end ("You've got this") CTA
  • Confirm the Dax sits flush against the input field with both legs behind it — no gap, no cut-off body

Top address bar (regression)

  • Repeat with the address bar at the top and confirm the Dax is unchanged

UI changes

Before After
Screenshot_20260622_161555 Screenshot_20260622_145921

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.

NativeInputLayoutCoordinator now 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.

DaxEndBrandDesignUpdateBubbleCta receives isOmnibarBottom from CtaViewModel and nudges Dax slightly right (-30dp vs -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.

@lmac012 lmac012 force-pushed the fix/lukasz/dax-legs-cut-off-onboarding branch from c0393b0 to 03909e5 Compare June 22, 2026 14:24
@lmac012 lmac012 marked this pull request as ready for review June 22, 2026 14:25
lmac012 and others added 2 commits June 22, 2026 21:36
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>
@lmac012 lmac012 force-pushed the fix/lukasz/dax-legs-cut-off-onboarding branch from 03909e5 to cbd9838 Compare June 22, 2026 19:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant