commit f10997323ea370eb430f1550e742d22af5d87d9e
Author: root <root@hub.scroll.pub>
Date: 2024-12-24 17:48:21 +0000
Subject: Initial commit
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..c61bbeb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,2 @@
+# volley.scroll.pub
+Website generated from prompt: volleyball keychains for sale $20
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..0472dd7
--- /dev/null
+++ b/index.html
@@ -0,0 +1,90 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+ <meta charset="UTF-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="description" content="Handcrafted volleyball keychains - Perfect gift for volleyball players and fans">
+ <meta name="keywords" content="volleyball, keychain, sports accessories, volleyball gift">
+ <title>Volleyball Keychains | Premium Sports Accessories</title>
+ <link rel="stylesheet" href="style.css">
+</head>
+<body>
+ <header>
+ <nav>
+ <div class="logo">VolleyKey</div>
+ <button class="mobile-menu" aria-label="Toggle Menu">
+ <span></span><span></span><span></span>
+ </button>
+ <ul class="nav-links">
+ <li><a href="#products">Products</a></li>
+ <li><a href="#about">About</a></li>
+ <li><a href="#contact">Contact</a></li>
+ </ul>
+ </nav>
+ </header>
+
+ <main>
+ <section class="hero">
+ <h1>Premium Volleyball Keychains</h1>
+ <p class="tagline">Show your love for the game everywhere you go</p>
+ <div class="cta-button">
+ <button id="shop-now">Shop Now</button>
+ </div>
+ </section>
+
+ <section id="products" class="products">
+ <h2>Our Collection</h2>
+ <div class="product-grid">
+ <article class="product-card">
+ <div class="product-image">
+ <div class="volleyball-spinner"></div>
+ </div>
+ <h3>Classic Volleyball</h3>
+ <p>White & Blue Design</p>
+ <span class="price">$20</span>
+ <button class="add-to-cart">Add to Cart</button>
+ </article>
+
+ <article class="product-card">
+ <div class="product-image">
+ <div class="volleyball-spinner gold"></div>
+ </div>
+ <h3>Golden Spike</h3>
+ <p>Limited Edition</p>
+ <span class="price">$20</span>
+ <button class="add-to-cart">Add to Cart</button>
+ </article>
+
+ <article class="product-card">
+ <div class="product-image">
+ <div class="volleyball-spinner pink"></div>
+ </div>
+ <h3>Pink Power</h3>
+ <p>Neon Collection</p>
+ <span class="price">$20</span>
+ <button class="add-to-cart">Add to Cart</button>
+ </article>
+ </div>
+ </section>
+ </main>
+
+ <footer>
+ <div class="footer-content">
+ <div class="footer-section">
+ <h4>Contact Us</h4>
+ <p>Email: info@volley.scroll.pub</p>
+ <p>Phone: (555) 123-4567</p>
+ </div>
+ <div class="footer-section">
+ <h4>Quick Links</h4>
+ <ul>
+ <li><a href="#products">Products</a></li>
+ <li><a href="#about">About</a></li>
+ <li><a href="#contact">Contact</a></li>
+ </ul>
+ </div>
+ </div>
+ </footer>
+ <script src="script.js"></script>
+</body>
+</html>
diff --git a/script.js b/script.js
new file mode 100644
index 0000000..250d956
--- /dev/null
+++ b/script.js
@@ -0,0 +1,67 @@
+document.addEventListener('DOMContentLoaded', function() {
+ // Mobile Menu Toggle
+ const mobileMenu = document.querySelector('.mobile-menu');
+ const navLinks = document.querySelector('.nav-links');
+
+ mobileMenu.addEventListener('click', function() {
+ navLinks.classList.toggle('active');
+
+ // Animate hamburger to X
+ const spans = this.getElementsByTagName('span');
+ this.classList.toggle('active');
+
+ if (this.classList.contains('active')) {
+ spans[0].style.transform = 'rotate(45deg) translate(5px, 5px)';
+ spans[1].style.opacity = '0';
+ spans[2].style.transform = 'rotate(-45deg) translate(7px, -6px)';
+ } else {
+ spans[0].style.transform = 'none';
+ spans[1].style.opacity = '1';
+ spans[2].style.transform = 'none';
+ }
+ });
+
+ // Smooth Scroll
+ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
+ anchor.addEventListener('click', function (e) {
+ e.preventDefault();
+ const target = document.querySelector(this.getAttribute('href'));
+ target.scrollIntoView({
+ behavior: 'smooth'
+ });
+ });
+ });
+
+ // Add to Cart Animation
+ const addToCartButtons = document.querySelectorAll('.add-to-cart');
+ addToCartButtons.forEach(button => {
+ button.addEventListener('click', function() {
+ this.innerHTML = '✓ Added';
+ this.style.background = '#4CAF50';
+
+ setTimeout(() => {
+ this.innerHTML = 'Add to Cart';
+ this.style.background = '';
+ }, 2000);
+ });
+ });
+
+ // Product Card Hover Effect
+ const productCards = document.querySelectorAll('.product-card');
+ productCards.forEach(card => {
+ card.addEventListener('mouseenter', function() {
+ this.style.transform = 'translateY(-10px)';
+ });
+
+ card.addEventListener('mouseleave', function() {
+ this.style.transform = 'translateY(0)';
+ });
+ });
+
+ // Shop Now Button Effect
+ const shopNowBtn = document.getElementById('shop-now');
+ shopNowBtn.addEventListener('click', function() {
+ const productsSection = document.getElementById('products');
+ productsSection.scrollIntoView({ behavior: 'smooth' });
+ });
+});
diff --git a/style.css b/style.css
new file mode 100644
index 0000000..e9d9807
--- /dev/null
+++ b/style.css
@@ -0,0 +1,259 @@
+:root {
+ --primary-color: #ff4081;
+ --secondary-color: #3f51b5;
+ --background-color: #f8f9fa;
+ --text-color: #333;
+ --transition: all 0.3s ease;
+}
+
+* {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+body {
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
+ line-height: 1.6;
+ color: var(--text-color);
+ background-color: var(--background-color);
+}
+
+/* Header & Navigation */
+header {
+ background: white;
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
+ position: fixed;
+ width: 100%;
+ z-index: 1000;
+}
+
+nav {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ padding: 1rem 5%;
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+.logo {
+ font-size: 1.5rem;
+ font-weight: bold;
+ color: var(--primary-color);
+}
+
+.nav-links {
+ display: flex;
+ list-style: none;
+ gap: 2rem;
+}
+
+.nav-links a {
+ text-decoration: none;
+ color: var(--text-color);
+ font-weight: 500;
+ transition: var(--transition);
+}
+
+.nav-links a:hover {
+ color: var(--primary-color);
+}
+
+/* Hero Section */
+.hero {
+ padding: 8rem 1rem 4rem;
+ text-align: center;
+ background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
+ color: white;
+}
+
+.hero h1 {
+ font-size: 3rem;
+ margin-bottom: 1rem;
+ animation: fadeInUp 1s ease;
+}
+
+.tagline {
+ font-size: 1.2rem;
+ margin-bottom: 2rem;
+ animation: fadeInUp 1s ease 0.2s;
+ opacity: 0;
+ animation-fill-mode: forwards;
+}
+
+/* Products Section */
+.products {
+ padding: 4rem 1rem;
+ max-width: 1200px;
+ margin: 0 auto;
+}
+
+.products h2 {
+ text-align: center;
+ margin-bottom: 3rem;
+ color: var(--secondary-color);
+}
+
+.product-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
+ gap: 2rem;
+ padding: 0 1rem;
+}
+
+.product-card {
+ background: white;
+ border-radius: 15px;
+ padding: 1.5rem;
+ text-align: center;
+ transition: var(--transition);
+ box-shadow: 0 5px 15px rgba(0,0,0,0.1);
+}
+
+.product-card:hover {
+ transform: translateY(-5px);
+ box-shadow: 0 8px 20px rgba(0,0,0,0.15);
+}
+
+.product-image {
+ height: 200px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-bottom: 1rem;
+}
+
+/* Volleyball Spinner Animation */
+.volleyball-spinner {
+ width: 100px;
+ height: 100px;
+ background: radial-gradient(circle at 30% 30%, white 5%, #f0f0f0 6%, #e0e0e0 12%, white 13%, white 20%, #e0e0e0 21%, #d0d0d0 27%, white 28%);
+ border-radius: 50%;
+ animation: spin 4s linear infinite;
+}
+
+.volleyball-spinner.gold {
+ background: radial-gradient(circle at 30% 30%, #ffd700 5%, #ffed4a 6%, #ffc800 12%, #ffd700 13%, #ffd700 20%, #ffc800 21%, #ffb700 27%, #ffd700 28%);
+}
+
+.volleyball-spinner.pink {
+ background: radial-gradient(circle at 30% 30%, #ff69b4 5%, #ff1493 6%, #ff69b4 12%, #ff1493 13%, #ff69b4 20%, #ff1493 21%, #ff69b4 27%, #ff1493 28%);
+}
+
+@keyframes spin {
+ 100% { transform: rotate(360deg); }
+}
+
+/* Buttons */
+.add-to-cart, #shop-now {
+ background: var(--primary-color);
+ color: white;
+ border: none;
+ padding: 0.8rem 1.5rem;
+ border-radius: 25px;
+ cursor: pointer;
+ transition: var(--transition);
+ font-weight: bold;
+ margin-top: 1rem;
+}
+
+.add-to-cart:hover, #shop-now:hover {
+ background: var(--secondary-color);
+ transform: scale(1.05);
+}
+
+/* Footer */
+footer {
+ background: var(--secondary-color);
+ color: white;
+ padding: 3rem 1rem;
+ margin-top: 4rem;
+}
+
+.footer-content {
+ max-width: 1200px;
+ margin: 0 auto;
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
+ gap: 2rem;
+}
+
+.footer-section h4 {
+ margin-bottom: 1rem;
+}
+
+.footer-section ul {
+ list-style: none;
+}
+
+.footer-section a {
+ color: white;
+ text-decoration: none;
+ transition: var(--transition);
+}
+
+.footer-section a:hover {
+ color: var(--primary-color);
+}
+
+/* Mobile Menu */
+.mobile-menu {
+ display: none;
+ flex-direction: column;
+ gap: 5px;
+ background: none;
+ border: none;
+ cursor: pointer;
+ padding: 5px;
+}
+
+.mobile-menu span {
+ width: 25px;
+ height: 3px;
+ background: var(--text-color);
+ transition: var(--transition);
+}
+
+/* Animations */
+@keyframes fadeInUp {
+ from {
+ opacity: 0;
+ transform: translateY(20px);
+ }
+ to {
+ opacity: 1;
+ transform: translateY(0);
+ }
+}
+
+/* Media Queries */
+@media (max-width: 768px) {
+ .mobile-menu {
+ display: flex;
+ }
+
+ .nav-links {
+ display: none;
+ position: absolute;
+ top: 100%;
+ left: 0;
+ right: 0;
+ background: white;
+ flex-direction: column;
+ padding: 1rem;
+ text-align: center;
+ }
+
+ .nav-links.active {
+ display: flex;
+ }
+
+ .hero h1 {
+ font-size: 2rem;
+ }
+
+ .product-grid {
+ grid-template-columns: 1fr;
+ }
+}