행동과 오버레이@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 토큰, 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>Workspace</DropdownMenuLabel>
          <DropdownMenuSeparator />
          <DropdownMenuItem>
            복제
            <DropdownMenuShortcut>⌘D</DropdownMenuShortcut>
          </DropdownMenuItem>
          <DropdownMenuCheckboxItem
            checked={showDepthGrid}
            onCheckedChange={setShowDepthGrid}
          >
            깊이 격자 표시
          </DropdownMenuCheckboxItem>
          <DropdownMenuItem variant="destructive">삭제</DropdownMenuItem>
        </DropdownMenuGroup>
      </DropdownMenuContent>
    </DropdownMenu>
  )
}

API 레퍼런스

컴포넌트속성타입기본값설명
DropdownMenuopen / defaultOpenbooleanfalsecontrolled 또는 초기 uncontrolled 열림 상태입니다.
DropdownMenuonOpenChange(open: boolean) => void—메뉴 열림 상태가 바뀔 때 호출됩니다.
DropdownMenuTriggerrenderReactElement | (props, state) => ReactElement—버튼이나 링크에 trigger 동작을 합성합니다.
DropdownMenuContentside / align"top" | "right" | "bottom" | "left" / "start" | "center" | "end""bottom" / "start"trigger를 기준으로 popup 위치를 정합니다.
DropdownMenuContentsideOffsetnumber8trigger와 popup 사이의 간격입니다.
DropdownMenuItemvariant"default" | "destructive""default"일반 또는 위험 행동 스타일을 선택합니다.
DropdownMenuItem / Labelinsetbooleanfalseindicator가 있는 행과 텍스트 시작 위치를 맞춥니다.
DropdownMenuCheckboxItemcheckedboolean | "indeterminate"—checkbox item의 controlled 상태입니다.
DropdownMenuCheckboxItemonCheckedChange(checked) => void—checkbox item 상태가 바뀔 때 호출됩니다.

접근성

  • 01

    Base UI가 Arrow 키 탐색, Home, End, typeahead, Escape 닫기와 포커스 복귀를 처리합니다.

  • 02

    DropdownMenuItem에는 명령을 설명하는 명확한 텍스트를 제공하고 위험 행동은 variant뿐 아니라 문구로도 구분합니다.

  • 03

    CheckboxItem은 checked와 onCheckedChange를 함께 사용해 상태를 직접 유지합니다.