Skip to main content

Mobile: Sheet

A sheet is a native mobile container that slides up from the bottom of the view, used for focused interactions like filters, forms, or contextual details without leaving the current screen.

Written by Sofia Maconi

A sheet is a container that slides up from the bottom of a native mobile view, sitting above the current content while keeping it partially visible. Sheets are used for focused interactions that don't require leaving the current screen, such as filters, forms, or contextual details.

Example of a sheet element in a mobile app.

Sheets slide up from the bottom, keeping the view partially visible.

Sheets are similar to modals, but with an important difference: sheets are best when the context of the view behind them is still relevant. A map app displaying search results in a sheet is a classic example — users can scroll through results while continuing to see the map underneath.

Sheets are added directly to a view, functioning much like popups on the web.

Common uses

Sheets work well for:

  • Search results overlaid on top of a map or other visual content.

  • Filter and sort options that adjust what's shown in the underlying view.

  • Detail views that expand contextually without switching screens.

  • Quick forms like adding a note, sending a message, or confirming a small action.

  • Bottom navigation menus with expanded options.

Sheets vs. modals

Sheets and modals both provide focused, temporary experiences on top of a view, but they serve different purposes:

Feature

Sheet

Modal

Position

Slides up from the bottom

Presented as a full-screen overlay

Underlying view

Often partially visible

Typically fully hidden

Best for

Contextual actions where the background stays relevant

Fully focused tasks with no distraction

Dismissal

Swipe down or button

Swipe down or close button

Snap points

Multiple sizes possible

Full-screen only

Use a sheet when the user benefits from seeing the underlying view. Use a modal when the task requires the user's full focus.

How sheets behave

Sheets sit above the view content in their own layer. They can partially or fully cover the screen, depending on the size the user drags them to. Because the underlying view often stays visible, sheets are a natural way to show additional information without breaking the user's focus.

Sheets can hold any elements a regular group can, including forms, images, buttons, and other containers.

View types

The View type property determines how the sheet handles scrolling and content layout. By default, the sheet behaves like a group, acting as a container where you can add and manage elements freely.

When you set the view type to Vertical list or Section list, a pseudo child element is added to the element tree containing that list. Each list has its own data source, independent of the sheet's data source, letting you combine a single-record sheet with a list of items in the same layout.

View type

Description

Scrollable

The default option. The sheet's content scrolls vertically when it extends beyond the visible area. Best for sheets with mixed content, such as forms, detail views, or long-form information.

Not scrollable

The sheet's content is fixed to the size of the sheet and doesn't scroll.

Vertical list

Adds a vertical list to the sheet, letting it display a scrollable list of items. Useful when the sheet's primary purpose is to show a collection, like a list of options, contacts, or search results.

Section list

Adds a section list to the sheet, grouping items into named sections. Ideal for sheets that display categorized content, such as organized by category or by date.

Loading data into a sheet

Sheets can hold a data source, just like a regular group. This makes it easy to open a sheet with a specific piece of data loaded, such as showing details for the item a user just tapped.

Sheets, like views, support horizontal lists and section lists. Enabling either through the View type property adds it as a pseudo child element with its own separate list data source.

The sheet itself keeps its original single-record data source, which can still be referenced by other child elements. This lets you customize the horizontal or section list's data source to reflect the sheet's parent data, connecting the two without giving up either one.

Setting the data source directly

Set the sheet's Type of content and Data source directly. The sheet loads its data as soon as it's shown, based on an expression like Current User.

Pushing data with a workflow

Use the Display data in a group action to load data in response to a user action, such as tapping an item in a list.

Pushing data to a sheet using a workflow action.

You can push data to a sheet as a result of user action, by using the Display data in group action.

Showing and hiding sheets

Sheets are opened with the Show element action. Bubble applies a native slide-up animation automatically, giving the sheet the familiar mobile feel.

To close a sheet, either use the Hide an element action or let the user dismiss it by swiping down (when Swipe to close is enabled).

Snap points

Snap points define the sizes a sheet can settle at. When you set snap points, users can drag the sheet up or down to switch between them, and the sheet snaps to the nearest one when released.

Each sheet has a default snap point that determines the size it opens to. Snap points are especially useful for sheets with a lot of content, or for scenarios where users may want to move the sheet out of the way to interact with what's behind it.

Controlling the backdrop

Sheets support several properties for controlling how the background of the view appears when the sheet is open. These are UI settings only and shouldn't be relied on for security.

Block interaction behind sheet

When enabled, users can't interact with the content behind the sheet. This is similar to the behavior of a popup on the web, and is useful when the sheet requires the user's full attention.

Backdrop color

Applies a solid color over the underlying view when the sheet is open, drawing focus to the sheet by dimming or tinting the background.

Backdrop blur

Applies a blurred overlay over the underlying view when the sheet is open, softening the background without hiding it entirely.

Interaction options

Sheets include a few properties for controlling how users can interact with them:

Swipe to close

When enabled, users can swipe the sheet downward to close it. Disabling this is useful when the sheet should only be dismissed by a specific button, such as a Cancel or Save action.

Drag handle

Shows a small horizontal bar at the top of the sheet, giving users a visual cue that the sheet can be dragged.

Styling sheets

Sheets can be styled like any other container. The top edge of a sheet often uses rounded corners to create the familiar "card sliding up" appearance common in mobile apps.

Sheet element styling properties.

You can style individual sheets by adjusting their different properties, or by connecting them to predefined styles and/or style variables.

You can style individual sheets by adjusting their different properties, or by connecting them to predefined styles and/or style variables.

Sheets and security

Sheets are a visual layer, not a security boundary. The elements behind a sheet are still present in the app's client-side code, and blocking interaction or blurring the background is a UI effect only.

Never rely on a sheet to hide sensitive information. Use privacy rules in the database and server-side conditions to control security.

FAQ: Sheets

How is a sheet different from a modal?

Sheets slide up from the bottom and often leave the underlying view partially visible, keeping context in view. Modals take over the full screen and are better for fully focused tasks where the underlying view isn't relevant.

How is a sheet different from a popup on the web?

Sheets are the native mobile equivalent of popups. They behave similarly, but with native mobile behaviors like swipe-to-close, snap points, and the familiar slide-up animation.

Can users close a sheet by swiping?

Yes, if Swipe to close is enabled. Disable it when you want to control its visibility using workflows.

Can I have multiple snap points on a sheet?

Yes. Define multiple snap points to let users drag the sheet between different sizes. The sheet snaps to the nearest one when released.

Can I load data into a sheet?

Yes. Set the Type of content and Data source on the sheet. You cannot load data into sheets using a workflow action.

You can change the data source based on specific criteria by using conditionals.

Can I have more than one sheet on a view?

Yes. You can add multiple sheets to a view and open the one that fits the current context. Only one sheet should be visible at a time to avoid overlapping.

Can I animate a sheet as it opens?

Sheets use a native slide-up animation automatically.

Can I block interaction with the view behind the sheet?

Yes. Enable Block interaction behind sheet to prevent users from tapping or scrolling the content underneath.

Can I dim or blur the view behind the sheet?

Yes. Use Backdrop color to apply a tint or Backdrop blur to apply a blurred overlay. These can be used separately or combined.

Are sheets available in web apps?

No. Sheets are mobile-only. On web, use popups or floating groups instead.

Did this answer your question?