<div class="bubbles">
	<div class="bubble"></div>
	<div class="bubble bubble--purple"></div>
	<div class="bubble bubble--green"></div>
	<div class="bubble bubble--blue"></div>
	<div class="bubble bubble--orange"></div>
</div>
:root{
	--background: #222;
	--b-purple: #44355B;
	--b-green: #9EE493;
	--b-blue: #00A6FB;
	--b-orange: #EE5622;
	--b-yellow: #ECA72C;
}

@keyframes rotateBubble{
	from{
		transform: rotate(0deg);
	}
	to{
		transform: rotate(359deg);
	}
}

.bubbles{
	background-color: var(--background);
	height: 400px;
	position: relative;
	width: 100%;
}

.bubble{
	--b-animate-time: 10000ms;
	--b-border-width: 10px;
	--b-color: var(--b-yellow);
	--b-left: auto;
	--b-position: absolute;
	--b-size: 100px;
	--b-top: auto;
	--b-radius: 50%;
	--b-right: auto;
	--b-rotate: 0deg;
	--b-bottom: auto;
	animation: rotateBubble var(--b-animate-time) infinite forwards;
	background-image: linear-gradient(var(--b-color), transparent);
	border-radius: var(--b-radius);
	bottom: var(--b-bottom);
	height: var(--b-size);
	left: var(--b-left);
	position: var(--b-position);
	right: var(--b-right);
	top: var(--b-top);
	transform: rotate(var(--b-rotate));
	width: var(--b-size);
}

.bubble::after{
	background-color: var(--background);
	border-radius: var(--b-radius);
	content: '';
	display: block;
	height: calc(var(--b-size) - var(--b-border-width));
	left: calc(var(--b-border-width) / 2);
	position: absolute;
	top: calc(var(--b-border-width) / 2);
	width: calc(var(--b-size) - var(--b-border-width));
}

.bubble--purple{
	--b-animate-time: 5000ms;
	--b-border-width: 20px;
	--b-color: var(--b-purple);
	--b-left: 65%;
	--b-size: 300px;
	--b-rotate: 45deg;
	--b-bottom: 5%;
}

.bubble--green{
	--b-color: var(--b-green);
	--b-left: 20%;
	--b-top: 15%;
}

.bubble--blue{
	--b-color: var(--b-blue);
	--b-left: 40%;
	--b-size: 150px;
	--b-top: 10%;
}

.bubble--orange{
	--b-color: var(--b-orange);
	--b-right: 10%;
	--b-rotate: 90deg;
	--b-top: 2%;
}
Run Pen

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.