Circular Checkbox developed with HTML , CSS , JavaScript
Copy the below HTML code
HTML
<!DOCTYPE html> <html> <head> </head> <body> <div class="checkyborder ischecked"> <input class="checky" type="checkbox" checked> </div> </body> </html>
Copy the below CSS code
CSS
body { background-color: #111; display: grid; place-items: center; height: 100vh; overflow: hidden; } .checkyborder { width: 100px; height: 100px; border-radius: 100%; display: flex; justify-content: center; align-items: center; background-color: #fff; } .ischecked { background: conic-gradient(from var(--angle), #00bfff 1%, #800080 40%, #ff69b4 65%, #0000ff 80%, #00bfff 85%); } .checky { width: 80px; height: 80px; appearance: none; border-radius: 100%; box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.5); display: flex; background: #111; justify-content: center; align-items: center; z-index: 10; } .checky:checked:after { content: '\2714'; width: 100%; height: 100%; border-radius: 8px; position: absolute; color: skyblue; display: flex; justify-content: center; align-items: center; font-size: 52px; }
Copy the below JavaScript code
HTML
let chk = document.querySelector('.checky'); let bdr = document.querySelector('.checkyborder'); function startAnimation() { let angle = 0; function animate() { angle = (angle + 1) % 360; bdr.style.setProperty('--angle', `${angle}deg`); requestAnimationFrame(animate); } animate(); } window.addEventListener('load', function () { if (chk.checked) { startAnimation(); } }); chk.addEventListener('click', function () { bdr.classList.toggle('ischecked'); if (chk.checked) { startAnimation(); } else { bdr.classList.remove('ischecked'); } });