JSFiddle - React, Tailwind, and code Playground

by rluuan

HTML

<div>
  <input type="text" class="inputText" required/>
  <span class="floating-label">Your email address</span>
</div>
<div>
  <input type="text" class="inputText" required/>
  <span class="floating-label">Your email address</span>
</div>

CSS

input:focus ~ .floating-label,
input:not(:focus):valid ~ .floating-label{
  top: 1px;
  bottom: 10px;
  left: 20px;
  font-size: 11px;
  opacity: 1;
}

.inputText {
  font-size: 14px;
  width: 200px;
  height: 35px;
}

.floating-label {
  position: absolute;
  pointer-events: none;
  left: 20px;
  top: 18px;
  transition: 0.2s ease all;
}