.grain
.intro
.center
.core
.outer_one
-(1..36).each do
.outer_one__piece
.outer_two
-(1..36).each do
.outer_two__piece
.outer_three
-(1..36).each do
.outer_three__piece
.outer_four
-(1..36).each do
.outer_four__piece
.outer_five
-(1..36).each do
.outer_five__piece
.pieces
.future_ui__piece
%span Warp drive
.line
.tip
Yes, commander!
.future_ui__piece
%span Teleport
.line
.tip
Beam me up!
.future_ui__piece
%span Fusion core
.line
.tip
Engineering!
.future_ui__piece
%span Laser target
.line
.tip
Charge laz0rs!
.future_ui__piece
%span Shields
.line
.tip
Status report!
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
.future_ui__piece.blank
View Compiled
/* Variables */
// Core
$core_width: 50px;
$core_color:#de0b46;
$core_glow:0px 0px 70px 20px #de0b46;
// Outer 1
$outer_one_offset: 120px;
$outer_one_width: 10px;
$outer_one_height: 30px;
$outer_one_color: #de0b46;
$outer_one_glow: 0px 0px 20px 0px #de0b46;
// Outer 2
$outer_two_offset: 290px;
$outer_two_width: 28px;
$outer_two_height: 5px;
$outer_two_color: #de0b46;
$outer_two_glow: 0px 0px 20px 0px #de0b46;
// Outer 3
$outer_three_offset: 440px;
$outer_three_width: 55px;
$outer_three_height: 5px;
$outer_three_color: #55E2F9;
$outer_three_glow: 0px 0px 20px 0px #55E2F9;
// Outer 4
$outer_four_offset: 440px;
$outer_four_width: 6px;
$outer_four_height: 5px;
$outer_four_color: #de0b46;
$outer_four_glow: 0px 0px 20px 0px #de0b46;
// Outer 5
$outer_five_offset: 410px;
// Menu items
$menu_offset: 540px;
$menu_height: 20px;
$menu_color: transparent;
$menu_glow: 0px 0px 25px rgba(222, 11, 70, 0.27);
/* Placeholders */
%center{
left:0;
right:0;
top:50%;
position:absolute;
margin:auto;
transform:translateY(-50%);
}
%decal{
position:absolute;
width:$core_width;
height:$core_width;
left:50%;
}
%fade_loop{
@for $i from 1 through 36{
&:nth-of-type(#{$i}){
animation:fade 5s ($i/10 + 0s) infinite;
}
}
}
%fade_loop_alt{
@for $i from 1 through 36{
&:nth-of-type(#{$i}){
animation:fade 7s ($i/10 + 0s) infinite;
}
}
}
%circ_loop{
position: absolute;
@for $i from 1 through 36{
&:nth-of-type(#{$i}){
border-radius:2px;
transform:rotateZ($i*10 + (0deg));
}
}
}
%circ_loop_quart{
position: absolute;
@for $i from 1 through 36{
&:nth-of-type(#{$i}){
border-radius:2px;
transform:rotateZ($i*4 + (0deg));
}
}
}
%circ_loop_quart_alt{
position: absolute;
@for $i from 1 through 36{
&:nth-of-type(#{$i}){
border-radius:2px;
transform:rotateZ($i*4 + (0deg) - 180);
}
}
}
/* Styles */
.intro{
}
body{
height:100vh;
animation:intro_box 1s 1s forwards;
opacity:0;
perspective-origin: 50% -10%;
margin:0;
padding:0;
font-family:montserrat;
perspective:800;
background: radial-gradient(ellipse at top left, rgba(222, 11, 70, 0.26) -160%, rgba(255, 255, 255, 0) 103%), radial-gradient(center, ellipse cover, #0C1019 0%, #0B0B0E 100%);
overflow:hidden;
.grain{
transform:scale(1) !important;
background-image: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/overlay.png");
left: 0;
right: 0;
margin: auto;
width: 100%;
height: 100%;
position: absolute;
z-index: 100;
pointer-events: none;
top: 0;
opacity: 1;
bottom: 0;
}
.center{
@extend %center;
transform: translateY(-21px) translateZ(-870px) rotateX(69deg) rotateY(-26deg) rotatez(-647deg) scale(0.9);
height:$core_width;
width:$core_width;
animation:wiggle 20s infinite linear;
.core{
width:$core_width;
height:$core_width;
border-radius:$core_width;
background:$core_color;
box-shadow:$core_glow;
}
.outer_one{
@extend %decal;
transform:translateX(-$outer_one_offset) translateY(-50%);
&__piece{
width: $outer_one_width;
height: $outer_one_height;
background: $outer_one_color;
box-shadow:$outer_one_glow;
transform-origin: $outer_one_offset 0px;
@extend %circ_loop;
}
}
.outer_two{
@extend %decal;
transform:translateX(-$outer_two_offset) translateY(-50%);
&__piece{
width: $outer_two_width;
height: $outer_two_height;
background: $outer_two_color;
box-shadow:$outer_two_glow;
transform-origin: $outer_two_offset 0px;
@extend %circ_loop;
@extend %fade_loop;
}
}
.outer_three{
@extend %decal;
transform:translateX(-$outer_three_offset) translateY(-50%);
&__piece{
width: $outer_three_width;
height: $outer_three_height;
background: $outer_three_color;
box-shadow:$outer_three_glow;
transform-origin: $outer_three_offset 0px;
@extend %circ_loop_quart;
@extend %fade_loop;
}
}
.outer_four{
@extend %decal;
transform:translateX(-$outer_four_offset) translateY(-50%);
&__piece{
width: $outer_four_width;
height: $outer_four_height;
background: $outer_four_color;
box-shadow:$outer_four_glow;
transform-origin: $outer_four_offset 0px;
@extend %circ_loop_quart_alt;
@extend %fade_loop_alt;
}
}
.outer_five{
@extend %decal;
transform:translateX(-$outer_five_offset) translateY(-50%);
&__piece{
width: $outer_four_width;
height: $outer_four_height;
background: $outer_four_color;
box-shadow:$outer_four_glow;
transform-origin: $outer_five_offset 0px;
@extend %circ_loop_quart_alt;
@extend %fade_loop_alt;
}
}
.pieces{
@extend %decal;
transform:translateX($menu_offset) translateY(-50%);
.tip{
font-size: 17px;
position: absolute;
left: 105%;
opacity:0;
transition:all .2s .3s;
font-weight: 400;
color: #85DFE4;
width: 100%;
top: 70px;
}
span{
position: absolute;
top: 19px;
width: 270px;
LEFT: 34PX;
transform: translateZ(-770px) rotateZ(0deg);
transition:all .2s .1s;
}
.line{
width: 0px;
height: 5px;
left: -547px;
transform: rotatez(4deg);
top: 17px;
background: #DE0B46;
position: absolute;
opacity:0;
}
.future_ui__piece{
border: 3px solid #DE0B46;
position: absolute;
font-weight:900;
padding:30px;
font-size:30px;
box-shadow: 0px 0px 25px rgba(222, 11, 70, 0.27);
transform-style: preserve-3d;
transition: all 1s .1s;
color: white;
text-align: left;
@for $i from 1 through 36{
&:nth-of-type(#{$i}){
transform:rotateZ($i*10 + (0deg) - 55) rotateY(0deg);
width: 220 + random(73) + px;
&:hover{
cursor:pointer;
color:white;
animation:blink .4s .4s;
background:#DE0B46;
transform:rotate($i*10 + (0deg) - 55) translatex(20px);
box-shadow: 0px 0px 55px rgba(222, 11, 70, 0.77);
span{
position: absolute;
top: 12px;
width: 270px;
text-shadow: 0px 13px 0px rgba(30, 30, 30, 0.4);
left:240px;
transform: translateZ(100px) rotateZ(0deg);
}
.tip{
opacity:1;
left: 110%;
}
.line{
opacity:1;
width:547px;
transition:all .4s .2s;
}
}
}
}
height: $menu_height;
background: $menu_color;
color:white;
border-radius:100px !important;
box-shadow:$menu_glow;
transform-origin: - $menu_offset 0px;
@extend %circ_loop;
}
.blank{
opacity:0.1;
background:none;
pointer-events:none;
box-shadow: 0px 0px 10px rgba(255, 255, 255, 0.27);
border:6px solid #3D4B6D !important;
}
}
}
}
/* animations */
@keyframes spin{
0%{transform:rotate(0deg)}
100%{transform:rotate(360deg)}
}
@keyframes fade{
0%{opacity:0;}
50%{opacity:1;}
100%{opacity:0;}
}
@keyframes blink{
0%{opacity:1}
25%{opacity:0}
50%{opacity:1}
75%{opacity:0}
100%{opacity:1}
}
@keyframes in{
0%{opacity:0}
100%{opacity:1}
}
@keyframes inalt{
0%{opacity:0}
50%{opacity:1}
100%{opacity:0}
}
@keyframes wiggle{
0%{transform: translateY(0) translateZ(-840px) rotateX(64deg) rotateY(-21deg) rotatez(80deg) scale(0.9);}
25%{transform: translateY(0) translateZ(-820px) rotateX(66deg) rotateY(-24deg) rotatez(84deg) scale(0.9);}
50%{transform: translateY(0) translateZ(-840px) rotateX(62deg) rotateY(-23deg) rotatez(82deg) scale(0.9);}
75%{transform: translateY(0) translateZ(-840px) rotateX(63deg) rotateY(-19deg) rotatez(78deg) scale(0.9);}
100%{transform: translateY(0) translateZ(-840px) rotateX(64deg) rotateY(-21deg) rotatez(80deg) scale(0.9);}
}
@keyframes intro_box{
0%{opacity:0;transform:scale(0)}
20%{opacity:1;transform:scale(1.2)}
40%{transform:scale(0.89)}
60%{transform:scale(1.04)}
80%{transform:scale(0.98)}
100%{opacity:1;transform:scale(1)}
}
View Compiled
// Chrome only for the tme being!
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.