input with floating label
by gbos
HTML
<input required />
<label><span>Name</span></label>
CSS
input {
display: block;
border: 0;
outline: none;
box-shadow: none;
margin-top: 20px;
opacity: 0;
transition: opacity 0.3s;
}
label {
position: relative;
max-height: 0px;
display: block;
border-top: 1px solid grey;
}
label>span {
position: absolute;
top: -20px;
z-index: -1;
transition: top 0.3s, font-size 0.3s;
}
input:focus,
input:valid {
opacity: 1;
outline: none;
}
input:valid+label>span,
input:focus+label>span {
position: absolute;
top: -30px;
font-size: 70%;
color: blue;
}