Skip to content

Keep the header at full height, and make its white background span the page - #242

Open
mlaetitia wants to merge 3 commits into
mainfrom
fix/header-shrink-on-scroll
Open

mlaetitia wants to merge 3 commits into
mainfrom
fix/header-shrink-on-scroll

Conversation

@mlaetitia

@mlaetitia mlaetitia commented Sep 25, 2026 •

Copy link
Copy Markdown
Collaborator

Related to #

Proposed changes

  • Shrink the logo after 40px of scrolling instead of 100px, and keep the header at full height so nothing below it moves.
  • Make the white background span the full page width whenever the header is white, scrolled or with a megamenu open.
  • Centre the logo and nav in the scrolled header, which an unbalanced top padding was pushing low.
  • Hold the logo column at a fixed width so the menu no longer reflows from two rows to one when the logo shrinks, and offset the header by the admin bar height in both states so logged-in users do not see it drop 32px.

Why are these changes being made?

  • The header is sticky but still sits in flow, so shrinking it lifted the page and the nav appeared to jump on a small scroll.
  • The design asks for a full-width white background. The theme insets the page wrapper by 5vw above 1200px, and the background was painted on the header box, so it stopped short of both edges. It now sits on a layer that escapes that inset, the same way the megamenu panel already did.

Testing instructions

  • Above 1200px, scroll down and back up: the white background reaches both edges, and only the logo changes size. The menu keeps its rows and nothing shifts.
  • Do the same logged in, with the admin bar showing.
  • Hover a megamenu item, scrolled and unscrolled: white veil and page dim as before, with its bottom border.
  • Check an AI template page scrolled: the green trim spans the page with the white.
  • Check a dropdown while scrolled: it opens instead of being clipped.

🤖 Generated with Claude Code

https://claude.ai/code/session_011rCHPCdbV5C5dDJjEmMDuy

mlaetitia and others added 3 commits September 25, 2026 10:32
The header shrank only after 100px of scrolling, and a single threshold meant
the 25px the page lifts on shrinking could be handed back by scroll anchoring,
re-crossing the bound and toggling the class repeatedly. The threshold to beat
now depends on which state the header is in, so no correction can reach the
other bound, and the handler runs once per animation frame on a passive
listener. Mobile and desktop share one path; the mobile header no longer grows
back mid-page on an upward scroll.

max-height had no length to animate from, so the shrink snapped rather than
eased; the base rules now set one, and the transitions name the properties that
actually change.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rCHPCdbV5C5dDJjEmMDuy
(cherry picked from commit a3ef8d6)
…e page

The header is sticky but sits in flow, so shrinking it moved everything below it
and left the nav drifting up on a small scroll. It now holds its height and only
the logo shrinks, which also removes the content shift that made the class
toggle in a loop, so the scroll handler needs a single threshold again.

The white background moved off the header box onto a veil that escapes the
wrapper's 5vw inset, so it reaches both edges of the page as the design asks.
The megamenu panel already did this; both now share one mixin, and the AI
template's green trim rides along with it.

Along the way: the row is centred again now that nothing overrides the
unbalanced top padding, dropdowns are no longer clipped while scrolled, and the
1200px breakpoint no longer falls in both branches at once.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rCHPCdbV5C5dDJjEmMDuy
(cherry picked from commit 68bb1b1)
Three things still shifted when the header went small. The logo column took its
width from the logo, so shrinking the logo handed the nav that width and the
menu reflowed from two rows to one. The admin bar offset applied only to the
small state, so logged-in users saw the whole header drop 32px the moment the
class flipped. And the menu links were re-padded, left over from when the header
itself got shorter.

The column now holds its width, the offset applies in both states, and the link
padding is gone. Only the logo changes, which is the point.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011rCHPCdbV5C5dDJjEmMDuy
(cherry picked from commit 3c36769)
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