Home Work
SaaS developmentAI developmentAPI developmentMobile app developmentGoogle Ads managementHeadless ShopifyLaravel developmentNext.js developmentReact developmentTypeScript engineeringUI/UX designSEO & AEOEcommerce development
AI solutionsB2B platformsE-commerceHospitalityLead generationLogisticsEducationProcess automationSaaS platformsStartup MVPReal estateHealthcare
LegalHealthcareReal estateFinanceHospitality
The HagueRotterdamAmsterdamUtrechtEindhovenAlmereBredaArnhemNijmegenTilburgEnschedeGroningenLeidenDelftZoetermeerDen Bosch
Studio
AboutProcessLabBlogContact

Meerstaps intake met concept New

Four-step intake with a sidebar showing done, active and upcoming steps, a progress bar, character counter, back without data loss, a review step with Edit buttons and "Save for later" in localStorage (try/catch with a clear message when storage is blocked). Container queries turn the sidebar into a step row on narrow screens.

Stap 1 van 4

Waar heb je last van?

0/250 tekens

How to use it

  1. Paste the HTML where the forms & inputs should appear.
  2. Add the CSS to your stylesheet. All classes are prefixed, so nothing clashes with your own styles.
  3. Add the JavaScript and call init() with the element that contains the HTML.
<!-- Meerstaps intake met concept · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="msi"><div class="msi__in">
<div class="msi__restore" role="status" hidden><span class="msi__restore-t"></span><button type="button" class="msi__wis">Wis concept</button></div>
<div class="msi__card">
<aside class="msi__side">
<p class="msi__brand">Fysio Lindenhof · Utrecht</p>
<ol class="msi__steps">
<li><button type="button" class="msi__st" data-go="0"><span class="msi__st-n">1</span><span class="msi__st-t">Klacht</span></button></li>
<li><button type="button" class="msi__st" data-go="1"><span class="msi__st-n">2</span><span class="msi__st-t">Gegevens</span></button></li>
<li><button type="button" class="msi__st" data-go="2"><span class="msi__st-n">3</span><span class="msi__st-t">Verzekering</span></button></li>
<li><button type="button" class="msi__st" data-go="3"><span class="msi__st-n">4</span><span class="msi__st-t">Controle</span></button></li>
</ol>
<div class="msi__bar" role="progressbar" aria-label="Voortgang intake" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"><i></i></div>
<p class="msi__tip">Geen verwijzing nodig. De intake duurt ongeveer 3 minuten.</p>
</aside>
<form class="msi__form" novalidate>
<p class="msi__count">Stap <b>1</b> van 4</p>
<fieldset class="msi__pane" data-p="0" tabindex="-1"><legend class="msi__h">Waar heb je last van?</legend>
<div class="msi__chips"><label class="msi__chip"><input type="radio" name="plek" value="Rug"><span>Rug</span></label><label class="msi__chip"><input type="radio" name="plek" value="Nek of schouder"><span>Nek of schouder</span></label><label class="msi__chip"><input type="radio" name="plek" value="Knie"><span>Knie</span></label><label class="msi__chip"><input type="radio" name="plek" value="Anders"><span>Anders</span></label></div>
<p class="msi__e" data-e="plek"></p>
<label class="msi__l" for="msi-klacht">Omschrijf je klacht <small>(minimaal 10 tekens)</small></label>
<textarea class="msi__i" id="msi-klacht" name="klacht" rows="2" maxlength="250" aria-describedby="msi-klacht-e msi-klacht-c"></textarea>
<div class="msi__row"><p class="msi__e" id="msi-klacht-e" data-e="klacht"></p><span class="msi__cnt" id="msi-klacht-c">0/250 tekens</span></div>
</fieldset>
<fieldset class="msi__pane" data-p="1" tabindex="-1" hidden><legend class="msi__h">Je gegevens</legend>
<label class="msi__l" for="msi-naam">Naam</label><input class="msi__i" id="msi-naam" name="naam" autocomplete="name" aria-describedby="msi-naam-e"><p class="msi__e" id="msi-naam-e" data-e="naam"></p>
<div class="msi__two"><div><label class="msi__l" for="msi-geb">Geboortedatum</label><input class="msi__i" id="msi-geb" name="geb" type="date" autocomplete="bday" aria-describedby="msi-geb-e"><p class="msi__e" id="msi-geb-e" data-e="geb"></p></div>
<div><label class="msi__l" for="msi-email">E-mailadres</label><input class="msi__i" id="msi-email" name="email" type="email" autocomplete="email" aria-describedby="msi-email-e"><p class="msi__e" id="msi-email-e" data-e="email"></p></div></div>
</fieldset>
<fieldset class="msi__pane" data-p="2" tabindex="-1" hidden><legend class="msi__h">Hoe ben je verzekerd?</legend>
<label class="msi__l" for="msi-zv">Zorgverzekeraar</label>
<select class="msi__i" id="msi-zv" name="zv" aria-describedby="msi-zv-e"><option value="">Kies je verzekeraar</option><option>Zilveren Kruis</option><option>CZ</option><option>VGZ</option><option>Menzis</option><option>DSW</option><option>ONVZ</option><option>Anders</option></select>
<p class="msi__e" id="msi-zv-e" data-e="zv"></p>
<p class="msi__l" id="msi-aanv-l">Aanvullend verzekerd voor fysiotherapie?</p>
<div class="msi__chips" role="radiogroup" aria-labelledby="msi-aanv-l"><label class="msi__chip"><input type="radio" name="aanv" value="Ja"><span>Ja</span></label><label class="msi__chip"><input type="radio" name="aanv" value="Nee"><span>Nee</span></label><label class="msi__chip"><input type="radio" name="aanv" value="Weet ik niet"><span>Weet ik niet</span></label></div>
<p class="msi__e" data-e="aanv"></p>
</fieldset>
<fieldset class="msi__pane" data-p="3" tabindex="-1" hidden><legend class="msi__h">Klopt alles?</legend><dl class="msi__dl"></dl></fieldset>
<div class="msi__act"><button type="button" class="msi__back">Terug</button><button type="button" class="msi__save">Opslaan voor later</button><button type="submit" class="msi__next"><span class="msi__spin" aria-hidden="true"></span><span class="msi__next-t">Volgende</span></button></div>
<p class="msi__live" aria-live="polite"></p>
</form>
<div class="msi__done" tabindex="-1" hidden><svg viewBox="0 0 40 40" aria-hidden="true"><circle cx="20" cy="20" r="18"/><path d="M12 20.5l5.5 5.5L28 15"/></svg><h3 class="msi__h">Intake ontvangen</h3><p>We bellen je binnen 1 werkdag om een eerste afspraak te plannen.</p><button type="button" class="msi__new">Nieuwe intake</button></div>
</div></div></div>
</div>

More forms & inputs

Seen something you like?

Add it to your selection and send it over. We build your site around it, in your brand.

Get in touch →