.radio-list{ width: 30px; padding: 0; margin: 0 auto; list-style: none; } .radio-button{ margin: 0 0 5px; position: relative; } .radio-button input[type=radio]{ margin: auto; visibility: hidden; position: absolute; left: 0; top: 0; } .radio-button label{ background: linear-gradient(to right, #9B59B6 50%, #8E44AD 50%); width: 30px; height: 30px; margin: 0; cursor: pointer; overflow: hidden; position: relative; transition: all 0.25s linear; } .radio-button label:before, .radio-button label:after{ content: ""; width: 0; height: 50%; border: 10px solid transparent; border-top-color: #ffffff; transform: translateX(-50%); position: absolute; top: -35%; left: 50%; transition: all 0.3s ease 0s; } .radio-button label:after{ border-top-color: transparent; border-bottom-color: #fff; top: auto; bottom: -35%; } .radio-button input[type=radio]:checked+label:before{ opacity: 1; top: 50%; } .radio-button input[type=radio]:checked+label:after{ opacity: 1; bottom: 50%; }