BottomSheet
Mobile-style sheet that rises from the bottom, with optional title and footer. The size prop (xs, sm, md, lg, xl) sets the sheet width and padding.
Import
Vue
import { UiBottomSheet } from '@ziyarago/ui/vue'Basic
Vue
<UiBottomSheet title="Select room" :open="open" @close="open = false"> Double room, 2 adults, breakfast included. </UiBottomSheet>
With footer
Vue
<UiBottomSheet title="Price breakdown" max-height="60vh" :open="open" @close="open = false" > Room 5 nights: $450. Taxes: $45. <template #footer>Total $495</template> </UiBottomSheet>
Sizes
Vue
<UiBottomSheet size="lg" title="Select room" :open="open" @close="open = false" > Double room, 2 adults, breakfast included. </UiBottomSheet>
API reference
Panel anchored to the bottom of the screen with a grab handle; use for mobile pickers and short forms.
Props
PropType and valuesDefaultDescription
openbooleanfalseShows the sheet when true; renders nothing when false.titlestring—Optional heading; also the aria-label.maxHeightstring | number'85vh'Maximum height: a CSS length or a number of pixels.sizexssmmdlgxl'md'Scale of sheet width (360 to 800 px) and padding.Slots
Vue: named slots. React: a prop with the same name; default is children.
defaultSheet content.footerSticky footer, e.g. buttons. Rendered only when provided.Events
Vue: @name. React: onName.
closeCalled on a click on the scrim or the Escape key.Notes
- The handle is decorative: it does not support dragging.
- There is no close button; always handle close (scrim click and Escape). Escape calls close; on open focus moves into the dialog, Tab is trapped inside it and focus returns to the previously focused element on close.