Buttons

Toggle Group

A toggle button group provides an intuitive way for users to switch between multiple options, supporting both single and multi-selection modes.

Basic

A toggle button group allows users to switch between multiple options, enabling one or more selections at a time.

Loading...

Installation

If you hit any issues, make sure you check out the installation guide here for more information.

Manual installation

Make sure you also install the composed components and the required packages for the component to function properly.

Anatomy

import { ToggleGroup, ToggleGroupItem } from "@/components/ui/toggle-group"
<ToggleGroup>
  <ToggleGroupItem id="1d">1d</ToggleGroupItem>
  <ToggleGroupItem id="3d">3d</ToggleGroupItem>
  <ToggleGroupItem id="7d">7d</ToggleGroupItem>
  <ToggleGroupItem id="2w">2w</ToggleGroupItem>
</ToggleGroup>

Orientation

By default, the toggle button group is arranged horizontally. Use the orientation prop to switch to a vertical layout.

Loading...

Selection mode

By default, the toggle button group allows only a single selection. You can change this by setting the selectionMode prop to "multiple". When in multiple selection mode, individual buttons will no longer have rounded corners.

Loading...

Size

By default, the toggle button group has a medium size. You can change the size by using the size prop.

Loading...

Square size

The size option also includes a square variant, which is useful when you only want to display an icon on the toggle button.

Loading...

Controlled

You can control the state of the toggle button group by using the selectedKeys prop.

Loading...

Disabled

You can disable an entire toggle group by setting the isDisabled prop on the ToggleGroup component, which disables all toggles in the group. Alternatively, you can disable specific toggle buttons individually by setting the isDisabled prop on the Toggle component.

Loading...

Touch hitbox

Sometimes you may want to use this button with only an icon. In that case, you can apply the touch-hitbox utility class on the sq-* size to increase the button’s hitbox for improved accessibility.

@utility touch-hitbox {
  position: relative;
  &::before {
    content: "";
    position: absolute;
    display: block;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    height: 100%;
    min-height: 44px;
    min-width: 44px;
    z-index: 9999;
  }
}
Ready-to-use templates
Launch faster with 275+ blocks and professional templates for modern web apps.
irsyad.co
Toggle Group / Intent UI