Design System Problems

Modal Bottom Sheet

January 15, 2026 • 5 min read

Modal Bottom Sheet

Modal bottom sheets are overlay panels that slide up from the screen bottom, presenting content or actions while maintaining context of the underlying screen. Both iOS and Android support bottom sheets with platform-specific conventions. Design systems must specify bottom sheet behavior, sizing, and interaction patterns for cross-platform consistency.

What Are Modal Bottom Sheets

Modal bottom sheets present secondary content or actions in a container anchored to the screen bottom. Users can interact with sheet content or dismiss the sheet to return to the main content. Sheets provide more space than action sheets while being less disruptive than full-screen modals.

iOS implemented sheet presentations with configurable detents starting in iOS 15. UISheetPresentationController provides standard bottom sheet behavior with customizable height stops.

Android bottom sheets are part of Material Design, available through BottomSheetBehavior and BottomSheetDialogFragment. Material bottom sheets support dragging between collapsed, expanded, and hidden states.

Both platforms support swipe-to-dismiss gestures, making sheets feel like lightweight overlays rather than committed modal contexts.

How Modal Bottom Sheets Work

iOS sheet presentation uses detents to define allowed heights. Common detents include medium (approximately half screen) and large (near full screen). Sheets can be locked to specific detents or allow dragging between them.

Bottom Sheet Patterns:

iOS Sheet Presentation (iOS 15+):
- Detents: .medium(), .large(), custom heights
- Dragging between detents
- Swipe down to dismiss
- Dimmed background (configurable)
- Grabber indicator at top

Android Bottom Sheet:
- States: COLLAPSED, EXPANDED, HIDDEN
- Peek height defines collapsed state
- Draggable between states
- Modal or standard variants
- Rounded top corners typical

Common Behaviors:
- Content scrolling within sheet
- Fixed header with scrolling content
- Action buttons at sheet bottom
- Swipe down dismissal
- Background tap dismissal (optional)
- Keyboard interaction for forms

Design Considerations:
- Height relative to content
- Backdrop dimming level
- Drag indicator visibility
- Animation timing and easing
- Safe area handling at bottom

Content organization within sheets follows patterns. Headers remain fixed while content scrolls. Action buttons often anchor at the bottom. Scrolling indicators help users understand when more content exists.

Interaction patterns include swipe gestures, tap outside to dismiss, and explicit close buttons. Sheets with forms must handle keyboard appearance, adjusting sheet height to keep inputs visible.

Sheet lifecycle affects underlying content. The presenting screen may dim, remain interactive, or become fully blocked depending on sheet configuration and design system specification.

Key Considerations

Common Questions

When should applications use bottom sheets versus other modals?

Bottom sheets suit contextual actions and short flows. Selecting options, viewing details, or completing brief forms work well in bottom sheets.

Full-screen modals suit focused tasks requiring significant attention. Multi-step flows, complex forms, or content requiring full context benefit from full-screen presentation.

Action sheets (iOS) or bottom sheets with limited options suit simple choice selection. Three to five actions presenting a quick choice need not fill a large bottom sheet.

Popovers suit quick selections anchored to specific elements on larger screens. iPad and desktop contexts may prefer popovers to bottom sheets.

How should design systems handle variable content heights?

Dynamic height based on content fits the sheet to what it contains. Short content produces shorter sheets; long content produces taller sheets.

Fixed detents provide predictable heights. Medium sheets always reach half-height regardless of content, with scrolling for content exceeding that height.

Content-aware detents calculate heights based on content but constrain to maximum heights. Content determines height up to a maximum, preventing overwhelming sheets.

Design systems should specify the approach and any height limits. Maximum height prevents sheets from becoming nearly full-screen when a full modal would be more appropriate.

How do bottom sheets handle scrolling content?

Scroll detection distinguishes swipe-to-dismiss from content scrolling. When scrolled to top, downward swipe dismisses. When not at top, downward swipe scrolls content.

Fixed headers remain visible during content scroll. User context persists without scrolling back to see where they are.

Scroll indicators help users discover scrollable content. Visual cues (shadows, gradient fade, scroll bar) indicate content continues beyond visible area.

Nested scrolling requires careful implementation. Sheets containing lists or scrollable regions need proper scroll coordination to avoid conflicting gestures.

Summary

Modal bottom sheets provide lightweight overlay panels for secondary content and actions. iOS and Android both support bottom sheets with platform-specific APIs. Design systems should specify sheet heights, swipe behavior, keyboard handling, and content organization patterns to ensure consistent implementation. Bottom sheets work best for contextual content; longer flows may warrant full-screen modals.

Buoy scans your codebase for design system inconsistencies before they ship

Detect Design Drift Free
← Back to Cross Platform Consistency