Dropdown Menu

複数のコマンド、チェック設定、削除などの操作を一つのボタンにまとめる場合に使います。

プレビュー

ワークスペースの操作

ページ操作、制御された深度ガイド、テーマのラジオ選択サブメニュー、削除を確認します。

インストール

この Registry を初めて使う場合は、先に 基本設定と共通スタイルの導入 を完了してください。

npx shadcn@latest add @neumorphism-ui/dropdown-menu

共有 base を一度導入した後、CLI でコンポーネントと依存関係を追加します。

ワークスペースの操作

npx shadcn@latest add @neumorphism-ui/button @neumorphism-ui/dropdown-menu
Registry JSON

使い方

DropdownMenuTrigger と DropdownMenuContent を組み合わせます。関連項目をグループ化し、設定を表すチェック・ラジオ項目はアプリの状態に接続します。

"use client";

import { useState } from "react";
import { Button } from "@/components/ui/button";
import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuTrigger } from "@/components/ui/dropdown-menu";

export default function Example() {
  const [visible, setVisible] = useState(true);
  return (
    <div>
      <DropdownMenu>
        <DropdownMenuTrigger render={<Button />}>View options</DropdownMenuTrigger>
        <DropdownMenuContent>
          <DropdownMenuCheckboxItem checked={visible} onCheckedChange={setVisible}>Show details</DropdownMenuCheckboxItem>
        </DropdownMenuContent>
      </DropdownMenu>
      {visible && <p>Project details are visible.</p>}
    </div>
  );
}

API リファレンス

Base UI Menu を基盤とした完全な組み合わせ可能 API です。通常項目、checkbox、radio group、label、separator、shortcut、入れ子の submenu を1つのサーフェス上にまとめます。

コンポーネントプロパティ型デフォルト説明
DropdownMenuopen / defaultOpenbooleanfalse制御された open 状態、または非制御時の初期 open 状態です。
DropdownMenuonOpenChange(open: boolean) => void—menu の open 状態が変わったときに呼び出されます。
DropdownMenuTriggerrenderReactElement | (props, state) => ReactElement—button または link に trigger の動作を合成します。
DropdownMenuContentside / align"top" | "right" | "bottom" | "left" / "start" | "center" | "end""bottom" / "start"trigger を基準に popup を配置します。
DropdownMenuContentsideOffsetnumber8trigger と popup の間隔です。
DropdownMenuItemvariant"default" | "destructive""default"通常または destructive action のスタイルを選択します。
DropdownMenuItem / Labelinsetbooleanfalseindicator を持つ行とテキストの開始位置を揃えます。
DropdownMenuCheckboxItemcheckedboolean—checkbox item の制御状態です。
DropdownMenuCheckboxItemonCheckedChange(checked) => void—checkbox item の状態が変わったときに呼び出されます。

アクセシビリティ

  • 01

    Base UI が Arrow キー、Home、End、typeahead による移動、Escape による終了、focus restoration を処理します。

  • 02

    各 DropdownMenuItem には明確な command label を付け、destructive action は variant だけでなく文言でも区別してください。

  • 03

    CheckboxItem の状態は checked と onCheckedChange を使って明示的に管理してください。