Back to CSS Checkboxes Brutalist Checkbox Pure CSS
Share
/* Card background must be light, e.g. #f0ede5 */
.cb-brute {
  display: inline-flex; align-items: center;
  gap: 10px; cursor: pointer; user-select: none;
}
.cb-brute__input { display: none; }
.cb-brute__box {
  width: 24px; height: 24px;
  border: 2.5px solid #1a1a1a;
  box-shadow: 3px 3px 0 #1a1a1a;
  background: #fff;
  display: flex; align-items: center;
  justify-content: center;
  font-size: 14px; color: transparent;
  cursor: pointer;
  transition:
    transform .12s, box-shadow .12s,
    background .12s, color .12s;
}
.cb-brute__input:checked + .cb-brute__box {
  background: #1a1a1a; color: #fff;
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 #1a1a1a;
}
<!-- Requires a light background on the parent -->
<label class="cb-brute">
  <input class="cb-brute__input" type="checkbox" checked />
  <span class="cb-brute__box" aria-hidden="true">&#10003;</span>
  <span>Brutalist checkbox</span>
</label>
Live preview Edit any tab — preview updates live Ready