Hero met gestapelde projectstrip New
Contractor hero with a rotating stack of project cards and a live label showing the current job.
Bouwbedrijf Koster · Delft e.o.
Verbouwen met één aanspreekpunt, van sloop tot sleutel.
Badkamers, keukens, dakkapellen en aanbouwen. Eigen vakmensen, vaste planning per week en elke vrijdag een foto-update in uw app.
- Gem. oplevering
- op de geplande dag
- Beoordeling
- 9,1 / 10
Nu bezig in Delft · badkamer Hugo de Grootstraat, week 2 van 3
Badkamer Hof van Delft · 2026
Dakkapel Tanthof-Oost · 2026
Keuken Vrijenban · 2025
Aanbouw Rijswijk · 2025
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.
<!-- Hero met gestapelde projectstrip · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="xps">
<div class="xps__inner">
<div class="xps__text">
<span class="xps__eyebrow">Bouwbedrijf Koster · Delft e.o.</span>
<h2 class="xps__h">Verbouwen met één aanspreekpunt, van sloop tot sleutel.</h2>
<p class="xps__lead">Badkamers, keukens, dakkapellen en aanbouwen. Eigen vakmensen, vaste planning per week en elke vrijdag een foto-update in uw app.</p>
<div class="xps__cta"><a href="#" class="xps__btn">Vraag een adviesgesprek aan</a><a href="#" class="xps__link">Bekijk 140+ projecten</a></div>
<dl class="xps__stats"><div><dt>Gem. oplevering</dt><dd>op de geplande dag</dd></div><div><dt>Beoordeling</dt><dd>9,1 / 10</dd></div></dl>
</div>
<div class="xps__stage">
<span class="xps__now"><i></i>Nu bezig in Delft · badkamer Hugo de Grootstraat, week 2 van 3</span>
<div class="xps__stack" role="list" aria-label="Recente projecten">
<figure class="xps__card" data-pos="0" role="listitem"><div class="xps__img xps__img--bad"></div><figcaption><b>Badkamer</b> Hof van Delft · 2026</figcaption></figure>
<figure class="xps__card" data-pos="1" role="listitem"><div class="xps__img xps__img--dak"></div><figcaption><b>Dakkapel</b> Tanthof-Oost · 2026</figcaption></figure>
<figure class="xps__card" data-pos="2" role="listitem"><div class="xps__img xps__img--keuken"></div><figcaption><b>Keuken</b> Vrijenban · 2025</figcaption></figure>
<figure class="xps__card" data-pos="3" role="listitem"><div class="xps__img xps__img--gevel"></div><figcaption><b>Aanbouw</b> Rijswijk · 2025</figcaption></figure>
</div>
<button type="button" class="xps__next">Volgend project <span aria-hidden="true">→</span></button>
</div>
</div>
</div>
</div>/* Hero met gestapelde projectstrip · NedDev · eigen werk. */
.xps{background:#ece4d6;color:#23302a;font-family:'Switzer',sans-serif;box-sizing:border-box}
.xps *{box-sizing:border-box}
.xps__inner{max-width:1120px;margin:0 auto;padding:52px 32px;display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;min-height:470px}
.xps__eyebrow{display:block;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#a24a22;margin-bottom:16px}
.xps__h{font-size:clamp(28px,3.8vw,46px);line-height:1.04;letter-spacing:-.02em;font-weight:700;margin:0 0 16px;max-width:17ch}
.xps__lead{font-size:16px;line-height:1.55;color:#4a5650;margin:0 0 24px;max-width:44ch}
.xps__cta{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.xps__btn{background:#23302a;color:#ece4d6;text-decoration:none;font-weight:600;font-size:15px;padding:13px 20px;border-radius:3px;transition:background .2s}
.xps__btn:hover{background:#c65d2e;color:#fff}
.xps__link{color:#23302a;font-weight:600;font-size:14px;text-decoration:none;border-bottom:1.5px solid #c65d2e}
.xps__stats{display:flex;gap:30px;margin:28px 0 0;padding-top:18px;border-top:1px solid rgba(35,48,42,.2)}
.xps__stats dt{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#6b766f}
.xps__stats dd{margin:4px 0 0;font-weight:700;font-size:16px}
.xps__stage{position:relative;height:400px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.xps__now{position:absolute;top:0;left:50%;transform:translateX(-50%);z-index:10;background:#fff;color:#23302a;font-size:12.5px;font-weight:600;padding:7px 12px 7px 10px;border-radius:999px;display:flex;align-items:center;gap:8px;white-space:nowrap;box-shadow:0 6px 18px -8px rgba(35,48,42,.4);max-width:100%;overflow:hidden;text-overflow:ellipsis}
.xps__now i{flex:none;width:8px;height:8px;border-radius:50%;background:#2f9e5a;box-shadow:0 0 0 0 rgba(47,158,90,.5);animation:xps-live 1.8s ease-out infinite}
@keyframes xps-live{0%{box-shadow:0 0 0 0 rgba(47,158,90,.55)}100%{box-shadow:0 0 0 10px rgba(47,158,90,0)}}
.xps__stack{position:relative;width:300px;height:260px;margin-top:20px}
.xps__card{position:absolute;inset:0;margin:0;background:#fff;padding:10px 10px 0;border-radius:4px;box-shadow:0 14px 30px -14px rgba(35,48,42,.45);transition:transform .6s cubic-bezier(.2,.8,.2,1),opacity .6s;cursor:pointer}
.xps__card figcaption{font-size:12.5px;padding:9px 2px 10px;color:#5b655f}
.xps__card figcaption b{color:#23302a;margin-right:6px}
.xps__card[data-pos="0"]{z-index:4;transform:rotate(-2deg)}
.xps__card[data-pos="1"]{z-index:3;transform:translate(26px,-12px) rotate(4deg)}
.xps__card[data-pos="2"]{z-index:2;transform:translate(-30px,-18px) rotate(-7deg)}
.xps__card[data-pos="3"]{z-index:1;transform:translate(10px,-26px) rotate(9deg);opacity:.85}
.xps__img{height:202px;border-radius:2px;position:relative;overflow:hidden}
.xps__img--bad{background:linear-gradient(#e9ecec 0 62%,#55605d 62%);}
.xps__img--bad::before{content:'';position:absolute;inset:0 0 38% 0;background-image:linear-gradient(rgba(120,130,128,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(120,130,128,.35) 1px,transparent 1px);background-size:22px 44px}
.xps__img--bad::after{content:'';position:absolute;left:18%;bottom:20%;width:44%;height:26%;background:#fff;border-radius:3px 3px 30px 30px;box-shadow:inset 0 -6px 0 #d9dede}
.xps__img--dak{background:linear-gradient(#bcd3e2,#e3edf2)}
.xps__img--dak::before{content:'';position:absolute;left:0;right:0;bottom:0;height:62%;background:#6e4a3a;clip-path:polygon(0 30%,50% 0,100% 30%,100% 100%,0 100%);background-image:repeating-linear-gradient(0deg,#5e3d30 0 3px,#7a5544 3px 14px)}
.xps__img--dak::after{content:'';position:absolute;left:32%;bottom:38%;width:36%;height:22%;background:#f4f1ea;box-shadow:inset 0 0 0 6px #2f3a36,inset 0 0 0 9px #f4f1ea;border-top:8px solid #2f3a36}
.xps__img--keuken{background:linear-gradient(#f1ede6 0 46%,#2b2f2c 46% 50%,#c49a6c 50%)}
.xps__img--keuken::before{content:'';position:absolute;left:0;right:0;bottom:0;height:50%;background:repeating-linear-gradient(90deg,transparent 0 58px,rgba(60,40,20,.35) 58px 60px)}
.xps__img--keuken::after{content:'';position:absolute;left:12%;top:12%;width:76%;height:24%;background:repeating-linear-gradient(90deg,#d8cfc2 0 58px,#cfc5b6 58px 60px)}
.xps__img--gevel{background-color:#a5553a;background-image:linear-gradient(rgba(236,228,214,.7) 2px,transparent 2px),linear-gradient(90deg,rgba(236,228,214,.7) 2px,transparent 2px),linear-gradient(90deg,rgba(236,228,214,.7) 2px,transparent 2px);background-size:36px 16px,36px 32px,36px 32px;background-position:0 0,0 0,18px 16px}
.xps__img--gevel::after{content:'';position:absolute;right:12%;bottom:0;width:48%;height:70%;background:linear-gradient(90deg,#2f3a36 0 4px,#c9dbe3 4px calc(50% - 2px),#2f3a36 calc(50% - 2px) calc(50% + 2px),#c9dbe3 calc(50% + 2px) calc(100% - 4px),#2f3a36 calc(100% - 4px));border-top:5px solid #2f3a36}
.xps__next{margin-top:30px;font:600 13px 'Switzer',sans-serif;background:transparent;color:#23302a;border:1.5px solid #23302a;border-radius:999px;padding:8px 16px;cursor:pointer;transition:background .2s,color .2s}
.xps__next:hover{background:#23302a;color:#ece4d6}
@media(prefers-reduced-motion:reduce){.xps__card{transition:none}.xps__now i{animation:none}}
@media(max-width:820px){.xps__inner{grid-template-columns:minmax(0,1fr);padding:34px 18px;gap:24px}.xps__stage{height:370px}.xps__stack{width:250px;height:230px}.xps__img{height:172px}.xps__now{font-size:11px;white-space:normal;text-align:left;width:94%;border-radius:12px}}// Hero met gestapelde projectstrip · NedDev · eigen werk.
// root = het element waarin de HTML staat
function init(root){
var w=root.querySelector('.xps');if(!w)return;
var cards=[].slice.call(w.querySelectorAll('.xps__card'));
function next(){cards.forEach(function(c){var p=+c.getAttribute('data-pos');c.setAttribute('data-pos',(p+3)%4);});}
w.querySelector('.xps__next').addEventListener('click',function(){next();restart();});
w.querySelector('.xps__stack').addEventListener('click',function(){next();restart();});
var t=null,red=matchMedia('(prefers-reduced-motion: reduce)').matches;
function restart(){if(red)return;clearInterval(t);t=setInterval(next,3600);}
restart();
}
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 →