@appearhere/bloom
Version:
Appear Here's pattern library and styleguide
80 lines (68 loc) • 1.52 kB
CSS
.root {
position: relative;
display: inline-block;
}
.root * {
box-sizing: border-box;
}
.root input {
position: absolute;
opacity: 0;
width: 1em;
height: 1em;
margin: 0;
}
.checkbox {
display: inline-block;
}
.labelContainer {
vertical-align: bottom;
}
.label {
composes: fontRegular from '../../../globals/typography.css';
color: currentColor;
margin-left: var(--size-regular);
display: block;
}
.root input:focus + label .checkbox {
outline-color: var(--color-focusRing);
outline-style: auto;
outline-width: 5px;
}
.root input + label .checkbox {
border: 2px solid var(--color-greyLighter);
border-radius: 4px;
line-height: 0;
display: inline-block;
transition: background-color 200ms, border-color 200ms;
transition-timing-function: cubic-bezier(0,1,.75,1);
color: var(--color-white);
}
.icon {
line-height: 0;
display: inline-block;
transform: scale(0.6) rotate(-30deg) translateZ(0);
opacity: 0;
transition: transform 200ms, opacity 200ms;
will-change: transform, opacity;
backface-visibility: hidden;
}
.icon svg {
line-height: 0;
vertical-align: middle;
height: 1em;
width: 1em;
}
.root input + label:hover .icon {
border-color: var(--color-greyLight);
color: var(--color-greyLight);
opacity: 0.2;
}
.root input:checked + label .checkbox {
background-color: var(--color-greyDark);
border-color: var(--color-greyDark);
}
.root input:checked + label .icon {
transform: scale(1) rotate(0deg) translateZ(0);
opacity: 1;
}