text, password, email, url, tel, number, range, date, datetime-local, time, color, checkbox, radio, file, search, hidden, submit, reset, button.
id: connects <label> and used in CSS/JS.
name: key used to send data to server during form submit.
required: must be filled.
disabled: cannot edit; not submitted.
readonly: cannot edit; submitted.
placeholder: grey hint text.
value: actual field value.
Allows browser to suggest saved user values (username, email, etc.).
<input type="email" autocomplete="email">
<button> can contain HTML (icons, text) & supports types: submit/reset/button.
<input type="submit"> only a submit button.
<button type="submit">Submit ✅</button>
<input type="submit" value="Submit">
<select> dropdown list.
<datalist> suggestions for text input (user can enter new values).
<input list="languages">
<datalist id="languages">
<option value="HTML">
<option value="CSS">
</datalist>
novalidate disables form validation entirely.
required enforces validation on specific input.
<form novalidate> ... </form>
<fieldset> groups form controls.
<legend> title for that group.
<fieldset>
<legend>User Info</legend>
<input type="text" placeholder="Name">
</fieldset>
⬅ Home