File size: 4,571 Bytes
76c0c73 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | class CustomFooter extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
.footer-link:hover {
@apply text-primary-500 dark:text-primary-400;
}
</style>
<footer class="bg-white dark:bg-gray-800 border-t border-gray-200 dark:border-gray-700 py-8 mt-12">
<div class="container mx-auto px-4">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<h3 class="text-lg font-semibold text-gray-800 dark:text-white mb-4">NodeNest</h3>
<p class="text-gray-600 dark:text-gray-400 mb-4">Simple yet powerful Node.js hosting control panel.</p>
<div class="flex space-x-4">
<a href="#" class="text-gray-500 hover:text-primary-500 dark:hover:text-primary-400">
<i data-feather="github" class="w-5 h-5"></i>
</a>
<a href="#" class="text-gray-500 hover:text-primary-500 dark:hover:text-primary-400">
<i data-feather="twitter" class="w-5 h-5"></i>
</a>
<a href="#" class="text-gray-500 hover:text-primary-500 dark:hover:text-primary-400">
<i data-feather="discord" class="w-5 h-5"></i>
</a>
</div>
</div>
<div>
<h3 class="text-lg font-semibold text-gray-800 dark:text-white mb-4">Product</h3>
<ul class="space-y-2">
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Features</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Pricing</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Documentation</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Changelog</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold text-gray-800 dark:text-white mb-4">Support</h3>
<ul class="space-y-2">
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Help Center</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Community</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Status</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Contact Us</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold text-gray-800 dark:text-white mb-4">Legal</h3>
<ul class="space-y-2">
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Privacy Policy</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Terms of Service</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Security</a></li>
<li><a href="#" class="footer-link text-gray-600 dark:text-gray-400 hover:underline">Cookies</a></li>
</ul>
</div>
</div>
<div class="mt-8 pt-6 border-t border-gray-200 dark:border-gray-700 text-center text-gray-500 dark:text-gray-400 text-sm">
<p>© ${new Date().getFullYear()} NodeNest. All rights reserved.</p>
</div>
</div>
</footer>
`;
}
}
customElements.define('custom-footer', CustomFooter); |