
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');

* {
    box-sizing: border-box; /*if we add border or padding, it doesn't affect the width of it. */
}

html {
    user-select: none;
}

:root {
    --primary-color: #e0e0e0;
    --backG-color: #f5ddff;
    --ball-color: #fff;
}

body {
    font-family: 'Roboto', sans-serif;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100vh;
    overflow: hidden; /*don't want scroll bar to appear.*/
    margin: 0px;
    background-color: var(--backG-color);
}

h1 {
    font-size: 1.5rem;
    color: darkmagenta;
}

.toggle-container {
    display: flex;
    align-items: center;
    margin: 10px 0px;
    width: 200px;
}

.toggle {
    visibility: hidden;
}

.label {
    position: relative;
    width: 80px;
    height: 40px;
    background-color: var(--primary-color);
    border-radius: 50px;
    cursor: pointer;
    display: inline-block;
    margin: 0px 15px 0px;
}

.toggle:checked + #label1 {
    background-color: rgba(255, 119, 119, 0.9);
}

.toggle:checked + #label2 {
    background-color: rgba(119, 253, 119, 0.9);
}

.toggle:checked + #label3 {
    background-color: rgba(119, 119, 255, 0.9);
}

.ball {
    height: 34px;
    width: 34px;
    background-color: var(--ball-color);
    border-radius: 50%;
    position: absolute;
    top: 3px;
    left: 3px;
    align-items: center;
    justify-content: center;
    animation: slideOff 0.3s linear forwards;
}

span {
    color: mediumorchid;
    font-weight: bold;
}

.toggle:checked + .label .ball {
    animation: slideOn 0.3s linear forwards;
}

@keyframes slideOn{
    0% {
        transform: translateX(0px) scale(1);
    }
    50% {
        transform: translateX(20px) scale(1.2);
    }
    100% {
        transform: translateX(40px) scale(1);
    }
}

@keyframes slideOff{
    0% {
        transform: translateX(40px) scale(1);
    }
    50% {
        transform: translateX(20px) scale(1.2);
    }
    100% {
        transform: translateX(0px) scale(1);
    }
}
