Skip to content

BottomSheet

A bottom sheet overlay that slides up from the bottom of the screen with configurable snap positions (detents), backdrop dimming, pan gestures, and automatic keyboard handling.

  • NuGet downloads for Shiny.Maui.Controls
ClosedOpen
ClosedOpen
<shiny:BottomSheetView IsOpen="{Binding IsSheetOpen, Mode=TwoWay}">
<VerticalStackLayout Padding="20" Spacing="10">
<Label Text="Sheet Content" FontSize="18" FontAttributes="Bold" />
<Label Text="Drag the handle or tap the backdrop to close." />
<Button Text="Close" Command="{Binding CloseSheetCommand}" />
</VerticalStackLayout>
</shiny:BottomSheetView>
<ContentPage>
<Grid>
<!-- Main page content -->
<ScrollView>
<VerticalStackLayout>
<Button Text="Open Sheet" Command="{Binding OpenCommand}" />
</VerticalStackLayout>
</ScrollView>
<!-- Bottom sheet overlays on top -->
<shiny:BottomSheetView IsOpen="{Binding IsOpen, Mode=TwoWay}">
<Label Text="Sheet content" />
</shiny:BottomSheetView>
</Grid>
</ContentPage>
PropertyTypeDefaultDescription
IsOpenboolfalseShow/hide the sheet (TwoWay bindable)
SheetContentView?nullContent displayed in the sheet (ContentProperty)
DetentsObservableCollection<DetentValue>Quarter, Half, FullSnap positions as ratios of available height
SheetBackgroundColorColorWhiteBackground of the sheet panel
HandleColorColorGreyDrag handle indicator color
SheetCornerRadiusdouble16Top corner radius
HasBackdropbooltrueShow dimming backdrop behind the sheet
CloseOnBackdropTapbooltrueTap backdrop to close
AnimationDurationdouble250Animation speed in ms
ExpandOnInputFocusbooltrueAuto-expand when an input is focused

Predefined snap points:

Static PropertyRatioDescription
DetentValue.Quarter0.2525% height
DetentValue.Half0.5050% height
DetentValue.ThreeQuarters0.7575% height
DetentValue.Full1.0Full height

Custom detent: new DetentValue(0.33) for 33%.

<shiny:BottomSheetView IsOpen="{Binding IsOpen, Mode=TwoWay}"
SheetBackgroundColor="#1E1E1E"
HandleColor="#888888"
SheetCornerRadius="24">
<shiny:BottomSheetView.Detents>
<shiny:DetentValue Ratio="0.33" />
<shiny:DetentValue Ratio="0.66" />
<shiny:DetentValue Ratio="1.0" />
</shiny:BottomSheetView.Detents>
<VerticalStackLayout Padding="20">
<Label Text="Custom Sheet" TextColor="White" />
</VerticalStackLayout>
</shiny:BottomSheetView>
EventArgsDescription
OpenedEventArgsSheet finished opening
ClosedEventArgsSheet finished closing
DetentChangedDetentValueSheet snapped to a different detent
  • Pan gesture — Drag up/down between detents; swipe past the lowest to close
  • Keyboard handling — Auto-expands when an Entry/Editor is focused, restores on dismiss
  • ScrollView integration — Scroll enabled only at the highest detent; disabled at lower detents for pan
  • Backdrop — Semi-transparent overlay that dims proportionally to sheet position
claude plugin marketplace add shinyorg/skills
claude plugin install shiny-maui@shiny

Coming soon — Copilot plugin install instructions will be added here.

View shiny-maui Plugin