ControlGroup
A layout component that arranges and manages a group of related controls, such as radio buttons, switches, or checkboxes.@coinbase/cds-web@8.38.1
import { ControlGroup } from '@coinbase/cds-web/controls/ControlGroup'
Related components
Checkbox Cell Group
Loading...
Live Codefunction CheckboxGroupExample() { const [selected, setSelected] = useState(['one', 'four']); return ( <VStack gap={2}> <ControlGroup label={<Text font="headline">Checkbox Group</Text>} ControlComponent={CheckboxCell} value={selected} onChange={(e) => { const { value: checkboxValue, checked } = e.target; setSelected((prev) => checked ? [...prev, checkboxValue] : prev.filter((v) => v !== checkboxValue), ); }} options={[ { value: 'one', title: 'Option 1', description: 'A description for the first option.' }, { value: 'two', title: 'Option 2', description: 'A description for the second option.' }, { value: 'three', title: 'Option 3', description: 'This option is disabled.', disabled: true, }, { value: 'four', title: 'Option 4', description: 'This option is read-only.', readOnly: true, }, ]} /> <Text>Selected: {selected.join(', ')}</Text> </VStack> ); }
Radio Cell Group
Loading...
Live Codefunction RadioGroupExample() { const [selected, setSelected] = useState('one'); return ( <VStack gap={2}> <ControlGroup label={<Text font="headline">Radio Group</Text>} ControlComponent={RadioCell} value={selected} role="radiogroup" onChange={(e) => setSelected(e.target.value)} options={[ { value: 'one', title: 'Option 1', description: 'A description for the first option.' }, { value: 'two', title: 'Option 2', description: 'A description for the second option.' }, { value: 'three', title: 'Option 3', description: 'This option is disabled.', disabled: true, }, { value: 'four', title: 'Option 4', description: 'This option is read-only.', readOnly: true, }, ]} /> <Text>Selected: {selected}</Text> </VStack> ); }
Checkbox
Loading...
Live Codefunction CheckboxExample() { const [selected, setSelected] = useState(['one', 'four']); return ( <VStack gap={2}> <ControlGroup label={<Text font="headline">Checkbox</Text>} ControlComponent={Checkbox} value={selected} onChange={(e) => { const { value: checkboxValue, checked } = e.target; setSelected((prev) => checked ? [...prev, checkboxValue] : prev.filter((v) => v !== checkboxValue), ); }} options={[ { value: 'one', label: 'Option 1' }, { value: 'two', label: 'Option 2' }, { value: 'three', label: 'Option 3 (disabled)', disabled: true }, { value: 'four', label: 'Option 4 (read-only)', readOnly: true }, ]} /> <Text>Selected: {selected.join(', ')}</Text> </VStack> ); }