Tuxifan's picture
CROW_ROUTE(app, "/")([]() {
8876673 verified
class CustomFooter extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
.footer {
background: linear-gradient(135deg, #1f2937 0%, #111827 100%);
}
.link {
transition: all 0.2s ease-in-out;
}
.link:hover {
transform: translateY(-1px);
}
</style>
<footer class="footer mt-12">
<div class="container mx-auto px-4 py-8">
<div class="flex flex-col md:flex-row items-center justify-between gap-4">
<div class="text-gray-400 text-sm">
© ${new Date().getFullYear()} ScreenStream Studio. All streams preserved.
</div>
<div class="flex items-center gap-6">
<a href="#" class="link text-gray-400 hover:text-white transition-colors">
<i data-feather="help-circle"></i>
</a>
<a href="#" class="link text-gray-400 hover:text-white transition-colors">
<i data-feather="github"></i>
</a>
<a href="#" class="link text-gray-400 hover:text-white transition-colors">
<i data-feather="settings"></i>
</a>
</div>
</div>
</div>
</footer>
`;
// Ensure feather icons are replaced in shadow DOM
setTimeout(() => {
if (this.shadowRoot.querySelector('[data-feather]')) {
feather.replace(this.shadowRoot);
}
}, 100);
}
}
customElements.define('custom-footer', CustomFooter);