ControlBox
ControlBox provides style props to change it's styles based on a sibling
checkbox or radio input. It relies on a
common CSS technique
for styling custom controls.
For this component to work, it should have a sibling input and be contained
in a label
Usage#
Creating a custom checkbox component
Editable Example
Creating a custom radio component
Editable Example
Props#
ControlBox composes the Box component so you can pass all Box props. By
default, we toggle the opacity of the ControlBox children by setting _child
to { opacity: 0 } and _checkedAndChild to { opacity: 1 }
| Prop | CSS selector | Description |
|---|---|---|
| _hover | [input]:hover + & | Styles for when the sibling input is hovered |
| _focus | [input]:focus + & | Styles for when the sibling input is focused |
| _disabled | [input]:disabled + & | Styles for when the sibling input is disabled |
| _checked | [input]:checked + & | Styles for when the sibling input is checked |
| _checkedAndDisabled | [input]:checked:disabled + & | Styles for when the sibling input is checked and disabled |
| _checkedAndFocus | [input]:checked:focus + & | Styles for when the sibling input is checked and focused |
| _checkedAndHover | [input]:checked:hover + & | Styles for when the sibling input is checked and hovered |
| _invalid | [input]:[aria-invalid=true] + & | Styles for when the sibling input has aria-invalid set to true |
| _child | [input] + & > * | Styles for the child of the ControlBox |
| _checkedAndChild | [input]:checked + & > * | Styles for the child of the ControlBox when the sibling input is checked |