bottomSheet (Beta)

The bottomSheet element slides up from the bottom of the screen to present additional content, actions, or contextual information. It enhances user interaction by providing a seamless display of information without navigating away from the current screen. Perfect for menus, filters, forms, or quick actions, the bottomSheet can be customized to suit various use cases while maintaining a smooth and intuitive user experience.

BottomSheets
BottomSheets

Configuration options

Core structure

jigId

Provide the jigId for the jigs that will be displayed when the bottomSheet is opened. - instanceId - Give the bottomSheet jig a unique identifier allowing you to reference the jig in expressions. - inputs- Specify the inputs related to the the jigs.

Other options

isPanDownToCloseEnabled

Enable pan down gesture to close the sheet. Swiping or dragging downward while maintaining contact with the screen closes the sheet. Setting this to false disables closing the sheet by dragging down; instead, tapping outside the sheet on the jig will close it.

backDrop

The backdrop property controls the visibility of the jig content displayed beneath the bottomSheet. appearsOnIndex - Specifies the ID of the snapPoint at which the backdrop will appear. This value is a number starting from 0 and depends on the number of snapPoints configured. Example snapPoints configured: snapPoints: - 30% - 50% Example backdrop configuration: backdrop: appearsOnIndex: 0 disappearsOnIndex: 1 disappearsOnIndex - Specifies the ID of the snapPoint at which the backdrop will disappear. Like appearsOnIndex, the value starts at 0 and corresponds to the configured snapPoints. isVisible - Determines whether the backdrop is enabled.- true - Enables the backdrop, adding a grey overlay to the parent jig.- false - Disables the backdrop, rendering the parent jig without an overlay. Default: true. opacity - Sets the transparency level of the jig content under the bottomSheet. Acceptable values range from 0.1 (very transparent) to 1(fully opaque).

isDetached

When set to true, the modal detaches from the jig and slides up independently from the bottom of the screen.

initialValue

Setting the initialValue with the jigId ensures that the bottomSheet is open when the parent jig loads.

position

Determine the open position of the bottomSheet. Options are left, middle or right. Note: This property is specific to tablets.

snapIndex

Specifies the initial snapPoint to which the bottomSheet should open. The value is a number starting from 0 and corresponds to the configured snapPoints.

snapPoints

Defines the points where the bottomSheet will snap when opened. These points should be configured in ascending order, from the smallest to the largest, and are set as percentages. Examples:

  • The bottomSheet covers the entire jig: snapPoints: - 100% The bottomSheet covers the 30% on first snap and 60% on the second snap snapPoints: - 30% - 60%

width

Select the width of the bottomSheet from small, medium, or large. Note: This property is specific to tablets.

Considerations

  • Multiple bottomSheets: Multiple bottomSheets can be configured. When doing so, the action.go-to for the second bottomSheet must be configured in the parent jig. Refer to the Multiple BottomSheets example below.

  • Order of actions: When configuring multiple actions, carefully consider the order of the action list. Certain actions should be executed before the action.go-to that opens the bottomSheet. For instance, a execute-entity action to save data should be performed before opening the bottomSheet.

  • Testing: Configuring the bottomSheet requires careful setup and testing to ensure the jig content displays correctly and the bottomSheet renders as expected. Test on multiple devices to confirm the bottomSheet functions properly across all supported devices.

  • Global properties: BottomSheet properties can be set globally, applying the same settings to all jigs specified in the bottomSheet. These properties are configured directly under the bottomSheet property.

  • Local properties (per jig): BottomSheet properties can also be set individually for each jig. For instance, when multiple bottomSheets are configured, each jig may require unique settings, such as different heights or content. These properties are configured directly under each jigId property.

  • Navigating to jigs: To navigate to another screen from the bottomSheet specify isModal: false to explicitly open the jig outside of the bottomSheet.

  • Retrieving Outputs from the bottomSheet: When you navigate to a jig using the action.go-to to open the bottom modal (by setting isModal: true), you can access the outputs from that jig by referencing its instanceId in your context expressions. In the originating jig, use the syntax [email protected].[isntance-id-of-the-jig].outputs.[key-of-output] to retrieve specific output values. See the Accessing jig outputs from a modal example.

Examples and code snippets

Basic bottomSheet

Basic bottomSheet
Basic bottomSheet

Here is a simple example of a menu that is configured to open a bottomSheet with options to order the food. The Options jigId is specified under the bottomSheet property.

BottomSheet with pan down to close disabled

This example demonstrates how to disable the bottomSheet from being closed by swiping or dragging downward. To achieve this, set the isPanDownToCloseEnabled property to false. This property is configured at the global level under the bottomSheet property. In this example, the jig rendered in the bottomSheet includes an info-modal action, which is used to display information necessary for ordering food from the menu. To close the bottomSheet in this example, add a go-back action.

Pan down disabled
Pan down disabled

BottomSheet set to open by default when the parent jig opens

BottomSheet open by default
BottomSheet open by default

In this example, the bottomSheet opens automatically when the parent jig loads. This is achieved by setting the initialValue property with the corresponding jigId.

BottomSheet with backdrop

In this example, the backdrop of the bottomSheet completely obscures the menu screen. This is achieved by using the isVisible: true and maximum opacity: 1. Note: Setting isVisible: false allows the menu to be visible.

Backdrop
Backdrop

BottomSheet with backdrop that appears & disappears on index

Backdrop set to disappear
Backdrop set to disappear

This example demonstrates how to configure the backdrop of the bottomSheet to appear at a specific snapPoint and disappear at another. Use the appearsOnIndex and disappearsOnIndex properties, which correspond to the indexes of the snapPoints. The snapIndex property specifies the initial snapPoint at which the bottomSheet will open.

Detached bottomSheet

In this example the bottomSheet is detached from the main parent jig, giving it a floating effect. This functionality is achieved by setting the isDetached property to true.

Detached bottomSheet
Detached bottomSheet

BottomSheet with snapPoints

BottomSheet with snapPoints
BottomSheet with snapPoints

This example demonstrates how to configure three snap points for the bottomSheet using the SnapPoints property. The bottomSheet will initially open at 20% of the screen. When panned up, it will expand to cover 40%, and finally, 60% of the screen. Note: Snapoints should be configured in ascending order, from the smallest to the largest.

Multiple bottomSheets with local properties set

This example demonstrates that two jigs can be opened sequentially in the bottomSheet. Each jig is configured with its own local properties to ensure the bottomSheet adjusts and renders the content correctly.

Note: The go-to action for the second bottom sheet jig is configured within the YAML of the parent jig.

The first bottom sheet jig is set to open by default using the initialValue property.

Multiple bottomSheets
Multiple bottomSheets

Last updated

Was this helpful?