<div class="loading_cont">
	<svg version="1.1" xmlns="http://www.w3.org/2000/svg" id="loader">
		<defs>
			<filter id="goo">
				<feGaussianBlur in="SourceGraphic" result="blur" stdDeviation="10" />
        <feGaussianBlur stdDeviation="5" />
        <feComponentTransfer>
          <feFuncA type="linear" slope="180" intercept="-10"/>
        </feComponentTransfer>
				<feBlend in2="goo" in="SourceGraphic" result="mix" />
			</filter>
      <radialGradient id="MyGradient">
					<stop offset="00%" stop-color="royalBlue"/>
					<stop offset="80%" stop-color="seaGreen"/>
			</radialGradient>
		</defs>
    <mask id="maska">
			<g class="blobs">
				<circle class="blob" cx="49%" cy="53%" r="30"/>
				<circle class="blob" cx="47%" cy="45%" r="70"/>
				<circle class="blob" cx="50%" cy="52%" r="40"/>
				<circle class="blob" cx="45%" cy="47%" r="80"/>
				<circle class="blob" cx="53%" cy="49%" r="20"/>
			</g>
		</mask>
		<rect x="200" y="200"  mask="url(#maska)" fill="url(#MyGradient)" width="400" height="400">
	</svg>	
</div>
body {
 margin: 0;
 height: 100vh;
 overflow: hidden;
}

.loading_cont {
 width: 100%;
 height: 100%;
 background: white;
}

#loader {
	display: inline-block;
	position: relative;
	width: 800px;
	height: 800px;
	top: 50%;
	left: 50%;
	margin-left: -400px;
	margin-top: -400px;
  filter: drop-shadow(200px 200px 0 #f0f);
}

rect {
 -webkit-transform-origin: 50% 50%;
 transform-origin: 50% 50%;
}

.blobs {
 -webkit-filter: url("#goo");
 filter: url("#goo");
  
  
}

.blob {
	fill: white;
}
.belt {
	fill: red;
}
.mask {
	fill: white;
}

	var radius = 6;
	TweenMax.staggerFromTo('.blob,.belt,.mask', 4 ,{
		cycle: {
			attr:function(i) {
				var r = i*90;
				return {
					transform:'rotate('+r+') translate('+radius+',0.1) rotate('+(-r)+')'
				}      
			}
		}  
	},{
		cycle: {
			attr:function(i) {
				var r = i*90+360;
				return {
					transform:'rotate('+r+') translate('+radius+',0.1) rotate('+(-r)+')'
				}      
			}
		},
		ease:Linear.easeNone,
		repeat:-1
	});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js