8 · Full Page
The whole thing as one file
Everything above — the mega-sitemap footer, a subscribe bar, and a back-to-top button — combined into one complete HTML file. Copy it into a new file called index.html, open it in a browser, and it just works. Here's the live result, then the full code.
Live preview
Complete HTML — copy this whole file
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Studio Lakewood</title>
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; color: #1f2433; }
/* ===== Page content (so the footer sits at the bottom of a real page) ===== */
main { padding: 60px 24px; max-width: 760px; margin: 0 auto; }
main h1 { font-size: 2rem; margin-bottom: 12px; }
main p { color: #4b5563; line-height: 1.7; margin-bottom: 14px; }
/* ===== Subscribe bar ===== */
.subscribe {
background: linear-gradient(135deg, #1e1b4b, #312e81); color: #fff;
padding: 50px 24px; text-align: center;
}
.subscribe h2 { font-size: 1.8rem; margin-bottom: 8px; }
.subscribe p { color: #c7d2fe; font-size: 14px; margin-bottom: 22px; }
.subscribe form {
display: flex; gap: 8px; max-width: 440px; margin: 0 auto;
background: rgba(255,255,255,.1); padding: 6px; border-radius: 999px;
}
.subscribe input {
flex: 1; background: transparent; border: none; outline: none;
padding: 10px 16px; color: #fff; font: inherit;
}
.subscribe input::placeholder { color: #c7d2fe; }
.subscribe button {
padding: 10px 20px; border-radius: 999px; background: #fff;
color: #1e1b4b; font-weight: 700; border: none; cursor: pointer; font-size: 13px;
}
/* ===== Mega-sitemap footer ===== */
.site-footer { background: #0f172a; color: #cbd5e1; padding: 60px 24px 30px; }
.site-footer .sf-inner {
max-width: 1100px; margin: 0 auto 40px;
display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px;
}
.site-footer .sf-brand h3 { color: #fff; margin-bottom: 8px; font-size: 1.2rem; }
.site-footer .sf-brand p { color: #64748b; font-size: 14px; max-width: 320px; margin-bottom: 16px; }
.site-footer .sf-social { display: flex; gap: 10px; }
.site-footer .sf-social a {
width: 34px; height: 34px; border-radius: 50%;
background: rgba(255,255,255,.05); color: #cbd5e1; text-decoration: none;
display: flex; align-items: center; justify-content: center; font-size: 13px;
}
.site-footer .sf-social a:hover { background: #ec4899; color: #fff; }
.site-footer h4 { color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 14px; }
.site-footer .sf-col a { display: block; color: #94a3b8; text-decoration: none; font-size: 14px; margin-bottom: 8px; }
.site-footer .sf-col a:hover { color: #fff; }
.site-footer .sf-bottom {
max-width: 1100px; margin: 0 auto; padding-top: 22px;
border-top: 1px solid rgba(255,255,255,.08);
display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px;
font-size: 13px; color: #64748b;
}
/* ===== Back-to-top button ===== */
.to-top {
position: fixed; bottom: 24px; right: 24px;
width: 44px; height: 44px; border-radius: 50%;
background: #ec4899; color: #fff; border: none; cursor: pointer;
font-size: 1.2rem; line-height: 1; box-shadow: 0 6px 18px rgba(0,0,0,.25);
opacity: 0; pointer-events: none; transition: opacity .25s;
}
.to-top.show { opacity: 1; pointer-events: auto; }
@media (max-width: 700px) {
.site-footer .sf-inner { grid-template-columns: 1fr 1fr; gap: 28px; }
}
</style>
</head>
<body>
<main>
<h1>Studio Lakewood</h1>
<p>A design studio for brands who want to stop blending in. Scroll all the way down to see the footer — that's the part this lab is about.</p>
<p>The subscribe bar, the link columns, and the back-to-top button all live below. Make the window narrow and the footer columns reflow from four down to two.</p>
<p style="height: 360px;">Plenty of room to scroll…</p>
</main>
<section class="subscribe">
<h2>Stay in the loop</h2>
<p>One email a week — new work, fresh ideas, no spam.</p>
<form onsubmit="return false;">
<input type="email" placeholder="your@email.com" aria-label="Email address">
<button type="submit">Subscribe</button>
</form>
</section>
<footer class="site-footer">
<div class="sf-inner">
<div class="sf-brand">
<h3>Studio Lakewood</h3>
<p>A design studio for brands who want to stop blending in.</p>
<div class="sf-social">
<a href="#" aria-label="Twitter">Tw</a>
<a href="#" aria-label="Instagram">Ig</a>
<a href="#" aria-label="LinkedIn">In</a>
</div>
</div>
<div class="sf-col">
<h4>Product</h4>
<a href="#">Features</a>
<a href="#">Pricing</a>
<a href="#">Integrations</a>
</div>
<div class="sf-col">
<h4>Company</h4>
<a href="#">About</a>
<a href="#">Careers</a>
<a href="#">Contact</a>
</div>
<div class="sf-col">
<h4>Legal</h4>
<a href="#">Privacy</a>
<a href="#">Terms</a>
</div>
</div>
<div class="sf-bottom">
<span>© 2026 Studio Lakewood. All rights reserved.</span>
<span>Made with care in Virginia</span>
</div>
</footer>
<button class="to-top" aria-label="Back to top">↑</button>
<script>
var toTop = document.querySelector('.to-top');
window.addEventListener('scroll', function () {
if (window.scrollY > 200) toTop.classList.add('show');
else toTop.classList.remove('show');
});
toTop.addEventListener('click', function () {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
</script>
</body>
</html>
Copy & Paste
A complete, working footer
The variant previews above are trimmed to show one idea at a time — that's why pasting them whole won't work. This block is the whole thing: paste the HTML near the bottom of your <body> and the CSS into your stylesheet, and you get a responsive footer with link columns and a copyright bar. No libraries needed.
1. HTML — paste near the bottom of your <body>
<footer class="site-footer">
<div class="sf-inner">
<div class="sf-brand">
<h3>Studio Lakewood</h3>
<p>A design studio for brands who want to stop blending in.</p>
</div>
<div class="sf-col">
<h4>Product</h4>
<a href="#">Features</a>
<a href="#">Pricing</a>
<a href="#">Integrations</a>
</div>
<div class="sf-col">
<h4>Company</h4>
<a href="#">About</a>
<a href="#">Careers</a>
<a href="#">Contact</a>
</div>
<div class="sf-col">
<h4>Legal</h4>
<a href="#">Privacy</a>
<a href="#">Terms</a>
</div>
</div>
<div class="sf-bottom">
<span>© 2026 Studio Lakewood. All rights reserved.</span>
<span class="sf-social">
<a href="#">Twitter</a>
<a href="#">Instagram</a>
<a href="#">LinkedIn</a>
</span>
</div>
</footer>
2. CSS — paste into your stylesheet
<style>
.site-footer { background: #0f172a; color: #cbd5e1; padding: 56px 24px 24px; }
.site-footer .sf-inner {
max-width: 1100px; margin: 0 auto;
display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px;
}
.site-footer .sf-brand h3 { color: #fff; margin: 0 0 8px; font-size: 1.2rem; }
.site-footer .sf-brand p { color: #64748b; font-size: 14px; max-width: 320px; margin: 0; }
.site-footer h4 { color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 14px; }
.site-footer .sf-col a { display: block; color: #94a3b8; text-decoration: none; font-size: 14px; margin-bottom: 8px; }
.site-footer .sf-col a:hover { color: #fff; }
.site-footer .sf-bottom {
max-width: 1100px; margin: 36px auto 0; padding-top: 22px;
border-top: 1px solid rgba(255,255,255,.08);
display: flex; justify-content: space-between; flex-wrap: wrap; gap: 12px;
font-size: 13px; color: #64748b;
}
.site-footer .sf-social a { color: #94a3b8; text-decoration: none; margin-left: 18px; }
.site-footer .sf-social a:hover { color: #fff; }
@media (max-width: 700px) {
.site-footer .sf-inner { grid-template-columns: 1fr 1fr; gap: 28px; }
.site-footer .sf-bottom { flex-direction: column; }
.site-footer .sf-social a { margin: 0 18px 0 0; }
}
</style>