JSFiddle - React, Tailwind, and code Playground
by gunderson
HTML
<div class="button">
<div class="container">
<div class='wedge-quarter bottom left top right'></div>
<div class='content'>
</div>
<div class="text">Text</div>
</div>
</div>
CSS
body{
height:100%; position:absolute;
margin:0;
padding:0;
}
.button {
-webkit-transform: translateZ(0);
position:absolute;
width: 40px;
height: 40px;
top: 50%;
left:30px;
transition: all 0.6s;
}
.container {
-webkit-transform: translateZ(0);
position: absolute;
width: 100%;
height: 100%;
top:-50%;
left:-50%;
transition: all 0.6s;
}
.container:hover {
/* -webkit-transform: rotate(-225deg); */
width: 120%;
height: 120%;
top:-60%;
left:-60%;
}
.container:hover .wedge-quarter {
-webkit-transform: rotate(-225deg) translateZ(0);
border-width: 4px;
top:-4px;
left:-4px;
bottom:-4px;
right:-4px;
}
.wedge-quarter {
transition: all 0.6s;
position: absolute;
top:-10px;
left:-10px;
bottom:-10px;
right:-10px;
margin: auto;
width: 100%;
height: 100%;
border: 10px solid transparent;
border-radius: 100%;
}
.wedge-quarter.bottom {
border-bottom-color: red;
}
.wedge-quarter.left {
border-left-color: #ccc;
}
.wedge-quarter.top {
border-top-color: #ccc;
}
.wedge-quarter.right {
border-right-color: rgba(255, 0, 0, 0.2);
}
.content{
-webkit-transform: translateZ(0);
position: absolute;
top:0;
left:0;
width: 100%;
height: 100%;
margin: -2px;
border: 2px solid #888;
border-radius: 100%;
background:white;
}
.text{
-webkit-transform: translateZ(0);
position: absolute;
top:0;
left:0;
bottom:0;
right:0;
margin: auto;
display:block;
height: 16px;
width: 100%;
text-align: center;
text-transform: uppercase;
font-size: 12px;
}