Initial commit
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
.checkbox {
|
||||
position: relative;
|
||||
|
||||
.checkbox-decoration {
|
||||
display: flex;
|
||||
position: relative;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
overflow: hidden;
|
||||
border: 1px solid $checkbox__border-color;
|
||||
border-radius: 2px;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.checkbox-check {
|
||||
transform-origin: 50% 50%;
|
||||
stroke-width: 2;
|
||||
stroke-dasharray: 48;
|
||||
stroke-dashoffset: 48;
|
||||
stroke: $checkbox-stroke__color;
|
||||
}
|
||||
|
||||
.checkbox-decorationMedia {
|
||||
display: flex;
|
||||
position: relative;
|
||||
width: 18px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
transform: translateY(3px);
|
||||
}
|
||||
|
||||
.checkbox-input {
|
||||
position: absolute;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-radius: 3px;
|
||||
background: $checkbox__bg-color;
|
||||
cursor: pointer;
|
||||
|
||||
&::before {
|
||||
content: ' ';
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: url('../assets/icons/common/check-hover.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -3px;
|
||||
left: -3px;
|
||||
width: calc(100% + 6px);
|
||||
height: calc(100% + 6px);
|
||||
}
|
||||
|
||||
&:hover + .checkbox-decoration {
|
||||
border: 1px solid $checkbox__border-color--hover;
|
||||
}
|
||||
|
||||
&.is-selected,
|
||||
&:checked {
|
||||
+ .checkbox-decoration {
|
||||
border: 1px solid $checkbox__border-color--hover;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: calc(50% - 12px);
|
||||
left: calc(50% - 12px);
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
animation: radioIn 300ms;
|
||||
border-radius: 3px;
|
||||
opacity: 1;
|
||||
animation-fill-mode: forwards;
|
||||
background: $checkbox__bg-color--selected;
|
||||
}
|
||||
|
||||
.checkbox-check {
|
||||
animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 300ms forwards;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:focus {
|
||||
outline: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes stroke {
|
||||
100% {
|
||||
stroke-dashoffset: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes radioIn {
|
||||
0% {
|
||||
transform: scale3d(0.3, 0.3, 0.3);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
to {
|
||||
transform: scale3d(1, 1, 1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user