Skip to content

ModalSideSheet

Signature

@Composable
fun ModalSideSheet(
onDismissRequest: () -> Unit,
modifier: Modifier = Modifier,
sheetState: SideSheetState = rememberSideSheetState(),
sheetMaxWidth: Dp = SideSheetDefaults.SheetMaxWidth,
edge: SideSheetEdge = SideSheetEdge.End,
gesturesEnabled: Boolean = true,
shape: Shape = SideSheetDefaults.expandedShape(edge),
shadowElevation: Dp = SideSheetDefaults.ModalElevation,
colors: SideSheetColors = SideSheetDefaults.colors(),
dragHandle: @Composable (() -> Unit)? = null,
content: @Composable ColumnScope.() -> Unit,
)

Parameters

ParameterTypeDefaultDescription
onDismissRequest() -> UnitRequiredCalled when the scrim is tapped or the sheet is swiped away
modifierModifierModifierModifier applied to the sheet surface
sheetStateSideSheetStaterememberSideSheetState()State controlling visibility and drag
sheetMaxWidthDp360.dpMaximum width of the sheet
edgeSideSheetEdgeEndWhich edge the sheet slides from
gesturesEnabledBooleantrueWhether swipe-to-dismiss is enabled
shapeShapeInner edge rounded 28dpShape of the sheet surface
shadowElevationDp1.dpShadow elevation for the sheet
colorsSideSheetColorsSideSheetDefaults.colors()Color configuration
dragHandle@Composable (() -> Unit)?nullOptional drag handle composable
content@Composable ColumnScope.() -> UnitRequiredSheet content

Behavior

  • Renders in a Popup above the current content
  • Animates in from the specified edge on composition
  • Scrim tap or swipe-to-dismiss triggers onDismissRequest
  • Supports SideSheetEdge.Start and SideSheetEdge.End with automatic RTL handling
  • Accessibility: announces as “Side sheet” pane with dismiss action