<!--
Credit to https://dribbble.com/shots/2350761-Weather-app-illustration for the design
-->
<div class="container">
<div class="bg night_bg"></div>
<div class="bg frosty_bg"></div>
<div class="bg sunny_bg"></div>
<div class="text_container">
<div class="degrees"><span>º</span></div>
<div class="place"></div>
<div class="weather"></div>
</div>
<div class="circle_container">
<div class="circle"></div>
<div class="circle1"></div>
<div class="circle2"></div>
<div class="circle3"></div>
</div>
<div class="ground1 ground1_night"></div>
<div class="ground1 ground1_frosty"></div>
<div class="ground1 ground1_sunny"></div>
<div class="ground2 ground2_night"></div>
<div class="ground2 ground2_frosty"></div>
<div class="ground2 ground2_sunny"></div>
</div>
.container{
width: 100%;
max-width: 350px;
height: 600px;
border-radius: 10px;
overflow: hidden;
position: relative;
}
.bg{
position: absolute;
z-index: 1;
top: 0; left: 0; right: 0; bottom: 0;
}
.night_bg{
background: #0F2129;
background: -webkit-linear-gradient(#0F2129, #47334A);
background: -o-linear-gradient(#0F2129, #47334A);
background: -moz-linear-gradient(#0F2129, #47334A);
background: linear-gradient(#0F2129, #47334A);
}
.frosty_bg{
background: #29386f;
background: -webkit-linear-gradient(#29386f, #b8f5ff);
background: -o-linear-gradient(#29386f, #b8f5ff);
background: -moz-linear-gradient(#29386f, #b8f5ff);
background: linear-gradient(#29386f, #b8f5ff);
opacity: 0;
animation: frostyAnimation 20s ease infinite;
-webkit-animation: frostyAnimation 20s linear infinite;
}
.sunny_bg{
background: #ffbd3f;
background: -webkit-linear-gradient(#ffbd3f, #fff097);
background: -o-linear-gradient(#ffbd3f, #fff097);
background: -moz-linear-gradient(#ffbd3f, #fff097);
background: linear-gradient(#ffbd3f, #fff097);
opacity: 0;
animation: sunnyAnimation 20s ease infinite;
-webkit-animation: sunnyAnimation 20s linear infinite;
}
@keyframes frostyAnimation {
32% { opacity: 0; }
33% { opacity: 1; }
62% { opacity: 1; }
63% { opacity: 0; }
}
@-webkit-keyframes frostyAnimation {
32% { opacity: 0; }
33% { opacity: 1; }
62% { opacity: 1; }
63% { opacity: 0; }
}
@keyframes sunnyAnimation {
62%{ opacity: 0; }
63%{ opacity: 1; }
99%{ opacity: 1; }
}
@-webkit-keyframes sunnyAnimation {
62%{ opacity: 0; }
63%{ opacity: 1; }
99%{ opacity: 1; }
}
.text_container{
margin-top: 50px;
width: 100%;
text-align: center;
font-family: Arial, Helvetica, sans-serif;
position: relative;
z-index: 3;
}
.degrees{
color: #4F787D;
display: block;
text-indent: -5px;
font-size: 100px;
font-weight: bold;
position: relative;
animation: degreesAnimation 20s ease infinite;
-webkit-animation: degreesAnimation 20s linear infinite;
}
@keyframes degreesAnimation {
32% { color: #4F787D; }
33% { color: #a8ddff; }
62% { color: #a8ddff; }
63% { color: #fff5b8; }
99% { color: #fff5b8; }
}
@-webkit-keyframes degreesAnimation {
32% { color: #4F787D; }
33% { color: #a8ddff; }
62% { color: #a8ddff; }
63% { color: #fff5b8; }
99% { color: #fff5b8; }
}
.degrees::before{
content: '+24';
animation: degreesTextAnimation 20s ease infinite;
-webkit-animation: degreesTextAnimation 20s linear infinite;
}
@keyframes degreesTextAnimation {
32% { content: '+24';}
33% { content: '-13'; }
62% { content: '-13'; }
63% { content: '+32'; }
99% { content: '+32'; }
}
@-webkit-keyframes degreesTextAnimation {
32% { content: '+24';}
33% { content: '-13'; }
62% { content: '-13'; }
63% { content: '+32'; }
99% { content: '+32'; }
}
.degrees span{
font-size: 50px;
position: absolute;
top: 0;
}
.place{
margin-bottom: 10px;
text-transform: uppercase;
color: #694c6d;
animation: placeAnimation 20s ease infinite;
-webkit-animation: placeAnimation 20s linear infinite;
}
@keyframes placeAnimation {
32% { color: #694c6d; }
33% { color: #4497bf; }
62% { color: #4497bf; }
63% { color: #f7a526; }
99% { color: #f7a526; }
}
@-webkit-keyframes placeAnimation {
32% { color: #694c6d; }
33% { color: #4497bf; }
62% { color: #4497bf; }
63% { color: #f7a526; }
99% { color: #f7a526; }
}
.place::before{
content: 'Madrid';
animation: placeTextAnimation 20s ease infinite;
-webkit-animation: placeTextAnimation 20s linear infinite;
}
@keyframes placeTextAnimation {
32% { content: 'Madrid';}
33% { content: 'Moscow'; }
62% { content: 'Moscow'; }
63% { content: 'Ankara'; }
99% { content: 'Ankara'; }
}
@-webkit-keyframes placeTextAnimation {
32% { content: 'Madrid';}
33% { content: 'Moscow'; }
62% { content: 'Moscow'; }
63% { content: 'Ankara'; }
99% { content: 'Ankara'; }
}
.weather{
color: #FFF;
}
.weather::before{
content: 'Clear';
animation: weatherTextAnimation 20s ease infinite;
-webkit-animation: weatherTextAnimation 20s linear infinite;
}
@keyframes weatherTextAnimation {
32% { content: 'Clear';}
33% { content: 'Frosty'; }
62% { content: 'Frosty'; }
63% { content: 'Hot'; }
99% { content: 'Hot'; }
}
@-webkit-keyframes weatherTextAnimation {
32% { content: 'Clear';}
33% { content: 'Frosty'; }
62% { content: 'Frosty'; }
63% { content: 'Hot'; }
99% { content: 'Hot'; }
}
.circle_container{
position: absolute;
bottom: 200px;
left: 100px;
-webkit-animation: circleAnimation 20s linear infinite;
animation: circleAnimation 20s ease infinite;
}
@-webkit-keyframes circleAnimation {
32% {
bottom: 200px;
left: 100px;
}
33% {
bottom: 150px;
left: 200px;
}
62%{
bottom: 150px;
left: 200px;
}
63%{
bottom: 400px;
left: 250px;
}
99%{
bottom: 400px;
left: 250px;
}
100% {
bottom: 200px;
left: 100px;
}
}
@keyframes circleAnimation {
32% {
bottom: 200px;
left: 100px;
}
33% {
bottom: 150px;
left: 200px;
}
62%{
bottom: 150px;
left: 200px;
}
63%{
bottom: 400px;
left: 250px;
}
99%{
bottom: 400px;
left: 250px;
}
100% {
bottom: 200px;
left: 100px;
}
}
.circle {
position: relative;
z-index: 7;
width: 60px;
height: 60px;
border-radius: 50%;
-ms-box-shadow: 9px 9px 0 0 #BCAE76;
-o-box-shadow: 9px 9px 0 0 #BCAE76;
-webkit-box-shadow: 9px 9px 0 0 #BCAE76;
box-shadow: 9px 9px 0 0 #BCAE76;
-ms-transform: rotate(100deg);
-webkit-transform: rotate(100deg);
-o-transform: rotate(100deg);
transform: rotate(100deg);
animation: circleColor 20s ease infinite;
-webkit-animation: circleColor 20s linear infinite;
}
@keyframes circleColor {
32% {
box-shadow: 9px 9px 0 0 #BCAE76;
background: none;
top: 0;
left: 0;
}
33% {
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #feffdf;
top: 10px;
left: -15px;
}
62%{
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #feffdf;
top: 10px;
left: -15px;
}
63%{
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #ffdb50;
top: 10px;
left: -15px;
}
99%{
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #ffdb50;
top: 10px;
left: -15px;
}
100% {
box-shadow: 9px 9px 0 0 #BCAE76;
}
}
@-webkit-keyframes circleColor {
32% {
box-shadow: 9px 9px 0 0 #BCAE76;
background: none;
top: 0;
left: 0;
}
33% {
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #feffdf;
top: 10px;
left: -15px;
}
62%{
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #feffdf;
top: 10px;
left: -15px;
}
63%{
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #ffdb50;
top: 10px;
left: -15px;
}
99%{
box-shadow: 0px 0px 0 0 #BCAE76;
background-color: #ffdb50;
top: 10px;
left: -15px;
}
100% {
box-shadow: 9px 9px 0 0 #BCAE76;
}
}
.circle1{
content: '';
background-color: #BCAE76;
position: absolute;
height: 90px;
width: 90px;
z-index: 6;
border-radius: 50%;
opacity: 0.1;
top: -5px;
left: -30px;
animation: circle1Color 20s ease infinite;
-webkit-animation: circle1Color 20s linear infinite;
}
@keyframes circle1Color {
32%{ background: #BCAE76; }
33%{ background: #feffdf; }
62%{ background: #feffdf; }
63%{ background: #ffdb50; }
99%{ background: #ffdb50; }
100%{ background: #BCAE76; }
}
@-webkit-keyframes circle1Color {
32%{ background: #BCAE76; }
33%{ background: #feffdf; }
62%{ background: #feffdf; }
63%{ background: #ffdb50; }
99%{ background: #ffdb50; }
100%{ background: #BCAE76; }
}
.circle2{
background-color: #BCAE76;
position: absolute;
height: 110px;
width: 110px;
z-index: 6;
border-radius: 50%;
opacity: 0.1;
top: -15px;
left: -40px;
animation: circle2Color 20s ease infinite;
-webkit-animation: circle2Color 20s ease infinite;
}
@keyframes circle2Color {
32%{ background: #BCAE76; }
33%{ background: #feffdf; }
62%{ background: #feffdf; }
63%{ background: #ffdb50; }
99%{ background: #ffdb50; }
100%{ background: #BCAE76; }
}
@-webkit-keyframes circle2Color {
32%{ background: #BCAE76; }
33%{ background: #feffdf; }
62%{ background: #feffdf; }
63%{ background: #ffdb50; }
99%{ background: #ffdb50; }
100%{ background: #BCAE76; }
}
.circle3{
background-color: #BCAE76;
position: absolute;
height: 130px;
width: 130px;
z-index: 6;
border-radius: 50%;
opacity: 0.1;
top: -25px;
left: -50px;
animation: circle3Color 20s ease infinite;
-webkit-animation: circle3Color 20s ease infinite;
}
@keyframes circle3Color {
32%{ background: #BCAE76; }
33%{ background: #feffdf; }
62%{ background: #feffdf; }
63%{ background: #ffdb50; }
99%{ background: #ffdb50; }
100%{ background: #BCAE76; }
}
@-webkit-keyframes circle3Color {
32%{ background: #BCAE76; }
33%{ background: #feffdf; }
62%{ background: #feffdf; }
63%{ background: #ffdb50; }
99%{ background: #ffdb50; }
100%{ background: #BCAE76; }
}
.ground1{
width: 270px;
height: 150px;
border-top-left-radius: 100px;
border-top-right-radius: 100px;
position: absolute;
z-index: 2;
bottom: -50px;
left: -20px;
-ms-transform: rotate(20deg); /* IE 9 */
-webkit-transform: rotate(20deg); /* Safari */
transform: rotate(20deg);
}
.ground1_night{
background: #2f2b3c;
background: -webkit-linear-gradient(#2f2b3c, #091B21);
background: -o-linear-gradient(#2f2b3c, #091B21);
background: -moz-linear-gradient(#2f2b3c, #091B21);
background: linear-gradient(#2f2b3c, #091B21);
animation: nightGroundAnimation 20s ease infinite;
-webkit-animation: nightGroundAnimation 20s ease infinite;
}
.ground1_frosty{
background: #f3ffff;
background: -webkit-linear-gradient(#f3ffff, #9af2ff);
background: -o-linear-gradient(#f3ffff, #9af2ff);
background: -moz-linear-gradient(#f3ffff, #9af2ff);
background: linear-gradient(#f3ffff, #9af2ff);
opacity: 0;
animation: frostyGroundAnimation 20s ease infinite;
-webkit-animation: frostyGroundAnimation 20s ease infinite;
}
.ground1_sunny{
background: #e0d7a4;
background: -webkit-linear-gradient(#e0d7a4, #e7c77a);
background: -o-linear-gradient(#e0d7a4, #e7c77a);
background: -moz-linear-gradient(#e0d7a4, #e7c77a);
background: linear-gradient(#e0d7a4, #e7c77a);
opacity: 0;
animation: sunnyGroundAnimation 20s ease infinite;
-webkit-animation: sunnyGroundAnimation 20s ease infinite;
}
.ground2{
width: 500px;
height: 150px;
border-top-left-radius: 100px;
border-top-right-radius: 100px;
position: absolute;
z-index: 2;
bottom: -70px;
right: -80px;
-ms-transform: rotate(-10deg); /* IE 9 */
-webkit-transform: rotate(-10deg); /* Safari */
transform: rotate(-10deg);
}
.ground2_night{
background: #2f2b3c;
background: -webkit-linear-gradient(#2f2b3c, #091B21);
background: -o-linear-gradient(#2f2b3c, #091B21);
background: -moz-linear-gradient(#2f2b3c, #091B21);
background: linear-gradient(#2f2b3c, #091B21);
animation: nightGroundAnimation 20s ease infinite;
-webkit-animation: nightGroundAnimation 20s ease infinite;
}
.ground2_frosty{
background: #f3ffff;
background: -webkit-linear-gradient(#f3ffff, #9af2ff);
background: -o-linear-gradient(#f3ffff, #9af2ff);
background: -moz-linear-gradient(#f3ffff, #9af2ff);
background: linear-gradient(#f3ffff, #9af2ff);
opacity: 0;
animation: frostyGroundAnimation 20s ease infinite;
-webkit-animation: frostyGroundAnimation 20s ease infinite;
}
.ground2_sunny{
background: #e0d7a4;
background: -webkit-linear-gradient(#e0d7a4, #e7c77a);
background: -o-linear-gradient(#e0d7a4, #e7c77a);
background: -moz-linear-gradient(#e0d7a4, #e7c77a);
background: linear-gradient(#e0d7a4, #e7c77a);
opacity: 0;
animation: sunnyGroundAnimation 20s ease infinite;
-webkit-animation: sunnyGroundAnimation 20s ease infinite;
}
@keyframes nightGroundAnimation {
32% { opacity: 1; }
33% { opacity: 0; }
99% { opacity: 0; }
}
@-webkit-keyframes nightGroundAnimation {
32% { opacity: 1; }
33% { opacity: 0; }
99% { opacity: 0; }
}
@keyframes frostyGroundAnimation {
32% { opacity: 0; }
33% { opacity: 1; }
62% { opacity: 1; }
63% { opacity: 0; }
}
@-webkit-keyframes frostyGroundAnimation {
32% { opacity: 0; }
33% { opacity: 1; }
62% { opacity: 1; }
63% { opacity: 0; }
}
@keyframes sunnyGroundAnimation {
62%{ opacity: 0; }
63%{ opacity: 1; }
99%{ opacity: 1; }
}
@-webkit-keyframes sunnyGroundAnimation {
62%{ opacity: 0; }
63%{ opacity: 1; }
99%{ opacity: 1; }
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.