Choosing the right input type gives free validation AND the right mobile keyboard — huge UX win for zero code.
The ones that matter
<input type="email"> <!-- validates + @ keyboard on mobile --> <input type="tel"> <!-- number pad on mobile --> <input type="number" min="0" max="10" step="0.5"> <input type="date"> <input type="time"> <input type="month"> <input type="range" min="0" max="100"> <!-- slider --> <input type="color"> <!-- color picker --> <input type="file" accept="image/*" capture="environment" multiple> <input type="search"> <!-- adds clear ✕ button --> <input type="password"> <input type="url"> <input type="hidden"> <input type="checkbox"> <input type="radio">
The underrated one: datalist
<input list="langs" placeholder="Favourite language"> <datalist id="langs"> <option value="JavaScript"><option value="Python"><option value="Java"> </datalist> <!-- native autocomplete dropdown, zero JS -->
capture="environment"on file inputs opens the camera directly on phonesinputmode="numeric"forces number pads on text inputs (OTP fields)
Full reference: Forms lesson.
← All Articles