Merge branch 'features/rewrite/styles' of https://git.tompit.com/Connected/Connected.Components into features/rewrite/styles
commit
31be47fb6a
@ -1,102 +1,188 @@
|
|||||||
$color3: #f4f4f4;
|
$checkbox-primary-color: var(--bg-core-primary-darken);
|
||||||
$color4: var(--bg-core-primary-darken);
|
$checkbox-secondary-color: #f4f4f4;
|
||||||
|
$checkbox-disabled-color: darken($checkbox-secondary-color, 25%);
|
||||||
|
|
||||||
.checkbox-group {
|
.checkbox-group {
|
||||||
margin: 0.5rem;
|
--width: 1.25rem;
|
||||||
position:relative;
|
--height: var(--width);
|
||||||
input[type="checkbox"] {
|
--inset: calc(var(--width) / 10);
|
||||||
position: absolute;
|
|
||||||
opacity: 0;
|
|
||||||
+ .checkbox-label {
|
|
||||||
&:before {
|
|
||||||
content: "";
|
|
||||||
background: transparent;
|
|
||||||
border-radius: 0%;
|
|
||||||
border: 2px solid $color4;
|
|
||||||
display: inline-block;
|
|
||||||
width: 1.25em;
|
|
||||||
height: 1.25em;
|
|
||||||
position: relative;
|
|
||||||
top: .15rem;
|
|
||||||
margin-right: .75em;
|
|
||||||
vertical-align: top;
|
|
||||||
cursor: pointer;
|
|
||||||
text-align: center;
|
|
||||||
z-index: 1;
|
|
||||||
transition: all 250ms ease;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:checked {
|
|
||||||
+ .checkbox-label {
|
|
||||||
&:before {
|
|
||||||
background-color: $color4;
|
|
||||||
box-shadow: inset 0 0 0 2px $color3;
|
|
||||||
|
|
||||||
|
|
||||||
|
margin: 0.75rem 0;
|
||||||
|
width: max-content;
|
||||||
|
cursor: pointer;
|
||||||
|
position:relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap:.75rem;
|
||||||
|
z-index: 1;
|
||||||
|
|
||||||
|
&.reversed{
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
& :nth-child(1) {order:2;}
|
||||||
|
& :nth-child(2) {order:1;}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.column{
|
||||||
|
flex-direction: column;
|
||||||
|
gap:.25rem;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
// &:checked {
|
input[type="checkbox"] {
|
||||||
// + .checkbox-label {
|
position: absolute;
|
||||||
// &:after {
|
opacity: 0;
|
||||||
// background: $color3;
|
|
||||||
// z-index: 1;
|
|
||||||
// opacity: 1;
|
|
||||||
// scale: 0.25;
|
|
||||||
// clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
&:focus {
|
|
||||||
+ .checkbox-label {
|
|
||||||
&:before {
|
|
||||||
outline: none;
|
|
||||||
border-color: $color4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:disabled {
|
|
||||||
+ .checkbox-label {
|
|
||||||
color: darken($color3, 25%);
|
|
||||||
pointer-events: none;
|
|
||||||
&:before {
|
|
||||||
box-shadow: inset 0 0 0 2px $color3;
|
|
||||||
border-color: darken($color3, 25%);
|
|
||||||
background: darken($color3, 25%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+ .checkbox-label {
|
|
||||||
&:empty {
|
|
||||||
&:before {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
.checkbox-fill {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
width: var(--width);
|
||||||
|
height: var(--height);
|
||||||
|
background: transperent;
|
||||||
|
border: 2px solid $checkbox-primary-color;
|
||||||
|
transition: background 0.2s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.checkbox-input:checked ~ .checkbox-fill {
|
||||||
|
background: var(--bg-core-primary-darken);
|
||||||
|
box-shadow: inset 0 0 0 var(--inset) $checkbox-secondary-color;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-input:focus-within ~ .checkbox-fill {
|
||||||
|
outline: 1px solid $checkbox-primary-color;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.checkbox-input:disabled ~ .checkbox-fill {
|
||||||
|
box-shadow: inset 0 0 0 var(--inset) $checkbox-secondary-color;
|
||||||
|
border-color: $checkbox-disabled-color;
|
||||||
|
background: $checkbox-disabled-color;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-input:disabled ~ .checkbox-label {
|
||||||
|
color: $checkbox-disabled-color;
|
||||||
|
}
|
||||||
|
|
||||||
.checkbox-label:after {
|
|
||||||
content: "";
|
|
||||||
display: inline-block;
|
|
||||||
width: 35px;
|
|
||||||
height: 35px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: transparent;
|
|
||||||
position: absolute;
|
|
||||||
left: -8px;
|
|
||||||
top: -6px;
|
|
||||||
scale: .75;
|
|
||||||
transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.checkbox-fill::before {
|
||||||
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
width: calc(var(--width) * 1.8);
|
||||||
|
height: calc(var(--width) * 1.8);
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: transparent;
|
||||||
|
position: absolute;
|
||||||
|
z-index: -1;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
scale: .75;
|
||||||
|
transform-origin: left top;
|
||||||
|
transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25), transform 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.checkbox-fill:hover::before {
|
||||||
|
background: var(--bg-core-primary-lighten);
|
||||||
|
scale: 1;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// $checkbox-primary-color: var(--bg-core-primary-darken);
|
||||||
|
// $checkbox-secondary-color: #f4f4f4;
|
||||||
|
// $checkbox-disabled-color: darken($checkbox-secondary-color, 25%);
|
||||||
|
|
||||||
|
// .checkbox-group {
|
||||||
|
// margin: 0.5rem;
|
||||||
|
// position:relative;
|
||||||
|
|
||||||
|
// input[type="checkbox"] {
|
||||||
|
// position: absolute;
|
||||||
|
// opacity: 0;
|
||||||
|
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:before {
|
||||||
|
// content: "";
|
||||||
|
// background: transparent;
|
||||||
|
// border: 2px solid $checkbox-primary-color;
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 1.25em;
|
||||||
|
// height: 1.25em;
|
||||||
|
// position: relative;
|
||||||
|
// top: .15rem;
|
||||||
|
// margin-right: .75em;
|
||||||
|
// vertical-align: top;
|
||||||
|
// cursor: pointer;
|
||||||
|
// text-align: center;
|
||||||
|
// z-index: 1;
|
||||||
|
// transition: all 250ms ease;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:checked {
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:before {
|
||||||
|
// background-color: $checkbox-primary-color;
|
||||||
|
// box-shadow: inset 0 0 0 2px $checkbox-secondary-color;
|
||||||
|
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:focus {
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:before {
|
||||||
|
// outline: 1px solid $checkbox-primary-color;
|
||||||
|
// border-color: $checkbox-primary-color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:disabled {
|
||||||
|
// + .checkbox-label {
|
||||||
|
// color: darken($checkbox-secondary-color, 25%);
|
||||||
|
// pointer-events: none;
|
||||||
|
// &:before {
|
||||||
|
// box-shadow: inset 0 0 0 2px $checkbox-secondary-color;
|
||||||
|
// border-color: $checkbox-disabled-color;
|
||||||
|
// background: $checkbox-disabled-color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:empty {
|
||||||
|
// &:before {
|
||||||
|
// margin-right: 0;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .checkbox-label:after {
|
||||||
|
// content: "";
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 35px;
|
||||||
|
// height: 35px;
|
||||||
|
// border-radius: 50%;
|
||||||
|
// background-color: transparent;
|
||||||
|
// position: absolute;
|
||||||
|
// left: -8px;
|
||||||
|
// top: -6px;
|
||||||
|
// scale: .75;
|
||||||
|
// transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25);
|
||||||
|
// }
|
||||||
|
|
||||||
.checkbox-label:hover:after {
|
// .checkbox-label:hover:after {
|
||||||
background: var(--bg-core-primary-lighten);
|
// background: var(--bg-core-primary-lighten);
|
||||||
scale: 1;
|
// scale: 1;
|
||||||
opacity: .5;
|
// opacity: .5;
|
||||||
}
|
// }
|
@ -1,86 +1,276 @@
|
|||||||
$color1: #f4f4f4;
|
$radio-primary-color: var(--bg-core-primary-darken);
|
||||||
$color2: var(--bg-core-primary-darken);
|
$radio-secondary-color: #f4f4f4;
|
||||||
|
$radio-disabled-color: darken($radio-secondary-color, 25%);
|
||||||
|
|
||||||
.radio-group {
|
.radio-group {
|
||||||
margin: 0.5rem;
|
--width: 1.25rem;
|
||||||
position:relative;
|
--height: var(--width);
|
||||||
input[type="radio"] {
|
--inset: calc(var(--width) / 10);
|
||||||
position: absolute;
|
|
||||||
opacity: 0;
|
margin: 0.75rem 0;
|
||||||
+ .radio-label {
|
width: max-content;
|
||||||
&:before {
|
cursor: pointer;
|
||||||
content: "";
|
position:relative;
|
||||||
background: $color1;
|
display: flex;
|
||||||
border-radius: 100%;
|
align-items: center;
|
||||||
border: 2px solid $color2;
|
gap:.75rem;
|
||||||
display: inline-block;
|
z-index: 1;
|
||||||
width: 1.25em;
|
|
||||||
height: 1.25em;
|
&.reversed{
|
||||||
position: relative;
|
justify-content: space-between;
|
||||||
top: .15rem;
|
width: 100%;
|
||||||
margin-right: .75em;
|
|
||||||
vertical-align: top;
|
& :nth-child(1) {order:2;}
|
||||||
cursor: pointer;
|
& :nth-child(2) {order:1;}
|
||||||
text-align: center;
|
|
||||||
z-index: 1;
|
|
||||||
transition: all 250ms ease;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:checked {
|
|
||||||
+ .radio-label {
|
|
||||||
&:before {
|
|
||||||
background-color: $color2;
|
|
||||||
box-shadow: inset 0 0 0 2px $color1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:focus {
|
|
||||||
+ .radio-label {
|
|
||||||
&:before {
|
|
||||||
outline: none;
|
|
||||||
border-color: $color2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
&:disabled {
|
|
||||||
+ .radio-label {
|
|
||||||
color: darken($color1, 25%);
|
|
||||||
pointer-events: none;
|
|
||||||
&:before {
|
|
||||||
box-shadow: inset 0 0 0 2px $color1;
|
|
||||||
border-color: darken($color1, 25%);
|
|
||||||
background: darken($color1, 25%);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&.column{
|
||||||
|
flex-direction: column;
|
||||||
|
gap:.25rem;
|
||||||
|
width: 100%;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
+ .radio-label {
|
input[type="radio"] {
|
||||||
&:empty {
|
position: absolute;
|
||||||
&:before {
|
opacity: 0;
|
||||||
margin-right: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
.radio-fill {
|
||||||
|
position: relative;
|
||||||
|
display: inline-block;
|
||||||
|
width: var(--width);
|
||||||
|
height: var(--height);
|
||||||
|
border-radius: 50%;
|
||||||
|
background: transperent;
|
||||||
|
border: 2px solid $radio-primary-color;
|
||||||
|
transition: background 0.2s ease-in-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.radio-input:checked ~ .radio-fill {
|
||||||
|
background: var(--bg-core-primary-darken);
|
||||||
|
box-shadow: inset 0 0 0 var(--inset) $radio-secondary-color;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.radio-input:focus-within ~ .radio-fill {
|
||||||
|
outline: 1px solid $radio-primary-color;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-input:disabled ~ .radio-fill {
|
||||||
|
box-shadow: inset 0 0 0 var(--inset) $radio-secondary-color;
|
||||||
|
border-color: $radio-disabled-color;
|
||||||
|
background: $radio-disabled-color;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
.radio-label:after {
|
.radio-input:disabled ~ .radio-label {
|
||||||
content: "";
|
color: $radio-disabled-color;
|
||||||
display: inline-block;
|
}
|
||||||
width: 35px;
|
|
||||||
height: 35px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: transparent;
|
|
||||||
position: absolute;
|
.radio-fill::before {
|
||||||
left: -8px;
|
content: "";
|
||||||
top: -6px;
|
display: inline-block;
|
||||||
scale: .75;
|
width: calc(var(--width) * 1.8);
|
||||||
transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25);
|
height: calc(var(--width) * 1.8);
|
||||||
}
|
border-radius: 50%;
|
||||||
|
background-color: transparent;
|
||||||
|
position: absolute;
|
||||||
|
z-index: -1;
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
scale: .75;
|
||||||
|
transform-origin: left top;
|
||||||
|
transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25), transform 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.radio-fill:hover::before {
|
||||||
|
background: var(--bg-core-primary-lighten);
|
||||||
|
scale: 1;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// $checkbox-primary-color: var(--bg-core-primary-darken);
|
||||||
|
// $checkbox-secondary-color: #f4f4f4;
|
||||||
|
// $checkbox-disabled-color: darken($checkbox-secondary-color, 25%);
|
||||||
|
|
||||||
|
// .checkbox-group {
|
||||||
|
// margin: 0.5rem;
|
||||||
|
// position:relative;
|
||||||
|
|
||||||
|
// input[type="checkbox"] {
|
||||||
|
// position: absolute;
|
||||||
|
// opacity: 0;
|
||||||
|
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:before {
|
||||||
|
// content: "";
|
||||||
|
// background: transparent;
|
||||||
|
// border: 2px solid $checkbox-primary-color;
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 1.25em;
|
||||||
|
// height: 1.25em;
|
||||||
|
// position: relative;
|
||||||
|
// top: .15rem;
|
||||||
|
// margin-right: .75em;
|
||||||
|
// vertical-align: top;
|
||||||
|
// cursor: pointer;
|
||||||
|
// text-align: center;
|
||||||
|
// z-index: 1;
|
||||||
|
// transition: all 250ms ease;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:checked {
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:before {
|
||||||
|
// background-color: $checkbox-primary-color;
|
||||||
|
// box-shadow: inset 0 0 0 2px $checkbox-secondary-color;
|
||||||
|
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:focus {
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:before {
|
||||||
|
// outline: 1px solid $checkbox-primary-color;
|
||||||
|
// border-color: $checkbox-primary-color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:disabled {
|
||||||
|
// + .checkbox-label {
|
||||||
|
// color: darken($checkbox-secondary-color, 25%);
|
||||||
|
// pointer-events: none;
|
||||||
|
// &:before {
|
||||||
|
// box-shadow: inset 0 0 0 2px $checkbox-secondary-color;
|
||||||
|
// border-color: $checkbox-disabled-color;
|
||||||
|
// background: $checkbox-disabled-color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// + .checkbox-label {
|
||||||
|
// &:empty {
|
||||||
|
// &:before {
|
||||||
|
// margin-right: 0;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .checkbox-label:after {
|
||||||
|
// content: "";
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 35px;
|
||||||
|
// height: 35px;
|
||||||
|
// border-radius: 50%;
|
||||||
|
// background-color: transparent;
|
||||||
|
// position: absolute;
|
||||||
|
// left: -8px;
|
||||||
|
// top: -6px;
|
||||||
|
// scale: .75;
|
||||||
|
// transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .checkbox-label:hover:after {
|
||||||
|
// background: var(--bg-core-primary-lighten);
|
||||||
|
// scale: 1;
|
||||||
|
// opacity: .5;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
// $radio-primary-color: var(--bg-core-primary-darken);
|
||||||
|
// $radio-secondary-color: #f4f4f4;
|
||||||
|
// $radio-disabled-color: darken($radio-secondary-color, 25%);
|
||||||
|
|
||||||
|
// .radio-group {
|
||||||
|
// margin: 0.5rem;
|
||||||
|
// position:relative;
|
||||||
|
|
||||||
|
// input[type="radio"] {
|
||||||
|
// position: absolute;
|
||||||
|
// opacity: 0;
|
||||||
|
|
||||||
|
// + .radio-label {
|
||||||
|
// &:before {
|
||||||
|
// content: "";
|
||||||
|
// background: transparent;
|
||||||
|
// border-radius: 50%;
|
||||||
|
// border: 2px solid $radio-primary-color;
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 1.25em;
|
||||||
|
// height: 1.25em;
|
||||||
|
// position: relative;
|
||||||
|
// top: .15rem;
|
||||||
|
// margin-right: .75em;
|
||||||
|
// vertical-align: top;
|
||||||
|
// cursor: pointer;
|
||||||
|
// text-align: center;
|
||||||
|
// z-index: 1;
|
||||||
|
// transition: all 250ms ease;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:checked {
|
||||||
|
// + .radio-label {
|
||||||
|
// &:before {
|
||||||
|
// background-color: $radio-primary-color;
|
||||||
|
// box-shadow: inset 0 0 0 2px $radio-secondary-color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:focus {
|
||||||
|
// + .radio-label {
|
||||||
|
// &:before {
|
||||||
|
// outline: 1px solid $radio-primary-color;
|
||||||
|
// border-color: $radio-primary-color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// &:disabled {
|
||||||
|
// + .radio-label {
|
||||||
|
// color: darken($radio-secondary-color, 25%);
|
||||||
|
// pointer-events: none;
|
||||||
|
// &:before {
|
||||||
|
// box-shadow: inset 0 0 0 2px $radio-secondary-color;
|
||||||
|
// border-color: $radio-disabled-color;
|
||||||
|
// background: $radio-disabled-color;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// + .radio-label {
|
||||||
|
// &:empty {
|
||||||
|
// &:before {
|
||||||
|
// margin-right: 0;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .radio-label:after {
|
||||||
|
// content: "";
|
||||||
|
// display: inline-block;
|
||||||
|
// width: 35px;
|
||||||
|
// height: 35px;
|
||||||
|
// border-radius: 50%;
|
||||||
|
// background-color: transparent;
|
||||||
|
// position: absolute;
|
||||||
|
// left: -8px;
|
||||||
|
// top: -6px;
|
||||||
|
// scale: .75;
|
||||||
|
// transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25);
|
||||||
|
// }
|
||||||
|
|
||||||
|
// .radio-label:hover:after {
|
||||||
|
// background: var(--bg-core-primary-lighten);
|
||||||
|
// scale: 1;
|
||||||
|
// opacity: .5;
|
||||||
|
// }
|
||||||
|
|
||||||
.radio-label:hover:after {
|
|
||||||
background: var(--bg-core-primary-lighten);
|
|
||||||
scale: 1;
|
|
||||||
opacity: .5;
|
|
||||||
}
|
|
@ -0,0 +1,107 @@
|
|||||||
|
@use "../globals/" as *;
|
||||||
|
@use "../util/" as *;
|
||||||
|
|
||||||
|
$toggle-primary-color: var(--bg-core-primary-darken);
|
||||||
|
$toggle-secondary-color: #ddd;
|
||||||
|
$toggle-disabled-color: darken($toggle-secondary-color, 25%);
|
||||||
|
|
||||||
|
.toggle-group {
|
||||||
|
--width: 42px;
|
||||||
|
--height: calc(var(--width) / 2);
|
||||||
|
--border-radius: calc(var(--height) / 2);
|
||||||
|
|
||||||
|
margin: 0.75rem 0;
|
||||||
|
width: max-content;
|
||||||
|
cursor: pointer;
|
||||||
|
position:relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap:.75rem;
|
||||||
|
|
||||||
|
&.reversed{
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
|
||||||
|
& :nth-child(1) {order:2;}
|
||||||
|
& :nth-child(2) {order:1;}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.column{
|
||||||
|
flex-direction: column;
|
||||||
|
gap:.25rem;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="checkbox"] {
|
||||||
|
position: absolute;
|
||||||
|
opacity: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-fill {
|
||||||
|
position: relative;
|
||||||
|
width: var(--width);
|
||||||
|
height: var(--height);
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
background: $toggle-secondary-color;
|
||||||
|
//margin-right: .75rem;
|
||||||
|
transition: background 0.2s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-input:checked ~ .toggle-fill {
|
||||||
|
background: var(--bg-core-primary-darken);
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-input:focus-within ~ .toggle-fill {
|
||||||
|
outline: 1px solid $toggle-primary-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-input:disabled ~ .toggle-fill {
|
||||||
|
background: $toggle-disabled-color;
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-input:disabled ~ .toggle-label {
|
||||||
|
color: $toggle-disabled-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-fill::after {
|
||||||
|
content: "";
|
||||||
|
position: absolute;
|
||||||
|
top: 2px;
|
||||||
|
left: 2px;
|
||||||
|
height: calc(var(--height) - 4px);
|
||||||
|
width: calc(var(--height) - 4px);
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: var(--border-radius);
|
||||||
|
transition: transform 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-input:checked ~ .toggle-fill::after {
|
||||||
|
transform: translateX(var(--height));
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-fill::before {
|
||||||
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
width: calc(var(--height) * 1.8);
|
||||||
|
height: calc(var(--height) * 1.8);
|
||||||
|
border-radius: 50%;
|
||||||
|
background-color: transparent;
|
||||||
|
position: absolute;
|
||||||
|
left: calc(30% - var(--height));
|
||||||
|
top: calc(60% - var(--height));
|
||||||
|
scale: .75;
|
||||||
|
transform-origin: center;
|
||||||
|
transition: scale 0.35s cubic-bezier(0.6,-1.25,0.6,2.25), transform 0.2s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-fill:hover::before {
|
||||||
|
background: var(--bg-core-primary-lighten);
|
||||||
|
scale: 1;
|
||||||
|
opacity: .5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-input:checked ~ .toggle-fill::before {
|
||||||
|
transform: translateX(var(--height));
|
||||||
|
}
|
Loading…
Reference in new issue