I wnat you to add the nav bar at the top so user can select how page and other opin in the nav bar
Browse files- about.html +111 -0
- components/footer.js +148 -0
- components/header.js +157 -0
- index.html +2 -4
- meme.html +2 -3
- shop.html +2 -4
- style.css +1 -1
about.html
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!DOCTYPE html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="UTF-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 6 |
+
<title>About - Wear.Fun</title>
|
| 7 |
+
<link rel="icon" type="image/x-icon" href="/public/logo.png">
|
| 8 |
+
<link rel="stylesheet" href="style.css">
|
| 9 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
| 10 |
+
<script src="https://unpkg.com/feather-icons"></script>
|
| 11 |
+
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
| 12 |
+
</head>
|
| 13 |
+
<body class="bg-black text-white">
|
| 14 |
+
<custom-header></custom-header>
|
| 15 |
+
|
| 16 |
+
<main class="pt-24 pb-12 px-6">
|
| 17 |
+
<div class="max-w-4xl mx-auto">
|
| 18 |
+
<h1 class="text-3xl md:text-4xl font-bold text-center mb-8">About Wear.Fun</h1>
|
| 19 |
+
|
| 20 |
+
<section class="mb-16">
|
| 21 |
+
<div class="bg-gray-900 rounded-2xl p-8 md:p-12 border border-gray-800">
|
| 22 |
+
<h2 class="text-2xl font-bold mb-6 text-red-500">From Memes to Merch 🚀</h2>
|
| 23 |
+
<p class="text-gray-300 mb-6 leading-relaxed">
|
| 24 |
+
Wear.Fun is your go-to platform for turning internet culture into wearable art. We believe that humor should be worn proudly, and your favorite memes deserve more than just a screenshot in your camera roll.
|
| 25 |
+
</p>
|
| 26 |
+
<p class="text-gray-300 mb-6 leading-relaxed">
|
| 27 |
+
Founded by meme enthusiasts and crypto degens, we've created the fastest way to transform any funny image, crypto logo, or inside joke into high-quality apparel that you can actually wear.
|
| 28 |
+
</p>
|
| 29 |
+
</div>
|
| 30 |
+
</section>
|
| 31 |
+
|
| 32 |
+
<section class="mb-16">
|
| 33 |
+
<h2 class="text-2xl font-bold text-center mb-12">How It Works</h2>
|
| 34 |
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
| 35 |
+
<div class="text-center">
|
| 36 |
+
<div class="w-20 h-20 bg-red-600 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 37 |
+
<i data-feather="upload" class="w-10 h-10"></i>
|
| 38 |
+
</div>
|
| 39 |
+
<h3 class="font-bold text-lg mb-2">Upload</h3>
|
| 40 |
+
<p class="text-gray-400">Drop your meme or design, we handle the rest</p>
|
| 41 |
+
</div>
|
| 42 |
+
|
| 43 |
+
<div class="text-center">
|
| 44 |
+
<div class="w-20 h-20 bg-red-600 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 45 |
+
<i data-feather="edit-3" class="w-10 h-10"></i>
|
| 46 |
+
</div>
|
| 47 |
+
<h3 class="font-bold text-lg mb-2">Customize</h3>
|
| 48 |
+
<p class="text-gray-400">Add captions and make it uniquely yours</p>
|
| 49 |
+
</div>
|
| 50 |
+
|
| 51 |
+
<div class="text-center">
|
| 52 |
+
<div class="w-20 h-20 bg-red-600 rounded-full flex items-center justify-center mx-auto mb-4">
|
| 53 |
+
<i data-feather="package" class="w-10 h-10"></i>
|
| 54 |
+
</div>
|
| 55 |
+
<h3 class="font-bold text-lg mb-2">Wear It</h3>
|
| 56 |
+
<p class="text-gray-400">Get your custom merch delivered fast</p>
|
| 57 |
+
</div>
|
| 58 |
+
</div>
|
| 59 |
+
</section>
|
| 60 |
+
|
| 61 |
+
<section class="mb-16">
|
| 62 |
+
<h2 class="text-2xl font-bold text-center mb-12">Why Choose Wear.Fun?</h2>
|
| 63 |
+
<div class="grid grid-cols-1 md:grid-cols-2 gap-8">
|
| 64 |
+
<div class="bg-gray-900 p-6 rounded-xl border border-gray-800">
|
| 65 |
+
<i data-feather="zap" class="w-8 h-8 text-yellow-500 mb-4"></i>
|
| 66 |
+
<h3 class="font-bold text-lg mb-2">Lightning Fast</h3>
|
| 67 |
+
<p class="text-gray-400">From upload to mockup in seconds, not hours</p>
|
| 68 |
+
</div>
|
| 69 |
+
|
| 70 |
+
<div class="bg-gray-900 p-6 rounded-xl border border-gray-800">
|
| 71 |
+
<i data-feather="award" class="w-8 h-8 text-green-500 mb-4"></i>
|
| 72 |
+
<h3 class="font-bold text-lg mb-2">Premium Quality</h3>
|
| 73 |
+
<p class="text-gray-400">Only the best materials for your memes</p>
|
| 74 |
+
</div>
|
| 75 |
+
|
| 76 |
+
<div class="bg-gray-900 p-6 rounded-xl border border-gray-800">
|
| 77 |
+
<i data-feather="cpu" class="w-8 h-8 text-blue-500 mb-4"></i>
|
| 78 |
+
<h3 class="font-bold text-lg mb-2">AI Powered</h3>
|
| 79 |
+
<p class="text-gray-400">Smart caption suggestions to enhance your designs</p>
|
| 80 |
+
</div>
|
| 81 |
+
|
| 82 |
+
<div class="bg-gray-900 p-6 rounded-xl border border-gray-800">
|
| 83 |
+
<i data-feather="users" class="w-8 h-8 text-purple-500 mb-4"></i>
|
| 84 |
+
<h3 class="font-bold text-lg mb-2">Community Driven</h3>
|
| 85 |
+
<p class="text-gray-400">Built by meme lovers, for meme lovers</p>
|
| 86 |
+
</div>
|
| 87 |
+
</div>
|
| 88 |
+
</section>
|
| 89 |
+
|
| 90 |
+
<section class="text-center">
|
| 91 |
+
<div class="bg-gradient-to-r from-red-900 to-black rounded-2xl p-8 md:p-12">
|
| 92 |
+
<h2 class="text-2xl md:text-3xl font-bold mb-4">Ready to Start Creating?</h2>
|
| 93 |
+
<p class="text-gray-300 mb-8">Join thousands of meme enthusiasts turning humor into fashion</p>
|
| 94 |
+
<a href="/meme.html" class="inline-block bg-red-600 hover:bg-red-700 text-white px-8 py-4 rounded-full shadow-lg font-semibold transition transform hover:scale-105">
|
| 95 |
+
Create Your First Design
|
| 96 |
+
</a>
|
| 97 |
+
</div>
|
| 98 |
+
</section>
|
| 99 |
+
</div>
|
| 100 |
+
</main>
|
| 101 |
+
|
| 102 |
+
<custom-footer></custom-footer>
|
| 103 |
+
|
| 104 |
+
<script src="components/header.js"></script>
|
| 105 |
+
<script src="components/footer.js"></script>
|
| 106 |
+
<script src="script.js"></script>
|
| 107 |
+
<script>
|
| 108 |
+
feather.replace();
|
| 109 |
+
</script>
|
| 110 |
+
</body>
|
| 111 |
+
</html>
|
components/footer.js
ADDED
|
@@ -0,0 +1,148 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class CustomFooter extends HTMLElement {
|
| 2 |
+
connectedCallback() {
|
| 3 |
+
this.attachShadow({ mode: 'open' });
|
| 4 |
+
this.shadowRoot.innerHTML = `
|
| 5 |
+
<style>
|
| 6 |
+
footer {
|
| 7 |
+
background: #111827;
|
| 8 |
+
border-top: 1px solid #374151;
|
| 9 |
+
padding: 3rem 2rem 2rem;
|
| 10 |
+
margin-top: 4rem;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
.footer-content {
|
| 14 |
+
max-width: 1280px;
|
| 15 |
+
margin: 0 auto;
|
| 16 |
+
display: grid;
|
| 17 |
+
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
|
| 18 |
+
gap: 2rem;
|
| 19 |
+
margin-bottom: 2rem;
|
| 20 |
+
}
|
| 21 |
+
|
| 22 |
+
.footer-section h3 {
|
| 23 |
+
color: white;
|
| 24 |
+
font-size: 1.125rem;
|
| 25 |
+
font-weight: bold;
|
| 26 |
+
margin-bottom: 1rem;
|
| 27 |
+
}
|
| 28 |
+
|
| 29 |
+
.footer-section ul {
|
| 30 |
+
list-style: none;
|
| 31 |
+
padding: 0;
|
| 32 |
+
margin: 0;
|
| 33 |
+
}
|
| 34 |
+
|
| 35 |
+
.footer-section ul li {
|
| 36 |
+
margin-bottom: 0.5rem;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
.footer-section a {
|
| 40 |
+
color: #9ca3af;
|
| 41 |
+
text-decoration: none;
|
| 42 |
+
transition: color 0.3s;
|
| 43 |
+
}
|
| 44 |
+
|
| 45 |
+
.footer-section a:hover {
|
| 46 |
+
color: #ef4444;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
.footer-bottom {
|
| 50 |
+
max-width: 1280px;
|
| 51 |
+
margin: 0 auto;
|
| 52 |
+
padding-top: 2rem;
|
| 53 |
+
border-top: 1px solid #374151;
|
| 54 |
+
text-align: center;
|
| 55 |
+
color: #6b7280;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.social-links {
|
| 59 |
+
display: flex;
|
| 60 |
+
gap: 1rem;
|
| 61 |
+
margin-top: 1rem;
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
.social-links a {
|
| 65 |
+
display: flex;
|
| 66 |
+
align-items: center;
|
| 67 |
+
justify-content: center;
|
| 68 |
+
width: 40px;
|
| 69 |
+
height: 40px;
|
| 70 |
+
background: #374151;
|
| 71 |
+
border-radius: 50%;
|
| 72 |
+
transition: background 0.3s;
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
.social-links a:hover {
|
| 76 |
+
background: #ef4444;
|
| 77 |
+
}
|
| 78 |
+
</style>
|
| 79 |
+
|
| 80 |
+
<footer>
|
| 81 |
+
<div class="footer-content">
|
| 82 |
+
<div class="footer-section">
|
| 83 |
+
<h3>Wear.Fun</h3>
|
| 84 |
+
<p style="color: #9ca3af; line-height: 1.6;">
|
| 85 |
+
From memes to merch - turn your favorite jokes into wearable art in seconds.
|
| 86 |
+
</p>
|
| 87 |
+
<div class="social-links">
|
| 88 |
+
<a href="#" aria-label="Twitter">
|
| 89 |
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
| 90 |
+
<path d="M23 3a10.9 10.9 0 01-3.14 1.53 4.48 4.48 0 00-7.86 3v1A10.66 10.66 0 013 4s-4 9 5 13a11.64 11.64 0 01-7 2c9 5 20 0 20-11.5a4.5 4.5 0 00-.08-.83A7.72 7.72 0 0023 3z"></path>
|
| 91 |
+
</svg>
|
| 92 |
+
</a>
|
| 93 |
+
<a href="#" aria-label="Instagram">
|
| 94 |
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
| 95 |
+
<rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect>
|
| 96 |
+
<path d="M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37z"></path>
|
| 97 |
+
<line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line>
|
| 98 |
+
</svg>
|
| 99 |
+
</a>
|
| 100 |
+
<a href="#" aria-label="Discord">
|
| 101 |
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
|
| 102 |
+
<path d="M8.51 7.26c0-.4-.32-.73-.72-.73-.4 0-.72.33-.72.73v.07c0 .4.32.72.72.72.4 0 .72-.32.72-.72v-.07zm3.91 0c0-.4-.32-.73-.72-.73-.4 0-.72.33-.72.73v.07c0 .4.32.72.72.72.4 0 .72-.32.72-.72v-.07z"></path>
|
| 103 |
+
<path d="M20.79 4.23A17.6 17.6 0 0015.7 2.4 18.4 18.4 0 0015.1 3.8a16.2 16.2 0 00-4.8 0A18.4 18.4 0 009.6 2.4 17.6 17.6 0 004.5 4.23a16.9 16.9 0 00-2.4 6.3 16.7 16.7 0 001.4 10.7c.6.9 1.3 1.7 2.1 2.4.8.7 1.7 1.3 2.7 1.8.4-.5.8-1 1.1-1.5a11.6 11.6 0 01-2.5-1.2l.6-.3c5.2 2.4 10.8 2.4 15.9 0l.6.3a11.6 11.6 0 01-2.5 1.2c.3.5.7 1 1.1 1.5 1-.5 1.9-1.1 2.7-1.8.8-.7 1.5-1.5 2.1-2.4a16.7 16.7 0 001.4-10.7 16.9 16.9 0 00-2.4-6.3z"></path>
|
| 104 |
+
</svg>
|
| 105 |
+
</a>
|
| 106 |
+
</div>
|
| 107 |
+
</div>
|
| 108 |
+
|
| 109 |
+
<div class="footer-section">
|
| 110 |
+
<h3>Quick Links</h3>
|
| 111 |
+
<ul>
|
| 112 |
+
<li><a href="/">Home</a></li>
|
| 113 |
+
<li><a href="/meme.html">Create Design</a></li>
|
| 114 |
+
<li><a href="/shop.html">Shop</a></li>
|
| 115 |
+
<li><a href="/about.html">About Us</a></li>
|
| 116 |
+
</ul>
|
| 117 |
+
</div>
|
| 118 |
+
|
| 119 |
+
<div class="footer-section">
|
| 120 |
+
<h3>Products</h3>
|
| 121 |
+
<ul>
|
| 122 |
+
<li><a href="/shop.html">T-Shirts</a></li>
|
| 123 |
+
<li><a href="/shop.html">Hoodies</a></li>
|
| 124 |
+
<li><a href="/shop.html">Mugs</a></li>
|
| 125 |
+
<li><a href="/shop.html">Accessories</a></li>
|
| 126 |
+
</ul>
|
| 127 |
+
</div>
|
| 128 |
+
|
| 129 |
+
<div class="footer-section">
|
| 130 |
+
<h3>Support</h3>
|
| 131 |
+
<ul>
|
| 132 |
+
<li><a href="#">Contact Us</a></li>
|
| 133 |
+
<li><a href="#">FAQ</a></li>
|
| 134 |
+
<li><a href="#">Shipping Info</a></li>
|
| 135 |
+
<li><a href="#">Returns</a></li>
|
| 136 |
+
</ul>
|
| 137 |
+
</div>
|
| 138 |
+
</div>
|
| 139 |
+
|
| 140 |
+
<div class="footer-bottom">
|
| 141 |
+
<p>© 2024 Wear.Fun. All rights reserved. | Turn memes into merch 🚀</p>
|
| 142 |
+
</div>
|
| 143 |
+
</footer>
|
| 144 |
+
`;
|
| 145 |
+
}
|
| 146 |
+
}
|
| 147 |
+
|
| 148 |
+
customElements.define('custom-footer', CustomFooter);
|
components/header.js
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class CustomHeader extends HTMLElement {
|
| 2 |
+
connectedCallback() {
|
| 3 |
+
this.attachShadow({ mode: 'open' });
|
| 4 |
+
this.shadowRoot.innerHTML = `
|
| 5 |
+
<style>
|
| 6 |
+
header {
|
| 7 |
+
background: rgba(0, 0, 0, 0.95);
|
| 8 |
+
backdrop-filter: blur(10px);
|
| 9 |
+
border-bottom: 1px solid #374151;
|
| 10 |
+
position: fixed;
|
| 11 |
+
top: 0;
|
| 12 |
+
left: 0;
|
| 13 |
+
right: 0;
|
| 14 |
+
z-index: 50;
|
| 15 |
+
}
|
| 16 |
+
|
| 17 |
+
nav {
|
| 18 |
+
max-width: 1280px;
|
| 19 |
+
margin: 0 auto;
|
| 20 |
+
padding: 1rem 2rem;
|
| 21 |
+
display: flex;
|
| 22 |
+
justify-content: space-between;
|
| 23 |
+
align-items: center;
|
| 24 |
+
}
|
| 25 |
+
|
| 26 |
+
.logo {
|
| 27 |
+
display: flex;
|
| 28 |
+
align-items: center;
|
| 29 |
+
gap: 0.5rem;
|
| 30 |
+
font-size: 1.5rem;
|
| 31 |
+
font-weight: bold;
|
| 32 |
+
color: white;
|
| 33 |
+
text-decoration: none;
|
| 34 |
+
transition: color 0.3s;
|
| 35 |
+
}
|
| 36 |
+
|
| 37 |
+
.logo:hover {
|
| 38 |
+
color: #ef4444;
|
| 39 |
+
}
|
| 40 |
+
|
| 41 |
+
.nav-links {
|
| 42 |
+
display: flex;
|
| 43 |
+
gap: 2rem;
|
| 44 |
+
align-items: center;
|
| 45 |
+
list-style: none;
|
| 46 |
+
margin: 0;
|
| 47 |
+
padding: 0;
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
.nav-links a {
|
| 51 |
+
color: #9ca3af;
|
| 52 |
+
text-decoration: none;
|
| 53 |
+
font-weight: 500;
|
| 54 |
+
transition: color 0.3s;
|
| 55 |
+
position: relative;
|
| 56 |
+
}
|
| 57 |
+
|
| 58 |
+
.nav-links a:hover {
|
| 59 |
+
color: white;
|
| 60 |
+
}
|
| 61 |
+
|
| 62 |
+
.nav-links a.active {
|
| 63 |
+
color: #ef4444;
|
| 64 |
+
}
|
| 65 |
+
|
| 66 |
+
.nav-links a.active::after {
|
| 67 |
+
content: '';
|
| 68 |
+
position: absolute;
|
| 69 |
+
bottom: -4px;
|
| 70 |
+
left: 0;
|
| 71 |
+
right: 0;
|
| 72 |
+
height: 2px;
|
| 73 |
+
background: #ef4444;
|
| 74 |
+
}
|
| 75 |
+
|
| 76 |
+
.mobile-menu-btn {
|
| 77 |
+
display: none;
|
| 78 |
+
background: none;
|
| 79 |
+
border: none;
|
| 80 |
+
color: white;
|
| 81 |
+
cursor: pointer;
|
| 82 |
+
padding: 0.5rem;
|
| 83 |
+
}
|
| 84 |
+
|
| 85 |
+
@media (max-width: 768px) {
|
| 86 |
+
.nav-links {
|
| 87 |
+
display: none;
|
| 88 |
+
position: absolute;
|
| 89 |
+
top: 100%;
|
| 90 |
+
left: 0;
|
| 91 |
+
right: 0;
|
| 92 |
+
background: rgba(0, 0, 0, 0.98);
|
| 93 |
+
flex-direction: column;
|
| 94 |
+
padding: 1rem 2rem;
|
| 95 |
+
border-bottom: 1px solid #374151;
|
| 96 |
+
gap: 1rem;
|
| 97 |
+
}
|
| 98 |
+
|
| 99 |
+
.nav-links.mobile-open {
|
| 100 |
+
display: flex;
|
| 101 |
+
}
|
| 102 |
+
|
| 103 |
+
.mobile-menu-btn {
|
| 104 |
+
display: block;
|
| 105 |
+
}
|
| 106 |
+
}
|
| 107 |
+
</style>
|
| 108 |
+
|
| 109 |
+
<header>
|
| 110 |
+
<nav>
|
| 111 |
+
<a href="/" class="logo">
|
| 112 |
+
<span>Wear.Fun</span>
|
| 113 |
+
<span style="color: #ef4444;">🚀</span>
|
| 114 |
+
</a>
|
| 115 |
+
|
| 116 |
+
<ul class="nav-links" id="navLinks">
|
| 117 |
+
<li><a href="/" class="nav-link">Home</a></li>
|
| 118 |
+
<li><a href="/meme.html" class="nav-link">Create</a></li>
|
| 119 |
+
<li><a href="/shop.html" class="nav-link">Shop</a></li>
|
| 120 |
+
<li><a href="/about.html" class="nav-link">About</a></li>
|
| 121 |
+
</ul>
|
| 122 |
+
|
| 123 |
+
<button class="mobile-menu-btn" id="mobileMenuBtn">
|
| 124 |
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
|
| 125 |
+
<line x1="3" y1="6" x2="21" y2="6"></line>
|
| 126 |
+
<line x1="3" y1="12" x2="21" y2="12"></line>
|
| 127 |
+
<line x1="3" y1="18" x2="21" y2="18"></line>
|
| 128 |
+
</svg>
|
| 129 |
+
</button>
|
| 130 |
+
</nav>
|
| 131 |
+
</header>
|
| 132 |
+
`;
|
| 133 |
+
|
| 134 |
+
// Mobile menu toggle
|
| 135 |
+
const mobileMenuBtn = this.shadowRoot.getElementById('mobileMenuBtn');
|
| 136 |
+
const navLinks = this.shadowRoot.getElementById('navLinks');
|
| 137 |
+
|
| 138 |
+
mobileMenuBtn.addEventListener('click', () => {
|
| 139 |
+
navLinks.classList.toggle('mobile-open');
|
| 140 |
+
});
|
| 141 |
+
|
| 142 |
+
// Set active link based on current page
|
| 143 |
+
const currentPath = window.location.pathname;
|
| 144 |
+
const navLinksElements = this.shadowRoot.querySelectorAll('.nav-link');
|
| 145 |
+
|
| 146 |
+
navLinksElements.forEach(link => {
|
| 147 |
+
const href = link.getAttribute('href');
|
| 148 |
+
if ((currentPath === '/' && href === '/') ||
|
| 149 |
+
(currentPath !== '/' && href === currentPath) ||
|
| 150 |
+
(currentPath.endsWith(href) && href !== '/')) {
|
| 151 |
+
link.classList.add('active');
|
| 152 |
+
}
|
| 153 |
+
});
|
| 154 |
+
}
|
| 155 |
+
}
|
| 156 |
+
|
| 157 |
+
customElements.define('custom-header', CustomHeader);
|
index.html
CHANGED
|
@@ -12,8 +12,7 @@
|
|
| 12 |
</head>
|
| 13 |
<body class="bg-black text-white">
|
| 14 |
<custom-header></custom-header>
|
| 15 |
-
|
| 16 |
-
<main>
|
| 17 |
<section class="min-h-screen flex items-center justify-center relative overflow-hidden">
|
| 18 |
<!-- Animated background -->
|
| 19 |
<div class="absolute inset-0 bg-gradient-to-r from-red-700 via-black to-red-900 opacity-20 animate-pulse"></div>
|
|
@@ -149,9 +148,8 @@
|
|
| 149 |
</main>
|
| 150 |
|
| 151 |
<custom-footer></custom-footer>
|
| 152 |
-
|
| 153 |
<script src="components/header.js"></script>
|
| 154 |
-
|
| 155 |
<script src="script.js"></script>
|
| 156 |
<script>
|
| 157 |
feather.replace();
|
|
|
|
| 12 |
</head>
|
| 13 |
<body class="bg-black text-white">
|
| 14 |
<custom-header></custom-header>
|
| 15 |
+
<main>
|
|
|
|
| 16 |
<section class="min-h-screen flex items-center justify-center relative overflow-hidden">
|
| 17 |
<!-- Animated background -->
|
| 18 |
<div class="absolute inset-0 bg-gradient-to-r from-red-700 via-black to-red-900 opacity-20 animate-pulse"></div>
|
|
|
|
| 148 |
</main>
|
| 149 |
|
| 150 |
<custom-footer></custom-footer>
|
|
|
|
| 151 |
<script src="components/header.js"></script>
|
| 152 |
+
<script src="components/footer.js"></script>
|
| 153 |
<script src="script.js"></script>
|
| 154 |
<script>
|
| 155 |
feather.replace();
|
meme.html
CHANGED
|
@@ -12,8 +12,7 @@
|
|
| 12 |
</head>
|
| 13 |
<body class="bg-black text-white">
|
| 14 |
<custom-header></custom-header>
|
| 15 |
-
|
| 16 |
-
<main class="py-12 px-6">
|
| 17 |
<div class="max-w-4xl mx-auto">
|
| 18 |
<h1 class="text-3xl md:text-4xl font-bold text-center mb-2">Meme Generator</h1>
|
| 19 |
<p class="text-gray-400 text-center mb-12">Turn your memes into wearable art</p>
|
|
@@ -80,7 +79,7 @@
|
|
| 80 |
|
| 81 |
<custom-footer></custom-footer>
|
| 82 |
<script src="components/header.js"></script>
|
| 83 |
-
|
| 84 |
<script src="script.js"></script>
|
| 85 |
<script>
|
| 86 |
feather.replace();
|
|
|
|
| 12 |
</head>
|
| 13 |
<body class="bg-black text-white">
|
| 14 |
<custom-header></custom-header>
|
| 15 |
+
<main class="py-12 px-6">
|
|
|
|
| 16 |
<div class="max-w-4xl mx-auto">
|
| 17 |
<h1 class="text-3xl md:text-4xl font-bold text-center mb-2">Meme Generator</h1>
|
| 18 |
<p class="text-gray-400 text-center mb-12">Turn your memes into wearable art</p>
|
|
|
|
| 79 |
|
| 80 |
<custom-footer></custom-footer>
|
| 81 |
<script src="components/header.js"></script>
|
| 82 |
+
<script src="components/footer.js"></script>
|
| 83 |
<script src="script.js"></script>
|
| 84 |
<script>
|
| 85 |
feather.replace();
|
shop.html
CHANGED
|
@@ -12,8 +12,7 @@
|
|
| 12 |
</head>
|
| 13 |
<body class="bg-black text-white">
|
| 14 |
<custom-header></custom-header>
|
| 15 |
-
|
| 16 |
-
<main class="py-12 px-6">
|
| 17 |
<div class="max-w-7xl mx-auto">
|
| 18 |
<h1 class="text-3xl md:text-4xl font-bold text-center mb-2">Shop Collection</h1>
|
| 19 |
<p class="text-gray-400 text-center mb-12">Wear your humor with pride</p>
|
|
@@ -142,9 +141,8 @@
|
|
| 142 |
</main>
|
| 143 |
|
| 144 |
<custom-footer></custom-footer>
|
| 145 |
-
|
| 146 |
<script src="components/header.js"></script>
|
| 147 |
-
|
| 148 |
<script src="script.js"></script>
|
| 149 |
<script>
|
| 150 |
feather.replace();
|
|
|
|
| 12 |
</head>
|
| 13 |
<body class="bg-black text-white">
|
| 14 |
<custom-header></custom-header>
|
| 15 |
+
<main class="py-12 px-6">
|
|
|
|
| 16 |
<div class="max-w-7xl mx-auto">
|
| 17 |
<h1 class="text-3xl md:text-4xl font-bold text-center mb-2">Shop Collection</h1>
|
| 18 |
<p class="text-gray-400 text-center mb-12">Wear your humor with pride</p>
|
|
|
|
| 141 |
</main>
|
| 142 |
|
| 143 |
<custom-footer></custom-footer>
|
|
|
|
| 144 |
<script src="components/header.js"></script>
|
| 145 |
+
<script src="components/footer.js"></script>
|
| 146 |
<script src="script.js"></script>
|
| 147 |
<script>
|
| 148 |
feather.replace();
|
style.css
CHANGED
|
@@ -4,8 +4,8 @@ body {
|
|
| 4 |
margin: 0;
|
| 5 |
padding: 0;
|
| 6 |
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
|
|
|
| 7 |
}
|
| 8 |
-
|
| 9 |
h1 {
|
| 10 |
font-size: 16px;
|
| 11 |
margin-top: 0;
|
|
|
|
| 4 |
margin: 0;
|
| 5 |
padding: 0;
|
| 6 |
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
|
| 7 |
+
padding-top: 80px; /* Space for fixed header */
|
| 8 |
}
|
|
|
|
| 9 |
h1 {
|
| 10 |
font-size: 16px;
|
| 11 |
margin-top: 0;
|