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입니다. 일반 item, checkbox, radio group, label, separator, shortcut, 중첩 submenu를 한 표면 안에서 구성할 수 있습니다.

컴포넌트속성타입기본값설명
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—checkbox item의 controlled 상태입니다.
DropdownMenuCheckboxItemonCheckedChange(checked) => void—checkbox item 상태가 바뀔 때 호출됩니다.

접근성

  • 01

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

  • 02

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

  • 03

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