JSFiddle - React, Tailwind, and code Playground
by Sergei
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<!-- <meta http-equiv="X-UA-Compatible" content="IE=edge"> -->
<title>Page Title</title>
<!-- <meta name="viewport" content="width=device-width, initial-scale=1"> -->
<link href="main.css" rel="stylesheet">
</head>
<body>
<form action="#" class="form">
<div class="form__field">
<input type="text" name="name" placeholder="Имя*" required />
</div>
<div class="form__field">
<input type="email" name="name" placeholder="E-Mail" />
<span class="form__error">Это поле должно содержать E-Mail в формате [email protected]</span>
</div>
<button type="submit form__error" id="">Отправить</button>
</form>
</body>
</html>
CSS
body {
text-align: center;
padding: 10px;
}
.form {
display: inline-block;
padding: 25px;
border: 1px solid #ccc;
border-radius: 5px;
width: 500px;
background-color: beige;
}
.form__field {
margin-bottom: 10px;
}
.form__error {
color: red;
text-align: left;
font-size: 12px;
display: block;
margin-top: 3px;
display: none;
}
.form input {
outline: none;
display: block;
width: 100%;
border-radius: 2px;
border: 1px solid #ccc;
padding: 10px;
box-sizing: border-box;
}
.form button {
width: 100%;
padding: 10px;
border-radius: 2px;
border: 0;
background-color: #ccc;
color: #fff;
}
input:valid:not(:placeholder-shown) {
border-color: green;
}
button:valid:not(:placeholder-shown) {
border-color: green;
}
input:invalid:not(:placeholder-shown) {
border-color: red;
}
input:invalid:not(:placeholder-shown) + .form__error {
display: block;
}