0.16.5 • Published 4 months ago

@justeattakeaway/pie-checkbox v0.16.5

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
4 months ago

@justeattakeaway/pie-checkbox

Source Code | Design Documentation | NPM

@justeattakeaway/pie-checkbox is a Web Component built using the Lit library. It offers a simple and accessible checkbox component for web applications.

Table of Contents

Installation

To install any of our web components in your application, we would suggest following the getting started guide to set up your project.

Ideally, you should install the component using the @justeattakeaway/pie-webc package, which includes all of the components. Or you can install the individual component package.

Documentation

Properties

PropOptionsDescriptionDefault
name-The name of the checkbox (used as a key/value pair with value). This is required in order to work properly with forms.-
value-The value of the input (used as a key/value pair in HTML forms with name). If not passed falls back to the html default value "on"."on"
required-If true, the checkbox is required to be checked before submitting the form. If it is not in checked state, the component validity state will be invalid.false
disabled-Indicates whether or not the checkbox is disabled.false
checked-Controls whether or not the checkbox is checked.false
defaultChecked-Sets the default checked state for the checkbox. This does not directly set the initial checked state when the page loads, use checked for that. If the checkbox is inside a form which is reset, the checked state will be updated to match defaultChecked.false
indeterminate-Indicates whether the checkbox visually shows a horizontal line in the box instead of a check/tick. It has no impact on whether the checkbox's value is used in a form submission. That is decided by the checked state, regardless of the indeterminate state.false
assistiveText-Allows assistive text to be displayed below the checkbox element.-
status"default", "error", "success"The status of the checkbox component / assistive text. If you use status you must provide an assistiveText prop value for accessibility purposes."default"

Slots

SlotDescription
defaultThe default, unnamed slot is used to pass in text to the component.

CSS Variables

This component does not expose any CSS variables for style overrides.

Events

EventTypeDescription
changeCustomEventTriggered after the checked state of a checkbox changes.

Forms Usage

Validation

The checkbox component utilizes the constraint validation API to provide a queryable validity state for consumers. This means that the component's validity can be checked via a validity getter.

Example:

const checkbox = document.querySelector('pie-checkbox');
console.log(checkbox.validity.valid);

This getter can be useful for reducing the amount of validation code in your application. For example, if you want to create a checkbox that requires attention, you can set the required property on the component. You can then check the validity of the input in your application code:

<pie-checkbox id="my-checkbox" required></pie-checkbox>
const checkbox = document.querySelector('pie-checkbox');
const isValid = checkbox.validity.valid;

// We could use this to drive the status and assistiveText properties on our checkbox (this would likely be inside a submit event handler in a real application)
if (!isValid) {
  checkbox.status = 'error';
  checkbox.assistiveText = 'This checkbox is required';
}

These concepts work just as well inside a Vue or React application.

Usage Examples

For HTML:

// import as module into a js file e.g. main.js
import '@justeattakeaway/pie-webc/components/checkbox.js'
<pie-checkbox name="mycheckbox">Label</pie-checkbox>

<!-- Always use aria-label if you are not passing a label -->
<pie-checkbox name="mycheckbox" aria-label="Label"></pie-checkbox>
<script type="module" src="/main.js"></script>

For Native JS Applications, Vue, Angular, Svelte etc.:

// import as module into a js file that will be loaded on the page where the component is used.
import '@justeattakeaway/pie-webc/components/checkbox.js';
<pie-checkbox name="mycheckbox">Label</pie-checkbox>

<!-- Always use aria-label if you are not passing a label -->
<pie-checkbox name="mycheckbox" aria-label="Label"></pie-checkbox>

For React Applications:

import { PieCheckbox } from '@justeattakeaway/pie-webc/react/checkbox.js';

<PieCheckbox name="mycheckbox">Label</PieCheckbox>

// Always use aria-label if you are not passing a label
<PieCheckbox name="mycheckbox" aria-label="Label"></PieCheckbox>

Questions and Support

If you work at Just Eat Takeaway.com, please contact us on #help-designsystem. Otherwise, please raise an issue on Github.

Contributing

Check out our contributing guide for more information on local development and how to run specific component tests.

0.13.6

12 months ago

0.13.7

10 months ago

0.13.8

9 months ago

0.13.9

8 months ago

0.13.5

12 months ago

0.14.0

8 months ago

0.14.1

8 months ago

0.14.2

8 months ago

0.14.3

7 months ago

0.15.4

6 months ago

0.15.5

5 months ago

0.15.6

5 months ago

0.15.0

7 months ago

0.15.1

7 months ago

0.15.2

7 months ago

0.15.3

6 months ago

0.13.10

8 months ago

0.16.3

5 months ago

0.16.4

5 months ago

0.16.5

4 months ago

0.16.0

5 months ago

0.16.1

5 months ago

0.16.2

5 months ago

0.13.4

12 months ago

0.13.1

1 year ago

0.13.2

1 year ago

0.13.3

1 year ago

0.13.0

1 year ago

0.12.2

1 year ago

0.12.3

1 year ago

0.11.0

1 year ago

0.12.0

1 year ago

0.12.1

1 year ago

0.10.0

1 year ago

0.9.0

1 year ago

0.8.0

1 year ago

0.7.1

1 year ago

0.5.0

1 year ago

0.4.0

1 year ago

0.3.1

1 year ago

0.7.0

1 year ago

0.6.0

1 year ago

0.3.0

1 year ago

0.2.0

1 year ago

0.1.0

1 year ago

0.0.0

1 year ago