We plaatsen onderaan de pagina een compacte footer. Het jaartal wordt automatisch ingevuld en we voorzien een toegankelijke “naar boven”-link.
</body>)Plaats deze footer onder je <main>. De knop linkt naar de navbar (of #top).
<footer class="site-footer bg-dark text-light mt-5" id="site-footer">
<div class="container py-4">
<div class="row g-3 align-items-center">
<div class="col-md-6">
<p class="m-0">© <span id="year"></span> Projectnaam — Alle rechten voorbehouden.</p>
</div>
<div class="col-md-6 text-md-end">
<a href="#site-navbar" class="btn btn-outline-light btn-sm to-top" aria-label="Naar boven">↑ Naar boven</a>
</div>
</div>
</div>
</footer>
assets/css/custom.cssBasisthema op je tokens, nette knop, en soepele scroll.
/* ---- Footer theming (op tokens) ---- */
.site-footer{
background: color-mix(in oklab, var(--brand-text), black 10%); /* donker, maar niet pikzwart */
color: #f8f9fa;
border-top: 1px solid rgba(255,255,255,.08);
}
/* 'Naar boven' knop */
.site-footer .to-top{
border-radius: 999px;
text-decoration: none;
}
/* Soepele scroll voor ankers (modern browsers) */
html{ scroll-behavior: smooth; }
/* (Optioneel) Sticky footer met flexbox — alleen als je pagina's heel kort zijn
Zet dit in je globale CSS, niet in componenten: */
/*
html, body{ height: 100%; }
body{ min-height: 100vh; display: flex; flex-direction: column; }
main{ flex: 1 0 auto; }
.site-footer{ flex-shrink: 0; }
*/
assets/js/main.jsVult het jaartal in. (Veilig: doet niets als het element niet bestaat.)
document.addEventListener('DOMContentLoaded', () => {
// Jaartal
const y = document.getElementById('year');
if (y) y.textContent = new Date().getFullYear();
});
#site-navbar (zoals hier) of naar een eigen id="top" bovenaan de pagina.
Met scroll-behavior: smooth; heb je geen extra JS nodig.
scroll-padding-top)?</body> en gebruikt je tokens.year wordt gevuld door main.js.