Figma button group components
Button group design in Figma: segments, states, and toolbars
Look above almost any dashboard chart and you will find one: 7 days, 30 days, 12 months, three joined segments with one of them filled in. That is a button group, and it does a job that neither a lone button nor a tab bar does well. Because the segments share borders instead of sitting apart with gaps, they read as one control with several positions. The 2 button group components and 64 variants above cover both halves of the pattern, the individual segment and the assembled group.
A button group is not a row of buttons
Spacing gives the difference away. Buttons separated by gaps are independent actions, and each one is its own commitment: Cancel and Save have nothing to do with each other beyond sitting near each other. A button group welds its segments edge to edge, which tells people the options are alternatives and that one of them is already true right now.
The base segment component carries that meaning in a property of its own, Current, kept separate from State. A segment can be current and hovered, current and focused, or current and disabled without anyone drawing a new variant by hand, which is the sort of thing that only becomes obvious when a kit lacks it and your button styles start drifting apart.
One caveat on selection styling. Nielsen Norman Group's tab guidance asks for at least two visual cues on the selected item, not just a background tint, because a single low-contrast fill is easy to miss on a bright screen. The same logic applies segment by segment here.
Two sizes, four content types
The base segment comes in sm at 36px tall and md at 40px, each with a plain label, a leading icon, a leading dot for status values, or an icon on its own. Icon-only segments square up to 40px at sm and 44px at md, which keeps a three-icon view switcher from looking like a stretched pill. Every combination exists in default, hover, focused, and disabled versions.
On top of that sits the assembled Button group component in the same two sizes with label, leading icon, and icon-only versions, so a working group is one instance rather than three segments you nudged together and hoped stayed aligned. Both light and dark versions of the whole file ship together.
Button group, tab bar, or split button
Use a button group when the choice changes a parameter of content already on screen: date range, chart granularity, list versus grid. Reach for tabs when the choice swaps the content region entirely, because tabs carry navigational meaning that a segmented control does not.
And if what you actually want is one common action with a menu of rarer ones behind an arrow, that is a split button, which Nielsen Norman Group treats with some suspicion: the arrow is a small target, and users who never notice it never find the other actions. A dropdown menu is usually the calmer answer.
Keyboard behavior worth specifying in handoff
A group of joined buttons should not eat five tab stops. The W3C toolbar pattern puts one stop on the group and moves between segments with the left and right arrow keys, which is why the focused state exists at every size in this set rather than only on the first segment. Note it on the frame during handoff. It costs a sentence and saves an argument later.
When it is time to build, the same groups exist in code. Untitled UI React button groups are open source, built with Tailwind CSS and React Aria, with arrow-key movement between segments and current-item semantics already handled.
Frequently asked questions
What is the difference between a button group and a segmented control?
Mostly vocabulary. Apple's platforms call it a segmented control, Material calls it a segmented button, and most web design systems call it a button group.
The behavior is the same: joined segments, one current at a time, changing a setting rather than navigating. Untitled UI uses button group because the same component also covers toolbar clusters where nothing is selected at all.
Should a button group or tabs be used for switching views?
If the switch changes a parameter of what is already on screen, such as a date range or list versus grid, use a button group. If it replaces the content region with something different, use tabs.
The test that settles most arguments: would you expect the browser back button to undo it? If yes, you wanted tabs.
How do I make a button group interactive in a Figma prototype?
The Current property is the whole mechanism. Add a "change to" interaction on each segment that sets Current to true on itself, and the group behaves like a real switch in presentation mode.
Because Current and State are separate properties, hover and focus keep working while a segment is selected, so the prototype does not visibly break the moment someone picks an option.
Are these button group components free?
Yes. The button groups are included in the 100% free version of Untitled UI, usable in personal and commercial projects.
The full Figma kit extends the same system to 10,000+ components, page examples, and dashboards.
Is there a React version of these button groups?
Yes. Untitled UI React button groups are open source, built with Tailwind CSS and React Aria, and mirror these Figma components.
They include the roving focus behavior that keeps the whole group to a single tab stop.
Foundation Figma components and styles
Figma base components
Shared Figma assets
Application UI/Dashboard examples
Application UI/Dashboard Figma components
Marketing website examples
Join our affiliate program




































































































































