<div class="container">
	<div class="blob"></div>
	<div class="blob"></div>
	<div class="blob"></div>	
	<div class="blob"></div>
	<div class="blob"></div>
	<div class="blob"></div>
	<div class="blob"></div>
	<div class="blob"></div>
</div>

<svg>
	<defs>
		<filter id="morph">
			<feGaussianBlur in="SourceGraphic" result="blur" stdDeviation="20" />
			<feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 20 -6" result="blob" />
			<feBlend in2="blob" in="SourceGraphic" result="mix" />
		</filter>
	</defs>
</svg>
body { 
	background: oklch(94% 10% 2deg); 
	background-size: contain;
	margin: 0 auto;
	height: 90dvh;
	width: 90dvw;
	overflow: hidden;
}


.container {
	display: grid;
	align-content: center;
	justify-content: center;
	
	filter: url("#morph");
	
	margin: 3% auto;
	height: 100%;
	width: 100%;
}


.blob {	
	--min: 2rem;
	--d: clamp(var(--min), 8dvw, calc(var(--min) * 2));
	background: var(--bg, white);
	border-radius: 1dvw;
	height: var(--d);
	width: var(--d);
	
	filter: blur(10px);
	
	animation-name: move;
	animation-delay: var(--delay, 0s);
	animation-duration: var(--duration, 1.5s);
	animation-iteration-count: infinite;
	animation-direction: alternate;
	animation-timing-function: ease-in-out;
	
	&:nth-of-type(even) {
		margin-left: -25%;
	}
	
	/* white */
	&:nth-of-type(1) {
		/* --bg: oklch(80% 70% 40deg); */
		--min: 1.5rem;
	}
	
	/* orange */
	&:nth-of-type(2) {
		--bg: oklch(80% 70% 90deg);
		/* --min: 3rem; */
		--delay: 2s;
	}
	
	/* yellow */
	&:nth-of-type(3) {
		--bg: oklch(100% 50% 50deg);
		--min: 4rem;
		--delay: 1s;
	}
	
	/* green */
	&:nth-of-type(4) {
		--bg: oklch(80% 70% 120deg);
		--min: 1.5rem;
		--delay: 3.25s;
	}
	
	/* green-blue */
	&:nth-of-type(5) {
		--bg: oklch(50% 20% 190deg);
		--min: 2rem;
		--delay: 2.25s;
	}
	
	/* indigo */
	&:nth-of-type(6) {
		--bg: oklch(60% 60% 280deg);
		--min: 3rem;
		--delay: .5s;
	}	
	
	/* purple */
	&:nth-of-type(7) {
		--bg: oklch(80% 50% 300deg);
		--min: 2rem;
		--delay: 2s;
	}
	
	/* pink */
	&:nth-of-type(8) {
		--bg: oklch(85% 20% 340deg);
		--min: 1.25rem;
		--delay: 3s;
	}
}

@keyframes move {
	to { margin-left: 75%; }
}

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.