<link href='https://fonts.googleapis.com/css?family=Nunito' rel='stylesheet' type='text/css'>
<div class="box">
<span class="logo">
<i class="i">I</i>
<i class="x">X</i>
</span>
<span class="shade"></span>
</div>
* {
font-family: 'Nunito', sans-serif;
text-transform: uppercase;
font-size: 80px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
body {
background: #2E3C44;
-webkit-box-sizing: border-box;
}
div.box {
display: block;
width: 300px;
height: 300px;
min-height: 300px;
max-height: 300px;
margin: 20px auto;
position: relative;
overflow: hidden;
}
span.logo {
background: #F55922;
width: 250px;
height: 200px;
display: block;
color: transparent;
text-align: center;
border-radius: 15px;
position: absolute;
left: 25px;
-webkit-animation: logo 1s forwards, animate-out 1s 4s forwards;
animation: logo 1s forwards;
}
@-webkit-keyframes logo {
0% {
opacity: 0;
border-radius: 50%;
width: 20px;
height: 20px;
top: -50px;
left: 45%;
}
28% {
opacity: 1;
border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
width: 20px;
height: 22px;
left: 45%;
}
33% {
height: 28px;
width: 20px;
left: 45%;
top: 90px;
}
50% {
border-radius: 50%;
width: 260px;
height: 30px;
left: 20px;
top: 100px;
}
60% {
border-radius: 50%;
width: 120px;
height: 50px;
left: 90px;
top: 90px;
}
80% {
border-radius: 50%;
width: 270px;
height: 20px;
left: 15px;
top: 90px;
}
90% {
border-radius: 50%;
width: 274px;
height: 20px;
left: 8px;
top: 88px;
}
100% {
border-radius: 15px;
width: 250px;
height: 200px;
top: 0;
left: 25px;
}
}
@-webkit-keyframes animate-out {
0% {
top: 0;
}
20% {
top: -10px;
}
100% {
top: 800px;
-webkit-transform:rotate(-30deg);
}
}
span.logo:before {
content: "";
display: block;
background: #F55922;
width: 80px;
height: 20px;
position: absolute;
border-radius: 50%;
left: 0;
-webkit-animation: logo-left 1s forwards;
animation: logo-left 1s forwards;
}
@-webkit-keyframes logo-left {
0% {
width: 0px;
height: 0px;
}
60% {
width: 0px;
height: 0px;
top: 8px;
left: 22px;
}
78% {
border-radius: 50% 50% 50% 50% / 40% 60% 60% 40% ;
width: 80px;
height: 22px;
left: -1px;
top: -1px;
}
90% {
border-radius: 50% 50% 50% 50% / 40% 60% 60% 40% ;
width: 80px;
height: 22px;
left: -1px;
top: -1px;
}
100% {
width: 0;
height: 0;
left: 45%;
top: 1px;
}
}
span.logo:after {
content: "";
display: block;
background: #F55922;
width: 20px;
height: 20px;
position: absolute;
right: 0;
-webkit-animation: logo-right 1s forwards;
animation: logo-right 1s forwards;
}
@-webkit-keyframes logo-right {
0% {
width: 0px;
height: 0px;
}
60% {
width: 0px;
height: 0px;
top: 8px;
right: 22px;
}
78% {
border-radius: 50% 50% 50% 50% / 55% 40% 40% 55% ;
width: 80px;
height: 22px;
right: -1px;
top: -1px;
}
90% {
border-radius: 50% 50% 50% 50% / 60% 40% 40% 60% ;
width: 80px;
height: 22px;
right: -1px;
top: -1px;
}
100% {
width: 0;
height: 0;
right: 45%;
top: 1px;
}
}
i {
position: relative;
font-size: 0px;
font-style: normal;
line-height: 220px;
float: left;
height: 250px;
display: inline-block;
z-index: 2;
}
@-webkit-keyframes font {
80% {
font-size: 0px;
color: #fff;
}
90% {
font-size: 200px;
}
93% {
font-size: 225px;
}
96% {
font-size: 205px;
}
100% {
font-size: 220px;
color: #fff;
}
}
i.i {
width: 92px;
-webkit-animation: font 1s .2s forwards;
animation: font 1s .2s forwards;
}
i.x {
width: 140px;
-webkit-animation: font 1s .4s forwards;
animation: font 1s .4s forwards;
}
i.i:after {
content: 'i';
position: absolute;
left: 0;
top:0;
color: #BB5736;
width: 92px;
z-index: -2;
-webkit-animation: font-after 1s .2s forwards;
animation: font-after 1s .2s forwards;
}
i.x:after {
content: 'x';
position: absolute;
left: 0;
top:0;
color: #BB5736;
width: 140px;
z-index: -2;
-webkit-animation: font-after 1s .4s forwards;
animation: font-after 1s .4s forwards;
}
@-webkit-keyframes font-after {
77% {
font-size: 0px;
}
87% {
font-size: 200px;
}
90% {
font-size: 240px;
}
93% {
font-size: 205px;
}
97% {
font-size: 220px;
}
}
span.shade {
background: #2A363E;
width: 250px;
height: 20px;
display: block;
margin: 20px auto;
border-radius: 50%;
-webkit-animation: shader 1s forwards, shader-out 1s 4s forwards;
animation: shader 1s forwards;
box-shadow: 0 0 15px #2A363E;
position: absolute;
left: 115px;
bottom: 0;
}
@-webkit-keyframes shader {
0% {
left: 140px;
width: 20px;
height: 2px;
}
28% {
width: 20px;
left: 140px;
}
33% {
width: 20px;
left: 140px;
}
50% {
width: 260px;
left: 30px;
}
60% {
width: 120px;
left: 90px;
}
80% {
width: 270px;
left: 15px;
}
90% {
width: 274px;
left: 13px;
}
100%{
width: 250px;
left: 25px;
}
}
@keyframes shader {
0% {
font-size: 0px;
}
70% {
font-size: 240px;
}
100% {
font-size: 220px;
}
}
@-webkit-keyframes shader-out {
0% {
opacity: 1;
}
20% {
opacity: 1;
}
30% {
opacity: 0;
}
100% {
opacity: 0;
}
}
/* Attempt to recreate http://dribbble.com/shots/1502534-imgix-logo-animation-test
optimized for chrome, didn't test this for other browsers yet.
Isn't as fluid as Miguel Angel Cardona Jr. example, but i think i came fairly close.
*/
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.