duuinh's picture
I want to redesign the UI for a mobile first website. With a clean UI.
d68d643 verified
class CustomFooter extends HTMLElement {
connectedCallback() {
this.attachShadow({ mode: 'open' });
this.shadowRoot.innerHTML = `
<style>
:host {
display: block;
background: linear-gradient(to right, var(--primary), var(--secondary));
color: white;
padding: 3rem 1rem;
margin-top: 3rem;
}
.footer-container {
max-width: 1280px;
margin: 0 auto;
}
.footer-grid {
display: grid;
grid-template-columns: 1fr;
gap: 2.5rem;
}
.footer-logo {
display: flex;
align-items: center;
gap: 0.75rem;
margin-bottom: 1rem;
}
.footer-logo-icon {
background: white;
color: var(--primary);
padding: 0.5rem;
border-radius: 50%;
}
.footer-description {
opacity: 0.9;
margin-bottom: 1rem;
font-size: 0.875rem;
}
.social-icons {
display: flex;
gap: 1rem;
}
.social-icon {
opacity: 0.8;
transition: opacity 0.2s;
}
.social-icon:hover {
opacity: 1;
}
.footer-heading {
font-size: 1.125rem;
font-weight: 600;
margin-bottom: 1rem;
}
.footer-links {
display: flex;
flex-direction: column;
gap: 0.75rem;
}
.footer-link {
display: flex;
align-items: center;
gap: 0.5rem;
opacity: 0.8;
transition: opacity 0.2s;
}
.footer-link:hover {
opacity: 1;
}
.footer-link-icon {
width: 1rem;
height: 1rem;
}
.contact-item {
display: flex;
gap: 0.75rem;
margin-bottom: 1rem;
}
.contact-icon {
flex-shrink: 0;
margin-top: 0.25rem;
}
.footer-divider {
border-top: 1px solid rgba(255, 255, 255, 0.1);
margin-top: 2.5rem;
padding-top: 1.5rem;
text-align: center;
font-size: 0.875rem;
opacity: 0.8;
}
@media (min-width: 768px) {
.footer-grid {
grid-template-columns: repeat(3, 1fr);
}
}
</style>
<footer>
<div class="footer-container">
<div class="footer-grid">
<div class="container mx-auto px-4 sm:px-6">
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<div>
<div class="flex items-center space-x-3 mb-4">
<div class="bg-white text-primary p-2 rounded-full">
<i data-feather="globe"></i>
</div>
<span class="text-2xl font-bold">Lingua Noel</span>
</div>
<p class="text-white opacity-90 mb-4">Your AI-powered language learning companion with a festive twist this holiday season.</p>
<div class="flex space-x-4">
<a href="#" class="social-icon text-white opacity-80 hover:opacity-100">
<i data-feather="facebook"></i>
</a>
<a href="#" class="social-icon text-white opacity-80 hover:opacity-100">
<i data-feather="twitter"></i>
</a>
<a href="#" class="social-icon text-white opacity-80 hover:opacity-100">
<i data-feather="instagram"></i>
</a>
<a href="#" class="social-icon text-white opacity-80 hover:opacity-100">
<i data-feather="youtube"></i>
</a>
</div>
</div>
<div>
<h3 class="font-bold text-xl mb-4">Quick Links</h3>
<ul class="space-y-2">
<li><a href="/about.html" class="footer-link text-white opacity-80 hover:opacity-100 transition flex items-center"><i data-feather="chevron-right" class="mr-2 w-4 h-4"></i> About Us</a></li>
<li><a href="/pricing.html" class="footer-link text-white opacity-80 hover:opacity-100 transition flex items-center"><i data-feather="chevron-right" class="mr-2 w-4 h-4"></i> Pricing</a></li>
<li><a href="/support.html" class="footer-link text-white opacity-80 hover:opacity-100 transition flex items-center"><i data-feather="chevron-right" class="mr-2 w-4 h-4"></i> Support</a></li>
<li><a href="/contact.html" class="footer-link text-white opacity-80 hover:opacity-100 transition flex items-center"><i data-feather="chevron-right" class="mr-2 w-4 h-4"></i> Contact</a></li>
</ul>
</div>
<div>
<h3 class="font-bold text-xl mb-4">Contact Info</h3>
<ul class="space-y-3">
<li class="flex items-start">
<i data-feather="mail" class="mr-3 mt-1 w-5 h-5"></i>
<span>support@linguanoelexample.com</span>
</li>
<li class="flex items-start">
<i data-feather="phone" class="mr-3 mt-1 w-5 h-5"></i>
<span>+1 (555) 123-4567</span>
</li>
<li class="flex items-start">
<i data-feather="map-pin" class="mr-3 mt-1 w-5 h-5"></i>
<span>123 Holiday Street, Christmasville, CV 12345</span>
</li>
</ul>
</div>
</div>
<div class="border-t border-white border-opacity-20 mt-8 pt-6 text-center">
<p class="text-white opacity-80">© 2023 Lingua Noel. All rights reserved.</p>
</div>
</div>
</footer>
`;
}
}
customElements.define('custom-footer', CustomFooter);