Skip to content

Commit b48e641

Browse files
committed
fix(settings): adds hysteresis to header scroll threshold
Shrink at scrollY > 50, expand only at scrollY < 10. The 40px dead zone absorbs the ~32px content shift from header padding change, preventing the layout feedback loop where header resize triggers scroll position change which re-triggers header resize.
1 parent a4074e5 commit b48e641

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

src/app/components/settings/SettingsPage.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,9 @@ export default function SettingsPage() {
8484
onMount(() => {
8585
const onScroll = () => {
8686
if (document.documentElement.dataset.scrollLock) return;
87-
setScrolled(window.scrollY > 50);
87+
const y = window.scrollY;
88+
if (scrolled() && y < 10) setScrolled(false);
89+
else if (!scrolled() && y > 50) setScrolled(true);
8890
};
8991
window.addEventListener("scroll", onScroll, { passive: true });
9092
onCleanup(() => window.removeEventListener("scroll", onScroll));

0 commit comments

Comments
 (0)