JSFiddle - React, Tailwind, and code Playground
by pimur
HTML
<div class="form">
<input type="text" name="city" id="city" required>
<label for="city">Город</label>
</div>
CSS
.form {
position: relative;
background: #ddd;
padding: 20px 10px;
max-width: 200px;
}
.form label {
font-size: 10px;
position: absolute;
top: 50%;
left: 20px;
-webkit-transform: translateY(-150%);
transform: translateY(-150%);
-webkit-transition: all .7s ease 0s;
transition: all .7s ease 0s;
z-index: 1;
}
.form input {
padding: 10px;
width: calc(100% - 20px);
background: transparent;
border: 1px solid #ccc;
border-radius: 5px;
}
.form input:invalid+label {
font-size: 15.38462px;
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
transform: translateY(-50%);
}
.form input:focus+label {
font-size: 10px;
-webkit-transform: translateY(-150%);
transform: translateY(-150%);
}