Getting Started
Foundations
Components
Search for a command to run...
"use client"
import { Button } from "@strongtie/design-system/button"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuPortal,
DropdownMenuSeparator,
DropdownMenuShortcut,
DropdownMenuSub,
DropdownMenuSubContent,
DropdownMenuSubTrigger,
DropdownMenuTrigger,
} from "@strongtie/design-system/dropdown-menu"
import { MdKeyboardArrowDown } from "react-icons/md"
export function DropdownMenuDefault() {
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<span className="dropdown-menu-ref-wrapper">
<Button variant="outline" className="dropdown-menu-trigger">
Open <MdKeyboardArrowDown />
</Button>
</span>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuLabel>My Account</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem>
Profile
<DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuItem>
Billing
<DropdownMenuShortcut>⌘B</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuItem>
Settings
<DropdownMenuShortcut>⌘S</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuItem>
Keyboard shortcuts
<DropdownMenuShortcut>⌘K</DropdownMenuShortcut>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuLabel>Team</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuSub>
<DropdownMenuSubTrigger>Invite users</DropdownMenuSubTrigger>
<DropdownMenuPortal>
<DropdownMenuSubContent>
<DropdownMenuItem>Email</DropdownMenuItem>
<DropdownMenuItem>Message</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>More...</DropdownMenuItem>
</DropdownMenuSubContent>
</DropdownMenuPortal>
</DropdownMenuSub>
<DropdownMenuItem>
New Team
<DropdownMenuShortcut>⌘+T</DropdownMenuShortcut>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem>GitHub</DropdownMenuItem>
<DropdownMenuItem>Support</DropdownMenuItem>
<DropdownMenuItem disabled>API</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>
Log out
<DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem data-variant="destructive">
Delete Account
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
)
}
npm install @strongtie/design-system
import { DropdownMenu } from "@strongtie/design-system/dropdown-menu"This module exports the following components:
DropdownMenuDropdownMenuCheckboxItemDropdownMenuContentDropdownMenuGroupDropdownMenuItemDropdownMenuLabelDropdownMenuPortalDropdownMenuRadioGroupDropdownMenuRadioItemDropdownMenuSeparatorDropdownMenuShortcutDropdownMenuSubDropdownMenuSubContentDropdownMenuSubTriggerDropdownMenuTrigger<DropdownMenuItem>| Prop | Type | Default | Description |
|---|---|---|---|
inset | boolean | - | |
variant | default | destructive | - |
<DropdownMenuLabel>| Prop | Type | Default | Description |
|---|---|---|---|
inset | boolean | - |
<DropdownMenuSubTrigger>| Prop | Type | Default | Description |
|---|---|---|---|
inset | boolean | - |
"use client"
import { Button } from "@strongtie/design-system/button"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuGroup,
DropdownMenuItem,
DropdownMenuLabel,
DropdownMenuPortal,
DropdownMenuSeparator,
DropdownMenuShortcut,
DropdownMenuSub,
DropdownMenuSubContent,
DropdownMenuSubTrigger,
DropdownMenuTrigger,
} from "@strongtie/design-system/dropdown-menu"
import { MdKeyboardArrowDown } from "react-icons/md"
export function DropdownMenuDefault() {
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<span className="dropdown-menu-ref-wrapper">
<Button variant="outline" className="dropdown-menu-trigger">
Open <MdKeyboardArrowDown />
</Button>
</span>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuLabel>My Account</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuItem>
Profile
<DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuItem>
Billing
<DropdownMenuShortcut>⌘B</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuItem>
Settings
<DropdownMenuShortcut>⌘S</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuItem>
Keyboard shortcuts
<DropdownMenuShortcut>⌘K</DropdownMenuShortcut>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuGroup>
<DropdownMenuLabel>Team</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuSub>
<DropdownMenuSubTrigger>Invite users</DropdownMenuSubTrigger>
<DropdownMenuPortal>
<DropdownMenuSubContent>
<DropdownMenuItem>Email</DropdownMenuItem>
<DropdownMenuItem>Message</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>More...</DropdownMenuItem>
</DropdownMenuSubContent>
</DropdownMenuPortal>
</DropdownMenuSub>
<DropdownMenuItem>
New Team
<DropdownMenuShortcut>⌘+T</DropdownMenuShortcut>
</DropdownMenuItem>
</DropdownMenuGroup>
<DropdownMenuSeparator />
<DropdownMenuItem>GitHub</DropdownMenuItem>
<DropdownMenuItem>Support</DropdownMenuItem>
<DropdownMenuItem disabled>API</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem>
Log out
<DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>
</DropdownMenuItem>
<DropdownMenuSeparator />
<DropdownMenuItem data-variant="destructive">
Delete Account
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
)
}
"use client"
import { Button } from "@strongtie/design-system/button"
import {
DropdownMenu,
DropdownMenuCheckboxItem,
DropdownMenuContent,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@strongtie/design-system/dropdown-menu"
import { MdKeyboardArrowDown } from "react-icons/md"
export function DropdownMenuWithCheckbox() {
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="outline">
Options <MdKeyboardArrowDown className="h-4 w-4" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuLabel>View Options</DropdownMenuLabel>
<DropdownMenuSeparator />
<DropdownMenuCheckboxItem checked>
Show Status Bar
</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem>Show Activity Bar</DropdownMenuCheckboxItem>
<DropdownMenuCheckboxItem disabled>
Show Panel (disabled)
</DropdownMenuCheckboxItem>
</DropdownMenuContent>
</DropdownMenu>
)
}
"use client"
import * as React from "react"
import { Button } from "@strongtie/design-system/button"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuRadioGroup,
DropdownMenuRadioItem,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@strongtie/design-system/dropdown-menu"
import { MdKeyboardArrowDown } from "react-icons/md"
export function DropdownMenuWithRadioGroup() {
const [position, setPosition] = React.useState("bottom")
return (
<DropdownMenu>
<DropdownMenuTrigger asChild>
<Button variant="outline">
Position: {position} <MdKeyboardArrowDown className="h-4 w-4" />
</Button>
</DropdownMenuTrigger>
<DropdownMenuContent>
<DropdownMenuSeparator />
<DropdownMenuRadioGroup value={position} onValueChange={setPosition}>
<DropdownMenuRadioItem value="top">Top</DropdownMenuRadioItem>
<DropdownMenuRadioItem value="bottom">Bottom</DropdownMenuRadioItem>
<DropdownMenuRadioItem value="right">Right</DropdownMenuRadioItem>
</DropdownMenuRadioGroup>
</DropdownMenuContent>
</DropdownMenu>
)
}
Components can be styled using the className prop. The design system uses Tailwind CSS for styling.
CSS classes used by this component:
dropdown-menu-checkbox-itemdropdown-menu-contentdropdown-menu-itemdropdown-menu-labeldropdown-menu-radio-itemdropdown-menu-separatordropdown-menu-shortcutdropdown-menu-sub-contentdropdown-menu-sub-triggerEnsure proper accessibility attributes are added when implementing this component.