JSFiddle - React, Tailwind, and code Playground
HTML
<form action="" method="post">
<fieldset>
<legend>Booking Details</legend>
<div>
<label for="name">Name (required):</label>
<input type="text" id="name" name="name" value="" aria-describedby="name-format" required>
</div>
<div>
<label for="email">Email (required):</label>
<input type="email" id="email" name="email" value="" required>
</div>
<div>
<label>Website:</label>
<input type="text" id="website" name="website" value="" required>
</div>
<div>
<label for="numTickets"><abbr title="Number">No.</abbr> of Tickets (required):</label>
<input type="text" id="numTickets" name="numTickets" value="" required>
</div>
<div class="submit">
<input type="submit" value="Submit">
</div>
</fieldset>
</form>
CSS
body {
font-family: Helvetica, Arial;
font-size:12px;
}
h1 {
font-size:200%;
}
fieldset {
border:1px solid #ccc;
padding:10px;
}
legend {
padding:0 5px;
text-align:right;
}
fieldset > div {
margin:10px 0;
}
fieldset > legend + div {
margin-top:0;
}
fieldset > div:last-child {
margin-bottom:0;
}
label {
display:inline-block;
width:170px;
}
input {
width:200px;
}
input[type="submit"] {
width:auto;
}
.help {
display:none;
font-size:90%;
}
input:focus + .help {
display:inline-block;
}
div.submit {
margin-left:170px;
}
input:not([type="submit"]):valid:required{
border-color:greenyellow;
}
input:not([type="submit"]):invalid:required{
border-color:grey;
}