JSFiddle - React, Tailwind, and code Playground
by cokar
HTML
<div class="form_wrap">
<form action="">
<fieldset>
<legend>Log in</legend>
<div class="form_cont">
<label for="input01">User name</label>
<input id="input01" class="user_name" type="text">
</div>
<div class="form_cont">
<label for="input02">User password</label>
<input id="input02" class="user_pw" type="password">
</div>
</fieldset>
</form>
</div>
SCSS
.form_wrap {
width: 500px;
margin-left: 20px;
}
fieldset {
border: 0;
padding: 0;
legend {
padding: 20px 0 10px;
font-weight: bold;
}
.form_cont {
position: relative;
border: 1px solid #dedede;
border-radius: 15px;
& ~ .form_cont {
margin-top: 10px;
}
label {
position: absolute;
top: 17px;
left: 20px;
transition: all .5s;
font-size: 16px;
color: gray;
}
input {
width: 100%;
padding: 25px 20px 15px;
border: 0;
background-color: transparent;
&:focus {
outline: 0;
}
}
&.on {
border: 1px solid #6fc2e1;
label {
top: 4px;
font-size: 12px;
}
}
}
}
JavaScript
var $user_name = document.querySelectorAll('input')
function onFocus(e) {
e.target.parentElement.classList.add("on");
console.log(e.target.value);
}
function onBlur(e) {
if (e.target.value == "") {
e.target.parentElement.classList.remove("on");
}
}
for (i = 0; i < $user_name.length; i++) {
$user_name[i].addEventListener('focus', onFocus);
$user_name[i].addEventListener('blur', onBlur);
}