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

Context Menu

Base UI のポインターアンカーとキーボード操作を維持し、ポップアップを浮いたニューモーフィズム表面で表現します。通常項目、チェック、ラジオ、サブメニュー、破壊的操作を組み合わせられます。

@neumorphism-ui/context-menu
Registry JSON

プレビュー

文書ツール

保存済み

インストール

インストール: context-menunpx shadcn@latest add @neumorphism-ui/context-menu

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

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

使い方

Import

Context Menu の import コード
"use client";
import * as React from "react";
import {
  ContextMenu,
  ContextMenuCheckboxItem,
  ContextMenuContent,
  ContextMenuItem,
  ContextMenuLabel,
  ContextMenuShortcut,
  ContextMenuTrigger,
} from "@/components/ui/context-menu";

Example

Context Menu の使用コード
export default function Example() {
  const [details, setDetails] = React.useState(true);
  const [message, setMessage] = React.useState("準備完了");
  return <div className="grid gap-3">
    <ContextMenu>
      <ContextMenuTrigger className="grid min-h-32 place-items-center rounded-[var(--neu-radius-surface)] border border-[var(--neu-edge)] bg-[var(--neu-surface)] p-6 [box-shadow:var(--neu-shadow-inset)]">
        右クリックしてメニューを開く
      </ContextMenuTrigger>
      <ContextMenuContent>
        <ContextMenuLabel>文書</ContextMenuLabel>
        <ContextMenuItem onClick={() => setMessage("コピーしました")}>コピー<ContextMenuShortcut>⌘C</ContextMenuShortcut></ContextMenuItem>
        <ContextMenuCheckboxItem checked={details} onCheckedChange={setDetails}>詳細を表示</ContextMenuCheckboxItem>
      </ContextMenuContent>
    </ContextMenu>
    <p role="status" className="text-sm text-[var(--muted-foreground)]">{message}</p>
  </div>;
}

API リファレンス

コンポーネントプロパティ型デフォルト説明
ContextMenuopen / onOpenChangeboolean / (open: boolean) => void—メニューの開閉状態を制御します。
ContextMenuContentside / align / sideOffsetPositioner props—ポインター基準のポップアップ位置と間隔を調整します。
ContextMenuItemdisabledbooleanfalse項目を表示したまま実行できない状態にします。
ContextMenuCheckboxItemchecked / onCheckedChangeboolean / (checked: boolean) => void—チェック可能な項目の状態を制御します。
ContextMenuRadioGroupvalue / onValueChangestring / (value: string) => void—相互排他的なラジオ項目の選択を制御します。

アクセシビリティ

  • 01

    ContextMenuTrigger はポインターとキーボードの両方で理解できる対象にします。

  • 02

    開いたメニューは方向キーで移動し、Enter または Space で実行、Escape で閉じます。

  • 03

    破壊的な操作は色だけでなく明確な文言でも示します。