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; + } +}