main
	.emojis
		each emoji in ['😀','😍','😲','😡','💘']
			.emoji= emoji
View Compiled
html,
body {
	height: 100%;
}

body {
	margin: 0;
	background-color: #ededed;
}

main {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.emojis {
	display: flex;
	flex-direction: row;
	background-color: #ffffff;
	align-items: center;
	padding: 0.5rem 1.5rem 1rem 1.5rem;
	border-radius: 4rem;
	box-shadow: 0 2px 12px 2px rgba(0, 0, 0, 0.1);

	.emoji {
		cursor: pointer;
		user-select: none;
		font-size: 2rem;
		margin: 0 0.5rem;
		transition: all 0.3s;

		&.active {
			animation-name: emoji;
			animation-duration: 0.6s;
			animation-direction: forwards;
			animation-timing-function: ease-out;
			animation-iteration-count: 1;
		}

		&:hover {
			transform: scale(1.5);
		}
	}
}

@keyframes emoji {
	5% {
		transform: translateY(1rem);
	}
	10% {
		transform: translateY(0) scale(1);
		opacity: 1;
	}
	50% {
		transform: translateY(-4rem) scale(1.5) rotateY(90deg);
	}
	80% {
		opacity: 0;
	}
	100% {
		transform: translateY(-8rem) scale(2) rotateY(180deg);
		opacity: 0;
	}
}
View Compiled
document.querySelectorAll(".emoji").forEach((el) => {
	el.addEventListener("click", () => {
		document
			.querySelectorAll(".emoji.active")
			.forEach((active) => active.classList.remove("active"));
		requestAnimationFrame(() => el.classList.add("active"));
	});
});
View Compiled

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

This Pen doesn't use any external JavaScript resources.