MARKETPLACE
PLUGINS
BOTTOM SHEET - SWIPE UP DRAWER
Bottom Sheet - Swipe Up Drawer logo

Bottom Sheet - Swipe Up Drawer

Published August 2026
   •    Updated August 2026

Plugin details

A bottom sheet that slides up from the edge of the screen and snaps to the heights you define — the interaction you know from Apple Maps,
Google Maps and the iOS share menu.

Unlike a popup, it isn't just open or closed. Drag it by the handle
and it settles at 30%, 60% or full screen. Flick it and it jumps a
step. Swipe it down and it closes. At the lower stops the page behind
stays visible and clickable, so the sheet works as a companion panel
rather than a blocking overlay.

You design the contents as a normal Bubble group — repeating groups,
inputs, workflows, anything — and the plugin moves it into the sheet.
No separate template language, no rebuilding your UI.

FEATURES

Gestures
- Drag by the handle or anywhere in the content area
- Velocity-aware flicks: a quick swipe skips to the next stop
- Swipe down past the lowest stop to close
- Smooth handoff between scrolling the content and moving the sheet:
 the list scrolls when it can, the sheet moves when the list is
 already at the top

Snap points
- Any number of stops, set as percentages of screen height
- Optional backdrop that fades in as the sheet rises
- Close on backdrop tap, on Escape, or lock it open

Styling
- Background, handle colour, corner radius, max width
- Max width keeps it centred and phone-sized on desktop
- Adjustable flick sensitivity
- Respects prefers-reduced-motion

Control
- Actions: Open sheet, Close sheet, Snap to
- States: is open, snap index, snap percent, height px
- Events: opened, closed, snap changed

No external services, no API keys, no dependencies.

Demo:   https://bottomsheetswipe.bubbleapps.io/version-test
Editor: https://bubble.io/page?id=bottomsheetswipe&test_plugin=1788083812592x230084467771310100_current&tab=Design&name=index&elements=bTGMS

$20

One time

stars   •   0 ratings
0 installs  
This plugin does not collect or track your personal data.

Platform

Web & Native mobile

Contributor details

VibeBox logo
VibeBox
Joined 2022   •   4 Plugins
View contributor profile

Instructions

LIVE DEMO Preview: https://bottomsheetswipe.bubbleapps.io/version-test
Editor:  https://bubble.io/page?id=bottomsheetswipe&test_plugin=1788083812592x230084467771310100_current&tab=Design&name=index&elements=bTGMS
SETUP

Step 1 — Enable ID attributes
Go to Settings > General and turn on
"Expose the option to add an ID attribute to HTML elements".
The plugin finds your content by its ID, so this is required.

Step 2 — Build the sheet contents
Create a normal Group on your page and put anything you want inside
it: text, repeating groups, buttons, inputs.
Two rules for this group:
 - Give it an ID Attribute (for example: sheet_content).
   The field is at the bottom of the group's property editor.
 - Leave it VISIBLE on page load. The plugin hides it for you.
   Place it last on the page so it doesn't flash during loading.

Step 3 — Add the BottomSheet element
Drop the BottomSheet element anywhere on the page. It renders as a
dashed placeholder in the editor and is invisible at runtime, so its
size and position don't matter.

Step 4 — Connect them
In the element's properties, set "Content element id" to the ID you
gave the group in step 2 (sheet_content, without the # sign).

Step 5 — Set the snap points
"Snap points" is a comma-separated list of screen-height percentages.
 30,60,95   three stops (default)
 50         a single stop, like a half-height modal
 25,90      peek and full screen
The largest value is the sheet's full height. Order doesn't matter.

Step 6 — Open and close it
Add a workflow, then Element Actions > Open sheet.
Optionally pass "Snap index" to choose the starting stop
(0 = the lowest, 1 = the next one up, and so on).
Element Actions > Close sheet closes it.
Element Actions > Snap to moves it to a given stop while it's open.
Set "Open on load" to yes if it should be open from the start.

Step 7 — React to changes
Available workflow events:
 When BottomSheet A is opened
 When BottomSheet A is closed
 When BottomSheet A snap changed
Available states, usable anywhere:
 is open        yes/no
 snap index     number, 0-based, -1 when closed
 snap percent   number, the current stop as a percentage
 height px      number, current visible height in pixels
Example: hide a floating button while the sheet is expanded, using
"BottomSheet A's snap index > 0" as the condition.

OPTIONS

Closable          allow closing by swipe, backdrop or Escape.
                 Turn off for a panel that is always on screen.
Show handle       the grey grab bar at the top.
Show backdrop     dark overlay that fades in as the sheet rises.
Backdrop opacity  0 to 1, default 0.4.
Backdrop closes   tap the backdrop to close.
Bg color          sheet background, default white.
Handle color      default light grey.
Radius            top corner radius in px, default 16.
Max width         px. Keeps the sheet phone-width and centred on
                 large screens. Default 640.
Z index           raise it if the sheet appears under other elements.
                 Bubble popups sit around 1000.
Flick threshold   swipe speed in px/ms that counts as a flick.
                 Lower is more sensitive. Default 0.45.

TROUBLESHOOTING

The sheet is empty
 The group wasn't found. Check that ID attributes are enabled in
 Settings, that the ID matches exactly, and that the group is
 visible on page load. Open the browser console — the plugin logs
 a warning naming the ID it looked for.

The contents look stretched or misaligned
 Bubble positions the group relative to its original parent. The
 plugin overrides most of that, but if the group had a fixed width,
 set it to 100% width in the editor.

The sheet appears behind other elements
 Increase Z index.

Swipes feel too sensitive or too stiff
 Adjust Flick threshold. Try 0.3 for a light touch, 0.8 to require
 a deliberate flick.

Types

This plugin can be found under the following types:
Element   •   Event   •   Action

Categories

This plugin can be found under the following categories:

Resources

Support contact
Tutorial

Rating and reviews

No reviews yet

This plugin has not received any reviews.
Bubble