portfolio/src/components/molecules/ThemeSwitch.scss

100 lines
1.9 KiB
SCSS

@import 'variables';
.themeswitch {
position: absolute;
top: $spacer / 2;
right: $spacer;
z-index: 10;
.icon {
width: .8rem;
height: .8rem;
margin-top: -.05rem;
fill: $brand-grey-light;
&:last-child {
margin-top: -.1rem;
width: .7rem;
height: .7rem;
}
.dark & {
fill: $brand-grey;
}
}
}
.checkbox__faux-container {
display: flex;
align-items: center;
}
$knob-size: 8px;
$knob-space: 1px;
.checkbox__faux {
display: block;
position: relative;
width: ($knob-size + ($knob-space * 2)) * 2;
height: $knob-size + ($knob-space * 4);
border: 1px solid $brand-grey-light;
border-radius: 15rem;
margin-left: $spacer / 3;
margin-right: $spacer / 3;
&::after {
content: '';
position: absolute;
top: $knob-space;
left: $knob-space;
width: $knob-size;
height: $knob-size;
background-color: $brand-grey-light;
border-radius: 15rem;
transition: transform .2s $easing;
transform: translate3d(0, 0, 0);
}
.dark & {
border-color: $brand-grey;
&::after {
background-color: $brand-grey;
}
}
}
.checkbox {
position: relative;
cursor: pointer;
opacity: .6;
.dark & {
opacity: .8;
}
[type='checkbox'],
.checkbox__label {
width: 1px;
height: 1px;
border: 0;
clip: rect(0 0 0 0);
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
}
[type='checkbox'] {
&:checked {
+ .checkbox__faux-container {
.checkbox__faux {
&::after {
transform: translate3d(100%, 0, 0);
}
}
}
}
}
}