.checkbox-mp3 input { position: absolute; opacity: 0; cursor: pointer; height: 0; width: 0; } .checkbox-mp3 { display: block; position: relative; cursor: pointer; font-size: 1.5rem; user-select: none; } .checkmark { --clr: var(--checkbox-bg-checked); position: relative; top: 0; left: 0; height: 1.3em; width: 1.3em; background-color: var(--checkbox-bg-default); border-radius: .5rem; transition: background-color 300ms, border-radius 300ms; } .checkbox-mp3 input:checked ~ .checkmark { background-color: var(--clr); border-radius: .5rem; animation: pulse 500ms ease-in-out; } .checkmark:after { content: ""; position: absolute; display: none; } .checkbox-mp3 input:checked ~ .checkmark:after { display: block; } .container .checkmark:after { left: 0.45em; top: 0.25em; width: 0.25em; height: 0.5em; border: solid var(--checkbox-checkmark-border-color); border-width: 0 0.15em 0.15em 0; transform: rotate(45deg); } @keyframes pulse { 0% { box-shadow: 0 0 0 var(--checkbox-pulse-color); rotate: 20deg; } 50% { rotate: -20deg; } 75% { box-shadow: 0 0 0 10px var(--checkbox-pulse-color); } 100% { box-shadow: 0 0 0 13px var(--checkbox-pulse-color); rotate: 0; } }