About this set
Three ways to pair a main action with a menu of related ones. Split button with a selectable default is a merge button: the main half runs the current choice, and the arrow opens a menu of three merge methods, each with a description, where picking one moves the tick and relabels the main button. Button group with a dropdown is an email toolbar of Archive, Report spam and Delete icon buttons joined to a Move to menu of folders. Drop-up split button in a composer sits at the bottom of a message editor, so its Send options menu opens upwards and aligns to the right. The main button and the arrow are separate buttons, so each has its own accessible name and the main action never hides behind a menu. The merge methods are menuitemradio items with aria-checked, and the choice is copied onto the main button with a few lines of script. The Bootstrap version uses .btn-group, .dropdown-toggle-split and .dropup, with data-bs-reference=”parent” so the merge menu lines up with the whole group.
What’s included
- Split button whose menu choice relabels the main action
- Radio items with aria-checked and a visible tick
- Icon button group with a joined Move to dropdown
- Drop-up variant that opens above a composer footer
- Bootstrap .btn-group, .dropdown-toggle-split and .dropup
Accessibility
The arrow buttons are named ("Choose merge method", "More send options") and carry aria-haspopup, aria-expanded and aria-controls; icon-only toolbar buttons have aria-labels and the toolbar is a labelled group. Merge methods are menuitemradio items whose aria-checked follows the choice. Every button and item has a visible focus outline, keyboard handling follows the WAI-ARIA menu button pattern, and transitions stop under prefers-reduced-motion.
Customise it
The palette is the --sb-* custom properties on .sb-wrap, with .sb-green and .sb-blue setting the filled button colours. In Bootstrap the same properties feed the --bs-btn-* variables on .sb .btn; in Tailwind edit the hex values in the button classes.






