FullViewSnap

Available for React

A root viewport scroll wrapper for CSS scroll snapping, with integrated navigation and reusable UI components. Native momentum and snap points, cross-platform tested. Open source under the MIT license.

View on GitHub

See it for yourself

Why FullViewSnap?

Unlike many JavaScript scroll plugins that recreate scrolling, this wrapper uses native CSS scroll snapping so touch gestures stay smooth and performant. It detects browser support and device capabilities so you deliver the best native experience without fighting snap points.

Browser support

Cross-platform tested. Minimum versions from the package README.

SafariSafari16 (Ventura)
EdgeEdgeEdge 85+
SamsungSamsungAndroid 9+
FirefoxFirefox110+
ChromeChrome85+
iOS SafariiOS Safari14+
Chrome iOSChrome iOS132+ (iOS 16+)
Firefox iOSFirefox iOS141+ (iOS 16+)
Chrome AndroidChrome Android128+ (Android 10+)
Firefox AndroidFirefox Androidv140+ (Android 9+)

Quick usage

Install from npm, then wrap your views with FullViewSnap and Controller.

npm install full-view-snap-react
import { FullViewSnap, Controller, FullView } from "full-view-snap-react";

<FullViewSnap
  hideScrollBars
  render={() => (
    <Controller>
      <FullView><h1>View 1</h1></FullView>
      <FullView><h1>View 2</h1></FullView>
    </Controller>
  )}
/>

Built by

Need help implementing FullViewSnap, integrating it into your stack, or advice on scroll-snap UX? We'd love to hear from you.

FullViewSnap is open source under the MIT License.