# Bug report: mobile Safari can't scroll page footer into view (scroll snaps back)
## Steps to reproduce
1. On an iPhone, in Safari, open any Obsidian Publish site whose page is long enough to require scrolling (e.g. https://gerry.work/Home).
2. Scroll down towards the bottom of the page, holding your thumb on the screen partway through the gesture.
3. Release your thumb before reaching the very bottom.
## Expected result
The page stays scrolled to wherever it was released, same as normal iOS scroll behaviour, and the bottom of the page (including footer content) can be scrolled into view.
## Actual result
As soon as the thumb is released, the page springs back upward, hiding the bottom of the page (including the footer). Holding the page down with a thumb is the only way to keep the bottom in view; releasing always resets the scroll position upward.
- Only happens on pages tall enough to actually require scrolling — short pages that fit in one screen show the footer fine, with no bounce.
- Does not happen on desktop Chrome at any window width I tested.
- The site's mobile top bar (site name + hamburger menu, `.site-header`) stays visibly pinned to the top of the screen throughout the scroll gesture.
## What I checked before reporting
Using Chrome DevTools/remote inspection (desktop, resized to various widths, incl. 390px):
- `.site-header` computed `position` is `static` in every stylesheet rule I could find — no `fixed`/`sticky` rule for it exists in any loaded CSS, at any width.
- No inline `style` attribute is set on `.site-header`.
- The only `position: fixed` element found anywhere on the page is `.site-footer` (the small "Powered by Obsidian Publish" badge, bottom-right corner) — not full-width, doesn't overlap the content column, and not a likely cause.
- `document.body` / `document.documentElement` never get an `is-mobile` class or similar when resizing a desktop Chrome window — mobile behaviour must be gated by touch/UA detection inside the compiled `app.js` bundle (`https://publish.obsidian.md/app.js`), not by a CSS media query, so I couldn't reproduce the pinned-header behaviour from desktop Chrome no matter the viewport width.
- My site's own custom `publish.css`/`publish.js` (used via the vault's custom CSS/JS publish feature) contain no `overflow`, `position: fixed/sticky`, `scroll-snap`, or scroll event listeners that could cause this — ruled out as the source.
This strongly suggests the pinned header (and the resulting scroll-snap-back) is implemented in Obsidian Publish's own core `app.js`, active only under real mobile/touch conditions, and interacting with iOS Safari's handling of fixed-position elements during touch-scroll — a known category of WebKit bug when a fixed element is present alongside a scrollable body.
## Environment
- Site: https://gerry.work (Obsidian Publish, custom CSS/JS via vault publish.css/publish.js)
- Device: iPhone, Safari
- Reproduced on: long pages only (e.g. Home)
- Not reproduced on: short pages, desktop Chrome