<div id="container">
<div id="black_bar" class="hidden">
<div class="black_bar hidden">• SERIOUSLY •</div>
</div>
<div id="ribbon" class="hidden">
<div class="ribbon">
<strong class="ribbon-content">
<h1>
<span class="spacer"> </span>
<span class="hidden">B</span>
<span class="hidden">O</span>
<span class="hidden">R</span>
<span class="hidden">E</span>
<span class="hidden">D</span>
</h1>
</strong>
</div>
</div>
<div id="star" class="hidden">
<div class="layer"><div class="star_text">I AM SO</div></div>
<div class="layer"><div class="star outer rotate"></div></div>
<div class="layer"><div class="star inner rotate"></div></div>
</div>
<div id="flag" class="hidden">
<div class="layer"><div id="flag_end"></div></div>
<div class="layer"><div class="flag under"></div></div>
<div class="layer"><div class="flag_over"></div></div>
<div class="layer"><div class="flag_text_top">LIKE,</div></div>
<div class="layer"><div class="flag_text_bottom">KILL ME</div></div>
</div>
</div>
.rotate {
-webkit-animation-name: rotate;
-webkit-animation-duration: 10s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
}
@-webkit-keyframes rotate {
from {
-webkit-transform: rotate(0deg);
}
to {
-webkit-transform: rotate(360deg);
}
}
.slideExpandUp{
animation-name: slideExpandUp;
-webkit-animation-name: slideExpandUp;
animation-duration: 1s;
-webkit-animation-duration: 1s;
animation-timing-function: ease-out;
-webkit-animation-timing-function: ease -out;
visibility: visible !important;
}
@keyframes slideExpandUp {
0% {
transform: translateY(100%) scaleX(0);
}
50%{
transform: translateY(0%) scaleX(1.1);
}
60%{
transform: translateY(0%) scaleX(0.9);
}
70% {
transform: translateY(0%) scaleX(1.05);
}
80%{
transform: translateY(0%) scaleX(0.95);
}
90% {
transform: translateY(0%) scaleX(1.02);
}
100%{
transform: translateY(0%) scaleX(1);
}
}
@-webkit-keyframes slideExpandUp {
0% {
-webkit-transform: translateY(100%) scaleX(0);
}
50%{
-webkit-transform: translateY(0%) scaleX(1.1);
}
60%{
-webkit-transform: translateY(0%) scaleX(0.9);
}
70% {
-webkit-transform: translateY(0%) scaleX(1.05);
}
80%{
-webkit-transform: translateY(0%) scaleX(0.95);
}
90% {
-webkit-transform: translateY(0%) scaleX(1.02);
}
100%{
-webkit-transform: translateY(0%) scaleX(1);
}
}
.fadeIn{
animation-name: fadeIn;
-webkit-animation-name: fadeIn;
animation-duration: 1.5s;
-webkit-animation-duration: 1.5s;
animation-timing-function: ease-in-out;
-webkit-animation-timing-function: ease-in-out;
visibility: visible !important;
}
@keyframes fadeIn {
0% {
transform: scale(0);
opacity: 0.0;
}
60% {
transform: scale(1.1);
}
80% {
transform: scale(0.9);
opacity: 1;
}
100% {
transform: scale(1);
opacity: 1;
}
}
@-webkit-keyframes fadeIn {
0% {
-webkit-transform: scale(0);
opacity: 0.0;
}
60% {
-webkit-transform: scale(1.1);
}
80% {
-webkit-transform: scale(0.9);
opacity: 1;
}
100% {
-webkit-transform: scale(1);
opacity: 1;
}
}
.textShadow {
animation-name: textShadow;
-webkit-animation-name: textShadow;
animation-duration: 0.8s;
-webkit-animation-duration: 0.8s;
text-shadow: 4px 4px 0px rgba(150, 150, 150, 0.58);
}
@keyframes textShadow {
0% {
text-shadow: 0px 0px 0px rgba(150, 150, 150, 0.0);
}
50% {
text-shadow: 2px 2px 0px rgba(150, 150, 150, 0.25);
}
100% {
text-shadow: 4px 4px 0px rgba(150, 150, 150, 0.58);
}
}
@-webkit-keyframes textShadow {
0% {
text-shadow: 0px 0px 0px rgba(150, 150, 150, 0.0);
}
50% {
text-shadow: 2px 2px 0px rgba(150, 150, 150, 0.25);
}
100% {
text-shadow: 4px 4px 0px rgba(150, 150, 150, 0.58);
}
}
.moveOut {
animation-name: moveOut;
-webkit-animation-name: moveOut;
animation-duration: 0.8s;
-webkit-animation-duration: 0.8s;
animation-timing-function: ease-out;
-webkit-animation-timing-function: ease-out;
}
@keyframes moveOut {
0% {
top: 0;
}
99% {
top: 400px;
}
100% {
visibility: hidden;
}
}
@-webkit-keyframes moveOut {
0% {
top: 0;
}
99% {
top: 400px;
}
100% {
visibility: hidden;
}
}
.pullDown{
animation-name: pullDown;
-webkit-animation-name: pullDown;
animation-duration: 1.1s;
-webkit-animation-duration: 1.1s;
animation-timing-function: ease-out;
-webkit-animation-timing-function: ease-out;
transform-origin: 50% 0%;
-ms-transform-origin: 50% 0%;
-webkit-transform-origin: 50% 0%;
}
@keyframes pullDown {
0% {
transform: scaleY(0.1);
}
40% {
transform: scaleY(1.02);
}
60% {
transform: scaleY(0.98);
}
80% {
transform: scaleY(1.01);
}
100% {
transform: scaleY(0.98);
}
80% {
transform: scaleY(1.01);
}
100% {
transform: scaleY(1);
}
}
@-webkit-keyframes pullDown {
0% {
-webkit-transform: scaleY(0.1);
}
40% {
-webkit-transform: scaleY(1.02);
}
60% {
-webkit-transform: scaleY(0.98);
}
80% {
-webkit-transform: scaleY(1.01);
}
100% {
-webkit-transform: scaleY(0.98);
}
80% {
-webkit-transform: scaleY(1.01);
}
100% {
-webkit-transform: scaleY(1);
}
}
.stretchRight{
animation-name: stretchRight;
-webkit-animation-name: stretchRight;
animation-duration: 0.2s;
-webkit-animation-duration: 0.2s;
animation-timing-function: ease-out;
-webkit-animation-timing-function: ease-out;
transform-origin: 0% 0%;
-ms-transform-origin: 0% 0%;
-webkit-transform-origin: 0% 0%;
}
@keyframes stretchRight {
0% {
transform: scaleX(0);
}
100% {
transform: scaleX(1);
}
}
@-webkit-keyframes stretchRight {
0% {
-webkit-transform: scaleX(0);
}
100% {
-webkit-transform: scaleX(1);
}
}
.hidden {
display: none;
}
/* ------------------------------------------------------------ */
$bar-bg: #000;
$bar-text: #FFF;
$star-size: 200px;
$star-border: 10px;
$star-text: #ffff99;
$star-bg: #3985a9;
$star-border-bg: #80cfe3;
$ribbon-width: 350px;
$flag-height: 450px;
$flag-width: 110px;
body {
margin: 0;
padding: 0;
}
#container {
position: relative;
width: 100%;
padding-top: 50px;
font-family: 'Helvetica Neue',Helvetica, sans-serif;
}
.layer {
position: absolute;
}
/* ------------------------------------- BLACK BAR */
#black_bar {
position: absolute;
z-index: 200;
width: 100%;
margin-top: 310px;
height: 50px;
background: $bar-bg;
}
.black_bar {
position: relative;
width: 100%;
text-align: center;
color: $bar-text;
font-weight: bold;
font-size: 40px;
}
/* ------------------------------------- STAR */
#star {
position: absolute;
z-index: 5;
left: 50%;
margin-left: -($star-size+($star-border*2))/2;
// transform: translate(-50%, -50%);
width: $star-size+($star-border*2);
color: $star-text;
}
.star {
width: $star-size;
height: $star-size;
border-radius: 20px;
position: relative;
text-align: center;
&:before,
&:after {
@extend .star;
content: "";
position: absolute;
top: 0;
left: 0;
}
&:before {
-webkit-transform: rotate(30deg);
-moz-transform: rotate(30deg);
-ms-transform: rotate(30deg);
-o-transform: rotate(30deg);
}
&:after {
-webkit-transform: rotate(60deg);
-moz-transform: rotate(60deg);
-ms-transform: rotate(60deg);
-o-transform: rotate(60deg);
}
}
.star.outer {
background: $star-border-bg;
padding: $star-border;
}
.star.inner {
background: $star-bg;
margin-top: $star-border;
margin-left: $star-border;
&:before,
&:after {
top: -$star-border;
left: -$star-border;
}
}
.star_text {
position: absolute;
width: $star-size;
margin-left: $star-border;
z-index: 10;
text-align: center;
margin-top: 50px;
font-size: 40px;
}
/* ------------------------------------- RIBBON */
#ribbon {
position: absolute;
width: $ribbon-width;
z-index: 100;
margin-top: 100px;
left: 50%;
margin-left: -$ribbon-width/2;
color: $star-text;
}
.ribbon {
width: $ribbon-width;
position: absolute;
text-align: center;
font-size: 20px!important;
background: $star-border-bg;
h1 {
font-size: 50px!important;
margin:0px;
padding: 6px 10px;
}
&:before,
&:after {
content: '';
position: absolute;
display: block;
bottom: -1em;
border: 1.5em solid $star-border-bg;
z-index: -1;
}
&:before {
left: -2em;
border-right-width: 1.5em;
border-left-color: transparent;
}
&:after {
right: -2em;
border-left-width: 1.5em;
border-right-color: transparent;
}
.ribbon-content {
&:before,
&:after {
border-color: darken($star-border-bg, 30%) transparent transparent transparent;
position: absolute;
display: block;
border-style: solid;
bottom: -1em;
content: '';
}
&:before {
left: 0;
border-width: 1em 0 0 1em;
}
&:after {
right: 0;
border-width: 1em 1em 0 0;
}
}
}
/* ------------------------------------- FLAG */
$flag-bg: #fd8a4b;
$flag-bg-light: #febf3d;
#flag {
position: absolute;
margin-top: 10px;
width: $flag-width;
left: 50%;
margin-left: -$flag-width/2;
}
.flag {
background: $flag-bg;
width: $flag-width;
height: $flag-height;
padding-top: 15px;
position: relative;
color: white;
font-size: 11px;
letter-spacing: 0.2em;
text-align: center;
text-transform: uppercase;
border-bottom: 25px solid #ffff99;
&:after {
content: "";
position: absolute;
z-index: 1;
left: 0;
bottom: 0;
width: 0;
height: 0;
border-bottom: 40px solid #ffff99;
border-left: 55px solid transparent;
border-right: 55px solid transparent;
}
&.under {
background: $flag-bg-light;
&:before {
content: "";
position: absolute;
z-index: 10;
top: $flag-height;
left: 0;
bottom: 0;
width: 0;
height: 0;
border-bottom: 40px solid #FFF;
border-left: 55px solid transparent;
border-right: 55px solid transparent;
}
}
}
#flag_end {
position: absolute;
z-index: 150;
background: $flag-bg;
width: $flag-width;
height: 95px;
margin-top: ($flag-height)-52;
&:before {
content: "";
position: absolute;
background: $flag-bg;
margin-top: -20px;
height: 40px;
width: $flag-width;
-moz-transform:skewY(-10deg);
-webkit-transform:skewY(-10deg);
-o-transform:skewY(-10deg);
-ms-transform:skewY(-10deg);
transform:skewY(-10deg);
}
&:after {
content: "";
position: absolute;
z-index: 1;
left: 0;
bottom: 0;
width: 0;
height: 0;
border-bottom: 40px solid #fff;
border-left: 55px solid transparent;
border-right: 55px solid transparent;
}
&.border-top {
&:before {
border-top: 1px solid #000;
}
}
}
.flag_over {
background: $flag-bg;
width: $flag-width;
height: ($flag-height)-70;
-moz-transform:skewY(-10deg);
-webkit-transform:skewY(-10deg);
-o-transform:skewY(-10deg);
-ms-transform:skewY(-10deg);
transform:skewY(-10deg);
}
.flag_text_top {
text-align: center;
width: $flag-width;
margin-top: 250px;
color: #FFF;
font-size: 30px;
font-weight: bold;
}
.flag_text_bottom {
text-align: center;
width: $flag-width;
margin-top: 390px;
font-size: 22px;
color: #000;
}
View Compiled
setTimeout("$('#star').removeClass('hidden').addClass('fadeIn');", 100);
setTimeout("$('#ribbon').removeClass('hidden').addClass('slideExpandUp');", 700);
setTimeout("$('.ribbon-content .spacer').addClass('hidden');", 1500);
setTimeout("$('.ribbon-content span').slice(1, 2).removeClass('hidden').addClass('fadeIn');", 1500);
setTimeout("$('.ribbon-content span').slice(2, 3).removeClass('hidden').addClass('fadeIn');", 1600);
setTimeout("$('.ribbon-content span').slice(3, 4).removeClass('hidden').addClass('fadeIn');", 1700);
setTimeout("$('.ribbon-content span').slice(4, 5).removeClass('hidden').addClass('fadeIn');", 1800);
setTimeout("$('.ribbon-content span').slice(5, 6).removeClass('hidden').addClass('fadeIn');", 1900);
setTimeout("$('.ribbon-content').addClass('textShadow');", 3000);
setTimeout("$('#flag').removeClass('hidden').addClass('pullDown');", 3600);
setTimeout("$('#black_bar').removeClass('hidden').addClass('stretchRight');", 4700);
setTimeout("$('.black_bar').removeClass('hidden').addClass('fadeIn');", 4900);
setTimeout("$('#flag_end').addClass('border-top');", 6900); setTimeout("$('#flag_end').removeClass('border-top').addClass('moveOut').delay(300).fadeOut(300);", 7100);
This Pen doesn't use any external CSS resources.