33 Free HTML Form Templates 2026
ProofMatcher has 33 free HTML form templates — login, signup, contact, payment, and multi-step. HTML, CSS & React included.
Login Form
<form class="form">
<h2>Sign In</h2>
<label>Email<input type="email" placeholder="you@email.com"></label>
<label>Password<input type="password" placeholder="••••••••"></label>
<button type="submit">Sign In</button>
</form>
.form { background:#111; border:1px solid rgba(255,255,255,.08); border-radius:16px; padding:32px; max-width:400px; }
.form label { display:flex; flex-direction:column; gap:6px; font-size:13px; color:rgba(255,255,255,.5); margin-bottom:14px; }
.form input { background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); border-radius:8px; padding:11px 14px; color:#fff; font-size:14px; }
.form button { width:100%; background:#e53e3e; color:#fff; border:none; border-radius:8px; padding:12px; font-weight:600; cursor:pointer; }
Contact Form
<form class="form">
<input type="text" placeholder="Your Name">
<input type="email" placeholder="Email">
<textarea placeholder="Message" rows="5"></textarea>
<button type="submit">Send Message</button>
</form>
React Login Form
const LoginForm = () => {
const [email, setEmail] = React.useState('');
const [pass, setPass] = React.useState('');
return (
<form onSubmit={e => e.preventDefault()}>
<input value={email} onChange={e => setEmail(e.target.value)} type="email" placeholder="Email"/>
<input value={pass} onChange={e => setPass(e.target.value)} type="password" placeholder="Password"/>
<button type="submit">Sign In</button>
</form>
);
};
Accessibility Tips
- Always use
<label for>linked to inputid - Add
requiredandaria-required="true"to required fields - Show clear validation error messages below each field
All 33 Form Templates Free
➡ proofmatcher.com/components/category/forms
Related: Input Components · Buttons · 197 Full Templates
Top comments (0)