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");
  }
});