Skip to content

Chore: onboarding crosssell subtitle marquee - #3046

Merged
StylianosGakis merged 12 commits into
feat/onboardingfrom
chore/onboarding-crosssell-subtitle-marquee
Aug 12, 2026
Merged

Chore: onboarding crosssell subtitle marquee#3046
StylianosGakis merged 12 commits into
feat/onboardingfrom
chore/onboarding-crosssell-subtitle-marquee

Conversation

@StylianosGakis

Copy link
Copy Markdown
Member

StylianosGakis and others added 7 commits August 12, 2026 13:33
Long subtitles (common in English) wrapped to a second line, giving the
bundle-discount cross-sell rows varying heights and uneven pillow spacing.
Make the subtitle a single marquee line so it scrolls instead. Titles are
left free to wrap. Inter-row spacing is unchanged.
Replace basicMarquee with a custom AutoScrollingText that scrolls a too-wide
subtitle to its end, pauses, then scrolls back to the start and pauses again,
looping. basicMarquee only loops one direction with an arbitrary gap before the
text re-enters from the right; this reveals the whole line and returns, matching
the iOS behaviour. Scroll duration scales with the hidden overflow so the speed
stays constant. Subtitles that already fit do not move.
Repackage the ping-pong auto-scroll as Modifier.autoScrollingMarquee(), a
LayoutModifierNode that measures its content unbounded, reports the container
width, clips, and animates the placement offset. Applies directly to HedvigText
like basicMarquee, dropping the wrapping Box and the style/color pass-through.
Promote Modifier.autoScrollingMarquee() from feature-onboarding to the shared
design-system-hedvig commonMain so any surface can reuse it. Now public and
KMP-common (available to iOS too).
@StylianosGakis
StylianosGakis requested a review from a team as a code owner August 12, 2026 13:02
Lay the cross-sell rows out with a small custom Layout that measures every row
once and sizes them all to the tallest, centring each row's content in its cell.
A single two-line title lifts every row to the same height, so the pillows and
See price buttons keep an even vertical rhythm instead of drifting with each
row's text. One measure pass, so heights are uniform on the first frame with no
relayout. When no title wraps, the tallest equals the rest and nothing changes.
@StylianosGakis
StylianosGakis merged commit 0faf166 into feat/onboarding Aug 12, 2026
4 checks passed
@StylianosGakis
StylianosGakis deleted the chore/onboarding-crosssell-subtitle-marquee branch August 12, 2026 17:08
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.

2 participants