Spaces:
Running
Running
| class CustomFooter extends HTMLElement { | |
| connectedCallback() { | |
| this.attachShadow({ mode: 'open' }); | |
| this.shadowRoot.innerHTML = ` | |
| <style> | |
| footer { | |
| background: rgba(30, 30, 30, 0.8); | |
| backdrop-filter: blur(10px); | |
| } | |
| .social-icon:hover { | |
| color: #a78bfa; | |
| transform: translateY(-2px); | |
| } | |
| </style> | |
| <footer class="border-t border-gray-700 mt-12"> | |
| <div class="container mx-auto px-4 py-8"> | |
| <div class="grid md:grid-cols-4 gap-8"> | |
| <div> | |
| <h3 class="text-xl font-bold mb-4 logo">MelodyMapper</h3> | |
| <p class="text-gray-400">Transforming audio into beautiful piano roll visualizations since 2023.</p> | |
| </div> | |
| <div> | |
| <h4 class="font-semibold mb-4">Product</h4> | |
| <ul class="space-y-2"> | |
| <li><a href="#" class="text-gray-400 hover:text-purple-300 transition-colors">Features</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-purple-300 transition-colors">Pricing</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-purple-300 transition-colors">API</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h4 class="font-semibold mb-4">Company</h4> | |
| <ul class="space-y-2"> | |
| <li><a href="#" class="text-gray-400 hover:text-purple-300 transition-colors">About</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-purple-300 transition-colors">Blog</a></li> | |
| <li><a href="#" class="text-gray-400 hover:text-purple-300 transition-colors">Careers</a></li> | |
| </ul> | |
| </div> | |
| <div> | |
| <h4 class="font-semibold mb-4">Connect</h4> | |
| <div class="flex space-x-4"> | |
| <a href="#" class="social-icon text-gray-400 transition-all duration-200" data-feather="twitter"></a> | |
| <a href="#" class="social-icon text-gray-400 transition-all duration-200" data-feather="github"></a> | |
| <a href="#" class="social-icon text-gray-400 transition-all duration-200" data-feather="instagram"></a> | |
| <a href="#" class="social-icon text-gray-400 transition-all duration-200" data-feather="youtube"></a> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-500 text-sm"> | |
| <p>© 2023 MelodyMapper. All rights reserved.</p> | |
| </div> | |
| </div> | |
| </footer> | |
| `; | |
| } | |
| } | |
| customElements.define('custom-footer', CustomFooter); |