<div id="flask">
<div class="background"></div>
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 113 130" xml:space="preserve">
<g>
<path fill="#E6E9EA" d="M0,0v130h112.084L111.75,0H0z M94.75,128C71,128,56,128,56,128s-14.873,0-38.623,0s-13.945-19.422-6.33-35.945S40,41.25,40,41.25V3h16h11v38.25c0,0,23.901,34.283,31.517,50.805S118.5,128,94.75,128z"/>
<path fill="none" stroke="#000000" stroke-width="5" stroke-miterlimit="10" d="M56,127.5c0,0-14.873,0-38.623,0s-13.695-19.172-6.08-35.695C18.912,75.283,40.5,41.25,40.5,41.25V2.5h-9H56h19.5h-8v38.75c0,0,23.651,34.033,31.267,50.555c7.615,16.523,19.733,35.695-4.017,35.695S56,127.5,56,127.5z"/>
</g>
</svg>
<div class="bubble b0"></div>
<div class="bubble b1"></div>
<div class="bubble b2"></div>
<div class="bubble b3"></div>
<div class="bubble b4"></div>
<div class="bubble b5"></div>
<div class="bubble b6"></div>
<div class="bubble b7"></div>
<div class="bubble b8"></div>
<div class="bubble b9"></div>
<div class="swirl s0"></div>
<div class="swirl s1"></div>
<div class="swirl s2"></div>
<div class="swirl s3"></div>
<div class="swirl s4"></div>
<div class="swirl s5"></div>
</div>
html,body {
background-color: #E6E9EA;
text-align: center;
}
#flask {
width: 197px;
height: 230px;
margin: 0 auto;
margin-top: 200px;
position: relative;
}
#flask svg {
width: 200px;
height: 230px;
z-index: 1;
position: absolute;
top: 0;
left: 0;
}
#flask .background {
width: 197px;
height: 100px;
background-color: #5BBCFC;
position: absolute;
z-index: 0;
bottom: 0;
left: 0;
animation: liquid 3s infinite,liquid-color 80s infinite;
}
.bubble {
width: 40px;
height: 40px;
background: #5BBCFC;
border-radius: 40px;
position: absolute;
top: 180px;
}
@keyframes liquid {
0% {
height: 100px;
}
10% {
height: 97px;
}
35% {
height: 100px;
}
50% {
height: 102px;
}
80% {
height: 98px;
}
100% {
height: 100px;
}
}
@keyframes liquid-color {
from {
filter: hue-rotate(-360deg);
}
to {
filter: hue-rotate(0deg);
}
}
@keyframes bubble {
0% {
top: 200px;
}
100% {
top: -200px;
opacity: 0;
}
}
@keyframes side {
0% {
margin-right: 0px;
}
100% {
margin-right: 35px;
}
}
.b1,.b2,.b3 {
right: 60px;
transform: scale(0.4);
opacity: 0.6;
animation: bubble 8s linear infinite, liquid-color 80s infinite, side 2s ease-in-out infinite alternate;
}
.b2 {
right: 65px;
transform: scale(0.5);
animation-delay: 2s,0s,2s;
}
.b3 {
right: 70px;
animation-delay: 5s,0s,5s;
animation: bubble 10s linear infinite, liquid-color 80s infinite, side 3s ease-in-out infinite alternate;
}
.b4,.b5 {
right: 65px;
transform: scale(0.5);
opacity: 0.8;
animation: bubble 16s linear infinite, liquid-color 80s infinite, side 5s ease-in-out infinite alternate;
animation-delay: 4s,0s,4s;
}
.b5 {
right: 55px;
animation-delay: 5s,0s,5s;
}
.b6,.b7,.b8 {
right: 65px;
transform: scale(0.6);
opacity: 0.4;
animation: bubble 14s linear infinite, liquid-color 80s infinite, side 3s ease-in-out infinite alternate;
animation-delay: 9s,0s,9s;
}
.b7 {
right: 70px;
transform: scale(0.7);
animation-delay: 3s,0s,3s;
}
.b8 {
right: 65px;
animation-delay: 7s,0s,7s;
}
.b9,.b0 {
right: 70px;
transform: scale(0.65);
opacity: 0.7;
animation: bubble 20s linear infinite, liquid-color 80s infinite, side 5s ease-in-out infinite alternate;
}
.b0 {
right: 60px;
animation-delay: 13s,0s,13s;
}
.swirl {
width: 20px;
height: 20px;
background: #5BBCFC;
border-radius: 20px;
position: absolute;
top: 140px;
left: 80px;
}
@keyframes swirl {
0% {
top: 140px;
}
100% {
top: 128px;
}
}
.s0 {
animation: liquid-color 80s infinite, swirl 1s ease-in-out infinite alternate;
}
.s1 {
left: 100px;
transform: scale(1.2);
animation: liquid-color 80s infinite, swirl 2s ease-in-out infinite alternate;
animation-delay: 0s,2s;
}
.s2 {
left: 40px;
transform: scale(0.8);
animation: liquid-color 80s infinite, swirl 2s ease-in-out infinite alternate;
animation-delay: 0s,3s;
}
.s3 {
left: 60px;
transform: scale(1.4);
animation: liquid-color 80s infinite, swirl 1s ease-in-out infinite alternate;
animation-delay: 0s,5s;
}
.s4 {
left: 120px;
animation: liquid-color 80s infinite, swirl 2s ease-in-out infinite alternate;
animation-delay: 0s,3s;
}
.s5 {
left: 135px;
transform: scale(0.8);
animation: liquid-color 80s infinite, swirl 1s ease-in-out infinite alternate;
animation-delay: 0s,2s;
}
/*
No JS needed, but you will need to prefix CSS3 properties!
Think -prefix-free ;)
*/
This Pen doesn't use any external CSS resources.