Split Button
Split button with a primary action and a chevron that opens a dropdown of secondary actions, including destructive items. The menu matches the button width.
src/registry/ui/split-button.tsx/r/split-button.json
Installation#
bash
npx shadcn@latest add @minidev/split-button
MiniDev UI is in the shadcn registry directory, so the short form works with no setup. Older CLI versions can use the full URL: npx shadcn@latest add https://ui.minidev.pro/r/split-button.json
Usage#
tsx
import { SplitButton } from "@/components/ui/split-button"
export function Example() {
return (
<SplitButton
label="Save"
items={[
{ label: "Save draft" },
{ label: "Save and close" },
{ label: "Discard", destructive: true },
]}
/>
)
}
API reference#
| Prop | Type | Default |
|---|---|---|
label | React.ReactNode | "Save invoice" |
onPrimaryClick | () => void | - |
disabled | boolean | - |
className | string | - |
items | SplitButtonItem[] | SAMPLE_ITEMS |
Dependencies#
npm
lucide-react
Built from
Examples#
Related buttons components#
Button GroupGroups adjacent buttons into one segmented control in Tailwind, joining borders and rounding only the outer corners. Uses role group for toolbars.ButtonShadcn compatible React button on Base UI with eight variants, nine sizes including icon sizes, a pressed state and render prop support for links.Copy ButtonReact copy to clipboard button that writes a value, then swaps to a check icon and Copied label for a moment. Accepts every Button variant and size.Floating Action ButtonA round primary button fixed to the bottom right corner of the viewport for the main action on a screen. Accepts every Button prop, including icons.Icon ButtonA square React button for icon only actions in small, default and large sizes with every Button variant. Its aria-label prop is required, so it is always named.Toggle GroupToggle group on Base UI that wraps Toggle buttons for single or multiple selection with shared keyboard navigation. Use it for text formatting or view modes.
All button components