Skip to content

Toggle Button

Menus and commandsMIT
View in Storybook

Segmented toggle button group for exclusive or multi-select mode switching.

bun add @otfdashkit/ui

Preview

Toggle Button

Code

import React from 'react'
import { ToggleButton, ToggleButtonGroup, Kanban } from '@otfdashkit/ui'

function ToggleButtonDemo() {
  const [single, setSingle] = React.useState('grid')
  const [multi, setMulti] = React.useState<string[]>(['bold'])
  return (
    <div className="space-y-4">
      <div>
        <p className="text-xs text-[hsl(var(--muted-foreground))] mb-2">Single select</p>
        <ToggleButtonGroup value={single} onChange={setSingle}>
          <ToggleButton value="grid">Grid</ToggleButton>
          <ToggleButton value="list">List</ToggleButton>
          <ToggleButton value="kanban">Kanban</ToggleButton>
        </ToggleButtonGroup>
      </div>
      <div>
        <p className="text-xs text-[hsl(var(--muted-foreground))] mb-2">Multiple select</p>
        <ToggleButtonGroup type="multiple" value={multi} onChange={setMulti}>
          <ToggleButton value="bold"><strong>B</strong></ToggleButton>
          <ToggleButton value="italic"><em>I</em></ToggleButton>
          <ToggleButton value="underline"><u>U</u></ToggleButton>
        </ToggleButtonGroup>
      </div>
    </div>
  )
}

export function Example() {
  return (
    <ToggleButtonDemo />
  )
}

Free with the SDK. This block ships in @otfdashkit/ui under the MIT license.

Props

Props declared in the ToggleButton source. Inherited HTML attributes are not listed.

PropTypeDefaultDescription
childrenrequiredReactNode
valuerequiredstring
classNamestring
disabledboolean
onClick() => void
pressedboolean