Reference

HTML input types.

Every value the input type attribute accepts, and what each one gives you.

Tap any row to copy the value in the first column.

Text & data entry

TypeRenders asUse for
textSingle-line boxDefault free text
emailEmail fieldEmail with built-in validation
passwordMasked textPasswords (hidden characters)
numberNumeric spinnerNumbers with min, max, step
telPhone fieldPhone numbers (mobile keypad)
urlURL fieldWeb addresses with validation
searchSearch boxSearch queries (clear button)

Dates, time & pickers

TypeRenders asUse for
dateDate pickerA calendar date
timeTime pickerA time of day
datetime-localDate and timeLocal date plus time
monthMonth pickerA year and month
weekWeek pickerA year and week number
colorColour pickerA hex colour
rangeSliderA value within a range

Choices, files & buttons

TypeRenders asUse for
checkboxCheckboxOn/off or multi-select
radioRadio buttonPick one from a group
fileFile chooserUpload one or more files
hiddenNothing visibleSubmit data without showing it
submitSubmit buttonSend the form
resetReset buttonClear the form to defaults
buttonPlain buttonCustom actions via JavaScript

Why the type matters

The type attribute on an <input> does more than pick how the field looks — it changes the keyboard shown on phones, the built-in validation, and the controls the browser provides for free. Setting type="email" gives you address validation and an email-optimised mobile keyboard; type="number" adds steppers and rejects non-numbers; type="date" renders a native calendar; and type="tel" brings up the phone keypad without imposing a format. Using the right type is the easiest accessibility and mobile-UX win in a form, because the browser does the work you'd otherwise script. A couple of notes: native date and color pickers vary in appearance between browsers, and any input can be paired with attributes like required, min, max, step and pattern to tighten validation further.

FAQ

What input type should I use for a phone number?
type="tel". It brings up the numeric/phone keypad on mobile but doesn't enforce a specific format, since phone numbers vary worldwide — add a pattern attribute if you need a specific shape.
Do HTML input types validate automatically?
Some do. type="email" and type="url" check the format, number rejects non-numeric input, and required makes a field mandatory. The browser shows the messages, though you can style and script around them.

More references