Multi-Column Contact Form (responsive grid)
A contact form laid out in two columns on desktop and one column on mobile. Pure CSS Grid, responsive without media queries, no framework or library required.
Long contact forms feel less daunting in two columns. The CSS-only trick is `grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))` — fields automatically reflow to one column on narrow viewports without media queries. Group related fields (first name / last name, city / state) into the same row and full-width fields (message, subject) span both columns with `grid-column: 1 / -1`.
- →Detailed contact form · 6 fields
- →HTML, JS, React, PHP, cURL outputs
- →One POST endpoint, no SDK
- →Honeypot + classifier, no CAPTCHA
See exactly what your visitors see — and you’ll receive.
Left: the rendered form, fully interactive in a sandboxed iframe. Right: the email and dashboard view that lands the moment a visitor submits.
Every submission becomes an email plus a dashboard row. The fields below are the exact payload your form will send. Reply-to is wired to the visitor’s email so hitting reply goes back to them.
Iframe is sandboxed — submit doesn’t actually fire. Get your access key to wire it up live.
Generate, embed, receive.
Three actions stand between you and your first lead. None of them require a backend, a database, or a CAPTCHA library.
Wrap fields in a grid container
Add `display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));` on the form or a wrapping div.
Span full-width fields
Subject, message, and submit button get `grid-column: 1 / -1` so they span both columns regardless of viewport.
Add field groups for related inputs
First/last name share a row. City/state/zip share a row. Use semantic <label> + <input> pairs so the grid layout doesn't break accessibility.
Five outputs. One backend.
HTML by default. Click open the language you ship in — every variant POSTs to the same /api/submit endpoint.
Replace YOUR_ACCESS_KEY with the key from your dashboard. That’s the only edit.
One template. Every framework.
The same field set works on every framework splitforms supports. HTML, React, Next.js, Vue, Astro, Hugo, WordPress — same POST, same backend.
Things people ask before they ship.
Direct answers, no marketing fluff. Missing one? Email hello@splitforms.com.
Ship your multi-column contact form (responsive grid) in 60 seconds.
1,000 free submissions per month. No credit card. Copy the snippet, paste your access key, watch leads land in your inbox.