svelte-fullpage Svelte fullpage

Sections that snap, on the page's own scroll

A fixed header, full page sections and a footer on one ordinary document. Scroll, swipe, drag with the mouse or use the keyboard — nothing is intercepted.

Hiding a section removes it from the indicators immediately, because sections register by id rather than by mount order.

Slides use the same mechanism, one axis over

Swipe, scroll sideways, or focus the track and use the arrow keys.

scroll-snap-type: x mandatory

The track is a plain horizontal scroller, so momentum and rubber banding are the browser's.

Indicators are buttons

Real buttons in a labelled list, with aria-current and a visible focus ring.

Document scroll

The window scrolls, so pull to refresh, the collapsing URL bar, find in page and scroll restoration all keep working.

No hijacking

The wheel is never intercepted and the active section comes from an IntersectionObserver. A mouse drag pans the same native scroll, and lets go of the snapping only while the button is down.