All templates
Multi-column contact form
A wider layout for pages that have room for one: first and last name side by side, a subject select that routes the enquiry, and a full-width message. The grid collapses to a single column below 640px with one media query, no framework, no breakpoint utilities.
HTML · CSS
Replace YOUR_ACCESS_KEY with the access key from your dashboard. Create one free. The endpoint and the honeypot are already in place.
Useful for
- Contact formsThe classic name / email / message, delivered to your inbox.
- Lead captureRoute new leads to your inbox, Slack, or CRM.
- Event registrationRSVPs and sign-ups collected straight to your inbox.
- Demo requestsQualify and route demo requests to sales.
The part behind every one of these is a form backend. This template posts to a PortForm form endpoint; the docs cover the fields and responses.
Other templates
- Basic HTML contact formHTML · CSS
- Ajax contact formHTML · CSS · JavaScript
- JavaScript form validationHTML · CSS · JavaScript
- Masked phone inputHTML · CSS · JavaScript
- Contact form with dark modeHTML · CSS
- Raw contact form (no CSS)HTML
- Multi-step NPS surveyHTML · CSS · JavaScript
- Multi-step survey formVue · HTML · CSS
- Contact form popupTailwindCSS · Alpine.js · HTML
- Popover feedback widgetTailwindCSS · Alpine.js · HTML
- File upload formHTML · CSS
- JavaScript file upload formHTML · CSS · JavaScript
- React contact formReact · HTML · CSS