:not(:placeholder-shown):valid/:invalid
можно вешать стили для отображения состояния полей.btn {
position: relative;
}
.btn:before {
content: '';
position: absolute;
left: -25px;
bottom: -30px;
width: 30px;
height: 30px;
background: blue;
transition: .8s ease;
border-radius: 25px;
z-index: -1;
}
.btn:hover:before {
}