UNPKG

@vtex/styleguide

Version:

> VTEX Styleguide React components ([Docs](https://vtex.github.io/styleguide))

89 lines (75 loc) 2.29 kB
#### A CheckboxGroup represents a group of related binary choices in the format of checkboxes. ### 👍 Dos - Initialize it with a default value that makes sense to your needs. - Use a text label for the checkbox groups, which should clearly inform that this checkbox checks or unchecks all the other checkboxes. - Use a text label for each of the inner checkboxes, which should be intuitive and provide sufficient context for the user take that decision. ### 👎 Don'ts - Don't use negative labels because they are harder to interpret. - Don't implement an "autosave" behavior: checkboxes should always require the use of a button (like "SAVE" or "OK") to commit the choice. ### Related components - If the inner checkboxes have no relation between them consider using single <a href="#/Components/Forms/Checkbox">Checkboxes</a>. Simple Group ```js initialState = { checkedMap: { check1: {label: "Filter 1", checked: true}, check2: {label: "Filter 2", checked: false}, check3: {label: "Filter 3", checked: false} } } ;<div> <CheckboxGroup name="simpleCheckboxGroup" label="All Filters" id="simple" value="simple" checkedMap={state.checkedMap} onGroupChange={newCheckedMap => { setState({ checkedMap: newCheckedMap }) }} /> </div> ``` Disabled Group ```js initialState = { checkedMap: { check1: {label: "Filter 1", checked: true}, check2: {label: "Filter 2", checked: false}, check3: {label: "Filter 3", checked: false} } } ;<div> <CheckboxGroup name="disabledCheckboxGroup" disabled label="All Filters" id="disabled" value="disabled" checkedMap={state.checkedMap} onGroupChange={newCheckedMap => { setState({ checkedMap: newCheckedMap }) }} /> </div> ``` Without Padding ```js initialState = { checkedMap: { check1: {label: "Filter 1", checked: true}, check2: {label: "Filter 2", checked: false}, check3: {label: "Filter 3", checked: false} } } ;<div> <CheckboxGroup padded={false} name="withoutPaddingCheckboxGroup" label="All Filters" id="withoutPadding" value="withoutPadding" checkedMap={state.checkedMap} onGroupChange={newCheckedMap => { setState({ checkedMap: newCheckedMap }) }} /> </div> ```