<div class="wrap">
<div class="apps">
<div class="app yellow">
<div class="top">
<div class="fa fa-heart"></div>
</div>
</div>
<div class="app red">
<div class="top">
<div class="fa fa-headphones"></div>
</div>
</div>
<div class="app blue">
<div class="top">
<div class="fa fa-cutlery"></div>
</div>
</div>
<div class="app green">
<div class="top">
<div class="fa fa-check"></div>
</div>
</div>
<div class="app pink">
<div class="top">
<div class="fa fa-home"></div>
</div>
</div>
</div>
</div>
/*
* Inspired by: https://dribbble.com/shots/1878348-Google-Now-3rd-Party-Apps
*/
@keyframes slide {
0% {
transform: scale(0, 0) translateY(0);
}
15%, 70% {
transform: scale(1, 1) translateY(0);
}
90% {
transform: scale(1, 1) translateY(600%);
}
100% {
transform: scale(1, 1) translateY(600%);
}
}
@keyframes size {
0%, 15% {
transform: scale(1, 0);
}
25%, 100% {
transform: scale(1, 1);
}
}
@keyframes zoom {
0%, 25% {
transform: scale(0, 0);
}
35%, 100% {
transform: scale(1, 1);
}
}
html {
height: 100%;
}
body {
font-family: sans-serif;
font-size: 11px;
height: 100%;
margin: 0;
background: #2FACF6;
}
.wrap {
width: 400px;
height: 300px;
display: table;
overflow: hidden;
position: absolute;
margin: auto;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.apps {
display: table-cell;
text-align: center;
vertical-align: middle;
}
.app {
width: 44px;
height: 45px;
background: #fff;
box-shadow: 2px 2px 3px 1px rgba(0, 0, 0, .08);
display: inline-block;
margin: 0 10px;
transform: scale(0, 0) translateY(0);
animation-name: slide;
animation-timing-function: ease;
animation-duration: 4s;
animation-iteration-count: infinite;
&:nth-child(2), &:nth-child(2) .top, &:nth-child(2) .fa {
animation-delay: .2s;
}
&:nth-child(3), &:nth-child(3) .top, &:nth-child(3) .fa {
animation-delay: .4s;
}
&:nth-child(4), &:nth-child(4) .top, &:nth-child(4) .fa {
animation-delay: .6s;
}
&:nth-child(5), &:nth-child(5) .top, &:nth-child(5) .fa {
animation-delay: .8s;
}
.top {
height: 19px;
position: relative;
transform: scale(1, 0);
transform-origin: 0 0;
animation-name: size;
animation-duration: 4s;
animation-timing-function: ease;
animation-iteration-count: infinite;
.fa {
height: 19px;
width: 19px;
line-height: 19px;
text-align: center;
font-size: 11px;
color: #fff;
border-radius: 50%;
position: absolute;
right: 5px;
top: -9px;
box-shadow: 1px 1px 1px .5px rgba(0, 0, 0, .08);
animation-name: zoom;
animation-duration: 4s;
animation-iteration-count: infinite;
}
}
&.yellow .top {
background: #F28F00;
.fa {
background: #FFCC3B
}
}
&.red .top {
background: #EA4301;
.fa {
background: #FF8963
}
}
&.blue .top {
background: #1E3F9C;
.fa {
background: #74B0F8
}
}
&.green .top {
background: #669930;
.fa {
background: #B0D583
}
}
&.pink .top {
background: #BD0E53;
.fa {
background: #FF4082
}
}
}
.info {
position: absolute;
top: 0;
left: 0;
right: 0;
color: rgba(255, 255, 255, .64);
padding: 8px;
text-align: center;
a {
color: inherit;
text-decoration: none;
&:hover {
color: rgba(255, 255, 255, .8)
}
}
}
View Compiled
This Pen doesn't use any external JavaScript resources.