RSVP · 2 designs
A drop-in registration form for technology conferences, summits and developer meetups, authored entirely in German (de-DE). Captures the data every event organiser actually puts on the badge: Vorname, Nachname, E-Mail, Firma, Position, Ticket-Art and Interessen-Tracks. The Swiss design follows the Müller-Brockmann grid tradition: massive numbered sections, tight tracking and a vertical red bar as the only decoration. The Terminal design dresses the same fields up in dev-console flavour for FOSDEM-style audiences. Both ship with a hidden honeypot so SaveForm filters bots without a CAPTCHA.
HTML · 1 file
<!-- SaveForm.io: conference-registration (swiss) -->
<style>
[data-sf-tpl="conference-registration"] {
all: revert;
box-sizing: border-box;
display: block;
width: 100%;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
font-size: 16px;
line-height: 1.5;
color: #18181b;
-webkit-font-smoothing: antialiased;
}
[data-sf-tpl="conference-registration"] *,
[data-sf-tpl="conference-registration"] *::before,
[data-sf-tpl="conference-registration"] *::after {
box-sizing: border-box;
}
[data-sf-tpl="conference-registration"] input,
[data-sf-tpl="conference-registration"] textarea,
[data-sf-tpl="conference-registration"] select,
[data-sf-tpl="conference-registration"] button {
font: inherit;
color: inherit;
margin: 0;
}
[data-sf-tpl="conference-registration"] button {
cursor: pointer;
-webkit-appearance: none;
appearance: none;
}
[data-sf-tpl="conference-registration"] label {
display: block;
}
[data-sf-tpl="conference-registration"].sf-conference-registration--swiss {
max-width: 580px;
background: #ffffff;
padding: 40px 36px 36px 56px;
border: 1px solid #000000;
position: relative;
font-family: "Helvetica Neue", "Inter", "Arial", sans-serif;
color: #000000;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__bar {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 12px;
background: #ee2222;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__topline {
display: flex;
justify-content: space-between;
align-items: baseline;
border-bottom: 1px solid #000000;
padding-bottom: 6px;
margin-bottom: 22px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__topline-id {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__topline-meta {
font-size: 11px;
font-weight: 400;
letter-spacing: 0.1em;
text-transform: uppercase;
color: #555555;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__title {
font-size: 56px;
font-weight: 800;
letter-spacing: -0.04em;
line-height: 0.92;
margin: 0 0 14px 0;
color: #000000;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__title-accent {
color: #ee2222;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__lede {
font-size: 14px;
color: #333333;
line-height: 1.5;
margin: 0 0 28px 0;
max-width: 440px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__section {
margin-bottom: 28px;
padding-top: 16px;
border-top: 2px solid #000000;
display: grid;
grid-template-columns: 56px 1fr;
gap: 18px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__section-num {
font-size: 38px;
font-weight: 800;
line-height: 0.9;
letter-spacing: -0.04em;
color: #ee2222;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__section-body {
min-width: 0;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__section-head {
font-size: 11px;
font-weight: 700;
letter-spacing: 0.16em;
text-transform: uppercase;
margin: 0 0 14px 0;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 12px;
margin-bottom: 12px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__field {
margin-bottom: 12px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__label {
display: block;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.14em;
text-transform: uppercase;
margin-bottom: 4px;
color: #000000;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__input {
width: 100%;
padding: 10px 12px;
border: 2px solid #000000;
background: #ffffff;
font-family: inherit;
font-size: 14px;
font-weight: 500;
color: #000000;
outline: none;
transition: background 100ms ease, border-color 100ms ease;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__input:focus {
background: #fff5f5;
border-color: #ee2222;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__tickets {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 8px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__tickets input {
position: absolute;
opacity: 0;
pointer-events: none;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__tickets label {
display: flex;
flex-direction: column;
padding: 14px 12px;
border: 2px solid #000000;
background: #ffffff;
cursor: pointer;
transition: background 100ms ease;
min-width: 0;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__tickets label:hover {
background: #f4f4f4;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__tickets input:checked + label {
background: #ee2222;
color: #ffffff;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__ticket-name {
font-size: 12px;
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
margin-bottom: 4px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__ticket-price {
font-size: 20px;
font-weight: 800;
letter-spacing: -0.02em;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__ticket-note {
font-size: 10px;
font-weight: 500;
letter-spacing: 0.06em;
text-transform: uppercase;
margin-top: 2px;
opacity: 0.7;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__tracks {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 6px 14px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__check {
display: flex;
align-items: center;
gap: 10px;
font-size: 12px;
font-weight: 500;
cursor: pointer;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__check input {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
border: 2px solid #000000;
background: #ffffff;
cursor: pointer;
position: relative;
flex-shrink: 0;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__check input:checked {
background: #ee2222;
border-color: #ee2222;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__check input:checked::after {
content: "";
position: absolute;
left: 3px;
top: 0px;
width: 5px;
height: 9px;
border-right: 2px solid #ffffff;
border-bottom: 2px solid #ffffff;
transform: rotate(45deg);
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__button {
width: 100%;
margin-top: 18px;
padding: 18px 18px;
background: #ee2222;
color: #ffffff;
font-family: inherit;
font-weight: 800;
font-size: 14px;
letter-spacing: 0.06em;
text-transform: uppercase;
border: 2px solid #ee2222;
cursor: pointer;
transition: background 100ms ease, color 100ms ease, border-color 100ms ease;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__button:hover {
background: #000000;
border-color: #000000;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__honey {
position: absolute;
left: -9999px;
}
/* --- Builder-compat: see comment in terminalCss. Same Müller-Brockmann
aesthetic adapted to the generic builder selectors. */
[data-sf-tpl="conference-registration"] .sf-conference-registration__radio-group {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 8px;
position: relative;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__radio {
position: absolute;
opacity: 0;
pointer-events: none;
width: 0;
height: 0;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__radio-label {
display: flex;
flex-direction: column;
padding: 14px 12px;
border: 2px solid #000000;
background: #ffffff;
cursor: pointer;
transition: background 100ms ease, color 100ms ease;
min-width: 0;
font-family: inherit;
color: #000000;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__radio-label:hover { background: #f4f4f4; }
[data-sf-tpl="conference-registration"] .sf-conference-registration__radio:checked + .sf-conference-registration__radio-label {
background: #ee2222;
color: #ffffff;
border-color: #ee2222;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__radio-text {
font-size: 12px;
font-weight: 800;
letter-spacing: 0.06em;
text-transform: uppercase;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__checkbox-group {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: 6px 14px;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__checkbox-group .sf-conference-registration__checkbox-row {
display: flex;
align-items: center;
gap: 10px;
padding: 4px 0;
font-size: 12px;
font-weight: 500;
cursor: pointer;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__checkbox-group .sf-conference-registration__checkbox {
appearance: none;
-webkit-appearance: none;
width: 16px;
height: 16px;
border: 2px solid #000000;
background: #ffffff;
cursor: pointer;
position: relative;
flex-shrink: 0;
margin: 0;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__checkbox-group .sf-conference-registration__checkbox:checked {
background: #ee2222;
border-color: #ee2222;
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__checkbox-group .sf-conference-registration__checkbox:checked::after {
content: "";
position: absolute;
left: 3px;
top: 0px;
width: 5px;
height: 9px;
border-right: 2px solid #ffffff;
border-bottom: 2px solid #ffffff;
transform: rotate(45deg);
}
[data-sf-tpl="conference-registration"] .sf-conference-registration__checkbox-text {
font-family: inherit;
font-size: 12px;
font-weight: 500;
color: #000000;
}
</style>
<form
class="sf-conference-registration--swiss"
data-sf-tpl="conference-registration"
action="https://saveform.io/api/submit/YOUR_FORM_ID"
method="POST"
>
<span class="sf-conference-registration__bar" aria-hidden="true"></span>
<div class="sf-conference-registration__topline">
<span class="sf-conference-registration__topline-id">Konferenz / 2026</span>
<span class="sf-conference-registration__topline-meta">Berlin · 18 – 20 · IX</span>
</div>
<h2 class="sf-conference-registration__title">
Build<span class="sf-conference-registration__title-accent">.</span><br />
Berlin<span class="sf-conference-registration__title-accent">.</span>
</h2>
<p class="sf-conference-registration__lede">
Drei Tage, sechs Bühnen, dreißig Workshops. Anmeldung in unter
sechzig Sekunden — Bezahlung erfolgt im nächsten Schritt.
</p>
<input type="text" name="_honey" class="sf-conference-registration__honey" tabindex="-1" autocomplete="off" />
<div class="sf-conference-registration__section">
<div class="sf-conference-registration__section-num">01</div>
<div class="sf-conference-registration__section-body">
<p class="sf-conference-registration__section-head">Persönliche Daten</p>
<div class="sf-conference-registration__grid">
<div>
<label class="sf-conference-registration__label" for="sf-conference-registration-vor">Vorname</label>
<input id="sf-conference-registration-vor" class="sf-conference-registration__input" type="text" name="vorname" required />
</div>
<div>
<label class="sf-conference-registration__label" for="sf-conference-registration-nach">Nachname</label>
<input id="sf-conference-registration-nach" class="sf-conference-registration__input" type="text" name="nachname" required />
</div>
</div>
<div class="sf-conference-registration__field">
<label class="sf-conference-registration__label" for="sf-conference-registration-email">E-Mail</label>
<input id="sf-conference-registration-email" class="sf-conference-registration__input" type="email" name="email" required />
</div>
<div class="sf-conference-registration__grid">
<div>
<label class="sf-conference-registration__label" for="sf-conference-registration-firma">Firma</label>
<input id="sf-conference-registration-firma" class="sf-conference-registration__input" type="text" name="firma" />
</div>
<div>
<label class="sf-conference-registration__label" for="sf-conference-registration-rolle">Position</label>
<input id="sf-conference-registration-rolle" class="sf-conference-registration__input" type="text" name="position" />
</div>
</div>
</div>
</div>
<div class="sf-conference-registration__section">
<div class="sf-conference-registration__section-num">02</div>
<div class="sf-conference-registration__section-body">
<p class="sf-conference-registration__section-head">Ticket-Art</p>
<div class="sf-conference-registration__tickets">
<input type="radio" id="sf-conference-registration-tk1" name="ticket" value="standard" required />
<label for="sf-conference-registration-tk1">
<span class="sf-conference-registration__ticket-name">Standard</span>
<span class="sf-conference-registration__ticket-price">€ 390</span>
<span class="sf-conference-registration__ticket-note">3 Tage · Talks</span>
</label>
<input type="radio" id="sf-conference-registration-tk2" name="ticket" value="workshop" checked />
<label for="sf-conference-registration-tk2">
<span class="sf-conference-registration__ticket-name">Workshop</span>
<span class="sf-conference-registration__ticket-price">€ 690</span>
<span class="sf-conference-registration__ticket-note">+ Tag · Hands-on</span>
</label>
<input type="radio" id="sf-conference-registration-tk3" name="ticket" value="hackathon" />
<label for="sf-conference-registration-tk3">
<span class="sf-conference-registration__ticket-name">Hackathon</span>
<span class="sf-conference-registration__ticket-price">€ 890</span>
<span class="sf-conference-registration__ticket-note">5 Tage · All-In</span>
</label>
</div>
</div>
</div>
<div class="sf-conference-registration__section">
<div class="sf-conference-registration__section-num">03</div>
<div class="sf-conference-registration__section-body">
<p class="sf-conference-registration__section-head">Interessen-Tracks</p>
<div class="sf-conference-registration__tracks">
<label class="sf-conference-registration__check">
<input type="checkbox" name="tracks" value="frontend" />
Frontend & UX
</label>
<label class="sf-conference-registration__check">
<input type="checkbox" name="tracks" value="platform" />
Platform & DevOps
</label>
<label class="sf-conference-registration__check">
<input type="checkbox" name="tracks" value="ai" />
KI & Machine Learning
</label>
<label class="sf-conference-registration__check">
<input type="checkbox" name="tracks" value="security" />
Sicherheit & Privacy
</label>
<label class="sf-conference-registration__check">
<input type="checkbox" name="tracks" value="design" />
Design Systems
</label>
<label class="sf-conference-registration__check">
<input type="checkbox" name="tracks" value="careers" />
Karriere & Hiring
</label>
</div>
</div>
</div>
<button class="sf-conference-registration__button" type="submit">Jetzt anmelden →</button>
</form>
Replace YOUR_FORM_ID with the id of a form in your SaveForm dashboard. Every class is namespaced under [data-sf-tpl="conference-registration"] so the template cannot collide with (or be overridden by) your site styles.