fix(docsite): keep the hero's aurora glow pinned on mobile - #5544
Closed
imdreamrunner wants to merge 1 commit into
Closed
fix(docsite): keep the hero's aurora glow pinned on mobile#5544imdreamrunner wants to merge 1 commit into
imdreamrunner wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
requested review from
cvkxx,
ernestt,
kentonquatman and
rubyycheung
August 26, 2026 03:37
imdreamrunner
force-pushed
the
fix/hero-glow-stays-pinned
branch
from
August 26, 2026 03:45
d7081c3 to
3799df9
Compare
page, which is what let the overscroll suppression retreat to desktop widths and gave mobile its pull-to-refresh back. That part is right and stays. But unpinning also changed how the hero looks: the aurora blobs sit low in the glow's 1050px box, so a glow that scrolls with the hero walks them up through the viewport instead of holding them near the bottom edge. Mid-scroll the mobile home page is now visibly warmer — 20-25% of pixels shifted by 10/255 or more, peaking at 51/255. Being bounded and being pinned are not in conflict; the hero already had a layer that is both. cardsLayer is sticky and zero-height, so it pins to the viewport exactly like fixed while the hero is on screen, and stops existing once the band has scrolled by. The glow moves into it (renamed pinLayer, since it now carries both) as an absolute child, painting under the cards. Below 1024px the glow is therefore pinned again, and still cannot reach the overscroll gap. At and above 1024px nothing changes: the glow stays fixed with heroContent and the stage, and the desktop rule is untouched. Measured against the pre-#5392 appearance on this same build, at ten scroll offsets each: 0 differing pixels at 390x844, 900x1200 and 1280x900, max channel delta 0/255. Hero layers still reaching the viewport bottom at page end on mobile: 1 before, 0 after.
rubyycheung
requested changes
Aug 26, 2026
Contributor
Author
|
We will keep the current behavior in doc site~~ |
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.

Follow-up to #5415. Keeps its fix; restores the appearance it changed.
What happened
#5415 stopped the aurora glow painting past the end of the page below 1024px, which is what let
overscroll-behavior-y: noneretreat to desktop widths and gave mobile back its pull-to-refresh. That is right and stays.It did it by unpinning the glow —
position: fixed→absolutein ordinary flow. That also changed how the hero looks. The three aurora blobs sit low in the glow's 1050px box (65–85% down), so:So mid-scroll the mobile home page is now visibly warmer than it was. Scroll the home page to ~600px on a phone and compare against the deployed site before yesterday: the cream wash behind the cards is new.
rgb(248,244,237)→rgb(243,223,186)The middle panel is what is deployed today. The right panel is the difference, amplified 8×.
This was not visible in #5415's verification because computed styles at a single scroll position cannot show it, and it is not visible to
pixelmatchat default settings either — its perceptual threshold discards a soft wash of exactly this kind. It needs a raw channel-delta check.The fix
Bounded and pinned are not in conflict, and the hero already had a layer that is both:
cardsLayerisposition: sticky; height: 0. Sticky pins to the viewport exactly like fixed while the hero is on screen, and stops existing once the band has scrolled by — so it cannot reach the overscroll gap.The glow moves into that layer as an absolute child, painting under the cards. The layer is renamed
pinLayer, since it now carries both.fixedalongsideheroContentand the stage, and the desktop rule is untouchedNet diff against
mainis small: the glow's element moves inside the layer that already existed, and two comments are corrected.Test plan
New test
apps/docsite/src/__tests__/hero-glow-pinning.test.tsasserts both halves of the contract, because each was traded away once:fixed)absolute)Verified by checking out each of those two states and running the test against it: the pre-#5392 source fails both, the merged source fails the pinning assertion, this branch passes both. The pinning half is structural — the glow's element has to be inside the sticky layer — because the property alone (
absolute) is identical in the broken and fixed cases.Measured on this build against the pre-#5392 appearance (the glow put back to
fixedin the same DOM),reducedMotion: 'reduce'so the theme reel holds one slide, canary banner removed so the header is production's 48px, ten scroll offsets per viewport:overscroll-behavior-ystaysautoon mobile — the #5392 fix is intact.apps/docsitevitest run(405 passed),tsc --noEmit, andpnpm lint:strict(0 errors) are green on currentmain.Related
2 → 2row above); this PR deliberately does not touch it.