Drawer: Forms and the keyboard
Wrap <DrawerContent /> in <DrawerVirtualKeyboardProvider /> when a bottom drawer holds text fields. On phones, the focused field scrolls into view above the software keyboard instead of hiding behind it. Keep the fields in <DrawerBody /> so the header and footer stay put.
This adds the example as components/examples/drawer/keyboard.tsx, together with the Drawer component and the HextaUI theme tokens it needs.
pnpm dlx shadcn@latest add https://hextaui.com/r/drawer-keyboard.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 |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <button> |
| Prop | Type | Default |
|---|---|---|
render | ReactElement | (props, state) => ReactElement | <button> |
Every prop is in the Drawer API reference.
- Directions
- Snap points
- Scrollable content
- 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.