Pluto Design System
Components

Dialog

Radix Dialog — popup/full × sm/md/lg/xl × fixed/free

사용

import {
  Dialog, DialogTrigger, DialogContent,
  DialogNavigation, DialogBody, DialogActionArea,
  DialogTitle, DialogDescription, DialogClose,
} from "@fluxloop-ai/pds-ui/components/dialog";

<Dialog>
  <DialogTrigger asChild><Button>열기</Button></DialogTrigger>
  <DialogContent size="md">
    <DialogNavigation>
      <DialogTitle>제목</DialogTitle>
      <DialogClose />
    </DialogNavigation>
    <DialogBody>...</DialogBody>
    <DialogActionArea>
      <Button>확인</Button>
    </DialogActionArea>
  </DialogContent>
</Dialog>

Full

DialogContent Props

Prop타입기본설명
variantpopup | fullpopuppopup 중앙 정렬, full 화면 거의 전체
sizesm | md | lg | xlsmwidth — popup 모드에만 적용. sm=320 / md=400 / lg=520 / xl=680
resizefixed | freefixedfixed 는 680px cap, free 는 viewport cap
autoFocusOnOpenbooleantruefalse 면 열릴 때 Radix의 기본 focus 이동을 막음

Slots

Slot컴포넌트
OverlayDialogOverlay (Portal 내부 자동)
ContainerDialogContent
NavigationDialogNavigation — 상단 바, 제목/Close 배치
ContentDialogBody — 스크롤 영역
ActionAreaDialogActionArea — 하단 액션 바. 내부 버튼은 min-width: 64px 강제

액션 버튼 컨벤션

DialogActionArea 안에서는 Button variant를 다음과 같이 쓰세요.

역할Button variant
주 동작 (확정/저장/생성)solid저장, 만들기, 확인
보조 동작 (취소/닫기)primary취소, 닫기
파괴적 동작danger삭제
<DialogActionArea>
  <DialogClose asChild>
    <Button variant="primary">취소</Button>
  </DialogClose>
  <Button variant="solid">저장</Button>
</DialogActionArea>

미포함

  • bottom variant — 모바일 패턴. 데스크탑 앱 기준이라 미포함
  • drag handle / peekHeightbottom 용 prop, 함께 유보

Registry 설치

npx shadcn add https://pds.pluto.com/r/dialog