1.0.0 • Published 4 years ago

@miraidesigns/checkbox v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
4 years ago

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

NameTypeDescription
mdf-controlParentWraps the checkbox and label element
mdf-checkboxParentCheckbox container element
mdf-checkbox--disabledModifierFades out the element and disabled all interaction
mdf-checkbox--indeterminateModifierSets the checkbox state as indeterminate. Done through JavaScript
mdf-checkbox__inputChildInput element, visually hidden. Used to determine the :checked state. Child to .mdf-checkbox
mdf-checkbox__boxChildThe border around the check. Child to .mdf-checkbox
mdf-checkbox__checkChildThe check icon. Child to .mdf-checkbox
mdf-checkbox__indeterminateChildThe indeterminate icon. Child to .mdf-checkbox

Properties

NameTypeDescription
.inputHTMLInputElementReturns the input element
.disabledbooleanGet or set the input's disabled state
.checkedbooleanGet or set the input's checked state
.indeterminatebooleanGet or set the input's indeterminate state
.valuestringGet or set the input's value