CodeKitHub
Інструменти CSS

Генератор CSS-чекбоксів

Останнє оновлення:

Оберіть стиль чекбокса, задайте розмір і акцентний колір, і цей інструмент згенерує CSS, що замінює звичайний браузерний чекбокс на кастомно стилізований — при цьому повністю клікабельний і доступний — без іконкових шрифтів чи зображень.

Preview

Click the checkbox in the preview to see the checked state.

Generated CSS

Що це за інструмент?

Стандартні браузерні чекбокси виглядають по-різному в кожному браузері, і їх складно перестилізувати напряму, оскільки їхній вигляд за замовчуванням малює операційна система, а не звичайний CSS. Стандартний обхідний шлях — візуально приховати нативний чекбокс і стилізувати сусідній елемент, керуючись станом :checked чекбокса — сам input лишається повністю функціональним і доступним, змінюється лише його вигляд.

Цей інструмент будує саме такий патерн для трьох поширених стилів чекбокса: заокруглена коробка з анімованою галочкою, перемикач-тумблер у стилі iOS і стиль заповненого кола (схожий на радіокнопку). Клацніть на чекбокс у попередньому перегляді, щоб побачити позначений стан, налаштуйте розмір і акцентний колір, потім скопіюйте CSS.

Джерело: Selectors Level 4, W3C — специфікація, що визначає псевдоклас :checked, на якому базується ця техніка.

Навіщо його використовувати?

  • Живий, клікабельний попередній перегляд — перемкніть чекбокс, щоб побачити, як саме виглядають позначений і непозначений стани.
  • Три відмінні, широко вживані стилі в одному інструменті: коробка з галочкою, перемикач-тумблер і заповнене коло.
  • Базовий елемент лишається справжнім <input type="checkbox">, тож навігація з клавіатури, надсилання форми й скрінрідери продовжують працювати як зазвичай.
  • Налаштовувані розмір і акцентний колір, згенеровані напряму в значення CSS, а не залишені як змінні для заповнення.
  • Не потрібен ні іконковий шрифт, ні SVG-файл, ні зображення — галочка й повзунок намальовані звичайними CSS-рамками та псевдоелементами.
  • Безкоштовно, працює у вашому браузері, без реєстрації.

Як користуватися

  1. Оберіть стиль: заокруглена галочка, перемикач-тумблер чи заповнене коло.
  2. Перетягніть повзунок розміру, щоб збільшити чи зменшити чекбокс.
  3. Оберіть акцентний колір — він стане кольором фону й рамки в позначеному стані.
  4. Клацніть на чекбокс у панелі попереднього перегляду, щоб переконатися, що обидва стани — позначений і непозначений — виглядають правильно.
  5. Скопіюйте згенерований CSS у свою таблицю стилів і використовуйте його на будь-якому <input type="checkbox">, обгорнутому так само, як у розмітці попереднього перегляду.

Приклад

Введення

Стиль: заокруглена галочка · Розмір: 24px · Колір: помаранчевий

Результат

.css-checkbox .mark {
  width: 24px;
  height: 24px;
  border: 2px solid #f97316;
  border-radius: 5px;
}

.css-checkbox input:checked + .mark {
  background: #f97316;
}

Input чекбокса приховано візуально; видима коробка — це сусідній <span>, стилізований залежно від стану :checked input, з невеликою повернутою рамкою, намальованою як галочка після позначення.

Чому приховувати нативний чекбокс, а не видаляти його

Виникає спокуса пропустити справжній <input> і побудувати чекбокс лише зі стилізованого <div> з обробником кліку, але це безкоштовно втрачає підтримку клавіатури, надсилання форми й семантику для скрінрідерів. Патерн, що генерує цей інструмент, зберігає справжній input чекбокса в розмітці — лише візуально приховує його через opacity: 0 і перепозиціонування, — тож браузер продовжує сприймати його як справжній чекбокс у всьому, що має значення, поки сусідній елемент відповідає за видиму стилізацію.

Три стилі в двох словах

  • Заокруглена галочка: знайомий патерн «квадрат із галочкою», найпоширеніший для полів форм, чекбоксів згоди й списків із множинним вибором.
  • Перемикач-тумблер: сприймається як миттєве налаштування «увімкнено/вимкнено», а не поле форми — найкраще підходить для екранів переваг і налаштувань, а не для списків чекбоксів.
  • Заповнене коло: мінімалістичний вигляд, схожий на радіокнопку, корисний, коли квадратна коробка виглядатиме візуально важкою поряд із заокругленими елементами інтерфейсу.

Узгодження з рештою вашого інтерфейсу

Згенерований акцентний колір впливає лише на позначений стан — оберіть той, що відповідає вашому бренду чи кольору кнопок, щоб чекбокс гармонійно вписувався в решту сторінки. Поєднайте його з тим самим border-radius, що використовується в інших місцях інтерфейсу, для більш цілісного вигляду.

Генератор border-radius · Піпетка кольору

Часті запитання

Чи залишається стилізований чекбокс доступним?

Так — базовий елемент є справжнім <input type="checkbox">, лише візуально прихованим, а не видаленим. Він, як і раніше, отримує фокус, реагує на введення з клавіатури (пробіл для перемикання) і коректно озвучується скрінрідерами, оскільки допоміжні технології зчитують саме елемент input, а не стилізований span поряд із ним.

Чому CSS використовує селектор сусіда на кшталт input:checked + .mark?

Оскільки видима коробка — це окремий елемент від власне input чекбокса, CSS потрібен спосіб стилізувати цього сусіда залежно від стану input. Комбінатор + обирає елемент одразу після позначеного input — це стандартна техніка для побудови кастомних стилів чекбоксів і радіокнопок без JavaScript.

Чи можна використовувати це в реальній формі, а не лише в демо?

Так — скопіюйте згенерований CSS і обгорніть справжній input чекбокса форми в таку саму структуру розмітки, показану в HTML/попередньому перегляді. Оскільки це, як і раніше, нативний чекбокс, він надсилається разом із формою точно так само, як нестилізований, і працює з наявною логікою валідації форми.

Чому галочка в заокругленому стилі анімована?

Коротка анімація масштабування галочки робить позначений стан більш виразним і чутливим, ніж миттєва поява/зникнення, — це поширений патерн у відшліфованих інтерфейсних чекбоксах. Це невелике правило CSS keyframes, включене разом із рештою згенерованого коду.

Чи потребує стиль перемикача-тумблера іншого HTML?

Ні — усі три стилі використовують ту саму базову розмітку (прихований input чекбокса плюс сусідній елемент для видимої форми). Перемикання стилів у цьому інструменті змінює лише CSS-правила, застосовані до тієї самої структури, тож ви можете пізніше поміняти стиль, не чіпаючи HTML.

Схожі інструменти