操作与浮层@neumorphism-ui/dropdown-menu

Dropdown Menu

基于 Base UI Menu 的完整组合式 API。可在同一表面中组织普通 item、checkbox、radio group、label、separator、shortcut 和嵌套 submenu。

@neumorphism-ui/dropdown-menu
Registry JSON

预览

安装

安装: dropdown-menunpx shadcn@latest add @neumorphism-ui/dropdown-menu

CLI 会依次处理 npm 依赖、base token、utils 和组件源码。

首次使用此 Registry?请先完成 namespace 配置 。

用法

用法: 安装npx shadcn@latest add @neumorphism-ui/button @neumorphism-ui/dropdown-menu

Import

Dropdown Menu import 代码
import * as React from "react"
import { Button } from "@/components/ui/button"
import {
  DropdownMenu,
  DropdownMenuCheckboxItem,
  DropdownMenuContent,
  DropdownMenuItem,
  DropdownMenuGroup,
  DropdownMenuLabel,
  DropdownMenuSeparator,
  DropdownMenuShortcut,
  DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"

Example

Dropdown Menu 用法代码
export function WorkspaceMenu() {
  const [showDepthGrid, setShowDepthGrid] = React.useState(true)

  return (
    <DropdownMenu>
      <DropdownMenuTrigger render={<Button variant="soft" />}>
        打开菜单
      </DropdownMenuTrigger>
      <DropdownMenuContent align="start">
        <DropdownMenuGroup>
          <DropdownMenuLabel>工作区</DropdownMenuLabel>
          <DropdownMenuSeparator />
          <DropdownMenuItem>
            创建副本
            <DropdownMenuShortcut>⌘D</DropdownMenuShortcut>
          </DropdownMenuItem>
          <DropdownMenuCheckboxItem
            checked={showDepthGrid}
            onCheckedChange={setShowDepthGrid}
          >
            显示深度网格
          </DropdownMenuCheckboxItem>
          <DropdownMenuItem variant="destructive">删除</DropdownMenuItem>
        </DropdownMenuGroup>
      </DropdownMenuContent>
    </DropdownMenu>
  )
}

API 参考

组件属性类型默认值说明
DropdownMenuopen / defaultOpenbooleanfalse受控的菜单打开状态或非受控初始状态。
DropdownMenuonOpenChange(open: boolean) => void—菜单打开状态变化时调用。
DropdownMenuTriggerrenderReactElement | (props, state) => ReactElement—将 trigger 行为组合到按钮或链接上。
DropdownMenuContentside / align"top" | "right" | "bottom" | "left" / "start" | "center" | "end""bottom" / "start"相对于 trigger 设置 popup 的位置。
DropdownMenuContentsideOffsetnumber8设置 trigger 与 popup 之间的间距。
DropdownMenuItemvariant"default" | "destructive""default"选择普通操作或危险操作样式。
DropdownMenuItem / Labelinsetbooleanfalse对齐带 indicator 的行与文本起始位置。
DropdownMenuCheckboxItemcheckedboolean | "indeterminate"—checkbox item 的受控选中状态。
DropdownMenuCheckboxItemonCheckedChange(checked) => void—checkbox item 状态变化时调用。

无障碍

  • 01

    Base UI 负责 Arrow 键导航、Home、End、键入搜索、Escape 关闭和焦点返回。

  • 02

    DropdownMenuItem 应使用清晰文字描述命令;危险操作除了 variant 外,也要通过文案明确区分。

  • 03

    CheckboxItem 应同时使用 checked 和 onCheckedChange 维护状态。