Beta Preview

ToggleButton

ToggleButtons allow users to toggle a selection on or off, for example switching between two states or modes.

children 
size 
staticColor 
isQuiet 
isEmphasized 
isDisabled 
import {ToggleButton} from '@react-spectrum/s2';

<ToggleButton>Pin</ToggleButton>

Selection

Use the isSelected or defaultSelected prop to set the selection state, and onChange to handle selection changes.

Not starred

import {ToggleButton} from '@react-spectrum/s2';
import {useState} from 'react';
import Star from '@react-spectrum/s2/icons/Star';

function Example(props) {
  let [selected, setSelection] = useState(false);

  return (
    <>
      <ToggleButton
        {...props}
        aria-label="Star"
        isSelected={selected}
        onChange={setSelection}>
        <Star />
      </ToggleButton>
      <p>{selected ? 'Starred' : 'Not starred'}</p>
    </>
  );
}

API

<ToggleButton>
  <Icon /> or <Avatar />
  <Text />
</ToggleButton>

ToggleButton

NameTypeDefault
childrenReactNodeDefault: —
The content to display in the button.
isEmphasizedbooleanDefault: —
Whether the button should be displayed with an emphasized style.
idKeyDefault: —
When used in a ToggleButtonGroup, an identifier for the item in selectedKeys. When used standalone, a DOM id.
isSelectedbooleanDefault: —
Whether the element should be selected (controlled).
defaultSelectedbooleanDefault: —
Whether the element should be selected (uncontrolled).
isDisabledbooleanDefault: —
Whether the button is disabled.
stylesDefault: —
Spectrum-defined styles, returned by the style() macro.
size'XS' | 'S' | 'M' | 'L' | 'XL'Default: 'M'
The size of the ActionButton.
staticColor'black' | 'white' | 'auto'Default: —
The static color style to apply. Useful when the ActionButton appears over a color background.
isQuietbooleanDefault: —
Whether the button should be displayed with a quiet style.
onChange(isSelected: boolean) => voidDefault: —
Handler that is called when the element's selection state changes.