JSFiddle - React, Tailwind, and code Playground

HTML

<div>
	<ul>
		<span class="tooltip">
			<div class="div1"></div>
			<span class="tooltip-content">
				<span class="tooltip-text">
					<span class="tooltip-inner">
						test1
					</span>
				</span>
			</span>
		</span>
		<span class="tooltip">
			<div class="div2"></div>
            <span class="tooltip-content">
				<span class="tooltip-text">
					<span class="tooltip-inner">
						test2
					</span>
				</span>
			</span>
			
		</span>
		<span class="tooltip">
			<div class="div3"></div>
			<span class="tooltip-content">
				<span class="tooltip-text">
					<span class="tooltip-inner">
						test3
					</span>
				</span>
			</span>
		</span>
		<span class="tooltip">
			<div class="div4"></div>
			<span class="tooltip-content">
				<span class="tooltip-text">
					<span class="tooltip-inner">
						test4
					</span>
				</span>
			</span>
		</span>
	</ul>
</div>

CSS

.div1 {
	background: yellow;
	width: 200px;
	height: 100px;
	display: inline-block;
	margin-top: 100px;
}

.div2 {
	background: red;
	width: 260px;
	height: 100px;
	display: inline-block;
	margin-top: 100px;
}

.div3 {
	background: blue;
	width: 160px;
	height: 100px;
	display: inline-block;
	margin-top: 100px;
}

.div4 {
	background: pink;
	width: 60px;
	height: 100px;
	display: inline-block;
	margin-top: 100px;
}


	
.tooltip {
	display: inline;
	position: relative;
	z-index: 999;
}

/* Gap filler */
.tooltip::after {
	content: '';
	position: absolute;
	width: 100%;
	bottom: 100%;
	left: 50%;
	pointer-events: none;
	-webkit-transform: translateX(-50%);
	transform: translateX(-50%);
}

.tooltip:hover::after {
	pointer-events: auto;
}

/* Tooltip */

.tooltip-content {
	position: absolute;
	z-index: 9999;
	width: 120px;
	bottom: 100px;
    left:0;
    right:0;
	font-size: 20px;
	line-height: 1.4;
	text-align: center;
	font-weight: 400;
	color: black;
	background: transparent;
	opacity: 0;
	margin: 0 auto 20px;
	cursor: default;
	pointer-events: none;
	-webkit-font-smoothing: antialiased;
	-webkit-transition: opacity 0.3s 0.3s;
	transition: opacity 0.3s 0.3s;
}

.tooltip:hover .tooltip-content {
	opacity: 1;
	pointer-events: auto;
	-webkit-transition-delay: 0s;
	transition-delay: 0s;
}

.tooltip-content span {
	display: block;
}

.tooltip-text {
	border-bottom: 10px solid #fcd803;
	overflow: hidden;
	-webkit-transform: scale3d(0,1,1);
	transform: scale3d(0,1,1);
	-webkit-transition: -webkit-transform 0.3s 0.3s;
	transition: transform 0.3s 0.3s;
}

.tooltip:hover .tooltip-text {
	-webkit-transition-delay: 0s;
	transition-delay: 0s;
	-webkit-transform: scale3d(1,1,1);
	transform: scale3d(1,1,1);
}

.tooltip-inner {
	font-size: 10px;
	background: rgba(255,255,255,0.95);
	padding: 10px;
	-webkit-transform: translate3d(0,100%,0);
	transform: translate3d(0,100%,0);
	webkit-transition: -webkit-transform 0.3s;
	transition: transform 0.3s;
}

.tooltip:hover .tooltip-inner...