JSFiddle - React, Tailwind, and code Playground
HTML
<html>
<head>
<title>Movie Selector</title>
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="mainbox" class="mainbox">
<div id="box" class="box">
<div class="box1">
<span class="span1"><b>Java</b></span>
<span class="span2"><b>Javascript</b></span>
<span class="span3"><b>Dart</b></span>
<span class="span4"><b>Python</b></span>
</div>
<div class="box2">
<span class="span1"><b>Typescript</b></span>
<span class="span2"><b>Ruby</b></span>
<span class="span3"><b>Rust</b></span>
<span class="span4"><b>C++</b></span>
</div>
</div>
<button class="spin" onclick="myfunction()">Spin!</button>
</div>
<script src="script.js"></script>
</body>
</html>
CSS
*{
box-sizing: border-box;
padding: 0;
margin: 0;
outline: none;
}
body{
font-family: "Tahoma";
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
overflow: hidden;
background: rgb(131, 52, 235);
background-size: cover;
}
.mainbox{
position: relative;
width: 500px;
height: 500px;
}
.mainbox:after{
position: absolute;
content: '';
width: 32px;
height: 32px;
background: url('https://cdn.pixabay.com/photo/2013/07/12/14/06/arrows-147746_1280.png') no-repeat;
background-size: 32px;
right: -30px;
top: 50%;
transform: translateY(-50%);
}
.box{
width: 100%;
height: 100%;
position: relative;
border-radius: 50%;
border: 10px solid #fff;
overflow: hidden;
transition: all ease 5s;
}
span{
width: 50%;
height: 50%;
display: inline-block;
position: absolute;
}
.span1{
clip-path: polygon(0 92%, 100% 50%, 0 8%);
background-color: #eb4034;
top: 120px;
left: 0;
}
.span2{
clip-path: polygon(100% 92%, 0 50%, 100% 8%);
background-color: #ebae34;
top: 120px;
right: 0;
}
.span3{
clip-path: polygon(50% 0%, 8% 100%, 92% 100%);
background-color: #34eb80;
bottom: 0;
left: 120px;
}
.span4{
clip-path: polygon(50% 100%, 92% 0, 8% 0);
background-color: #3465eb;
top: 0;
left: 120px;
}
.box1 .span3 b{
transform: translate(-50%, -50%) rotate(-270deg);
}
.box1 .span1 b,
.box2 .span1 b{
transform: translate(-50%, -50%) rotate(185deg);
}
.box2 .span3 b{
transform: translate(-50%, -50%) rotate(90deg);
}
.box1 .span4 b,
.box2 .span4 b{
transform: translate(-50%, -50%) rotate(-85deg);
}
span b{
font-size: 24px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
.box2{
width: 100%;
height: 100%;
transform: rotate(-135deg);
}
.spin{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 75px;
height: 75px;
border-radius: 50%;
border: 2px solid #fff;
...
JavaScript
function myfunction(){
var min = 1024;
var max = 9999;
var deg = Math.floor(Math.random() * (max - min)) + min;
document.getElementById('box').style.transform = "rotate("+deg+"deg)";
}