Button Group

Button groups combine multiple buttons into a single control surface. They support toolbar mode, single selection (radio-like), and multiple selection (toggle-like) behaviors.

Basic Usage

A simple button group with no selection behavior (toolbar mode). Buttons act independently.

Toolbar Mode

Bold Italic Underline
razor
<FodButtonGroup AriaLabel="Text formatting">
    <FodButton>Bold</FodButton>
    <FodButton>Italic</FodButton>
    <FodButton>Underline</FodButton>
</FodButtonGroup>

Single Selection (Radio-like)

Only one button can be selected at a time. Perfect for mutually exclusive options.

Text Alignment

Left Center Right Justify

Selected: left

razor
<FodButtonGroup SelectionMode="SelectionMode.Single" SelectedValue="selectedValue" AriaLabel="Alignment">
    <FodButton Value="left">Left</FodButton>
    <FodButton Value="center">Center</FodButton>
    <FodButton Value="right">Right</FodButton>
</FodButtonGroup>

Multiple Selection (Toggle-like)

Multiple buttons can be selected simultaneously. Perfect for toggle options.

Text Formatting Options

B I U S

Selected: bold

razor
<FodButtonGroup SelectionMode="SelectionMode.Multiple" SelectedValues="formats" AriaLabel="Formatting">
    <FodButton Value="bold">B</FodButton>
    <FodButton Value="italic">I</FodButton>
    <FodButton Value="underline">U</FodButton>
</FodButtonGroup>

Sizes

Button groups support three sizes: Large, Medium (default), and Small.

Large

Option 1 Option 2 Option 3

Medium (Default)

Option 1 Option 2 Option 3

Small

Option 1 Option 2 Option 3
razor
<FodButtonGroup Size="Size.Large" AriaLabel="Large group">
    <FodButton>Option 1</FodButton>
    <FodButton>Option 2</FodButton>
</FodButtonGroup>

<FodButtonGroup Size="Size.Medium" AriaLabel="Medium group">
    <FodButton>Option 1</FodButton>
    <FodButton>Option 2</FodButton>
</FodButtonGroup>

<FodButtonGroup Size="Size.Small" AriaLabel="Small group">
    <FodButton>Option 1</FodButton>
    <FodButton>Option 2</FodButton>
</FodButtonGroup>

Orientation

Button groups can be displayed horizontally (default) or vertically.

Horizontal (Default)

Day Week Month

Vertical

Day Week Month
razor
<FodButtonGroup Orientation="Orientation.Horizontal" AriaLabel="Horizontal">
    <FodButton>Day</FodButton>
    <FodButton>Week</FodButton>
    <FodButton>Month</FodButton>
</FodButtonGroup>

<FodButtonGroup Orientation="Orientation.Vertical" AriaLabel="Vertical">
    <FodButton>Day</FodButton>
    <FodButton>Week</FodButton>
    <FodButton>Month</FodButton>
</FodButtonGroup>

Disabled State

The entire group or individual buttons can be disabled.

Entire Group Disabled

Option 1 Option 2 Option 3

Individual Button Disabled

Option A Option B (Disabled) Option C
razor
<FodButtonGroup Disabled="true" AriaLabel="Disabled group">
    <FodButton>Option 1</FodButton>
    <FodButton>Option 2</FodButton>
</FodButtonGroup>

<FodButtonGroup SelectionMode="SelectionMode.Single" SelectedValue="value">
    <FodButton Value="a">Option A</FodButton>
    <FodButton Value="b" Disabled="true">Option B (Disabled)</FodButton>
    <FodButton Value="c">Option C</FodButton>
</FodButtonGroup>

With Icons

Buttons within a group can include icons using IconStart and IconEnd render fragments.

View Options

List Grid Calendar

Selected view: list

razor
<FodButtonGroup SelectionMode="SelectionMode.Single" SelectedValue="view" AriaLabel="View">
    <FodButton Value="list">
        <IconStart>
            <FodIcon Icon="IconName.BulletList"/>
        </IconStart>
        <ChildContent>List</ChildContent>
    </FodButton>
    <FodButton Value="grid">
        <IconStart>
            <FodIcon Icon="IconName.DotGrid"/>
        </IconStart>
        <ChildContent>Grid</ChildContent>
    </FodButton>
</FodButtonGroup>

Keyboard Navigation

Button groups support full keyboard navigation using the roving tabindex pattern.

Keyboard Shortcuts

  • Tab: Enter/exit the group
  • Arrow Left/Right: Navigate between buttons (horizontal)
  • Arrow Up/Down: Navigate between buttons (vertical)
  • Home: Move to first button
  • End: Move to last button
  • Enter/Space: Activate the focused button

Try navigating with your keyboard:

First Second Third Fourth

Selected: None

razor
<FodButtonGroup SelectionMode="SelectionMode.Single" SelectedValue="selection" AriaLabel="Navigation">
    <FodButton Value="1">First</FodButton>
    <FodButton Value="2">Second</FodButton>
    <FodButton Value="3">Third</FodButton>
</FodButtonGroup>

RTL Support

Button groups automatically adapt to RTL (right-to-left) layouts.

RTL Layout (Arabic)

الأول الثاني الثالث
html
<div dir="rtl" lang="ar">
    <FodButtonGroup SelectionMode="SelectionMode.Single" AriaLabel="RTL">
        <FodButton Value="1">الأول</FodButton>
        <FodButton Value="2">الثاني</FodButton>
        <FodButton Value="3">الثالث</FodButton>
    </FodButtonGroup>
</div>

Interactive Example

A complete example showing button group with click handlers for toolbar actions.

Actions Toolbar

Copy Cut Paste
razor
<FodButtonGroup AriaLabel="Actions">
    <FodButton OnClick="HandleCopy">Copy</FodButton>
    <FodButton OnClick="HandleCut">Cut</FodButton>
    <FodButton OnClick="HandlePaste">Paste</FodButton>
</FodButtonGroup>

API Reference

FodButtonGroup component properties and their descriptions.

No properties defined.

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

Retry

The session has been paused by the server.

Resume

Failed to resume the session.
Please reload the page.