spur-tailwind
Version:
Spur web UI
63 lines (51 loc) • 1.84 kB
CSS
$checkbox-size: 20px;
$check-width: 14px;
$check-height: 14px;
$check: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDQ0OCA1MTIiPjxzdHlsZT4uc3Qwe2ZpbGw6I2ZmZmZmZjt9PC9zdHlsZT48cGF0aCBjbGFzcz0ic3QwIiBkPSJNNDEzLjUwNSA5MS45NTFMMTMzLjQ5IDM3MS45NjZsLTk4Ljk5NS05OC45OTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw2LjIxMSAyODQuMjg0Yy00LjY4NiA0LjY4Ni00LjY4NiAxMi4yODQgMCAxNi45NzFsMTE4Ljc5NCAxMTguNzk0YzQuNjg2IDQuNjg2IDEyLjI4NCA0LjY4NiAxNi45NzEgMGwyOTkuODEzLTI5OS44MTNjNC42ODYtNC42ODYgNC42ODYtMTIuMjg0IDAtMTYuOTcxbC0xMS4zMTQtMTEuMzE0Yy00LjY4Ni00LjY4Ni0xMi4yODQtNC42ODYtMTYuOTcgMHoiLz48L3N2Zz4=';
.check {
@apply relative flex;
}
.check:hover {
cursor: pointer;
}
.check-text {
@apply block;
padding-left: ($checkbox-size * 1.75);
line-height: $checkbox-size;
min-height: $checkbox-size;
}
.check-text::before,
.check-text::after {
content: '';
}
.check-text::before {
@apply absolute top-0 left-0 block rounded border border-border-line-purple;
width: $checkbox-size;
height: $checkbox-size;
}
.check-text::after {
@apply absolute block opacity-0;
top: (($checkbox-size - $check-height) / 2);
left: (($checkbox-size - $check-width) / 2);
width: $check-width;
height: $check-height;
transition: background-color 150ms ease-in-out, opacity 150ms ease-in-out;
background: url($check) center no-repeat;
}
.check-input:checked ~ .check-text::after {
opacity: 1;
}
.check-input:checked ~ .check-text::before {
@apply bg-support-purple border-support-purple;
}
.check-input {
position: absolute;
left: -999em;
}
/* Disabled checkbox */
.check-input[disabled] ~ .check-text::before {
@apply bg-dead-state-purple border-dead-state-purple;
}
.check-input[disabled] ~ .check-text {
@apply text-dead-state-purple;
}