mirror of
https://github.com/uiverse-io/galaxy.git
synced 2025-11-28 05:00:22 +08:00
147 lines
3.1 KiB
HTML
147 lines
3.1 KiB
HTML
<div class="radioContainer">
|
|
|
|
<input class="radioButton" type="radio" id="value-1" name="value-radio" value="value-1" checked="">
|
|
<label class="container" for="value-1">
|
|
<div class="border"></div>
|
|
<div class="border2"></div>
|
|
<div class="circle"></div>
|
|
</label>
|
|
|
|
<input class="radioButton" type="radio" id="value-2" name="value-radio" value="value-2">
|
|
<label class="container" for="value-2">
|
|
<div class="border"></div>
|
|
<div class="border2"></div>
|
|
<div class="circle"></div>
|
|
</label>
|
|
|
|
<input class="radioButton" type="radio" id="value-3" name="value-radio" value="value-3">
|
|
<label class="container" for="value-3">
|
|
<div class="border"></div>
|
|
<div class="border2"></div>
|
|
<div class="circle"></div>
|
|
</label>
|
|
|
|
|
|
</div>
|
|
<style>
|
|
/* From Uiverse.io by Navarog21 - Tags: */
|
|
.radioContainer {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
position: relative;
|
|
width: 220px;
|
|
}
|
|
|
|
.radioButton {
|
|
display: none;
|
|
}
|
|
|
|
.radioContainer .container {
|
|
display: inline-flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
position: relative;
|
|
transition: 0.8s;
|
|
cursor: pointer;
|
|
width: 65px;
|
|
height: 65px;
|
|
background-image: linear-gradient(to top, #00c6fb 0%, #005bea 100%);
|
|
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
box-shadow: 0 0 5px inset white;
|
|
}
|
|
|
|
.border {
|
|
position: absolute;
|
|
background-color: #212121;
|
|
width: 100%;
|
|
height: 100%;
|
|
transform: scale(0.7) rotate(30deg);
|
|
transition: 0.3s;
|
|
clip-path: polygon(0% 0%, 0% 100%, 25% 100%, 25% 25%, 75% 25%, 75% 75%, 25% 75%, 25% 100%, 100% 100%, 100% 0%);
|
|
}
|
|
|
|
.border2 {
|
|
position: absolute;
|
|
background-color: #212121;
|
|
width: 100%;
|
|
height: 100%;
|
|
transform: scale(0.45);
|
|
transition: 0.2s;
|
|
clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
|
|
}
|
|
|
|
.radioContainer input[type="radio"]:checked + .container {
|
|
filter: hue-rotate(330deg);
|
|
animation: 2s linear checked;
|
|
}
|
|
|
|
.radioContainer input[type="radio"]:checked + .container .circle {
|
|
transform: scale(0.8);
|
|
}
|
|
|
|
.radioContainer input[type="radio"]:checked + .container .border {
|
|
animation: 4s linear infinite reverse rotateBorder;
|
|
}
|
|
|
|
.radioContainer input[type="radio"]:checked + .container .border2 {
|
|
animation: 2s linear reverse rotateBorder2;
|
|
}
|
|
|
|
.circle {
|
|
background-image: linear-gradient(to top, #00c6fb 0%, #005bea 100%);
|
|
border-radius: 100%;
|
|
width: 22%;
|
|
height: 22%;
|
|
transition: 0.25s;
|
|
z-index: 2;
|
|
transform: scale(0);
|
|
}
|
|
|
|
.radioContainer .container:hover .circle {
|
|
transform: scale(0.8);
|
|
box-shadow: 0 20px 20px #00c6fb;
|
|
}
|
|
|
|
@keyframes checked {
|
|
0% {
|
|
transform: rotate(0deg) scale(1);
|
|
}
|
|
|
|
50% {
|
|
transform: rotate(0deg) scale(1.07);
|
|
}
|
|
|
|
100% {
|
|
transform: rotate(360deg) scale(1);
|
|
}
|
|
}
|
|
|
|
@keyframes rotateBorder {
|
|
0% {
|
|
transform: scale(0.7) rotate(0deg);
|
|
}
|
|
|
|
50% {
|
|
transform: scale(0.7) rotate(0deg);
|
|
}
|
|
|
|
100% {
|
|
transform: scale(0.7)rotate(360deg);
|
|
}
|
|
}
|
|
|
|
@keyframes rotateBorder2 {
|
|
0% {
|
|
transform: scale(0.51) rotate(30deg);
|
|
}
|
|
|
|
50% {
|
|
transform: scale(0.51) rotate(0deg);
|
|
}
|
|
|
|
100% {
|
|
transform: scale(0.51) rotate(360deg);
|
|
}
|
|
}
|
|
|
|
</style>
|