Overscroll Gestures demo

Summary: Enables revealing hidden content in response to overscroll gestures at scroll boundaries. This allows patterns like side menus, bottom sheets, and swipe-to-dismiss to be built with CSS alone.

Demo 1: Side Menu

Overscroll at the left edge reveals the side menu.

Main Content

Swipe left to reveal the menu

.container {
  overscroll-area: --side-menu;
}
.side-menu {
  overscroll-position: --side-menu;
}

Demo 2: Bottom Sheet

Overscroll at the bottom edge reveals the bottom sheet.

Content Area

Swipe up to reveal the bottom sheet

Bottom Sheet

Additional options and actions here.

.container {
  overscroll-area: --bottom-sheet;
}
.bottom-sheet {
  overscroll-position: --bottom-sheet;
}

Demo 3: Swipe to Dismiss

Swipe the card left or right to reveal actions.

Delete
Swipe me left or right
Archive
.container {
  overscroll-area: --dismiss-left, --dismiss-right;
}
.action-left {
  overscroll-position: --dismiss-left;
}
.action-right {
  overscroll-position: --dismiss-right;
}

HTML Attribute Alternative

The same relationship can be defined using HTML attributes instead of CSS.

<div id="container" overscroll-container>
  <nav overscroll-for="container">Menu</nav>
  <main>Content</main>
</div>

This browser does not support overscroll-area yet.

This browser supports overscroll-area!

Run Chrome with --enable-blink-features=CSSOverscrollGestures flag to test (if available). 2026/04/05