jeudi 21 mai 2020

transition-delay in checkbox animation problem

I found this elegant looking button and followed the tutorial to make it. I started playing with parameters to deconstruct it a little and was mostly (!) successful in understanding how it worked, considering the sever limitations to my brain-power and experience.

I decided I would like to try and add a small delay to the "power-on" setting once it is checked, maybe .5 seconds before the blue light kicks on after it is checked, and I can't seem to figure it out. I've tried adding and playing with the transition-duration: transition-delay: but cannot seem to figure it out. Here is the code:

    body {
    margin: 0;
    padding: 0;
    background: #292929;
}

.center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

input[type="checkbox"] {
    position: relative;
    width: 120px;
    height: 40px;
    -webkit-appearance: none;
    background: linear-gradient(0deg, #333333, #000000);
    outline: none;
    border-radius: 20px;
    box-shadow: 0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0, 0, 0, .5), inset 0 0 15px rgba(0, 0, 0, .2);
}

input:checked[type="checkbox"] {
    background: linear-gradient(0deg, #6dd1ff, #20b7ff);
    box-shadow: 0 0 2px #6dd1ff, 0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0, 0, 0, .5), inset 0 0 15px rgba(0, 0, 0, .2);
}

input[type="checkbox"]:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 80px;
    height: 40px;
    background: linear-gradient(0deg, #000000, #6b6b6b);
    border-radius: 20px;
    box-shadow: 0 0 0 1px #232323;
    transform: scale(.98, .96);
    transition: .5s;
}

input:checked[type="checkbox"]:before {
    left: 40px;
}

input[type="checkbox"]:after {
    content: '';
    position: absolute;
    top: calc(50% - 2px);
    left: 65px;
    width: 4px;
    height: 4px;
    background: linear-gradient(0deg, #6b6b6b, #000000);
    border-radius: 50%;
    transition: .5s;
}

input:checked[type="checkbox"]:after {
    background: #63cdff;
    left: 105px;
    box-shadow: 0 0 5px #13b3ff, 0 0 15px #13b3ff;
}

I was putting the code here:

input:checked[type="checkbox"] {
    background: linear-gradient(0deg, #6dd1ff, #20b7ff);
    box-shadow: 0 0 2px #6dd1ff, 0 0 0 4px #353535, 0 0 0 5px #3e3e3e, inset 0 0 10px rgba(0, 0, 0, 1), 0 5px 20px rgba(0, 0, 0, .5), inset 0 0 15px rgba(0, 0, 0, .2);
}`



Aucun commentaire:

Enregistrer un commentaire