Нестандартный checkbox

Чтобы при клике по тексту выбирался чекбокс необходимо атрибут for у тега label задать соответствующему id чекбокса.

У Вадима Макеева вышло на редкость полезное видео про создание нестандартных чекбоксов с разъяснениями для самых маленьких

Результат

html

<label class="check option">
    <input class="check__input" type="checkbox">
    <span class="check__box"></span>
    Первый
</label>
<label class="check option">
    <input class="check__input" type="checkbox" checked="">
    <span class="check__box"></span>
    Второй
</label>
<label class="check option">
    <input class="check__input" type="checkbox" disabled="">
    <span class="check__box"></span>
    Третий
</label>
<label class="check option">
    <input class="check__input" type="checkbox" checked="" disabled="">
    <span class="check__box"></span>
    Четвёртый
</label>

css

/* Option */

.option {
    display: block;
    margin-bottom: 0.5em;
}

/* Check */

.check {
    padding-left: 1.3em;
}

.check__input {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
}

.check__box {
    position: absolute;
    margin-top: 0.5em;
    margin-left: -1.1em;
    width: 0.7em;
    height: 0.7em;
    overflow: hidden;
    border-radius: 0.05em;
    background-color: white;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    box-shadow: 0 0 0 0.1em #4A90E2;
}

/* Checked */

.check__input:checked + .check__box {
    background-color: #4A90E2;
    background-image: url(https://cdn.glitch.com/d6162378-5823-4160-a555-3d9789bd2b92%2Fcheck.svg?1550563475518);
}

/* Focused */

.check__input:focus + .check__box {
    box-shadow:
        0 0 0 0.1em #4A90E2,
        0 0 0 0.2em #7ED321;
}

/* Disabled */

.check__input:disabled + .check__box {
    box-shadow: 0 0 0 0.1em #9B9B9B;
}

.check__input:checked:disabled + .check__box {
    background-color: #9B9B9B;
}

После просмотра проверил известные дизайн системы. Альфабанк, mail.ru, контур, некий барс, яндекс.музыка, мегафон ЛК не использут предложенный appearance для скрытия настоящего чекбокса. Обычно это display: none; или opacity: 0;


Похожие записи

О шрифтах

Ссылки на 2 хорошо структурированных материала про шрифты.

  • Статья для тех, кто ничего не понимает в шрифтах.
  • Видео для тех, кто хочет заразиться страстью к шрифтам и типографике