Skip to content

AdaptiveSheet

Signature

@Composable
fun AdaptiveSheet(
onDismissRequest: () -> Unit,
modifier: Modifier = Modifier,
sheetState: SideSheetState = rememberSideSheetState(),
widthBreakpoint: Dp = 600.dp,
sideSheetEdge: SideSheetEdge = SideSheetEdge.End,
sideSheetMaxWidth: Dp = SideSheetDefaults.SheetMaxWidth,
colors: SideSheetColors = SideSheetDefaults.colors(),
content: @Composable ColumnScope.() -> Unit,
)

Parameters

ParameterTypeDefaultDescription
onDismissRequest() -> UnitRequiredCalled on dismiss
modifierModifierModifierModifier for the sheet
sheetStateSideSheetStaterememberSideSheetState()State controlling visibility
widthBreakpointDp600.dpWidth threshold for side vs bottom sheet
sideSheetEdgeSideSheetEdgeEndEdge for the side sheet variant
sideSheetMaxWidthDp360.dpMax width of the side sheet variant
colorsSideSheetColorsSideSheetDefaults.colors()Color configuration
content@Composable ColumnScope.() -> UnitRequiredSheet content

Behavior

  • Uses BoxWithConstraints to measure available width
  • maxWidth >= widthBreakpoint → renders ModalSideSheet
  • maxWidth < widthBreakpoint → renders internal BottomSheetFallback
  • The 600dp default aligns with M3 Compact → Medium window size class boundary