アクションとオーバーレイ@neumorphism-ui/dialog

Dialog

Base UI Dialog を基盤に Portal、Backdrop、Popup、title、description、close action を組み合わせます。primitive が Escape、外側の click、focus trap、focus restoration を処理します。

@neumorphism-ui/dialog
Registry JSON

プレビュー

開いて focus trap と Escape で閉じる動作を確認できます。

インストール

インストール: dialognpx shadcn@latest add @neumorphism-ui/dialog

CLI が npm 依存関係、base token、utils、コンポーネントソースを順番に処理します。

この Registry を初めて使う場合は、先に namespace の設定 を完了してください。

使い方

使い方: インストールnpx shadcn@latest add @neumorphism-ui/button @neumorphism-ui/dialog

Import

Dialog の import コード
import { Button } from "@/components/ui/button"
import {
  Dialog,
  DialogClose,
  DialogContent,
  DialogDescription,
  DialogFooter,
  DialogHeader,
  DialogTitle,
  DialogTrigger,
} from "@/components/ui/dialog"

Example

Dialog の使用コード
<Dialog>
  <DialogTrigger render={<Button variant="primary" />}>
    プロジェクトを作成
  </DialogTrigger>
  <DialogContent>
    <DialogHeader>
      <DialogTitle>新しいプロジェクト</DialogTitle>
      <DialogDescription>
        名前と説明はあとから変更できます。
      </DialogDescription>
    </DialogHeader>
    <DialogFooter>
      <DialogClose render={<Button variant="soft" />}>キャンセル</DialogClose>
      <Button variant="primary">作成</Button>
    </DialogFooter>
  </DialogContent>
</Dialog>

API リファレンス

コンポーネントプロパティ型デフォルト説明
Dialogopen / defaultOpenbooleanfalse制御された open 状態、または非制御時の初期 open 状態です。
DialogonOpenChange(open: boolean) => void—open 状態が変わったときに呼び出されます。
Dialogmodalbooleantrue背景とのインタラクションと focus trap の動作を決定します。
DialogTrigger / DialogCloserenderReactElement | (props, state) => ReactElement—button または link に trigger/close の動作を合成します。
DialogContentshowCloseButtonbooleantrue右上に既定の close button を表示します。
DialogContentoverlayClassNamestring | (state) => string—Backdrop の色、blur、transition を個別に拡張します。
DialogdisablePointerDismissalbooleanfalse外側で pointer press しても Dialog が閉じないようにします。

アクセシビリティ

  • 01

    DialogContent 内に DialogTitle を配置し、補足説明を DialogDescription で関連付けてください。

  • 02

    Base UI がモーダルの focus trap、Escape による終了、終了後の trigger への focus restoration を管理します。

  • 03

    DialogFooter の cancel action を DialogClose で包み、明示的な close 動作を提供してください。