ButtonGroup
Segmented controls, split buttons, attached groups.
On the web the segmented control is Dark Factory's: the options sit in a pill track and the selected one rides a white thumb, with the rest in the muted ink. The split button is the green call-to-action pill with its chevron half, and the stepper and the spaced peers are hairline pills the height of a Button beside them. On iOS and Android the groups keep their platform shapes (the iOS segmented control, the Material 3 segmented button) in the theme's colours.
All four kinds follow the theme's surface mode. Toggle Liquid Glass in the docs, or use <ThemeProvider glass> in an app: segmented groups paint a glass selection pill on the selected segment, a split group is its call to action's brand-tinted glass (the action colour under the material, as a primary Button), a stepper shares a glass capsule, and spaced peers get individual glass surfaces. Solid mode keeps each platform's existing skin. The material uses native Liquid Glass on supported iOS versions, the native blur or tint fallback on Android and older iOS, and Dark Factory's frost in the browser. Reduce Transparency and Increase Contrast use the shared material's opaque fallbacks.
Day
Week
Month
iOS
Day
Week
Month
Android
Day
Week
Month
Web
tsx
Default
Small
Large
Disabled
Block
Block spaced
Measure
Stepper
Split
Icon segments
Props
Do & Don’t
Segmented
Don’t
Past ~4 options a segmented control gets cramped and hard to scan; reach for a select.
Do
Day
Week
Month
Keep a segmented control to a few mutually-exclusive views.
Attached
Don’t
Attaching unrelated actions implies they belong to one control.
Do
Today
Reserve attached groups for closely-related actions like prev / today / next.
Split
Don’t
With no divider the chevron looks like part of one button, hiding the menu.
Do
Separate the chevron with a hairline so the secondary menu reads as distinct.