div
	each val in Array(300)
		i
View Compiled
$amount: 300; // decrease that if your browser is too slow

body {
	margin: 0;
	padding: 0;
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 100vh;
	background-color: black;
}

div {
	position: relative;
}

i {
	--radius: 6rem;
	--angle: 0deg;
	--speed: 0ms;
	--hue: 0deg;
	--size: 0.75rem;
	width: var(--size);
	height: var(--size);
	border-radius: 50%;
	background-color: hsl(var(--hue), 100%, 50%);
	box-shadow: 0rem 0rem 1rem #ffffff2a, 0rem 0rem 2rem #ffffff02;
	position: absolute;
	transform: rotate(var(--angle)) translateX(var(--radius));

	@for $i from 0 to $amount {
		&:nth-child(#{$i + 1}) {
			--angle: calc(#{$i} * 360deg / #{$amount});
			--speed: calc(2s + 0.001s * (#{$i} + 1));
			--hue: calc(50deg + #{$i} * 100deg /#{$amount});
		}
	}

	animation: walk var(--speed) ease-in-out infinite alternate;

	@keyframes walk {
		from {
			transform: rotate(var(--angle)) translateX(var(--radius));
		}
		to {
			transform: rotate(var(--angle)) translateX(calc(-1 * var(--radius)));
		}
	}
}
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.