Drawer: Snap points
Pass snapPoints to rest a bottom drawer at preset heights. Numbers from 0 to 1 are fractions of the viewport, larger numbers are pixels, and strings take px or rem. The visible part always fits its content, so nothing hides below the screen.
This adds the example as components/examples/drawer/snap-points.tsx, together with the Drawer component and the HextaUI theme tokens it needs.
pnpm dlx shadcn@latest add https://hextaui.com/r/drawer-snap-points.jsonTo add only the component, follow the Drawer installation.
Props in this example
The Drawer props this example sets, from the API reference.
| Prop | Type | Default |
|---|---|---|
snapPointsHeights a vertical drawer can rest at. 0–1 is a fraction of the viewport, >1 is pixels, strings take px or rem. | (number | string)[] | – |
| Prop | Type | Default |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <button> |
Every prop is in the Drawer API reference.
- Directions
- Scrollable content
- Forms and the keyboard
- Nested
- Confirm from a drawer
- Responsive
- Non-modal
- Controlled
- Detached triggers
- Right to left
See them all, with keyboard support and accessibility notes, on the Drawer page.
- SheetA panel that slides in from any edge, with swipe-to-dismiss, scroll lock and stacked nesting.
- Alert dialogA confirmation dialog for destructive or important actions that waits for async work, and becomes a bottom sheet on phones.
- CommandA searchable list of actions, inline or as a ⌘K palette, with pages, shortcuts and highlighted matches.
- Context menuA menu of actions on right click or long press, with submenus, checkbox and radio items, and hold feedback on touch.
- DialogA window over the page for forms and focused tasks, with a pinned header and footer, nesting, and a swipeable bottom sheet on phones.
- Dropdown menuA menu of actions and options behind a button, with groups, submenus, checkbox and radio items, and shortcuts.