Beta Preview

CheckboxGroup

A CheckboxGroup allows users to select one or more items from a list of choices.

Favorite sports
 
size 
orientation 
labelPosition 
 
contextualHelp 
isEmphasized 
isDisabled 
import {CheckboxGroup, Checkbox} from '@react-spectrum/s2';

<CheckboxGroup label="Favorite sports">
  <Checkbox value="soccer">Soccer</Checkbox>
  <Checkbox value="baseball">Baseball</Checkbox>
  <Checkbox value="basketball">Basketball</Checkbox>
</CheckboxGroup>

Value

Use the value or defaultValue prop to set the selected items, and onChange to handle selection changes.

Favorite sports

Current selection: soccer, baseball

import {CheckboxGroup, Checkbox} from '@react-spectrum/s2';
import {useState} from 'react';

function Example() {
  let [selected, setSelected] = useState(['soccer', 'baseball']);

  return (
    <>
      <CheckboxGroup
        label="Favorite sports"
        value={selected}
        onChange={setSelected}>
        <Checkbox value="soccer">Soccer</Checkbox>
        <Checkbox value="baseball">Baseball</Checkbox>
        <Checkbox value="basketball">Basketball</Checkbox>
      </CheckboxGroup>
      <p>Current selection: {selected.join(', ')}</p>
    </>
  );
}

Forms

Use the name prop to submit the selected checkboxes to the server. Set the isRequired prop on the <CheckboxGroup> to validate the user selects at least one checkbox, or on individual checkboxes. See the Forms guide to learn more.

Sandwich condiments 
Agree to the following
import {CheckboxGroup, Checkbox, Button, Form} from '@react-spectrum/s2';

<Form>
  <CheckboxGroup
    label="Sandwich condiments"
    name="condiments"
    isRequired>
    <Checkbox value="lettuce">Lettuce</Checkbox>
    <Checkbox value="tomato">Tomato</Checkbox>
    <Checkbox value="onion">Onion</Checkbox>
    <Checkbox value="sprouts">Sprouts</Checkbox>
  </CheckboxGroup>
  <CheckboxGroup label="Agree to the following" name="terms">
    <Checkbox value="terms" isRequired>Terms and conditions</Checkbox>
    <Checkbox value="privacy" isRequired>Privacy policy</Checkbox>
    <Checkbox value="cookies" isRequired>Cookie policy</Checkbox>
  </CheckboxGroup>
  <Button type="submit" style={{marginTop: 8}}>Submit</Button>
</Form>

API

<CheckboxGroup>
  <Checkbox />
</CheckboxGroup>

CheckboxGroup

NameTypeDefault
size'S''M''L''XL'Default: 'M'
The size of the Checkboxes in the CheckboxGroup.
orientationDefault: 'vertical'
The axis the checkboxes should align with.
childrenReactNodeDefault:
The Checkboxes contained within the CheckboxGroup.
isEmphasizedbooleanDefault:
By default, checkboxes are not emphasized (gray). The emphasized (blue) version provides visual prominence.
isDisabledbooleanDefault:
Whether the input is disabled.
isReadOnlybooleanDefault:
Whether the input can be selected but not changed by the user.
stylesDefault:
Spectrum-defined styles, returned by the style() macro.
valuestring[]Default:
The current value (controlled).
defaultValuestring[]Default:
The default value (uncontrolled).
onChange(value: T) => voidDefault:
Handler that is called when the value changes.