floating input label

css only floating input label

by John Doe

HTML

<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">

<form>
    
    <div class="float-input-wrap">      
      <input type="text" required value="rew">
      <label>Name</label>
    </div>
      
    <div class="float-input-wrap">      
      <input type="text" required>
      <label>Email</label>
    </div>
    
  </form>

CSS

* { box-sizing:border-box; }
body{
  font-family: 'Roboto';
  padding-top: 50px;
}
form{
  display: block;
  margin: 0 auto;
  width: 300px;
}

/* styleing */
.float-input-wrap { 
  position:relative; 
  margin-bottom:15px; 
}
.float-input-wrap input {
  font-size:18px;
  padding:10px 10px 10px 5px;
  display:block;
  width:300px;
  border:1px solid #757575;
  border-radius: 3px;
}
.float-input-wrap input:focus 		{ outline:none; }

/* LABEL ======================================= */
.float-input-wrap label 				 {
  color:#999; 
  font-size:18px;
  font-weight:normal;
  position:absolute;
  pointer-events:none;
  left:5px;
  top:10px;
  transition:0.2s ease all; 
  -moz-transition:0.2s ease all; 
  -webkit-transition:0.2s ease all;
}

/* active state */
.float-input-wrap input:focus ~ label, .float-input-wrap input:valid ~ label {
  top:-8px;
  font-size: 13px;
  color:#5264AE;
  background-color: #fff;
  padding: 0 5px;
}