- Accordion new
- ActionSheet new
- Alert new
- Alert Dialog new
- Angle Slider new
- Autocomplete new
- Avatar new
- Badge new
- Breadcrumb new
- Button new
- Button Group new
- Card new
- Carousel new
- Checkbox new
- Clipboard new
- Collapsible new
- Color Picker new
- Date Input new
- Date Picker new
- Dialog new
- DialogCaller new
- Drawer beta
- Editable new
- Empty new
- Field new
- Fieldset new
- File Upload new
- Filters new
- Floating Panel new
- Hover Card new
- Image new
- Image Cropper new
- Input new
- Input Group new
- Json Tree View new
- Kbd new
- Listbox new
- Marquee new
- Menu new
- Number Input new
- Pagination new
- Password Input new
- PhoneField new
- Pin Input new
- Popover new
- Progress Circular new
- Progress Linear new
- Qr Code new
- Radio Group new
- Rating Group new
- Scroll Area new
- ScrollSpy new
- Segment Group new
- Select new
- Separator new
- Sidebar new
- Signature Pad new
- Skeleton new
- Slider new
- Splitter new
- Steps new
- Switch new
- Table new
- Tabs new
- Tags Input new
- Textarea new
- Timeline new
- Timer new
- Toast new
- Toc new
- Toggle new
- Toggle Group new
- Tooltip new
- Tour new
- Tree View new
- Typography new
Drawer
Vue drawer panel that slides in from the edge for navigation, filters, or secondary content.
Installation
Install from the Vuzeno registry:
bunx --bun shadcn-vue@latest add https://vuzeno.com/r/drawer.json
npx shadcn-vue@latest add https://vuzeno.com/r/drawer.json
yarn dlx shadcn-vue@latest add https://vuzeno.com/r/drawer.json
pnpm dlx shadcn-vue@latest add https://vuzeno.com/r/drawer.json
Usage
<script setup lang="ts">
import { Drawer } from "@/components/ui/drawer";
</script>
<template>
<Drawer.Root>
<!-- … -->
</Drawer.Root>
</template>
Composition
Drawer.Root
├── Drawer.CloseTrigger
├── Drawer.Content
├── Drawer.Description
├── Drawer.Context
├── Drawer.Grabber
├── Drawer.GrabberIndicator
├── Drawer.Indent
├── Drawer.IndentBackground
├── Drawer.RootProvider
├── Drawer.Stack
├── Drawer.SwipeArea
├── Drawer.Title
├── Drawer.Trigger
Examples
Swipe Direction
Use the swipeDirection prop to control which edge the drawer slides in from.
Snap Points
Use the snapPoints prop to define intermediate positions the drawer can snap to.
Modal
Set modal to false to allow interaction with the rest of the page while the drawer is open.
Controlled
Use the open and onOpenChange props to control the drawer state.
Scrollable
No Drag Area
Apply the data-no-drag attribute to any element inside the drawer to prevent dragging from starting on it.
Non Draggable
Set draggable to false to disable drag-to-dismiss entirely.
Indent Background
Use Drawer.IndentBackground to create a visual indent effect on the page behind the drawer.
Multiple Triggers
Use the value prop on Drawer.Trigger to share a single drawer across multiple trigger elements. The onTriggerValueChange callback fires when a different trigger is activated.
Using the Root Provider
Use the useDrawer hook and Drawer.RootProvider to control the drawer from outside the component tree.
API
See Ark UI Drawer docs for full props and examples.