<div class="reactor">
<div class="trapezoid-container">
<div class="trapezoid trapezoid-1"></div>
<div class="trapezoid trapezoid-2"></div>
<div class="trapezoid trapezoid-3"></div>
<div class="trapezoid trapezoid-4"></div>
<div class="trapezoid trapezoid-5"></div>
<div class="trapezoid trapezoid-6"></div>
<div class="trapezoid trapezoid-7"></div>
<div class="trapezoid trapezoid-8"></div>
<div class="trapezoid trapezoid-9"></div>
<div class="trapezoid trapezoid-10"></div>
</div>
<div class="small-circle-container">
<div class="small-circle small-circle-1"></div>
<div class="small-circle small-circle-2"></div>
<div class="small-circle small-circle-3"></div>
<div class="small-circle small-circle-4"></div>
<div class="small-circle small-circle-5"></div>
<div class="small-circle small-circle-6"></div>
<div class="small-circle small-circle-7"></div>
<div class="small-circle small-circle-8"></div>
<div class="small-circle small-circle-9"></div>
<div class="small-circle small-circle-10"></div>
<div class="small-circle small-circle-11"></div>
<div class="small-circle small-circle-12"></div>
</div>
<div class="circle-outer"></div>
<div class="circle-center"></div>
<div class="circle-innner"></div>
</div>
// colors
$bg-color: #0c0e0e;
$reactor-inner-color:#002d34;
$reactor-center-color:#0089a9;
$reactor-outer-color:#00a6ce;
$trapezoid-color: #46fffe;
$trapezoid-inner-color: #e4ffff;
$trapezoid-center-color: #1ffffd;
$small-circle-inner-color: #eeffff;
$small-circle-center-color:#21fffe;
$small-circle-outer-color:#009fc1;
$circle-inner-color: #52fefe;
$circle-outer-color: #52fefe;
$circle-center-color: #0c4d5b;
$circle-bg-white-color: #ffffff;
$circle-box-shadow-color: #52fefe;
// sizes
$reactor-size: 60vmin;
$trapezoid-deg: 0deg;
$small-circle-deg: 0deg;
// mixin
@mixin center {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
}
@mixin pseudo($position: absolute, $content: "") {
content: $content;
position: $position;
}
body {
@include center;
background: $bg-color;
margin-left: -3%;
overflow: hidden;
}
.reactor {
@include center;
width: $reactor-size;
height: $reactor-size;
border-radius: 50%;
background: radial-gradient(circle, $reactor-inner-color 30%, $reactor-center-color 60%, $reactor-outer-color);
border: 1vw solid rgba($reactor-inner-color, 0.3);
filter: drop-shadow(0 0 1.8vmin $trapezoid-color);
.trapezoid-container {
position: relative;
width: 100%;
height: 100%;
.trapezoid {
box-sizing: content-box;
width: 5vmin;
height: 0;
position: absolute;
top: -4.5vmin;
left: 20.5vmin;
transform-origin: 10vmin 35vmin;
border: 5vmin solid transparent;
border-bottom: 0 solid;
border-top: 10vmin solid $trapezoid-color;
border-radius: 4vmin;
filter: drop-shadow(0 0 1.8vmin $trapezoid-color);
&:after {
@include pseudo;
width: 8vmin;
height: 8vmin;
border-radius: 50%;
background: radial-gradient( circle, $trapezoid-inner-color 30%, $trapezoid-center-color);
margin: 0;
bottom: 1.5vmin;
right: -1.5vmin;
}
}
@for $i from 1 through 10 {
.trapezoid-#{$i} {
transform: rotate($trapezoid-deg);
}
$trapezoid-deg: $trapezoid-deg+36deg;
}
}
.small-circle-container {
position: relative;
width: 100%;
height: 100%;
.small-circle {
position: absolute;
width: 4vmin;
height: 4vmin;
top: -50vmin;
left: 21vmin;
transform-origin: 9vmin 20.5vmin;
border-radius: 50%;
background: radial-gradient( circle, $small-circle-inner-color 20%, $small-circle-center-color, $small-circle-outer-color);
}
@for $i from 1 through 12 {
.small-circle-#{$i} {
transform: rotate($small-circle-deg);
}
$small-circle-deg: $small-circle-deg+30deg;
}
}
.circle-outer {
@include center;
width: 30.5vmin;
height: 30.5vmin;
border: 1px solid $circle-outer-color;
background-color: $circle-bg-white-color;
border-radius: 50%;
box-shadow: 0px 0px 2px 1px $circle-box-shadow-color, 0px 0px 2vw 0.8vmin $circle-box-shadow-color inset;
}
.circle-center {
@include center;
width: 22vmin;
height: 22vmin;
background-color: $circle-center-color;
border-radius: 50%;
box-shadow: 0px 0px 2px 1px $circle-box-shadow-color, 0px 0px 2vw 0.8vmin $circle-box-shadow-color;
}
.circle-innner {
@include center;
width: 19vmin;
height: 19vmin;
border: 1px solid $circle-inner-color;
background-color: $circle-bg-white-color;
border-radius: 50%;
box-shadow: 0px 0px 2px 1px $circle-box-shadow-color, 0px 0px 4.5vw 1.5vmin $circle-box-shadow-color inset;
}
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.