Back to Top Footer
A copy-paste footers component in pure HTML & CSS. Zero dependencies, framework-agnostic, MIT-licensed.
FootersHTMLCSSany framework
Copy into your project
HTML
<footer class="nuda-footer-totop">
<span>You made it to the bottom 👋</span>
<a href="#top" class="nuda-footer-totop__btn" aria-label="Back to top">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 15l-6-6-6 6" />
</svg>
</a>
</footer>CSS
.nuda-footer-totop {
display: flex;
align-items: center;
justify-content: space-between;
gap: 16px;
padding: 14px 18px;
background: rgba(255, 255, 255, 0.02);
border: 1px solid rgba(255, 255, 255, 0.06);
border-radius: 12px;
color: #a0a0a8;
font-size: 13px;
}
.nuda-footer-totop__btn {
display: inline-flex;
align-items: center;
justify-content: center;
width: 36px;
height: 36px;
background: rgba(228, 255, 84, 0.08);
border: 1px solid rgba(228, 255, 84, 0.2);
border-radius: 10px;
color: #e4ff54;
cursor: pointer;
transition: transform 0.25s ease, background 0.2s;
text-decoration: none;
}
.nuda-footer-totop__btn svg {
width: 16px;
height: 16px;
}
.nuda-footer-totop__btn:hover {
background: rgba(228, 255, 84, 0.15);
transform: translateY(-3px);
}
.nuda-footer-totop__btn:hover svg {
animation: nuda-arrow-bounce 0.8s ease-in-out infinite;
}
@keyframes nuda-arrow-bounce {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-3px); }
}
@media (prefers-reduced-motion: reduce) {
.nuda-footer-totop__btn:hover svg { animation: none; }
}How to use Back to Top Footer
Paste the HTML where you need it and the CSS into a global stylesheet (or a <style> tag). Every class is prefixed nuda- so it never collides with Tailwind or your own styles. Tweak the CSS custom properties to match your design system.
Works in React, Vue, Svelte, Astro, Next.js, Nuxt, Laravel Blade, Django, Rails — or a single .html file. No npm install, no build step.