HTML Form Generator

Describe your fields, one per line, and get clean, accessible HTML form markup — labeled inputs, validation attributes, selects, radios and checkboxes. Runs entirely in your browser, no server, no sign-up.

HTML

What this tool does

Turn a plain list of fields into clean, accessible HTML form markup — ready to paste into any page. Every field gets a properly bound <label for>, a slugified name/id, and the right validation attributes (required, type="email", type="number", and so on). Nothing is sent to a server — it runs locally in your browser, works offline, and needs no sign-up.

Field syntax

Describe one field per line. Each line has up to three parts separated by |:

Label | type | options

Blank lines and lines starting with # are ignored.

Supported field types

TypeRenders
text (default)a single-line text input
email<input type="email"> (browser email validation)
password<input type="password">
number<input type="number">
tel<input type="tel">
url<input type="url">
date / timea native date / time picker
textareaa multi-line <textarea>
selecta <select> dropdown — give the options
radioa group of radio buttons sharing one name — give the options
checkboxa single checkbox (label after the box)
checkboxesa group of checkboxes using an array name[] — give the options

Options

Example

Input:

Full Name*
Email* | email
Topic | select | Sales, Support, Other
Message | textarea | How can we help?
Subscribe to the newsletter | checkbox

produces a complete <form> with a required name and email, a topic dropdown, a message textarea, and an opt-in checkbox — each with its own label and validation.

FAQ

Is it accessible?

Yes. Every input has a <label for> bound to its id, radio/checkbox groups share a name and have a group label, and required fields carry the required attribute plus a visible * marker.

Is it free and private?

Yes — your input never leaves your device, and it keeps working offline once the page has loaded.

Can I style it myself?

Turn off the <style> block to get plain markup with clean name/id attributes, then apply your own CSS.

Where does the form submit?

Wherever you set the Action URL. With no action, the browser submits back to the current page — wire it to your own endpoint or handler.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool html-form-generator "Full Name*
Email* | email
Message | textarea | How can we help?
Topic | select | Sales, Support, Other"

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/html-form-generator/?fields=Full%20Name%2A%0AEmail%2A%20%7C%20email%0AMessage%20%7C%20textarea%20%7C%20How%20can%20we%20help%3F%0ATopic%20%7C%20select%20%7C%20Sales%2C%20Support%2C%20Other&method=post&action=%2Fsubmit&submit_label=Submit&styled=true

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.