Spoedblok: bellen of foto's appen New
Emergency block for a plumber, electrician or glazier: two equal buttons Call and WhatsApp ("send photos"), live 24/7 status, response time and call-out fee that change with the type of failure and day or night. The WhatsApp link pre-fills the message via wa.me?text=. Real radio buttons, tips in a native details element. States: day, evening and night (demo buttons).
Nu bereikbaar3 monteurs onderweg in Rotterdam
Lekkage, verstopping of geen stroom? Bel of app, wij komen.
- Reactietijd
- 45 mingemiddeld tot de monteur bij je is (sep 2026)
- Voorrijden
- € 49overdag op werkdagen, excl. arbeid
Een foto van de lekkage, de meterkast of het display van de ketel helpt: dan neemt de monteur meteen het goede onderdeel mee.
Wat kun je zelf alvast doen?
Meldingen vandaag
- Lekkage · Kralingenter plaatse 14:51
- Groep valt uit · Hillegersbergopgelost 12:58
- Verstopte afvoer · Delfshavenopgelost 09:10
Demo, tijdstip
How to use it
- Paste the HTML where the page sections should appear.
- Add the CSS to your stylesheet. All classes are prefixed, so nothing clashes with your own styles.
- Add the JavaScript and call init() with the element that contains the HTML.
<!-- Spoedblok: bellen of foto's appen · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="sbw">
<div class="sbw__in">
<div class="sbw__main">
<p class="sbw__live"><i class="sbw__dot" aria-hidden="true"></i><b class="sbw__st">Nu bereikbaar</b><span class="sbw__crew">3 monteurs onderweg in Rotterdam</span></p>
<h2 class="sbw__h">Lekkage, verstopping of geen stroom? Bel of app, wij komen.</h2>
<fieldset class="sbw__set">
<legend class="sbw__lbl">Wat is er aan de hand?</legend>
<div class="sbw__chips">
<label class="sbw__chip"><input type="radio" name="sbw-type" value="lek" checked><span>Lekkage</span></label>
<label class="sbw__chip"><input type="radio" name="sbw-type" value="verstop"><span>Verstopping</span></label>
<label class="sbw__chip"><input type="radio" name="sbw-type" value="stroom"><span>Stroomstoring</span></label>
<label class="sbw__chip"><input type="radio" name="sbw-type" value="cv"><span>Cv-ketel</span></label>
</div>
</fieldset>
<dl class="sbw__nums" aria-live="polite">
<div><dt>Reactietijd</dt><dd><b class="sbw__rt">45 min</b><span>gemiddeld tot de monteur bij je is (sep 2026)</span></dd></div>
<div><dt>Voorrijden</dt><dd><b class="sbw__vr">€ 49</b><span class="sbw__vr-s">overdag op werkdagen, excl. arbeid</span></dd></div>
</dl>
<div class="sbw__btns">
<a class="sbw__btn sbw__btn--bel" href="tel:+31103402270"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6.5 3.5h3l1.5 4.3-2.2 1.4a11 11 0 0 0 6 6l1.4-2.2 4.3 1.5v3a2 2 0 0 1-2.1 2C10.8 19 5 13.2 4.5 5.6a2 2 0 0 1 2-2.1z"/></svg><span><small>Bel direct, ook nu</small>010 340 22 70</span></a>
<a class="sbw__btn sbw__btn--wa" href="#" target="_blank" rel="noopener"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M4 20l1.2-3.8A8 8 0 1 1 8 19z"/><path d="M9 8.5c0 3 2.5 6 6 6.5l1-1.6-2-1-1 1c-1-.4-2.2-1.6-2.6-2.6l1-1-1-2z"/></svg><span><small>WhatsApp, stuur foto's</small>Open WhatsApp</span></a>
</div>
<p class="sbw__note">Een foto van de lekkage, de meterkast of het display van de ketel helpt: dan neemt de monteur meteen het goede onderdeel mee.</p>
<details class="sbw__tips"><summary>Wat kun je zelf alvast doen?</summary><ul class="sbw__tip-l"></ul></details>
</div>
<div class="sbw__side">
<img src="https://neddev.com/lab-media/spoed-bel-whatsapp-1.webp" alt="Monteur draait een lekkende leiding onder een aanrecht vast" loading="lazy">
<div class="sbw__log">
<p class="sbw__log-h">Meldingen vandaag</p>
<ol>
<li><time>14:12</time><span>Lekkage · Kralingen</span><em>ter plaatse 14:51</em></li>
<li><time>11:40</time><span>Groep valt uit · Hillegersberg</span><em>opgelost 12:58</em></li>
<li><time>08:05</time><span>Verstopte afvoer · Delfshaven</span><em>opgelost 09:10</em></li>
</ol>
</div>
</div>
</div>
<div class="sbw__demo"><span>Demo, tijdstip</span><button type="button" data-sbw="nu" aria-pressed="true">nu</button><button type="button" data-sbw="11" aria-pressed="false">di 11:00</button><button type="button" data-sbw="20" aria-pressed="false">di 20:00</button><button type="button" data-sbw="3" aria-pressed="false">wo 03:00</button></div>
</div>
</div>/* Spoedblok: bellen of foto's appen · NedDev · eigen werk. */
/* fonts (Fontshare): supreme@400,500,700,800 */
.sbw{--sbw-bg:#141619;--sbw-panel:#1d2024;--sbw-y:#ffd23f;--sbw-y2:#ffdf6b;--sbw-wa:#1b7a44;--sbw-wa2:#16683a;--sbw-line:#2d3137;--sbw-mut:#a9afb8;background:var(--sbw-bg);color:#f3f4f6;font-family:'Supreme',sans-serif;box-sizing:border-box}
.sbw *,.sbw *::before,.sbw *::after{box-sizing:border-box}
.sbw a:focus-visible,.sbw button:focus-visible,.sbw summary:focus-visible{outline:2px solid var(--sbw-y);outline-offset:3px}
.sbw__in{max-width:1200px;margin:0 auto;padding:44px 32px 24px;display:grid;grid-template-columns:1.15fr .85fr;gap:44px}
.sbw__live{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:7px 12px;border:1px solid var(--sbw-line);border-radius:999px;font-size:13.5px}
.sbw__crew{color:var(--sbw-mut)}
.sbw__dot{width:9px;height:9px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 rgba(61,220,132,.55);animation:sbw-p 2.2s infinite}
.sbw[data-tijd=nacht] .sbw__dot{background:var(--sbw-y);animation-name:sbw-py}
@keyframes sbw-p{70%{box-shadow:0 0 0 8px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}
@keyframes sbw-py{70%{box-shadow:0 0 0 8px rgba(255,210,63,0)}100%{box-shadow:0 0 0 0 rgba(255,210,63,0)}}
.sbw__h{font-weight:800;font-size:clamp(28px,3.4vw,44px);line-height:1.04;letter-spacing:-.02em;margin:0 0 22px;max-width:20ch}
.sbw__set{border:0;margin:0 0 20px;padding:0;min-width:0}
.sbw__lbl{font-size:13px;font-weight:700;color:var(--sbw-mut);padding:0;margin:0 0 8px}
.sbw__chips{display:flex;flex-wrap:wrap;gap:8px}
.sbw__chip{position:relative}
.sbw__chip input{position:absolute;opacity:0;width:1px;height:1px}
.sbw__chip span{display:block;padding:9px 16px;border:1.5px solid var(--sbw-line);border-radius:4px;font-size:15px;font-weight:500;cursor:pointer;transition:border-color .16s,background-color .16s,color .16s}
.sbw__chip span:hover{border-color:#5b616a}
.sbw__chip input:checked+span{background:#f3f4f6;color:#141619;border-color:#f3f4f6;font-weight:700}
.sbw__chip input:focus-visible+span{outline:2px solid var(--sbw-y);outline-offset:2px}
.sbw__nums{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 20px;border-top:1px solid var(--sbw-line);border-bottom:1px solid var(--sbw-line)}
.sbw__nums div{padding:14px 0}
.sbw__nums div+div{padding-left:20px;border-left:1px solid var(--sbw-line)}
.sbw__nums dt{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sbw-mut);margin-bottom:4px}
.sbw__nums dd{margin:0}
.sbw__nums b{display:block;font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--sbw-y);line-height:1.1}
.sbw__nums span{font-size:13px;color:var(--sbw-mut)}
.sbw__btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sbw__btn{display:flex;align-items:center;gap:14px;padding:14px 18px;border-radius:6px;text-decoration:none;font-weight:800;font-size:20px;font-variant-numeric:tabular-nums;transition:background-color .16s}
.sbw__btn small{display:block;font-size:13px;font-weight:500;opacity:.85;margin-bottom:1px}
.sbw__btn svg{width:30px;height:30px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sbw__btn--bel{background:var(--sbw-y);color:#141619}
.sbw__btn--bel:hover{background:var(--sbw-y2)}
.sbw__btn--wa{background:var(--sbw-wa);color:#fff}
.sbw__btn--wa:hover{background:var(--sbw-wa2)}
.sbw__btn:active{transform:translateY(1px)}
.sbw__note{margin:12px 0 0;font-size:14px;line-height:1.5;color:var(--sbw-mut);max-width:60ch}
.sbw__tips{margin-top:14px;border-top:1px solid var(--sbw-line);padding-top:10px}
.sbw__tips summary{cursor:pointer;font-weight:700;font-size:15px;list-style:none;display:flex;align-items:center;gap:8px;padding:4px 0}
.sbw__tips summary::-webkit-details-marker{display:none}
.sbw__tips summary::before{content:"+";display:grid;place-items:center;width:20px;height:20px;border:1.5px solid var(--sbw-line);border-radius:3px;font-size:14px;transition:transform .2s}
.sbw__tips[open] summary::before{content:"\2212"}
.sbw__tip-l{margin:8px 0 0;padding-left:20px;font-size:14px;line-height:1.6;color:#d6d9de}
.sbw__side{position:relative;border-radius:6px;overflow:hidden;min-height:380px;background:var(--sbw-panel)}
.sbw__side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.85)}
.sbw__log{position:absolute;left:14px;right:14px;bottom:14px;background:rgba(20,22,25,.92);border:1px solid var(--sbw-line);border-radius:6px;padding:12px 14px}
.sbw__log-h{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sbw-mut)}
.sbw__log ol{list-style:none;margin:0;padding:0}
.sbw__log li{display:grid;grid-template-columns:48px 1fr auto;gap:8px;padding:6px 0;font-size:13.5px;border-top:1px solid var(--sbw-line)}
.sbw__log li:first-child{border-top:0}
.sbw__log time{font-variant-numeric:tabular-nums;color:var(--sbw-y);font-weight:700}
.sbw__log em{font-style:normal;color:var(--sbw-mut);font-size:12.5px}
.sbw__demo{max-width:1200px;margin:0 auto;padding:0 32px 20px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--sbw-mut)}
.sbw__demo span{font-weight:700;margin-right:4px}
.sbw__demo button{font:500 12px 'Supreme',sans-serif;border:1px solid var(--sbw-line);background:transparent;color:#f3f4f6;border-radius:999px;padding:5px 11px;cursor:pointer;transition:border-color .16s}
.sbw__demo button:hover{border-color:#6b7280}
.sbw__demo button[aria-pressed=true]{background:#f3f4f6;color:#141619}
@media (max-width:900px){.sbw__in{grid-template-columns:1fr;padding:28px 16px 18px;gap:24px}.sbw__side{min-height:300px}.sbw__demo{padding:0 16px 18px}}
@media (max-width:560px){.sbw__btns{grid-template-columns:1fr}.sbw__crew{display:none}.sbw__nums b{font-size:24px}.sbw__nums div+div{padding-left:14px}.sbw__log li{grid-template-columns:44px 1fr}.sbw__log em{grid-column:2}}
@media (prefers-reduced-motion:reduce){.sbw *{animation:none!important;transition:none!important}}// Spoedblok: bellen of foto's appen · NedDev · eigen werk.
// root = het element waarin de HTML staat
function init(root){
var w=root.querySelector('.sbw');if(!w)return;
var T={lek:{n:'lekkage',rt:45,tips:['Draai de hoofdkraan dicht, die zit meestal bij de watermeter in de meterkast.','Zet de stroom uit als er water bij stopcontacten of lampen komt.','Leg handdoeken neer en maak een foto van de plek waar het lekt.']},
verstop:{n:'verstopping',rt:60,tips:['Spoel niet nog een keer door, dan loopt het over.','Gebruik geen ontstopper uit de supermarkt, die beschadigt pvc-leidingen.','Kijk of andere afvoeren in huis ook traag zijn en vertel ons dat.']},
stroom:{n:'stroomstoring',rt:50,tips:['Kijk in de meterkast welke groep of aardlekschakelaar uit staat.','Haal alle stekkers uit die groep en zet de schakelaar een keer terug.','Valt hij meteen weer uit? Laat hem uit staan en bel ons.']},
cv:{n:'storing aan de cv-ketel',rt:90,tips:['Kijk of de waterdruk op de ketel tussen 1,5 en 2 bar staat.','Druk een keer op de resetknop, niet vaker.','Maak een foto van de foutcode op het display.']}};
var fake=null,rt=w.querySelector('.sbw__rt'),vr=w.querySelector('.sbw__vr'),vrs=w.querySelector('.sbw__vr-s'),st=w.querySelector('.sbw__st'),crew=w.querySelector('.sbw__crew'),wa=w.querySelector('.sbw__btn--wa'),tl=w.querySelector('.sbw__tip-l');
function dag(){var d=new Date(),h=d.getHours(),wd=d.getDay();if(fake!==null){h=fake;wd=fake===3?3:2;}
if(h>=22||h<7)return 'nacht';if(h>=18||wd===0||wd===6)return 'avond';return 'dag';}
function paint(){
var k=w.querySelector('input[name=sbw-type]:checked').value,t=T[k],d=dag();
w.setAttribute('data-tijd',d);
var extra=d==='nacht'?30:d==='avond'?10:0;
rt.textContent=(t.rt+extra)+' min';
vr.textContent=d==='nacht'?'€ 129':d==='avond'?'€ 89':'€ 49';
vrs.textContent=d==='nacht'?'nachttarief tussen 22:00 en 7:00':d==='avond'?'avond en weekend, excl. arbeid':'overdag op werkdagen, excl. arbeid';
st.textContent=d==='nacht'?'Nachtdienst':'Nu bereikbaar';
crew.textContent=d==='nacht'?'1 monteur paraat voor heel Rotterdam':d==='avond'?'2 monteurs onderweg in Rotterdam':'3 monteurs onderweg in Rotterdam';
wa.href='https://wa.me/31103402270?text='+encodeURIComponent('Hallo, ik heb een '+t.n+'. Ik stuur foto\'s mee. Mijn adres is: ');
tl.innerHTML=t.tips.map(function(x){return '<li>'+x+'</li>';}).join('');
}
w.addEventListener('change',function(e){if(e.target.name==='sbw-type')paint();});
w.querySelector('.sbw__demo').addEventListener('click',function(e){var b=e.target.closest('[data-sbw]');if(!b)return;
[].forEach.call(w.querySelectorAll('[data-sbw]'),function(x){x.setAttribute('aria-pressed',x===b?'true':'false');});
var v=b.getAttribute('data-sbw');fake=v==='nu'?null:+v;paint();});
paint();
}
init(document.querySelector('.jouw-container'));
More page sections
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 →