시트

시트 (Sheet)

Dialog 컴포넌트를 확장해서, 화면의 주된 콘텐츠를 보완하는 내용을 옆에서 슬라이드로 나타나게 해 주는 컴포넌트예요. 모달 대신 화면 가장자리에서 끌려나오는 패널 형태로, 설정이나 상세 정보처럼 보조적인 콘텐츠를 보여줄 때 사용해요.

출처: 문서

본문

설치하기

CLI Manual
npx shadcn@latest add sheet

다음 의존성을 설치해 주세요.

npm install @radix-ui/react-dialog

다음 코드를 프로젝트에 복사해서 붙여넣어 주세요.

import 경로를 프로젝트 설정에 맞게 바꿔 주세요.

사용하기

필요한 컴포넌트를 import 하고,

import {
  Sheet,
  SheetContent,
  SheetDescription,
  SheetHeader,
  SheetTitle,
  SheetTrigger,
} from "@/components/ui/sheet"

다음 구조로 조립하면 돼요. SheetTrigger가 시트를 열고, SheetContent 안에 SheetHeader로 제목(SheetTitle)과 설명(SheetDescription)을 넣어요.

<Sheet>
  <SheetTrigger>Open</SheetTrigger>
  <SheetContent>
    <SheetHeader>
      <SheetTitle>Are you absolutely sure?</SheetTitle>
      <SheetDescription>
        This action cannot be undone. This will permanently delete your account
        and remove your data from our servers.
      </SheetDescription>
    </SheetHeader>
  </SheetContent>
</Sheet>

예시

방향 (Side)

<SheetContent />의 side prop을 사용하면 시트가 나타날 화면의 가장자리를 정할 수 있어요. 값은 top, right, bottom, left 중에서 고를 수 있어요.

크기 (Size)

CSS 클래스를 이용해서 시트의 크기를 조절할 수 있어요.

<Sheet>
  <SheetTrigger>Open</SheetTrigger>
  <SheetContent className="w-[400px] sm:w-[540px]">
    <SheetHeader>
      <SheetTitle>Are you absolutely sure?</SheetTitle>
      <SheetDescription>
        This action cannot be undone. This will permanently delete your account
        and remove your data from our servers.
      </SheetDescription>
    </SheetHeader>
  </SheetContent>
</Sheet>

더 알아보기 (Learn more)

  • Radix UI Dialog — 시트의 기반이 되는 다이얼로그 프리미티브와 API 레퍼런스