🧭
Direction-aware
Slide drawers in from top, bottom, left, or right with the same API and gestures.
Touch-friendly bottom sheets with snap points, scaled background, nested drawers, and four-direction support. Built on Radix Dialog.
Slide drawers in from top, bottom, left, or right with the same API and gestures.
Multi-stop sheets with velocity-aware swipes, sequential mode, and overlay fade control.
Real touch physics for both axes. Adjustable close threshold and release velocity.
iOS-style stacked card effect by tagging a wrapper with one data attribute.
Run drawers without an overlay or nest one inside another with parent recede animation.
Inherits Radix focus management, accessibility, and the asChild slot pattern.
import { Drawer } from '@monetr/vaul';
export function MyDrawer() {
return (
<Drawer.Root>
<Drawer.Trigger>Open</Drawer.Trigger>
<Drawer.Portal>
<Drawer.Overlay />
<Drawer.Content>
<Drawer.Title>Make changes</Drawer.Title>
<Drawer.Description>Drag down or tap outside to dismiss.</Drawer.Description>
<Drawer.Close>Save</Drawer.Close>
</Drawer.Content>
</Drawer.Portal>
</Drawer.Root>
);
}