Files
famdone/frontend/src/lib/components/Footer.svelte
T
2026-09-10 11:27:27 +01:00

114 lines
2.5 KiB
Svelte

<script lang="ts">
import FamDone from './FamDone.svelte';
// Offset the footer content past the fixed sidebar on fam-scoped pages
// (220px desktop / 56px mobile). Standalone pages (landing, pricing, admin)
// have no sidebar and leave this false.
let { sidebar = false } = $props();
</script>
<footer class="bg-slate-100 text-[#4c1d95] border-t border-[#4338ca]">
<div class="footer-inner px-8 py-16" class:sidebar>
<div class="footer-row flex items-center justify-between gap-2">
<span class="footer-star">✦</span>
<div class="footer-center">
<span class="footer-copy"
>&copy; {new Date().getFullYear()}
<span class="footer-text font-bold text-xl"><FamDone /></span> All rights reserved.</span
>
<span class="footer-links">
<a href="/privacy">Privacy Policy</a>
</span>
</div>
<aside
class="footer-aside text-text-200 text-wash-300 flex flex-col justify-end text-right text-sm"
>
<span>Built by humans</span>
<a href="https://threejjjs.xyz">
<h5 class="m-0 text-right font-tertiary text-xl md:text-3xl">
three<span class="opacity-55">jjj</span>s
<br />
</h5>
</a>
<span class="text-xs">Interactive Tech</span>
</aside>
</div>
</div>
</footer>
<style>
/* Offset the footer content past the fixed sidebar so it aligns with the
app-main content column (220px desktop / 56px mobile). */
.footer-inner.sidebar {
margin-left: 220px;
}
@media (max-width: 1023px) {
.footer-inner.sidebar {
margin-left: 56px;
}
}
.footer-star {
font-size: 2.5rem;
line-height: 1;
color: #4c1d95;
flex-shrink: 0;
position: absolute;
left: 2rem;
}
.footer-copy {
flex: 1;
text-align: center;
padding: 0 1rem;
}
.footer-center {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 0.25rem;
text-align: center;
}
.footer-links {
font-size: 0.8rem;
}
.footer-links a {
color: #4c1d95;
text-decoration: none;
}
.footer-links a:hover {
text-decoration: underline;
}
.footer-row {
position: relative;
}
.footer-aside {
position: absolute;
right: 2rem;
}
@media (max-width: 639px) {
.footer-star {
font-size: 1.75rem;
left: 1rem;
}
.footer-copy {
padding: 0 0.5rem;
}
.footer-aside {
right: 1rem;
}
.footer-row {
flex-direction: column;
align-items: center;
gap: 1rem;
text-align: center;
}
.footer-star {
position: static;
}
.footer-aside {
position: static;
text-align: center;
}
}
</style>