JSFiddle - React, Tailwind, and code Playground
by Dennis Betman
HTML
<form method="POST">
<div class="input">
<span>Naam</span>
<input type="text" name="name" />
</div>
<div class="input">
<span>Email adres</span>
<input type="email" name="email" />
</div>
<div class="input">
<span>Another input field with a very long name</span>
<input type="text" name="something" />
</div>
<div class="input">
<span>Your message</span>
<textarea></textarea>
</div>
</form>
CSS
* {
box-sizing: border-box;
margin: 0;
padding: 0;
font-family: arial;
}
body {
background: #F9F9F9;
}
form {
margin: 30px;
}
form .input {
float: left;
width: 100%;
position: relative;
margin-bottom: 25px;
}
form input,
form textarea {
width: 100%;
float: left;
background: #F9F9F9;
border: 0;
border-bottom: 1px solid #E2E2E2;
padding: 10px 0px;
}
form textarea {
height: 100px;
}
form input:focus,
form textarea:focus {
outline: none;
}
form .input span {
position: absolute;
top:0;
left:0;
top: 9px;
font-size: 14px;
color: #ABABAB;
pointer-events: none;
transition: all 0.1s ease;
}
form .input span.move {
top: -12px;
font-size: 12px;
}
JavaScript
$(document).on("focus", 'input, textarea', function() {
$(this).prev().addClass("move");
});
$(document).on("blur", 'input, textarea', function() {
if ($(this).val() == "") {
$(this).prev().removeClass("move");
}
});