Skip to content
Components

Dropdown menu

Keep secondary actions nearby, with checkable items and native keyboard behavior.

TS
import { … } from "@fungi.computer/caps/components/dropdown-menu";
TSX
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@fungi.computer/caps/components/dropdown-menu";
export default function Hero() {
return (
<DropdownMenu>
<DropdownMenuTrigger>Patch actions</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuItem>Rename</DropdownMenuItem>
<DropdownMenuItem>Share location</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem variant="destructive">Delete</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
);
}
TSX
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@fungi.computer/caps/components/dropdown-menu";
import { useState } from "react";
export default function OpenInline() {
const [host, setHost] = useState<HTMLDivElement | null>(null);
return (
<div className="relative h-32 w-72" ref={setHost}>
<DropdownMenu modal={false}>
<DropdownMenuTrigger>Sort by</DropdownMenuTrigger>
<DropdownMenuContent container={host} align="start">
<DropdownMenuItem>Freshest first</DropdownMenuItem>
<DropdownMenuItem>Closest patch</DropdownMenuItem>
<DropdownMenuItem>Most foraged</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</div>
);
}
TSX
import {
DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent,
DropdownMenuTrigger,
} from "@fungi.computer/caps/components/dropdown-menu";
import { useState } from "react";
export default function CheckboxItems() {
const [pinned, setPinned] = useState(true);
const [notify, setNotify] = useState(false);
return (
<DropdownMenu>
<DropdownMenuTrigger>Patch settings</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuCheckboxItem checked={pinned} onCheckedChange={setPinned}>
Pinned
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem checked={notify} onCheckedChange={setNotify}>
Notify when in season
</DropdownMenuCheckboxItem>
</DropdownMenuContent>
</DropdownMenu>
);
}

Props

DropdownMenuProps

PropTypeDescription
interactionOwner?"host" | "local"
  • interactionOwner?"host" | "local"

DropdownMenuProps

PropTypeDescription
Payloadunknown
  • Payloadunknown

DropdownMenuItemProps

PropTypeDescription
onSelect()?(event) => voidCalled when this item is selected.
variant?"default" | "destructive"
  • onSelect()?(event) => void

    Called when this item is selected.

  • variant?"default" | "destructive"

Full types: API reference.