Drawer

React용 드로어 컴포넌트입니다.

examples/krds/drawer-demo.tsx
"use client"

import * as React from "react"

개요

Drawer is built on top of Vaul by emilkowalski.

설치

pnpm dlx shadcn@latest add https://krdscn.gwlee.kr/r/drawer.json

사용법

import {
  Drawer,
  DrawerClose,
  DrawerContent,
  DrawerDescription,
  DrawerFooter,
  DrawerHeader,
  DrawerTitle,
  DrawerTrigger,
} from "@/components/ui/drawer"
<Drawer>
  <DrawerTrigger>Open</DrawerTrigger>
  <DrawerContent>
    <DrawerHeader>
      <DrawerTitle>Are you absolutely sure?</DrawerTitle>
      <DrawerDescription>This action cannot be undone.</DrawerDescription>
    </DrawerHeader>
    <DrawerFooter>
      <Button>Submit</Button>
      <DrawerClose>
        <Button variant="outline">Cancel</Button>
      </DrawerClose>
    </DrawerFooter>
  </DrawerContent>
</Drawer>

구성

다음 조합으로 Drawer:

Drawer
├── DrawerTrigger
└── DrawerContent
    ├── DrawerHeader
    │   ├── DrawerTitle
    │   └── DrawerDescription
    └── DrawerFooter

예제

Scrollable Content

Keep actions visible while the content scrolls.

examples/krds/drawer-scrollable-content.tsx
import { Button } from "@/components/ui/button"
import {
  Drawer,

Sides

Use the direction prop to set the side of the drawer. Available options are top, right, bottom, and left.

examples/krds/drawer-sides.tsx
import { Button } from "@/components/ui/button"
import {
  Drawer,

Responsive Dialog

You can combine the Dialog and Drawer components to create a responsive dialog. This renders a Dialog component on desktop and a Drawer on mobile.

examples/krds/drawer-dialog.tsx
"use client"

import * as React from "react"

RTL

RTL 지원을 활성화하려면 RTL 설정 가이드를 참고하세요.

examples/krds/drawer-rtl.tsx
"use client"

import * as React from "react"

API 참조

Vaul documentation for the full API reference.