Text inputs
For collecting written dataThe default single-line text field. Accepts any character.
Masks the typed characters for sensitive input.
Validates email format. Shows email keyboard on mobile.
Validates URL format. Expects http:// or https://.
Shows numeric keypad on mobile. No format validation by default.
Styled as a search field. May show a clear button in some browsers.
Multi-line text input. Resizable by the user. Not an input type but commonly grouped here.
Number & range
For numeric valuesNumeric input with spinner controls. Supports min, max, and step.
A slider for selecting a value within a range. Great for settings.
Date & time
For temporal valuesDate picker with calendar UI. Returns YYYY-MM-DD format.
Time picker for hours and minutes. Returns HH:MM format.
Combined date and time picker without timezone info.
Select a month and year. Returns YYYY-MM format.
Select a specific week. Returns YYYY-W## format.
Choice inputs
For selecting optionsToggle boolean values. Multiple checkboxes can be checked.
Select one option from a group. Uses the same name attribute to group them.
Dropdown menu for selecting one option from a list.
Native color picker. Returns a hex value like #ff0000.
Actions & other
Buttons, file upload, hidden & moreSubmits the surrounding form. Default button in a form.
Resets all fields in the form to their default values.
A clickable button with no default behavior. Controlled via JavaScript.
File upload picker. Use accept attribute to limit file types.
Not visible to users. Used to pass data like CSRF tokens or IDs with form submissions.
name="userId" value="42"
A graphical submit button. Uses an image instead of text.