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

Afrekenen in drie inklapbare stappen New

Compact one-column checkout: delivery address, shipping and payment as steps that collapse into a summary line with an Edit button once filled in. The postcode is checked and formatted, the shipping choice changes the total that updates live at the bottom, and payment works with iDEAL (bank choice) or credit card. Later steps only open once the previous one is valid. For shops that want checkout in a narrow column or side panel.

  1. Bezorgadres

  2. Verzending

  3. Betalen

Wandelschoenen, maat 42: € 129,95
Verzending € 4,95
Totaal € 134,90

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.
<!-- Afrekenen in drie inklapbare stappen · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="afs"><div class="afs__in">
<ol class="afs__steps">
<li class="afs__st is-open" data-s="adres">
<div class="afs__hd"><h4 class="afs__h" tabindex="-1">Bezorgadres</h4><p class="afs__sum"></p><button class="afs__edit" type="button" hidden>Wijzig</button></div>
<div class="afs__bd">
<div class="afs__fld"><label class="afs__l" for="afs-n">Naam</label><input class="afs__i afs__n" id="afs-n" autocomplete="name" value="Sanne de Wit"></div>
<div class="afs__two"><div class="afs__fld"><label class="afs__l" for="afs-pc">Postcode</label><input class="afs__i afs__pc" id="afs-pc" autocomplete="postal-code" placeholder="1234 AB" aria-describedby="afs-pce"></div>
<div class="afs__fld"><label class="afs__l" for="afs-hn">Huisnummer</label><input class="afs__i afs__hn" id="afs-hn" inputmode="numeric" autocomplete="address-line2" aria-describedby="afs-pce"></div></div>
<p class="afs__err" id="afs-pce"></p>
<button class="afs__next" type="button">Verder naar verzending</button>
</div></li>
<li class="afs__st" data-s="verz">
<div class="afs__hd"><h4 class="afs__h" tabindex="-1">Verzending</h4><p class="afs__sum"></p><button class="afs__edit" type="button" hidden>Wijzig</button></div>
<div class="afs__bd" hidden>
<fieldset class="afs__fs"><legend class="afs__vh">Kies een verzendwijze</legend>
<label class="afs__opt"><input type="radio" name="afs-v" value="4.95" data-t="Morgen bezorgd door PostNL" checked><span class="afs__ot">Morgen bezorgd, PostNL</span><span class="afs__op">&euro; 4,95</span></label>
<label class="afs__opt"><input type="radio" name="afs-v" value="6.95" data-t="Avondlevering 18:00 tot 22:00"><span class="afs__ot">Avond, 18:00 tot 22:00</span><span class="afs__op">&euro; 6,95</span></label>
<label class="afs__opt"><input type="radio" name="afs-v" value="0" data-t="Ophalen Oudegracht 112, Utrecht"><span class="afs__ot">Ophalen in de winkel, Utrecht</span><span class="afs__op">Gratis</span></label>
</fieldset>
<button class="afs__next" type="button">Verder naar betalen</button>
</div></li>
<li class="afs__st" data-s="bet">
<div class="afs__hd"><h4 class="afs__h" tabindex="-1">Betalen</h4><p class="afs__sum"></p></div>
<div class="afs__bd" hidden>
<fieldset class="afs__fs"><legend class="afs__vh">Kies een betaalmethode</legend>
<label class="afs__opt"><input type="radio" name="afs-b" value="ideal" checked><span class="afs__ot">iDEAL</span></label>
<div class="afs__sub afs__sub--ideal"><label class="afs__l" for="afs-bank">Je bank</label><select class="afs__i afs__bank" id="afs-bank" aria-describedby="afs-be"><option value="">Kies je bank</option><option>ABN AMRO</option><option>ASN Bank</option><option>bunq</option><option>ING</option><option>Rabobank</option><option>SNS</option><option>Triodos Bank</option></select></div>
<label class="afs__opt"><input type="radio" name="afs-b" value="kaart"><span class="afs__ot">Creditcard</span></label>
<div class="afs__sub afs__sub--kaart" hidden><label class="afs__l" for="afs-cc">Kaartnummer</label><input class="afs__i afs__cc" id="afs-cc" inputmode="numeric" autocomplete="cc-number" placeholder="1234 5678 9012 3456" aria-describedby="afs-be"></div>
</fieldset>
<p class="afs__err" id="afs-be"></p>
<button class="afs__next afs__pay" type="button">Betalen</button>
</div></li>
</ol>
<div class="afs__tot"><span>Wandelschoenen, maat 42: &euro;&nbsp;129,95<br><span class="afs__vz">Verzending &euro; 4,95</span></span><strong class="afs__sumtot" aria-live="polite">Totaal &euro; 134,90</strong></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 →