@miraidesigns/checkbox

1.0.0 • Public • Published

Checkboxes

Checkboxes allow users to select one or multiple options.


HTML

<div class="mdf-checkbox">
    <input id="checkbox" class="mdf-checkbox__input" type="checkbox" />

    <div class="mdf-checkbox__box">
        <svg class="mdf-checkbox__check" viewBox="0 0 24 24" aria-hidden="true">
            <use href="icons.svg#checkbox"></use>
        </svg>
    </div>
</div>

Sass

// Include default styles without configuration
@forward '@miraidesigns/checkbox/styles';
// Configure appearance
@use '@miraidesigns/checkbox' with (
    $variable: value
);

@include checkbox.styles();

Examples

Some basic examples on how the module can be used.

Labels

To ensure proper alignment, wrap the checkbox and label element inside a .mdf-control element.

<div class="mdf-control">
    <div class="mdf-checkbox">
        <input id="labeled-checkbox" class="mdf-checkbox__input" type="checkbox" />

        <div class="mdf-checkbox__box">
            <svg class="mdf-checkbox__check" viewBox="0 0 24 24" aria-hidden="true">
                <use href="icons.svg#checkbox"></use>
            </svg>
        </div>
    </div>

    <label for="labeled-checkbox">Checkbox</label>
</div>

Indeterminate

JavaScript is required to set the indeterminate state.

<div class="mdf-control">
    <div class="mdf-checkbox">
        <input id="indeterminate-checkbox" class="mdf-checkbox__input" type="checkbox" />

        <div class="mdf-checkbox__box">
            <svg class="mdf-checkbox__check" viewBox="0 0 24 24" aria-hidden="true">
                <use href="icons.svg#checkbox"></use>
            </svg>

            <svg class="mdf-checkbox__indeterminate" viewBox="0 0 24 24" aria-hidden="true">
                <use href="icons.svg#checkbox-indeterminate"></use>
            </svg>
        </div>
    </div>

    <label for="indeterminate-checkbox">Indeterminate Checkbox</label>
</div>
import { MDFCheckbox } from '@miraidesigns/checkbox';

const checkbox = new MDFCheckbox(document.querySelector('.mdf-checkbox'));
checkbox.indeterminate = true;

Implementation

Classes

Name Type Description
mdf-control Parent Wraps the checkbox and label element
mdf-checkbox Parent Checkbox container element
mdf-checkbox--disabled Modifier Fades out the element and disabled all interaction
mdf-checkbox--indeterminate Modifier Sets the checkbox state as indeterminate. Done through JavaScript
mdf-checkbox__input Child Input element, visually hidden. Used to determine the :checked state. Child to .mdf-checkbox
mdf-checkbox__box Child The border around the check. Child to .mdf-checkbox
mdf-checkbox__check Child The check icon. Child to .mdf-checkbox
mdf-checkbox__indeterminate Child The indeterminate icon. Child to .mdf-checkbox

Properties

Name Type Description
.input HTMLInputElement Returns the input element
.disabled boolean Get or set the input's disabled state
.checked boolean Get or set the input's checked state
.indeterminate boolean Get or set the input's indeterminate state
.value string Get or set the input's value

Package Sidebar

Install

npm i @miraidesigns/checkbox

Weekly Downloads

1

Version

1.0.0

License

ISC

Unpacked Size

11 kB

Total Files

9

Last publish

Collaborators

  • miraidesigns