Ingangen per levensgebeurtenis New
Visitors pick their situation ("You are buying a house", "Someone has died") and see what to arrange with the notary, what with the municipality, lead time and starting price. Tabs with arrow keys; switch via View Transitions with a feature check, without the API the panel swaps instantly.
Hendriks & Van Loon notarissen · ’s-Hertogenbosch
Wat speelt er bij u?
Kies uw situatie. U ziet wat u bij ons regelt, wat bij de gemeente en wat het kost.
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.
<!-- Ingangen per levensgebeurtenis · NedDev · eigen werk. -->
<div class="jouw-container">
<div class="lvg">
<div class="lvg__in">
<div class="lvg__head">
<p class="lvg__eyebrow">Hendriks & Van Loon notarissen · ’s-Hertogenbosch</p>
<h2 class="lvg__h">Wat speelt er bij u?</h2>
<p class="lvg__lead">Kies uw situatie. U ziet wat u bij ons regelt, wat bij de gemeente en wat het kost.</p>
</div>
<div class="lvg__wrap">
<div class="lvg__tabs" role="tablist" aria-label="Levensgebeurtenissen" aria-orientation="vertical">
<button class="lvg__tab" role="tab" id="lvg-t0" aria-controls="lvg-p" aria-selected="true" data-i="0"><svg viewBox="0 0 32 32" aria-hidden="true"><path d="M5 15L16 6l11 9M8 13v14h16V13"/><path d="M14 27v-7h4v7"/></svg>U koopt een huis</button>
<button class="lvg__tab" role="tab" id="lvg-t1" aria-controls="lvg-p" aria-selected="false" tabindex="-1" data-i="1"><svg viewBox="0 0 32 32" aria-hidden="true"><circle cx="12" cy="17" r="7"/><circle cx="20" cy="17" r="7"/></svg>U gaat trouwen of samenwonen</button>
<button class="lvg__tab" role="tab" id="lvg-t2" aria-controls="lvg-p" aria-selected="false" tabindex="-1" data-i="2"><svg viewBox="0 0 32 32" aria-hidden="true"><path d="M16 28V12M16 12c-4 0-7-3-7-7 4 0 7 3 7 7zM16 12c4 0 7-3 7-7-4 0-7 3-7 7z"/></svg>Er is iemand overleden</button>
<button class="lvg__tab" role="tab" id="lvg-t3" aria-controls="lvg-p" aria-selected="false" tabindex="-1" data-i="3"><svg viewBox="0 0 32 32" aria-hidden="true"><path d="M8 4h11l5 5v19H8z"/><path d="M19 4v5h5M12 16h8M12 20h8M12 24h4"/></svg>U wilt iets vastleggen voor later</button>
<button class="lvg__tab" role="tab" id="lvg-t4" aria-controls="lvg-p" aria-selected="false" tabindex="-1" data-i="4"><svg viewBox="0 0 32 32" aria-hidden="true"><rect x="5" y="10" width="22" height="16" rx="2"/><path d="M12 10V6h8v4M5 17h22"/></svg>U start een bedrijf</button>
<button class="lvg__tab" role="tab" id="lvg-t5" aria-controls="lvg-p" aria-selected="false" tabindex="-1" data-i="5"><svg viewBox="0 0 32 32" aria-hidden="true"><path d="M16 5v22M6 10h20M9 10l-4 9h8zM23 10l-4 9h8z"/></svg>U gaat scheiden</button>
</div>
<div class="lvg__panel" id="lvg-p" role="tabpanel" aria-labelledby="lvg-t0" tabindex="0"></div>
</div>
</div>
</div>
</div>/* Ingangen per levensgebeurtenis · NedDev · eigen werk. */
/* fonts (Fontshare): gambetta@400,500,600 + supreme@400,500,700 */
.lvg{--ink:#1b1b18;--mut:#5c5a52;--bg:#f4efe6;--green:#1e3a33;--brass:#8a6a2f;--line:#d9d0bf;background:var(--bg);color:var(--ink);font-family:'Supreme','Switzer',sans-serif;box-sizing:border-box}
.lvg *,.lvg *::before{box-sizing:border-box}
.lvg__in{max-width:1140px;margin:0 auto;padding:50px 32px 44px}
.lvg__head{display:grid;grid-template-columns:1fr 1fr;gap:6px 40px;align-items:end;margin-bottom:26px}
.lvg__eyebrow{grid-column:1/-1;margin:0;font:500 11px/1 'JetBrains Mono',monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--brass)}
.lvg__h{margin:0;font-family:'Gambetta',Georgia,serif;font-weight:500;font-size:clamp(30px,3.6vw,44px);line-height:1.05;color:var(--green)}
.lvg__lead{margin:0;font-size:15.5px;line-height:1.55;color:var(--mut);max-width:44ch}
.lvg__wrap{display:grid;grid-template-columns:330px 1fr;gap:0;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.lvg__tabs{display:flex;flex-direction:column;border-right:1px solid var(--line);background:#faf7f1}
.lvg__tab{display:flex;align-items:center;gap:12px;text-align:left;padding:15px 18px;font:500 15px/1.3 'Supreme',sans-serif;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);cursor:pointer;position:relative;transition:background-color .15s ease,color .15s ease}
.lvg__tab:last-child{border-bottom:0}
.lvg__tab svg{flex:none;width:26px;height:26px;fill:none;stroke:var(--brass);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.lvg__tab:hover{background:#f1ebdf}
.lvg__tab[aria-selected="true"]{background:var(--green);color:#fff}
.lvg__tab[aria-selected="true"] svg{stroke:#e2c88f}
.lvg__tab:focus-visible{outline:3px solid var(--brass);outline-offset:-3px}
.lvg__panel{padding:28px 32px;outline:none;view-transition-name:lvg-panel}
.lvg__panel:focus-visible{box-shadow:inset 0 0 0 3px var(--brass)}
.lvg__pt{margin:0 0 6px;font-family:'Gambetta',Georgia,serif;font-weight:500;font-size:26px;color:var(--green)}
.lvg__pi{margin:0 0 20px;font-size:15px;line-height:1.55;color:var(--mut);max-width:60ch}
.lvg__cols{display:grid;grid-template-columns:1fr 1fr;gap:20px 28px}
.lvg__ch{margin:0 0 8px;font:500 11px/1.4 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--brass)}
.lvg__ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:14.5px;line-height:1.45}
.lvg__ul li{position:relative;padding-left:20px}
.lvg__ul li::before{content:'';position:absolute;left:0;top:7px;width:8px;height:8px;border:1.5px solid var(--green);border-radius:50%}
.lvg__gem li::before{border-radius:1px;border-color:var(--brass)}
.lvg__facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin:22px 0 18px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lvg__facts div{display:flex;flex-direction:column;gap:2px}
.lvg__facts span{font:500 11px 'JetBrains Mono',monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.lvg__facts b{font-size:17px;font-variant-numeric:tabular-nums}
.lvg__acts{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.lvg__btn{display:inline-flex;padding:12px 18px;border-radius:3px;background:var(--green);color:#fff;font-weight:700;font-size:14.5px;text-decoration:none;transition:background-color .15s ease}
.lvg__btn:hover{background:#142a24}
.lvg__btn:active{transform:translateY(1px)}
.lvg__btn:focus-visible,.lvg__tel:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.lvg__tel{color:var(--green);font-weight:700;font-size:14.5px}
::view-transition-old(lvg-panel){animation:lvg-out .16s ease both}
::view-transition-new(lvg-panel){animation:lvg-in .22s ease both}
@keyframes lvg-out{to{opacity:0;transform:translateY(-4px)}}
@keyframes lvg-in{from{opacity:0;transform:translateY(6px)}}
@media (max-width:820px){
.lvg__in{padding:34px 14px 30px}
.lvg__head{grid-template-columns:1fr}
.lvg__wrap{grid-template-columns:1fr}
.lvg__tabs{display:grid;grid-template-columns:1fr 1fr;border-right:0;border-bottom:1px solid var(--line)}
.lvg__tab{padding:12px;font-size:13.5px;gap:8px;border-right:1px solid var(--line)}
.lvg__tab svg{width:20px;height:20px}
.lvg__panel{padding:20px 16px}
.lvg__cols{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.lvg *{transition:none!important}::view-transition-old(lvg-panel),::view-transition-new(lvg-panel){animation:none}}// Ingangen per levensgebeurtenis · NedDev · eigen werk.
// root = het element waarin de HTML staat
function init(root){
const w=root.querySelector('.lvg'); if(!w) return;
const D=[
{t:'U koopt een huis',i:'Wij maken de leveringsakte en de hypotheekakte, controleren het kadaster en zorgen dat het geld op het juiste moment naar de verkoper gaat.',n:['Leveringsakte en hypotheekakte','Controle kadaster en beslagregister','Afrekening via onze kwaliteitsrekening','Eventueel samenlevingscontract of testament'],g:['Verhuizing doorgeven binnen 5 dagen na de verhuizing','Parkeervergunning op het nieuwe adres aanvragen'],d:'4 tot 8 weken',p:'€ 1.150,00'},
{t:'U gaat trouwen of samenwonen',i:'Bij trouwen of een geregistreerd partnerschap geldt de beperkte gemeenschap van goederen. Wilt u iets anders, dan legt u dat vooraf vast.',n:['Huwelijkse of partnerschapsvoorwaarden','Samenlevingscontract bij samenwonen','Testament dat bij uw nieuwe situatie past'],g:['Melding voorgenomen huwelijk, minstens 2 weken vooraf','Inschrijven op hetzelfde adres'],d:'2 tot 3 weken',p:'€ 795,00'},
{t:'Er is iemand overleden',i:'U hoeft niet alles tegelijk. Wij zoeken uit of er een testament is, wie de erfgenamen zijn en wat er als eerste moet gebeuren.',n:['Opvragen Centraal Testamentenregister','Verklaring van erfrecht voor de bank','Begeleiding bij verdeling van de nalatenschap'],g:['Aangifte van overlijden, meestal via de uitvaartondernemer','Uittreksel uit de overlijdensakte opvragen'],d:'2 tot 6 weken',p:'€ 695,00'},
{t:'U wilt iets vastleggen voor later',i:'Een testament regelt wie wat krijgt. Een levenstestament regelt wie voor u beslist als u dat zelf niet meer kunt.',n:['Testament','Levenstestament met financiële en medische volmacht','Jaarlijks gratis even nalopen of alles nog klopt'],g:['Niets: dit regelt u alleen bij de notaris'],d:'2 weken',p:'€ 650,00 voor beide'},
{t:'U start een bedrijf',i:'Voor een eenmanszaak heeft u ons niet nodig. Voor een bv, een stichting of een vof met afspraken wel.',n:['Oprichtingsakte bv of stichting','Aandeelhoudersovereenkomst','Inschrijving bij de KvK door ons geregeld'],g:['Bestemmingsplan controleren voor uw bedrijfspand','Eventueel een vergunning voor terras of standplaats'],d:'1 tot 2 weken',p:'€ 895,00'},
{t:'U gaat scheiden',i:'Heeft u samen een huis, dan is de notaris nodig om het op één naam te zetten. Wij werken samen met uw mediator of advocaat.',n:['Akte van verdeling van de woning','Doorhalen of aanpassen van de hypotheek','Nieuw testament na de scheiding'],g:['Verhuizing doorgeven van degene die vertrekt'],d:'3 tot 6 weken',p:'€ 975,00'}
];
const tabs=[...w.querySelectorAll('.lvg__tab')], panel=w.querySelector('.lvg__panel');
const li=a=>a.map(x=>'<li>'+x+'</li>').join('');
const fill=i=>{const d=D[i]; panel.setAttribute('aria-labelledby','lvg-t'+i);
panel.innerHTML='<h3 class="lvg__pt">'+d.t+'</h3><p class="lvg__pi">'+d.i+'</p><div class="lvg__cols"><div><p class="lvg__ch">Bij de notaris</p><ul class="lvg__ul">'+li(d.n)+'</ul></div><div><p class="lvg__ch">Bij de gemeente</p><ul class="lvg__ul lvg__gem">'+li(d.g)+'</ul></div></div><div class="lvg__facts"><div><span>Doorlooptijd</span><b>'+d.d+'</b></div><div><span>Vaste prijs vanaf</span><b>'+d.p+'</b></div><div><span>Eerste gesprek</span><b>Gratis, 30 minuten</b></div></div><div class="lvg__acts"><a class="lvg__btn" href="#">Plan een kennismaking</a><a class="lvg__tel" href="tel:0731234567">Of bel 073 123 45 67</a></div>';
panel.querySelectorAll('a[href="#"]').forEach(a=>a.addEventListener('click',e=>e.preventDefault()));
};
const rm=matchMedia('(prefers-reduced-motion: reduce)').matches;
const sel=(i,focus)=>{tabs.forEach((t,k)=>{t.setAttribute('aria-selected',k===i?'true':'false'); t.tabIndex=k===i?0:-1;}); if(focus) tabs[i].focus();
if(document.startViewTransition&&!rm){document.startViewTransition(()=>fill(i));} else fill(i);};
tabs.forEach((t,k)=>{t.addEventListener('click',()=>sel(k)); t.addEventListener('keydown',e=>{let n=-1;
if(e.key==='ArrowDown'||e.key==='ArrowRight') n=(k+1)%tabs.length; else if(e.key==='ArrowUp'||e.key==='ArrowLeft') n=(k-1+tabs.length)%tabs.length; else if(e.key==='Home') n=0; else if(e.key==='End') n=tabs.length-1;
if(n>-1){e.preventDefault(); sel(n,true);}});});
fill(0);
}
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 →