*{ padding: 0px; margin: 0px; box-sizing: border-box; font-family: Arial, Helvetica, sans-serif; } body{ height: 100vh; background-image: url(bgimage4.png); background-size:cover; display: flex; flex-direction: row; align-items: center; color:rgb(0,0,0); } .container{ width: 100%; height: auto; text-align: center; } .hidden{ display:none; } form{ display:none; } /*button animation*/ .button { box-sizing: border-box; position: absolute; display: block; width: 260px; height: 60px; top: 50%; left: 50%; border: 2px solid black; border-radius: 30px; text-align: center; line-height: 56px; font-size: 20px; text-transform: uppercase; font-weight: 600; letter-spacing: 2px; transition: all .3s ease-in-out; cursor: pointer; transform: translate(-50%,100%); &:hover { background: rgb(0,0,0,0.5); } img { position: absolute; z-index: 2; top: 16px; left: 15px; opacity: 0; } } .disabled{ pointer-events:none; color:rgb(87,87,87); border: 2px solid rgb(87,87,87); } .circle { position: absolute; width: 60px; height: 60px; z-index: 2; top: 50%; left: 50%; fill: none; stroke: black; stroke-width: 2px; stroke-linecap: round; stroke-dasharray: 183 183; stroke-dashoffset: 183; pointer-events: none; transform: translate(-50%,100%) rotate(-90deg); } input:checked { & ~ .button { animation: button .5s ease both, fill .5s ease-out 1.5s forwards; img { animation: check .5s ease-out 1.5s both; } } & ~ .circle { animation: circle 2s ease-out .5s both; } } @keyframes button { 0% { width: 260px; left: 50%; border-color: black; color: black; } 50% { color: transparent; } 100% { width: 60px; left: 50%; border-color: #45B078; background: transparent; color: transparent; } } @keyframes circle { 0% { stroke-dashoffset: 183; } 50% { stroke-dashoffset: 0; stroke-dasharray: 183; transform: translate(-50%,100%) rotate(-90deg) scale(1); opacity: 1; } 90%, 100% { stroke-dasharray: 500 500; transform: translate(-50%,100%) rotate(-90deg) scale(2); opacity: 0; } } @keyframes fill { 0% { background: transparent; border-color: black; } 100% { background: black; } } @keyframes check { 0% { opacity: 0; } 100% { opacity: 1; } }