4.0.2 • Published 3 years ago

@accessible/checkbox v4.0.2

Weekly downloads
30
License
MIT
Repository
github
Last release
3 years ago

An accessible checkbox component for React. This library allows you to create your own a checkbox with your own styles while maintaining the ability to focus and update a checkbox input with the keyboard.

Quick Start

Check out the example on CodeSandbox

import {Checkbox, Checkmark} from '@accessible/checkbox'

const MyCheckbox = () => (
  <label className='my-checkbox'>
    <Checkbox name='my-field-name'>
      <span className='my-checkbox'>
        <Checkmark checkedClass='checked' uncheckedClass='unchecked'>
          <span className='checkmark' />
        </Checkmark>
      </span>
    </Checkbox>
    Check me!
  </label>
)

API

<Checkbox>

Creates a visually hidden checkbox input that is focusable and accessible via keyboard navigation. All props passed to this component are applied to the <input>. This also creates a context provider enabling the other components in this library to access the checkbox's state deep in the tree.

Props

PropTypeDefaultRequired?Description
checkedbooleanundefinedNoMakes the checkbox a controlled component which can no longer be updated with check, uncheck, and toggle controls.
defaultCheckedbooleanundefinedNoSet this to true to make the checkbox checked by default.
onChange(checked: boolean) => anyundefinedNoCalled each time the checked state changes.
childrenReact.ReactNodeundefinedNoYour custom styled checkbox.

<Checkmark>

A convenient component for conditionally adding class names and styles when the component is checked/unchecked.

Props

PropTypeDefaultRequired?Description
uncheckedClassstringundefinedNoThis class name will be applied to the child element when the checkbox is unchecked.
checkedClassstringundefinedNoThis class name will be applied to the child element when the checkbox is checked.
uncheckedStyleReact.CSSPropertiesundefinedNoThese styles will be applied to the child element when the checkbox is unchecked.
checkedStyleReact.CSSPropertiesundefinedNoThese styles name will be applied to the child element when the checkbox is checked.
childrenReact.ReactNodeundefinedYesThe child you wish to render when the checkbox is checked.

<Checked>

The child of this component will only render when the <Checkbox> is in a checked state. It must be a child of a <Checkbox>.

Props

PropTypeDefaultRequired?Description
childrenReact.ReactNodeundefinedYesThe child you wish to render when the checkbox is checked.

<Unchecked>

The child of this component will only render when the <Checkbox> is in an unchecked state. It must be a child of a <Checkbox>.

Props

PropTypeDefaultRequired?Description
childrenReact.ReactNodeundefinedYesThe child you wish to render when the checkbox is unchecked.

<Toggle>

This component clones its child and adds an onClick handler to toggle the <Checkbox> between checked and unchecked states. It must be a child of a <Checkbox>.

Props

PropTypeDefaultRequired?Description
childrenReact.ReactNodeundefinedYesThe child you wish to render when the checkbox is unchecked.

useCheckbox()

A React hook that returns the CheckboxContextValue for the nearest <Checkbox> parent.

CheckboxContextValue

interface CheckboxContextValue {
  // Does the checkbox have a `checked` property?
  checked: boolean
  // Is the checkbox currently focused?
  focused: boolean
  // Is the checkbox currently disabled?
  disabled: boolean
  // Checks the checkbox
  check: () => void
  // Unchecks the checkbox
  uncheck: () => void
  // Toggles the checkbox `checked` property
  toggle: () => void
}

LICENSE

MIT

4.0.2

3 years ago

4.0.1

4 years ago

4.0.0

4 years ago

3.1.0

4 years ago

3.0.0

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

1.1.0

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago