Input Styling
Input field styling using pseudo-class selectors for interactive states.
Field Structure
Fieldset wrapper with label-input pairing for semantic form structure.
<fieldset>
<label for="none">Name</label>
<input type="text" id="none" placeholder="placeholder" required/>
</fieldset>
Parent Focus State
Apply styles to parent elements when child input receives focus using :focus-within.
fieldset:focus-within label {
font-weight: bold;
}
Placeholder State
Style input differently when placeholder text is visible using :placeholder-shown.
input:placeholder-shown {
background-color: transparent;
}
User Validation
Real-time validation feedback with :user-invalid for user-modified invalid fields.
input:user-invalid {
border: 1px solid red;
}
Focus Visibility
Enhanced focus styles using :focus-visible for keyboard navigation.
input:focus-visible {
background-color: rgba(255, 255, 255, .5);
border: 2px solid cornflowerblue;
} <fieldset>
<label for="none">Name</label>
<input type="text" id="none" placeholder="placeholder" required/>
</fieldset>
<style>
fieldset {
border: none;
display: grid;
gap: .4rem;
padding: 1rem;
border-radius: 1rem;
}
fieldset:focus-within label {
font-weight: bold;
}
input {
appearance: none;
outline: none;
padding: 0.5rem;
border: 1px solid gainsboro;
font-size: 1rem;
border-radius: 0.5rem;
}
input:placeholder-shown {
background-color: transparent;
}
input:user-invalid {
border: 1px solid red;
}
input:focus-visible {
background-color: rgba(255, 255, 255, .5);
border: 2px solid cornflowerblue;
}
</style>