Drawer
Betav1.0.0끌어내려(스와이프) 닫을 수 있는 바텀 시트. 모바일 UX 에 적합하며directionprop 으로 top / right / left 방향도 지원합니다. vaul 기반 (shadcn Drawer 구조).
Loading preview…
import {
Drawer,
DrawerClose,
DrawerContent,
DrawerDescription,
DrawerFooter,
DrawerHeader,
DrawerTitle,
DrawerTrigger,
} from "@/components/ui/drawer";
<Drawer>
<DrawerTrigger>Open drawer</DrawerTrigger>
<DrawerContent>
<DrawerHeader>
<DrawerTitle>Edit profile</DrawerTitle>
<DrawerDescription>...</DrawerDescription>
</DrawerHeader>
{/* ... body ... */}
<DrawerFooter>
<Button type="submit">Save changes</Button>
<DrawerClose>Cancel</DrawerClose>
</DrawerFooter>
</DrawerContent>
</Drawer>Installation
pnpm dlx shadcn@latest add https://groudit.com/r/drawer.jsonVariants
Directions
direction 로 4방향 슬라이드. bottom 은 드래그 핸들 표시, 모든 방향에서 끌어 닫기 지원.
Loading preview…
// direction prop 으로 방향 지정 (기본 "bottom")
<Drawer direction="right">
<DrawerTrigger>Open</DrawerTrigger>
<DrawerContent>
<DrawerHeader>
<DrawerTitle>Right drawer</DrawerTitle>
</DrawerHeader>
</DrawerContent>
</Drawer>Composition
Drawer (direction)
├── DrawerTrigger
└── DrawerContent
├── Drag handle (bottom)
├── DrawerHeader
│ ├── DrawerTitle
│ └── DrawerDescription
├── Body
└── DrawerFooter
└── DrawerCloseDependencies
설치 시 자동으로 함께 들어오는 의존성. 모든 버전은 정확히 고정되어 자동 업데이트를 방지합니다.
npm packages
| Package | Version |
|---|---|
| vaul | 1.1.2 |
| clsx | 2.1.1 |
| tailwind-merge | 3.6.0 |
Accessibility
이 컴포넌트는 WAI-ARIA dialog 패턴을 따릅니다.
Keyboard interactions
| Key | Description |
|---|---|
EnterSpace | 트리거에서 드로어 열기. |
Tab | 드로어 내부에서만 순환 (focus trap). |
Esc | 드로어 닫기 + 트리거로 포커스 복귀. |
Notes
- •DrawerTitle 필수 — 스크린리더가 드로어를 식별.
- •끌어내려 닫기(스와이프)는 포인터 사용자용. 키보드 사용자는 Esc / Close 버튼으로 닫기 제공.