Skip to content

fix(home-new): fix mobile hero stall, drop redundant logo/scroll cue - #521

Merged
mohanadft merged 3 commits into
mainfrom
fix/home-new-mobile-hero-stall
Aug 5, 2026
Merged

mohanadft merged 3 commits into
mainfrom
fix/home-new-mobile-hero-stall

Conversation

@mohanadft

@mohanadft mohanadft commented Aug 4, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Mobile hero stall (/home-new)

  • The mobile hero overlay showed a logo and a bouncing "Scroll down" hint, both fading in on a fixed 1-1.3s CSS animation-delay decoupled from the hero image's actual load state — this read as a stall/dead-air even on a fast connection with the image already painted.
  • The logo was a leftover from before the navbar was made alwaysVisible (fix(home-new): show nav bar immediately instead of after scroll #519) — it used to be the only branding shown pre-scroll; now the navbar shows the logo from the first frame, making the hero's copy redundant.
  • Replaced both with the headline + primary CTA sitting directly on the hero image (mirroring desktop's .hero-card glass panel), with a short mobile-only animation delay (.hero-mobile-fast) instead of the desktop-length stagger. The secondary "See what we've built" link stays as the first thing below the fold.
  • Removed the now-dead scroll-indicator/scrollBounce CSS (base rule, keyframes, no-js and reduced-motion overrides).

Qgiv donation form clipped mid-flow (/donate-new)

  • iframe.qgiv-embed had a height: 800px !important rule, which permanently overrides Qgiv's own postMessage-driven resize (the same mechanism ValidAid uses, fixed correctly in fix(donate-new): give ValidAid iframe a default height #520 without !important). Once a visitor advances past whatever fits in 800px, the rest of the form becomes invisible and unreachable, with no scrollbar exposed.
  • Plausible confirms the impact: /donate-new visitors average 3s on page and 1 lifetime completed donation via that page, vs 148s and 140+ on the old /donate.
  • Also added the missing data-lenis-prevent on the Qgiv containers, matching the convention already used for the ValidAid iframe and every other embedded widget on Lenis-scrolled pages.

Test plan

  • Load /home-new on a mobile viewport (< 810px): confirm headline + primary CTA appear promptly on the hero image, no logo/scroll-down artifact, no dead-air pop-in
  • Confirm desktop (≥ 810px) hero is unchanged
  • Confirm prefers-reduced-motion still shows everything at rest immediately
  • Confirm the "See what we've built" jump link below the fold still scrolls to #portfolio
  • On /donate-new, step through the full Qgiv flow (amount → details → payment → confirmation) on both desktop and mobile and confirm nothing is clipped/unreachable once the iframe needs to grow past 800px
  • Confirm the ValidAid (UK) variant on /donate-new still renders and resizes correctly

The mobile hero overlay showed a logo and bouncing "Scroll down" hint,
both fading in on a fixed 1-1.3s animation-delay decoupled from the
hero image's actual load state — this read as a stall even on a fast
connection. The logo was also a leftover from before the navbar was
always-visible (it used to be the only branding shown before scroll).

Both are replaced with the headline + primary CTA directly on the
hero image, matching desktop's hero-card hierarchy, with a much
shorter mobile-only animation delay.
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 4, 2026 •

Copy link
Copy Markdown

Deploying website with  Cloudflare Pages  Cloudflare Pages

Latest commit: 27e7fbf
Status: ✅  Deploy successful!
Preview URL: https://1d0b4968.website-aun.pages.dev
Branch Preview URL: https://fix-home-new-mobile-hero-sta.website-aun.pages.dev

View logs

iframe.qgiv-embed had a height: 800px !important rule, which
permanently overrides Qgiv's own postMessage-driven resize (the same
mechanism ValidAid uses, fixed correctly in #520 without !important).
Once a visitor advances past whatever fits in 800px, the rest of the
form becomes invisible and unreachable with no scrollbar exposed.

Plausible data backs this up: /donate-new visitors average 3s on
page and lifetime donations completed via that page is 1, versus
148s and 140+ on the old /donate. Also added the missing
data-lenis-prevent on the Qgiv containers to match the convention
already used for the ValidAid iframe and every other embedded widget
on Lenis-scrolled pages.
@mohanadft
mohanadft merged commit 7580150 into main Aug 5, 2026
5 checks passed
@mohanadft
mohanadft deleted the fix/home-new-mobile-hero-stall branch August 5, 2026 09:10
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