Creating a visually appealing background can significantly enhance the user experience of any application or website. In this article, we will explore 10 stunning background examples that can elevate your design.
From gradients to patterns, these examples showcase a variety of styles and techniques. Let's dive in and discover how you can transform your UI with these inspiring backgrounds.
CODE1
Here's the code:
CODETEXT1
CODE2
Here's the code:
CODETEXT2
CODE3
Here's the code:
CODETEXT3
CODE4
Here's the code:
CODETEXT4
CODE5
Here's the code:
CODETEXT5
Subframe's drag-and-drop interface and intuitive, responsive canvas make it effortless to create pixel-perfect UI every time. Loved by designers and developers alike, Subframe ensures your background designs are both stunning and functional.
Start for free and elevate your design game today!
CODE6
Here's the code:
CODETEXT6
CODE7
Here's the code:
CODETEXT7
CODE8
Here's the code:
CODETEXT8
CODE9
Here's the code:
CODETEXT9
CODE10
Here's the code:
CODETEXT10
Ready to elevate your UI design game? With Subframe, you can create pixel-perfect backgrounds and stunning UIs in minutes. Our drag-and-drop editor ensures efficiency and precision.
Don't wait! Start for free and begin designing immediately. Transform your ideas into reality with Subframe today!
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Chromablend</title> <style> @import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&family=Playfair+Display:wght@400;500;600&display=swap'); :root { --primary: #3a0ca3; --primary-light: #4361ee; --secondary: #f72585; --accent: #4cc9f0; --dark: #10002b; --light: #f8f9fa; --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Montserrat', sans-serif; background-color: var(--light); color: var(--dark); overflow-x: hidden; max-width: 700px; height: 700px; margin: 0 auto; overflow-y: auto; scrollbar-width: none; } body::-webkit-scrollbar { display: none; } header { position: fixed; top: 0; width: 100%; max-width: 700px; z-index: 100; background-color: rgba(248, 249, 250, 0.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); padding: 20px; display: flex; justify-content: space-between; align-items: center; } .logo { font-family: 'Playfair Display', serif; font-weight: 600; font-size: 1.6rem; color: var(--primary); position: relative; } .logo span { color: var(--secondary); } .logo::after { content: ''; position: absolute; width: 6px; height: 6px; background: var(--accent); border-radius: 50%; bottom: 6px; right: -8px; } nav .menu-icon { cursor: pointer; font-size: 1.4rem; } .container { margin-top: 90px; padding: 0 20px 40px; } .hero { display: flex; flex-direction: column; margin-bottom: 40px; } .hero h1 { font-family: 'Playfair Display', serif; font-size: 2.2rem; line-height: 1.2; margin-bottom: 15px; color: var(--dark); } .hero p { font-size: 0.95rem; line-height: 1.6; color: #555; margin-bottom: 25px; } .btn { display: inline-block; padding: 12px 24px; background-color: var(--primary); color: white; border: none; border-radius: 30px; font-weight: 500; cursor: pointer; transition: var(--transition); text-decoration: none; font-size: 0.9rem; box-shadow: 0 4px 20px rgba(58, 12, 163, 0.2); } .btn:hover { background-color: var(--primary-light); transform: translateY(-2px); box-shadow: 0 6px 25px rgba(58, 12, 163, 0.25); } .product-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; } .product-card { position: relative; border-radius: 12px; overflow: hidden; box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08); transition: var(--transition); background-color: white; transform-style: preserve-3d; perspective: 1000px; } .product-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.12); } .product-image-container { position: relative; height: 180px; overflow: hidden; } .product-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .product-card:hover .product-image { transform: scale(1.05); } .color-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--primary); mix-blend-mode: color; opacity: 0; transition: var(--transition); } .product-card:nth-child(2n) .color-overlay { background-color: var(--secondary); } .product-card:nth-child(3n) .color-overlay { background-color: var(--accent); } .product-card:hover .color-overlay { opacity: 0.3; } .product-details { padding: 15px; } .product-name { font-size: 0.95rem; font-weight: 600; margin-bottom: 5px; color: var(--dark); } .product-price { font-size: 1.1rem; font-weight: 700; color: var(--primary); margin-bottom: 10px; } .product-description { font-size: 0.8rem; line-height: 1.4; color: #666; margin-bottom: 12px; height: 2.8em; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .product-actions { display: flex; justify-content: space-between; align-items: center; } .wishlist-btn { background: none; border: none; color: #999; cursor: pointer; transition: var(--transition); font-size: 1.1rem; } .wishlist-btn:hover, .wishlist-btn.active { color: var(--secondary); transform: scale(1.1); } .add-to-cart { font-size: 0.75rem; padding: 8px 14px; background-color: var(--primary); color: white; border: none; border-radius: 20px; font-weight: 500; cursor: pointer; transition: var(--transition); } .add-to-cart:hover { background-color: var(--primary-light); } .quick-view { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.8); background-color: rgba(255, 255, 255, 0.9); color: var(--primary); font-weight: 500; padding: 8px 12px; border-radius: 20px; opacity: 0; pointer-events: none; transition: var(--transition); font-size: 0.8rem; text-align: center; min-width: 100px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .product-image-container:hover .quick-view { opacity: 1; transform: translate(-50%, -50%) scale(1); pointer-events: auto; } .trending-badge { position: absolute; top: 10px; right: 10px; background-color: var(--secondary); color: white; padding: 5px 10px; border-radius: 15px; font-size: 0.65rem; font-weight: 600; text-transform: uppercase; z-index: 2; box-shadow: 0 2px 10px rgba(247, 37, 133, 0.3); transform: translateZ(20px); } .cart-notification { position: fixed; bottom: -60px; left: 50%; transform: translateX(-50%); background-color: var(--primary); color: white; padding: 12px 20px; border-radius: 30px; font-size: 0.9rem; font-weight: 500; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); transition: bottom 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); z-index: 999; width: 80%; max-width: 350px; text-align: center; } .cart-notification.show { bottom: 20px; } .color-selector { display: flex; gap: 5px; margin: 8px 0; } .color-option { width: 15px; height: 15px; border-radius: 50%; cursor: pointer; transition: transform 0.2s ease; border: 1px solid rgba(0, 0, 0, 0.1); } .color-option:hover { transform: scale(1.2); } .color-option.selected { outline: 2px solid var(--primary); outline-offset: 1px; } .title-section { margin-bottom: 30px; } .title-section h2 { font-size: 1.6rem; margin-bottom: 10px; font-family: 'Playfair Display', serif; position: relative; display: inline-block; } .title-section h2::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 40%; height: 3px; background: linear-gradient(to right, var(--primary), var(--secondary)); border-radius: 10px; } .title-section p { font-size: 0.9rem; color: #666; max-width: 85%; } @media (max-width: 500px) { .product-grid { grid-template-columns: 1fr; } .hero h1 { font-size: 1.8rem; } .title-section h2 { font-size: 1.4rem; } .title-section p { max-width: 100%; } } /* Microinteractions */ @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } .pulse { animation: pulse 1s infinite; } /* Interactive loader */ .loader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: white; display: flex; justify-content: center; align-items: center; z-index: 9999; transition: opacity 0.5s ease, visibility 0.5s ease; } .loader.hide { opacity: 0; visibility: hidden; } .loader-content { text-align: center; } .loader-spinner { width: 40px; height: 40px; border: 3px solid #f3f3f3; border-top: 3px solid var(--primary); border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto 15px; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .filter-tabs { display: flex; gap: 10px; margin-bottom: 20px; overflow-x: auto; scrollbar-width: none; padding-bottom: 5px; } .filter-tabs::-webkit-scrollbar { display: none; } .filter-tab { white-space: nowrap; padding: 8px 15px; border-radius: 20px; font-size: 0.8rem; cursor: pointer; transition: var(--transition); background-color: #f1f1f1; color: #555; } .filter-tab.active { background-color: var(--primary); color: white; box-shadow: 0 3px 10px rgba(58, 12, 163, 0.2); } .filter-tab:hover:not(.active) { background-color: #e5e5e5; } /* Floating action button */ .floating-cart { position: fixed; bottom: 20px; right: 20px; width: 50px; height: 50px; border-radius: 50%; background-color: var(--primary); color: white; display: flex; justify-content: center; align-items: center; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15); cursor: pointer; transition: var(--transition); z-index: 900; } .floating-cart:hover { transform: scale(1.1); background-color: var(--primary-light); } .cart-count { position: absolute; top: -5px; right: -5px; background-color: var(--secondary); color: white; width: 20px; height: 20px; border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 0.7rem; font-weight: 600; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); } </style> </head> <body> <div class="loader"> <div class="loader-content"> <div class="loader-spinner"></div> <p>Loading Chromablend</p> </div> </div> <header> <div class="logo">Chroma<span>blend</span></div> <nav> <div class="menu-icon"> <i class="fa-solid fa-bag-shopping"></i> </div> </nav> </header> <div class="container"> <section class="hero"> <h1>Experience color in a whole new dimension</h1> <p>Our chromablending technology enhances product imagery with proprietary color overlays that bring your shopping experience to life, while keeping product details crystal clear.</p> <a href="#" class="btn">Explore Collection</a> </section> <section class="products-section"> <div class="title-section"> <h2>Featured Products</h2> <p>Experience our chromablending technology on these hand-selected items</p> </div> <div class="filter-tabs"> <div class="filter-tab active">All Products</div> <div class="filter-tab">New Arrivals</div> <div class="filter-tab">Best Sellers</div> <div class="filter-tab">Limited Edition</div> <div class="filter-tab">Sale</div> </div> <div class="product-grid"> <div class="product-card" data-category="new-arrivals"> <div class="product-image-container"> <img src="https://images.unsplash.com/photo-1560343090-f0409e92791a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=764&q=80" alt="Premium Wireless Headphones" class="product-image"> <div class="color-overlay"></div> <div class="quick-view">Quick View</div> <div class="trending-badge">Trending</div> </div> <div class="product-details"> <h3 class="product-name">Premium Wireless Headphones</h3> <div class="color-selector"> <div class="color-option selected" style="background-color: #222;"></div> <div class="color-option" style="background-color: #fff;"></div> <div class="color-option" style="background-color: #7209b7;"></div> </div> <p class="product-price">$129.99</p> <p class="product-description">Noise-cancelling technology with crystal clear audio and 30-hour battery life.</p> <div class="product-actions"> <button class="wishlist-btn"><i class="fa-regular fa-heart"></i></button> <button class="add-to-cart">Add to Cart</button> </div> </div> </div> <div class="product-card" data-category="best-sellers"> <div class="product-image-container"> <img src="https://images.unsplash.com/photo-1542291026-7eec264c27ff?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1740&q=80" alt="Limited Edition Sneakers" class="product-image"> <div class="color-overlay"></div> <div class="quick-view">Quick View</div> </div> <div class="product-details"> <h3 class="product-name">Limited Edition Sneakers</h3> <div class="color-selector"> <div class="color-option selected" style="background-color: #ff0054;"></div> <div class="color-option" style="background-color: #3a86ff;"></div> <div class="color-option" style="background-color: #8338ec;"></div> </div> <p class="product-price">$189.99</p> <p class="product-description">Hand-crafted for ultimate comfort and distinctive street style.</p> <div class="product-actions"> <button class="wishlist-btn"><i class="fa-regular fa-heart"></i></button> <button class="add-to-cart">Add to Cart</button> </div> </div> </div> <div class="product-card" data-category="limited-edition"> <div class="product-image-container"> <img src="https://images.unsplash.com/photo-1523275335684-37898b6baf30?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1738&q=80" alt="Smart Watch Pro" class="product-image"> <div class="color-overlay"></div> <div class="quick-view">Quick View</div> </div> <div class="product-details"> <h3 class="product-name">Smart Watch Pro</h3> <div class="color-selector"> <div class="color-option selected" style="background-color: #333;"></div> <div class="color-option" style="background-color: #f8f9fa;"></div> <div class="color-option" style="background-color: #38b000;"></div> </div> <p class="product-price">$249.99</p> <p class="product-description">Health tracking, notifications, and 4-day battery in a sleek design.</p> <div class="product-actions"> <button class="wishlist-btn"><i class="fa-regular fa-heart"></i></button> <button class="add-to-cart">Add to Cart</button> </div> </div> </div> <div class="product-card" data-category="sale"> <div class="product-image-container"> <img src="https://images.unsplash.com/photo-1491637639811-60e2756cc1c7?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1728&q=80" alt="Premium Leather Backpack" class="product-image"> <div class="color-overlay"></div> <div class="quick-view">Quick View</div> </div> <div class="product-details"> <h3 class="product-name">Premium Leather Backpack</h3> <div class="color-selector"> <div class="color-option selected" style="background-color: #774936;"></div> <div class="color-option" style="background-color: #000;"></div> <div class="color-option" style="background-color: #6c757d;"></div> </div> <p class="product-price">$159.99</p> <p class="product-description">Full-grain leather with dedicated laptop compartment and hidden pockets.</p> <div class="product-actions"> <button class="wishlist-btn"><i class="fa-regular fa-heart"></i></button> <button class="add-to-cart">Add to Cart</button> </div> </div> </div> </div> </section> </div> <div class="cart-notification">Item added to your cart</div> <div class="floating-cart"> <i class="fa-solid fa-cart-shopping"></i> <div class="cart-count">0</div> </div> <script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script> <script> document.addEventListener('DOMContentLoaded', function() { // Load FontAwesome alternative since the original might not work in some environments const fontAwesomeAlternative = document.createElement('link'); fontAwesomeAlternative.rel = 'stylesheet'; fontAwesomeAlternative.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css'; document.head.appendChild(fontAwesomeAlternative); // Loader setTimeout(() => { document.querySelector('.loader').classList.add('hide'); }, 1000); // Cart functionality let cartCount = 0; const cartCountElement = document.querySelector('.cart-count'); const cartNotification = document.querySelector('.cart-notification'); const addToCartButtons = document.querySelectorAll('.add-to-cart'); addToCartButtons.forEach(button => { button.addEventListener('click', function() { cartCount++; cartCountElement.textContent = cartCount; // Show notification cartNotification.classList.add('show'); setTimeout(() => { cartNotification.classList.remove('show'); }, 2000); // Animation for button this.classList.add('pulse'); setTimeout(() => { this.classList.remove('pulse'); }, 1000); }); }); // Wishlist functionality const wishlistButtons = document.querySelectorAll('.wishlist-btn'); wishlistButtons.forEach(button => { button.addEventListener('click', function() { this.classList.toggle('active'); const icon = this.querySelector('i'); if (this.classList.contains('active')) { icon.classList.remove('fa-regular'); icon.classList.add('fa-solid'); } else { icon.classList.remove('fa-solid'); icon.classList.add('fa-regular'); } }); }); // Quick View const quickViewButtons = document.querySelectorAll('.quick-view'); quickViewButtons.forEach(button => { button.addEventListener('click', function() { const productName = this.closest('.product-card').querySelector('.product-name').textContent; alert(`Quick view for ${productName} would open here`); }); }); // Color selection const colorOptions = document.querySelectorAll('.color-option'); colorOptions.forEach(option => { option.addEventListener('click', function() { // Remove selected class from siblings const siblings = Array.from(this.parentNode.children); siblings.forEach(sibling => sibling.classList.remove('selected')); // Add selected class to clicked option this.classList.add('selected'); }); }); // Filter tabs const filterTabs = document.querySelectorAll('.filter-tab'); filterTabs.forEach(tab => { tab.addEventListener('click', function() { filterTabs.forEach(t => t.classList.remove('active')); this.classList.add('active'); }); }); // Floating cart animation const floatingCart = document.querySelector('.floating-cart'); floatingCart.addEventListener('click', function() { this.style.transform = 'scale(0.9)'; setTimeout(() => { this.style.transform = ''; }, 200); }); // Intersection Observer for animations const cards = document.querySelectorAll('.product-card'); const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = 1; entry.target.style.transform = 'translateY(0)'; } }); }, { threshold: 0.1 }); cards.forEach((card, index) => { card.style.opacity = 0; card.style.transform = 'translateY(20px)'; card.style.transition = `opacity 0.5s ease ${index * 0.1}s, transform 0.5s ease ${index * 0.1}s`; observer.observe(card); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; } :root { --primary: #ff6b6b; --secondary: #4ecdc4; --dark: #292f36; --light: #f7fff7; --accent: #ff9f1c; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } body { height: 700px; width: 700px; max-width: 100%; overflow-x: hidden; background: linear-gradient(135deg, #111, #333); color: var(--light); } .container { width: 100%; height: 100%; overflow-y: auto; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: var(--secondary) transparent; } .container::-webkit-scrollbar { width: 6px; } .container::-webkit-scrollbar-thumb { background-color: var(--secondary); border-radius: 3px; } header { padding: 20px; position: sticky; top: 0; z-index: 100; background: rgba(20, 20, 20, 0.8); backdrop-filter: blur(8px); } nav { display: flex; justify-content: space-between; align-items: center; } .logo { font-size: 1.5rem; font-weight: bold; background: linear-gradient(90deg, var(--primary), var(--secondary), var(--accent)); -webkit-background-clip: text; background-clip: text; color: transparent; background-size: 200% 100%; animation: gradientShift 4s ease infinite; } .nav-links { display: flex; gap: 15px; } .nav-links a { color: var(--light); text-decoration: none; font-size: 0.9rem; position: relative; transition: color 0.3s; } .nav-links a::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: var(--secondary); transition: width 0.3s; } .nav-links a:hover { color: var(--secondary); } .nav-links a:hover::after { width: 100%; } .hero { height: 300px; display: flex; justify-content: center; align-items: center; position: relative; overflow: hidden; animation: fade-in 1s ease-out forwards; } .hero-image { width: 100%; height: 100%; background-image: url('https://source.unsplash.com/random/800x600/?abstract,texture'), url('https://source.unsplash.com/random/800x600/?portrait'); background-size: cover; background-position: center; background-blend-mode: overlay; position: relative; transition: filter 0.5s ease, background-blend-mode 0.5s ease; } .texture-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj48ZGVmcz48cGF0dGVybiBpZD0icGF0dGVybiIgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0icmdiYSgyNTUsMjU1LDI1NSwwLjEpIiBzdHJva2Utd2lkdGg9IjEiIGQ9Ik0wLDAgTDEwMCwxMDBNMTAwLDAgTDAsMTAwIi8+PC9wYXR0ZXJuPjwvZGVmcz48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI3BhdHRlcm4pIi8+PC9zdmc+'); opacity: 0.3; mix-blend-mode: screen; } .hero-content { position: absolute; z-index: 10; text-align: center; padding: 20px; background: rgba(0, 0, 0, 0.4); backdrop-filter: blur(5px); border-radius: 10px; max-width: 80%; } .hero-content h1 { font-size: 2rem; margin-bottom: 15px; color: var(--light); text-shadow: 0 2px 4px rgba(0, 0, 0, 0.5); } .hero-content p { font-size: 1rem; margin-bottom: 20px; color: #ddd; } .blend-controls { display: flex; justify-content: center; padding: 15px; background: rgba(20, 20, 20, 0.8); border-top: 1px solid rgba(255, 255, 255, 0.1); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .blend-mode-btn { padding: 8px 12px; margin: 0 5px; background: none; border: 1px solid var(--secondary); color: var(--light); border-radius: 20px; cursor: pointer; transition: all 0.3s ease; font-size: 0.8rem; } .blend-mode-btn:hover { background: var(--secondary); color: var(--dark); } .blend-mode-btn.active { background: var(--secondary); color: var(--dark); } .portfolio { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; padding: 20px; } .portfolio-item { position: relative; height: 250px; border-radius: 10px; overflow: hidden; cursor: pointer; transition: transform 0.3s ease; animation: fade-in 0.8s ease-out forwards; opacity: 0; } .portfolio-item:nth-child(1) { animation-delay: 0.1s; } .portfolio-item:nth-child(2) { animation-delay: 0.2s; } .portfolio-item:nth-child(3) { animation-delay: 0.3s; } .portfolio-item:nth-child(4) { animation-delay: 0.4s; } .portfolio-item:hover { transform: translateY(-5px); } .portfolio-image { width: 100%; height: 100%; background-size: cover; background-position: center; transition: all 0.5s ease; position: relative; } .portfolio-item:nth-child(1) .portfolio-image { background-image: url('https://source.unsplash.com/random/600x800/?city,night'), url('https://source.unsplash.com/random/600x800/?texture,paper'); background-blend-mode: multiply; } .portfolio-item:nth-child(2) .portfolio-image { background-image: url('https://source.unsplash.com/random/600x800/?nature,forest'), url('https://source.unsplash.com/random/600x800/?texture,canvas'); background-blend-mode: screen; } .portfolio-item:nth-child(3) .portfolio-image { background-image: url('https://source.unsplash.com/random/600x800/?portrait,fashion'), url('https://source.unsplash.com/random/600x800/?texture,grain'); background-blend-mode: overlay; } .portfolio-item:nth-child(4) .portfolio-image { background-image: url('https://source.unsplash.com/random/600x800/?abstract,art'), url('https://source.unsplash.com/random/600x800/?texture,paint'); background-blend-mode: color-dodge; } .portfolio-overlay { position: absolute; bottom: 0; left: 0; right: 0; padding: 15px; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); transform: translateY(100%); transition: transform 0.3s ease; } .portfolio-item:hover .portfolio-overlay { transform: translateY(0); } .portfolio-overlay h3 { font-size: 1.2rem; margin-bottom: 5px; } .portfolio-overlay p { font-size: 0.9rem; color: #ddd; margin-bottom: 10px; } .portfolio-tags { display: flex; flex-wrap: wrap; gap: 5px; } .tag { padding: 3px 8px; background: rgba(255, 255, 255, 0.2); border-radius: 10px; font-size: 0.7rem; } .about-section { padding: 40px 20px; background: linear-gradient(to right, rgba(20, 20, 20, 0.9), rgba(40, 40, 40, 0.9)); margin-top: 20px; animation: fade-in 1s ease-out forwards; position: relative; overflow: hidden; } .about-texture { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PGRlZnM+PHBhdHRlcm4gaWQ9InBhdHRlcm4iIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+PGNpcmNsZSBmaWxsPSJub25lIiBzdHJva2U9InJnYmEoMjU1LDI1NSwyNTUsMC4wNSkiIHN0cm9rZS13aWR0aD0iMSIgY3g9IjI1IiBjeT0iMjUiIHI9IjEwIi8+PC9wYXR0ZXJuPjwvZGVmcz48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI3BhdHRlcm4pIi8+PC9zdmc+'); opacity: 0.2; mix-blend-mode: screen; } .about-content { position: relative; z-index: 1; } .about-content h2 { font-size: 1.8rem; margin-bottom: 20px; position: relative; display: inline-block; } .about-content h2::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 40px; height: 3px; background: var(--secondary); } .about-content p { line-height: 1.6; margin-bottom: 15px; } .technique-cards { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 25px; } .technique-card { background: rgba(0, 0, 0, 0.3); border-radius: 8px; padding: 15px; flex: 1 1 calc(33.333% - 15px); min-width: 180px; backdrop-filter: blur(5px); border: 1px solid rgba(255, 255, 255, 0.1); transition: all 0.3s ease; animation: float 5s ease-in-out infinite; } .technique-card:nth-child(1) { animation-delay: 0s; } .technique-card:nth-child(2) { animation-delay: 1s; } .technique-card:nth-child(3) { animation-delay: 2s; } .technique-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); border-color: var(--secondary); } .technique-card h3 { margin-bottom: 10px; font-size: 1.1rem; color: var(--secondary); } .technique-card p { font-size: 0.9rem; color: #ddd; } footer { padding: 20px; text-align: center; background: rgba(20, 20, 20, 0.9); border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: 0.8rem; color: #999; } .color-swatches { display: flex; justify-content: center; gap: 10px; margin: 15px 0; } .color-swatch { width: 30px; height: 30px; border-radius: 50%; cursor: pointer; transition: transform 0.3s ease; border: 2px solid transparent; } .color-swatch:hover { transform: scale(1.2); } .color-swatch.active { border-color: white; } .color-swatch:nth-child(1) { background: #ff6b6b; } .color-swatch:nth-child(2) { background: #4ecdc4; } .color-swatch:nth-child(3) { background: #ff9f1c; } .color-swatch:nth-child(4) { background: #a06cd5; } .color-swatch:nth-child(5) { background: #82c91e; } @media (max-width: 600px) { .hero-content h1 { font-size: 1.6rem; } .portfolio { grid-template-columns: 1fr; } .technique-card { flex: 1 1 100%; } .blend-controls { flex-wrap: wrap; } .blend-mode-btn { margin-bottom: 5px; } } /* Interactive color cursor */ .color-cursor { position: fixed; width: 20px; height: 20px; border-radius: 50%; background: var(--primary); pointer-events: none; transform: translate(-50%, -50%); mix-blend-mode: difference; z-index: 9999; opacity: 0.7; transition: width 0.3s, height 0.3s, opacity 0.3s; } </style> </head> <body> <div class="color-cursor"></div> <div class="container"> <header> <nav> <div class="logo">Chromatic Fusion</div> <div class="nav-links"> <a href="#portfolio">Work</a> <a href="#about">Technique</a> <a href="#contact">Connect</a> </div> </nav> </header> <section class="hero"> <div class="hero-image" id="hero-blend"> <div class="texture-overlay"></div> </div> <div class="hero-content"> <h1>Texture & Light Experiments</h1> <p>Avant-garde visual exploration merging photographic layers with handcrafted textures</p> </div> </section> <div class="blend-controls"> <button class="blend-mode-btn active" data-blend="overlay">Overlay</button> <button class="blend-mode-btn" data-blend="multiply">Multiply</button> <button class="blend-mode-btn" data-blend="screen">Screen</button> <button class="blend-mode-btn" data-blend="color-dodge">Color Dodge</button> <button class="blend-mode-btn" data-blend="hard-light">Hard Light</button> </div> <section class="portfolio" id="portfolio"> <div class="portfolio-item"> <div class="portfolio-image"></div> <div class="portfolio-overlay"> <h3>Nocturnal Textures</h3> <p>Urban landscape with handcrafted paper overlay creating depth through multiple exposure techniques</p> <div class="portfolio-tags"> <span class="tag">Multiply</span> <span class="tag">Urban</span> <span class="tag">Depth</span> </div> </div> </div> <div class="portfolio-item"> <div class="portfolio-image"></div> <div class="portfolio-overlay"> <h3>Organic Luminescence</h3> <p>Natural elements merge with canvas textures creating ethereal light interactions</p> <div class="portfolio-tags"> <span class="tag">Screen</span> <span class="tag">Nature</span> <span class="tag">Luminous</span> </div> </div> </div> <div class="portfolio-item"> <div class="portfolio-image"></div> <div class="portfolio-overlay"> <h3>Textural Portrait</h3> <p>Human form enhanced through film grain and light diffusion techniques</p> <div class="portfolio-tags"> <span class="tag">Overlay</span> <span class="tag">Portrait</span> <span class="tag">Grain</span> </div> </div> </div> <div class="portfolio-item"> <div class="portfolio-image"></div> <div class="portfolio-overlay"> <h3>Chromatic Abstraction</h3> <p>Experimental color theory using painted texture overlays with unusual blend modes</p> <div class="portfolio-tags"> <span class="tag">Color-Dodge</span> <span class="tag">Abstract</span> <span class="tag">Texture</span> </div> </div> </div> </section> <section class="about-section" id="about"> <div class="about-texture"></div> <div class="about-content"> <h2>Blend Mode Aesthetics</h2> <p>This portfolio explores the transformative potential of digital blend modes to achieve handcrafted aesthetics. Each piece begins with original photography layered with custom-created textures, producing unique color interactions that would be impossible through traditional methods alone.</p> <p>The technique reveals unexpected color relationships and light behaviors, creating an avant-garde visual language that exists between digital and physical realms.</p> <div class="color-swatches"> <div class="color-swatch active" data-color="#ff6b6b"></div> <div class="color-swatch" data-color="#4ecdc4"></div> <div class="color-swatch" data-color="#ff9f1c"></div> <div class="color-swatch" data-color="#a06cd5"></div> <div class="color-swatch" data-color="#82c91e"></div> </div> <div class="technique-cards"> <div class="technique-card"> <h3>Textural Layers</h3> <p>Creating handmade paper, fabric, and paint textures to layer over photographs, mimicking traditional mixed media techniques.</p> </div> <div class="technique-card"> <h3>Light Diffusion</h3> <p>Manipulating how light interacts between layers using blend modes that emulate optical phenomena like diffraction and luminescence.</p> </div> <div class="technique-card"> <h3>Color Theory</h3> <p>Exploring how digital blend calculations create unexpected color harmonies and transitions that challenge traditional color relationships.</p> </div> </div> </div> </section> <footer id="contact"> <p>© 2023 Chromatic Fusion Studio | Exploring the boundaries between digital and analog aesthetics</p> </footer> </div> <script> document.addEventListener('DOMContentLoaded', () => { // Blend mode controls const blendButtons = document.querySelectorAll('.blend-mode-btn'); const heroImage = document.getElementById('hero-blend'); blendButtons.forEach(btn => { btn.addEventListener('click', () => { // Remove active class from all buttons blendButtons.forEach(b => b.classList.remove('active')); // Add active class to clicked button btn.classList.add('active'); // Change blend mode const blendMode = btn.getAttribute('data-blend'); heroImage.style.backgroundBlendMode = blendMode; }); }); // Color theme switching const colorSwatches = document.querySelectorAll('.color-swatch'); const root = document.documentElement; colorSwatches.forEach(swatch => { swatch.addEventListener('click', () => { // Remove active class from all swatches colorSwatches.forEach(s => s.classList.remove('active')); // Add active class to clicked swatch swatch.classList.add('active'); // Change primary color const color = swatch.getAttribute('data-color'); root.style.setProperty('--primary', color); // Create complementary color for secondary const complementary = generateComplementaryColor(color); root.style.setProperty('--secondary', complementary); }); }); // Generate a complementary color function generateComplementaryColor(hex) { // Remove the hash if it exists hex = hex.replace('#', ''); // Convert to RGB const r = parseInt(hex.substring(0, 2), 16); const g = parseInt(hex.substring(2, 4), 16); const b = parseInt(hex.substring(4, 6), 16); // Invert the colors const rComp = 255 - r; const gComp = 255 - g; const bComp = 255 - b; // Convert back to hex return `#${(rComp.toString(16).padStart(2, '0'))}${(gComp.toString(16).padStart(2, '0'))}${(bComp.toString(16).padStart(2, '0'))}`; } // Colorful cursor effect const cursor = document.createElement('div'); cursor.classList.add('color-cursor'); document.body.appendChild(cursor); document.addEventListener('mousemove', (e) => { cursor.style.left = `${e.clientX}px`; cursor.style.top = `${e.clientY}px`; }); document.addEventListener('mousedown', () => { cursor.style.width = '30px'; cursor.style.height = '30px'; cursor.style.opacity = '0.9'; }); document.addEventListener('mouseup', () => { cursor.style.width = '20px'; cursor.style.height = '20px'; cursor.style.opacity = '0.7'; }); // Interactive portfolio items const portfolioItems = document.querySelectorAll('.portfolio-item'); portfolioItems.forEach(item => { const image = item.querySelector('.portfolio-image'); item.addEventListener('mousemove', (e) => { const boundingRect = item.getBoundingClientRect(); const x = (e.clientX - boundingRect.left) / boundingRect.width; const y = (e.clientY - boundingRect.top) / boundingRect.height; // Parallax effect on hover image.style.transform = `scale(1.1) translate(${x * 10 - 5}px, ${y * 10 - 5}px)`; // Change blend intensity based on mouse position const blendOpacity = 0.5 + (y * 0.5); // 0.5 to 1.0 image.style.opacity = blendOpacity; }); item.addEventListener('mouseleave', () => { image.style.transform = ''; image.style.opacity = ''; }); }); // Scroll-based animations const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = 1; entry.target.style.transform = 'translateY(0)'; } }); }, { threshold: 0.1 }); document.querySelectorAll('.technique-card, .about-section, .portfolio-item').forEach(element => { observer.observe(element); }); }); </script> </body> </html>
<html> <head> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; } body { overflow-x: hidden; background-color: #f8f5f2; max-width: 700px; max-height: 700px; margin: 0 auto; } .travel-blog { width: 100%; height: 100vh; max-height: 700px; overflow-y: auto; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: #e67e22 #f8f5f2; } .travel-blog::-webkit-scrollbar { width: 6px; } .travel-blog::-webkit-scrollbar-thumb { background-color: #e67e22; border-radius: 10px; } .travel-blog::-webkit-scrollbar-track { background-color: #f8f5f2; } .header { padding: 20px; text-align: center; color: #333; position: sticky; top: 0; background-color: rgba(248, 245, 242, 0.9); backdrop-filter: blur(5px); z-index: 100; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); } .header h1 { font-size: 2.2rem; margin-bottom: 5px; color: #e67e22; letter-spacing: 2px; } .header p { font-size: 1rem; color: #666; } .destination-card { position: relative; height: 400px; margin: 25px 15px; border-radius: 15px; overflow: hidden; box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2); transition: transform 0.5s ease, box-shadow 0.5s ease; } .destination-card:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); } .destination-image { width: 100%; height: 100%; background-size: cover; background-position: center; transition: transform 0.8s ease; } .destination-card:hover .destination-image { transform: scale(1.05); } .bali { background-image: url('https://images.unsplash.com/photo-1518548419970-58e3b4079ab2'); background-color: #ff9d2f; background-blend-mode: soft-light; } .kyoto { background-image: url('https://images.unsplash.com/photo-1493976040374-85c8e12f0c0e'); background-color: #e91e63; background-blend-mode: soft-light; } .patagonia { background-image: url('https://images.unsplash.com/photo-1519681393784-d120267933ba'); background-color: #4caf50; background-blend-mode: soft-light; } .santorini { background-image: url('https://images.unsplash.com/photo-1507501336603-6e31db2be093'); background-color: #3498db; background-blend-mode: soft-light; } .destination-content { position: absolute; bottom: 0; width: 100%; padding: 30px 20px; color: white; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); transform: translateY(70px); transition: transform 0.4s ease; } .destination-card:hover .destination-content { transform: translateY(0); } .destination-title { font-size: 1.8rem; margin-bottom: 10px; font-weight: 600; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); } .destination-subtitle { font-size: 1rem; margin-bottom: 15px; font-style: italic; opacity: 0.9; } .destination-tips { margin-top: 15px; max-height: 0; overflow: hidden; transition: max-height 0.6s ease; } .destination-card:hover .destination-tips { max-height: 200px; } .tip-item { margin: 8px 0; display: flex; align-items: flex-start; } .tip-icon { margin-right: 10px; background-color: rgba(255, 255, 255, 0.2); width: 25px; height: 25px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 12px; } .tip-text { flex: 1; font-size: 0.9rem; line-height: 1.4; } .read-more { display: inline-block; margin-top: 15px; padding: 8px 15px; background-color: rgba(255, 255, 255, 0.2); border-radius: 20px; color: white; text-decoration: none; font-size: 0.85rem; transition: background-color 0.3s ease, transform 0.3s ease; border: 1px solid rgba(255, 255, 255, 0.4); } .read-more:hover { background-color: rgba(255, 255, 255, 0.3); transform: scale(1.05); } .bookmark-btn { position: absolute; top: 15px; right: 15px; width: 40px; height: 40px; background-color: rgba(255, 255, 255, 0.3); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; cursor: pointer; opacity: 0; transition: opacity 0.3s ease, transform 0.3s ease, background-color 0.3s ease; z-index: 10; } .destination-card:hover .bookmark-btn { opacity: 1; } .bookmark-btn:hover { background-color: rgba(255, 255, 255, 0.5); transform: scale(1.1); } .bookmark-btn.active { background-color: #e67e22; opacity: 1; } .color-controls { display: flex; justify-content: center; margin: 15px 0; padding: 0 20px; } .color-controls button { width: 30px; height: 30px; border-radius: 50%; margin: 0 5px; border: none; cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2); } .color-controls button:hover { transform: scale(1.2); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3); } .color-orange { background-color: #ff9d2f; } .color-pink { background-color: #e91e63; } .color-green { background-color: #4caf50; } .color-blue { background-color: #3498db; } .footer { text-align: center; padding: 20px; color: #666; font-size: 0.8rem; } .compass-icon { display: inline-block; width: 40px; height: 40px; background: linear-gradient(135deg, #e67e22, #d35400); border-radius: 50%; position: relative; margin-right: 10px; vertical-align: middle; box-shadow: 0 3px 6px rgba(0, 0, 0, 0.2); animation: pulse 2s infinite; } .compass-icon::before { content: ''; position: absolute; top: 50%; left: 50%; width: 35%; height: 35%; background-color: white; border-radius: 50%; transform: translate(-50%, -50%); } .compass-icon::after { content: ''; position: absolute; top: 30%; left: 50%; width: 2px; height: 25%; background-color: #e74c3c; transform-origin: bottom center; transform: translateX(-50%) rotate(45deg); } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(230, 126, 34, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(230, 126, 34, 0); } 100% { box-shadow: 0 0 0 0 rgba(230, 126, 34, 0); } } @media (max-width: 600px) { .header h1 { font-size: 1.8rem; } .destination-card { height: 350px; } .destination-title { font-size: 1.5rem; } } </style> </head> <body> <div class="travel-blog"> <header class="header"> <span class="compass-icon"></span> <h1>CHROMATRAVEL</h1> <p>Discover destinations through colors</p> </header> <div class="color-controls"> <button class="color-orange" data-color="#ff9d2f" title="Sunset"></button> <button class="color-pink" data-color="#e91e63" title="Blossom"></button> <button class="color-green" data-color="#4caf50" title="Forest"></button> <button class="color-blue" data-color="#3498db" title="Ocean"></button> </div> <div class="destination-card" data-location="bali"> <div class="destination-image bali"></div> <div class="bookmark-btn"> <svg width="18" height="18" fill="currentColor" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z"/> </svg> </div> <div class="destination-content"> <h2 class="destination-title">Bali, Indonesia</h2> <p class="destination-subtitle">Island of the Gods</p> <p>Where lush jungles meet pristine beaches and ancient temples stand against vibrant sunsets.</p> <div class="destination-tips"> <div class="tip-item"> <div class="tip-icon">🕰️</div> <p class="tip-text">Visit Uluwatu Temple at sunset – arrive by 5 PM to secure a good spot for the legendary Kecak dance performance.</p> </div> <div class="tip-item"> <div class="tip-icon">🍽️</div> <p class="tip-text">Skip tourist traps and head to Warung Babi Guling Pak Malen in Seminyak for authentic suckling pig – a genuine local delicacy.</p> </div> <div class="tip-item"> <div class="tip-icon">💰</div> <p class="tip-text">Bargain at markets but start at 40% of initial asking price. Smile and be willing to walk away for the best deals.</p> </div> </div> <a href="#" class="read-more">Discover More</a> </div> </div> <div class="destination-card" data-location="kyoto"> <div class="destination-image kyoto"></div> <div class="bookmark-btn"> <svg width="18" height="18" fill="currentColor" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z"/> </svg> </div> <div class="destination-content"> <h2 class="destination-title">Kyoto, Japan</h2> <p class="destination-subtitle">Heart of Traditional Japan</p> <p>A city where ancient tradition meets contemporary life through meticulously preserved temples and gardens.</p> <div class="destination-tips"> <div class="tip-item"> <div class="tip-icon">🌸</div> <p class="tip-text">Visit Arashiyama Bamboo Grove before 7 AM to avoid crowds and capture that perfect ethereal photo without other tourists.</p> </div> <div class="tip-item"> <div class="tip-icon">🚋</div> <p class="tip-text">Purchase a 1-day Kyoto Bus and Subway Pass (¥900) for unlimited travel – much more economical than paying per ride.</p> </div> <div class="tip-item"> <div class="tip-icon">👘</div> <p class="tip-text">For authentic kimono rental, skip tourist areas and try Yumeyakata in Central Kyoto – they offer professional styling at local prices.</p> </div> </div> <a href="#" class="read-more">Discover More</a> </div> </div> <div class="destination-card" data-location="patagonia"> <div class="destination-image patagonia"></div> <div class="bookmark-btn"> <svg width="18" height="18" fill="currentColor" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z"/> </svg> </div> <div class="destination-content"> <h2 class="destination-title">Patagonia, Argentina/Chile</h2> <p class="destination-subtitle">Land of Untamed Beauty</p> <p>Where jagged peaks, turquoise lakes, and ancient glaciers create one of Earth's most dramatic landscapes.</p> <div class="destination-tips"> <div class="tip-item"> <div class="tip-icon">🏔️</div> <p class="tip-text">Torres del Paine's W Trek doesn't require guides, but book refugios 6+ months in advance or you'll miss out during peak season.</p> </div> <div class="tip-item"> <div class="tip-icon">🌬️</div> <p class="tip-text">Pack for four seasons in one day – the Patagonian saying "if you don't like the weather, wait 15 minutes" is absolutely true.</p> </div> <div class="tip-item"> <div class="tip-icon">💸</div> <p class="tip-text">Bring USD cash for Argentina – exchange at "blue rate" locations in El Calafate for nearly double the official exchange rate.</p> </div> </div> <a href="#" class="read-more">Discover More</a> </div> </div> <div class="destination-card" data-location="santorini"> <div class="destination-image santorini"></div> <div class="bookmark-btn"> <svg width="18" height="18" fill="currentColor" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z"/> </svg> </div> <div class="destination-content"> <h2 class="destination-title">Santorini, Greece</h2> <p class="destination-subtitle">Jewel of the Aegean</p> <p>A crescent-shaped island where white-washed villages cling to volcanic cliffs above the sunken caldera.</p> <div class="destination-tips"> <div class="tip-item"> <div class="tip-icon">🌅</div> <p class="tip-text">Skip crowded Oia for sunset – head to Skaros Rock in Imerovigli for equally stunning views with a fraction of the crowds.</p> </div> <div class="tip-item"> <div class="tip-icon">🍷</div> <p class="tip-text">Tour Santo Wines during late afternoon – you'll taste Assyrtiko wines while watching the sunset over the caldera for just €15.</p> </div> <div class="tip-item"> <div class="tip-icon">🏖️</div> <p class="tip-text">Bypass the popular Red Beach and visit the black volcanic sands of Perivolos early morning to secure a prime spot.</p> </div> </div> <a href="#" class="read-more">Discover More</a> </div> </div> <div class="footer"> <p>© 2023 ChromaTravel | Where adventure meets color</p> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Bookmark functionality const bookmarkBtns = document.querySelectorAll('.bookmark-btn'); bookmarkBtns.forEach(btn => { btn.addEventListener('click', function(e) { e.preventDefault(); this.classList.toggle('active'); if (this.classList.contains('active')) { this.innerHTML = ` <svg width="18" height="18" fill="currentColor" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2z"/> </svg> `; // Show a subtle animation to indicate bookmarking const card = this.closest('.destination-card'); card.style.transform = 'translateY(-15px)'; setTimeout(() => { card.style.transform = 'translateY(-10px)'; }, 300); } else { this.innerHTML = ` <svg width="18" height="18" fill="currentColor" viewBox="0 0 16 16"> <path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5V2zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1H4z"/> </svg> `; } }); }); // Read more buttons const readMoreBtns = document.querySelectorAll('.read-more'); readMoreBtns.forEach(btn => { btn.addEventListener('click', function(e) { e.preventDefault(); // Create pulse effect this.style.transform = 'scale(1.2)'; setTimeout(() => { this.style.transform = 'scale(1.05)'; }, 200); // Toggle text for demo purposes this.textContent = this.textContent === 'Discover More' ? 'Show Less' : 'Discover More'; }); }); // Color controls to change image blend mode const colorBtns = document.querySelectorAll('.color-controls button'); colorBtns.forEach(btn => { btn.addEventListener('click', function() { const color = this.getAttribute('data-color'); const cards = document.querySelectorAll('.destination-card'); cards.forEach(card => { const location = card.getAttribute('data-location'); const imageDiv = card.querySelector('.destination-image'); // Update the background-color for the blend mode imageDiv.style.backgroundColor = color; // Add a transition effect imageDiv.style.transition = 'background-color 0.8s ease'; // Additional effect: slight rotation and scale card.style.transform = 'translateY(-10px) rotate(1deg)'; setTimeout(() => { card.style.transform = 'translateY(-10px) rotate(0deg)'; }, 300); }); }); }); // Add interactive card hover effect const cards = document.querySelectorAll('.destination-card'); cards.forEach(card => { card.addEventListener('mousemove', function(e) { const rect = this.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; // Calculate rotation values const rotateY = ((x / rect.width) - 0.5) * 5; const rotateX = ((y / rect.height) - 0.5) * -5; // Apply subtle rotation transform this.style.transform = `translateY(-10px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; }); card.addEventListener('mouseleave', function() { // Reset transform on mouse leave this.style.transform = 'translateY(-10px)'; }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Quantum Nexus - Redefining Tech Boundaries</title> <style> :root { --primary: #0062ff; --secondary: #6e00ff; --accent: #00eaff; --dark: #121421; --light: #ffffff; --gradient: linear-gradient(135deg, var(--primary), var(--secondary)); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; } body { background-color: var(--dark); color: var(--light); overflow-x: hidden; max-width: 700px; margin: 0 auto; height: 100vh; overflow-y: auto; position: relative; } /* Digital Pattern Background */ .bg-pattern { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%239C92AC' fill-opacity='0.1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='50' height='50' viewBox='0 0 24 24'%3E%3Cpath fill='%23ffffff' fill-opacity='0.05' d='M12 0C5.373 0 0 5.373 0 12s5.373 12 12 12 12-5.373 12-12S18.627 0 12 0zm0 2a9.98 9.98 0 0 1 8 4H4a9.98 9.98 0 0 1 8-4zm0 20a10 10 0 0 1-8.761-5.164l7.776-4.875 7.77 4.874A10 10 0 0 1 12 22z'/%3E%3C/svg%3E"); background-blend-mode: overlay; z-index: -1; } .color-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: var(--gradient); opacity: 0.5; background-blend-mode: color-dodge; z-index: -1; } header { padding: 1.5rem; display: flex; justify-content: space-between; align-items: center; position: relative; } .logo { font-weight: 800; font-size: 1.5rem; background: linear-gradient(to right, var(--accent), var(--primary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; display: flex; align-items: center; } .logo::before { content: ""; display: inline-block; width: 12px; height: 12px; background: var(--accent); border-radius: 50%; margin-right: 8px; box-shadow: 0 0 15px var(--accent); animation: pulse 3s infinite; } nav ul { display: flex; list-style: none; gap: 1.5rem; } nav a { color: var(--light); text-decoration: none; position: relative; font-size: 0.95rem; transition: all 0.3s; } nav a::after { content: ""; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: var(--accent); transition: width 0.3s ease; } nav a:hover { color: var(--accent); } nav a:hover::after { width: 100%; } .hero { padding: 1.5rem; min-height: 70vh; display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; } h1 { font-size: 3.5rem; line-height: 1.2; margin-bottom: 1.5rem; position: relative; } h1 .highlight { position: relative; color: var(--accent); } h1 .highlight::after { content: ""; position: absolute; width: 100%; height: 30%; background-color: rgba(0, 234, 255, 0.15); bottom: 0; left: 0; z-index: -1; } .subtitle { font-size: 1.2rem; margin-bottom: 2rem; max-width: 550px; opacity: 0.9; line-height: 1.6; } .cta-buttons { display: flex; gap: 1rem; margin-top: 1rem; } .btn { padding: 0.75rem 1.75rem; border-radius: 30px; font-weight: 600; text-decoration: none; transition: all 0.3s; border: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; position: relative; } .btn-primary { background: var(--gradient); color: var(--light); box-shadow: 0 4px 20px rgba(0, 98, 255, 0.3); } .btn-primary:hover { transform: translateY(-3px); box-shadow: 0 7px 30px rgba(0, 98, 255, 0.4); } .btn-secondary { background: transparent; border: 2px solid var(--light); color: var(--light); } .btn-secondary:hover { background: rgba(255, 255, 255, 0.1); transform: translateY(-3px); } .btn-icon { margin-left: 0.5rem; transition: transform 0.3s; } .btn:hover .btn-icon { transform: translateX(3px); } .features { padding: 1.5rem; margin-top: 2rem; } .section-title { position: relative; display: inline-block; margin-bottom: 2.5rem; font-size: 1.75rem; } .section-title::after { content: ""; position: absolute; bottom: -12px; left: 0; width: 60px; height: 4px; background: var(--accent); border-radius: 2px; } .feature-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 2rem; margin-top: 1rem; } .feature-card { background: rgba(18, 20, 33, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; padding: 1.5rem; transition: all 0.3s; position: relative; overflow: hidden; cursor: pointer; } .feature-card::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h20v20H0V0zm10 17a7 7 0 1 0 0-14 7 7 0 0 0 0 14zm0-2a5 5 0 1 1 0-10 5 5 0 0 1 0 10z' fill='%23ffffff' fill-opacity='0.03' fill-rule='evenodd'/%3E%3C/svg%3E"); background-blend-mode: overlay; z-index: -1; opacity: 0; transition: opacity 0.3s; } .feature-card:hover { transform: translateY(-8px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); border-color: rgba(110, 0, 255, 0.3); } .feature-card:hover::before { opacity: 1; } .feature-icon { width: 50px; height: 50px; border-radius: 12px; background: var(--gradient); display: flex; align-items: center; justify-content: center; margin-bottom: 1.25rem; position: relative; overflow: hidden; } .feature-icon::after { content: ""; position: absolute; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg width='30' height='30' viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M15 0C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15 8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15zm0 26c-6.075 0-11-4.925-11-11S8.925 4 15 4s11 4.925 11 11-4.925 11-11 11z' fill='%23ffffff' fill-opacity='0.15'/%3E%3C/svg%3E"); background-blend-mode: overlay; z-index: -1; } .feature-title { font-size: 1.25rem; margin-bottom: 0.75rem; font-weight: 600; } .feature-desc { color: rgba(255, 255, 255, 0.7); font-size: 0.95rem; line-height: 1.6; } .tech-preview { position: relative; padding: 1.5rem; margin-top: 3rem; margin-bottom: 3rem; } .glowing-sphere { position: absolute; width: 280px; height: 280px; right: -140px; top: -140px; background: radial-gradient(circle, rgba(110, 0, 255, 0.4) 0%, rgba(0, 98, 255, 0.2) 40%, rgba(0, 0, 0, 0) 70%); border-radius: 50%; filter: blur(20px); z-index: -1; animation: orbitFloat 15s infinite linear; } .demo-interface { width: 100%; background: rgba(18, 20, 33, 0.8); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 12px; height: 180px; position: relative; overflow: hidden; } .interface-bar { background: rgba(0, 0, 0, 0.3); height: 30px; display: flex; align-items: center; padding: 0 10px; } .interface-controls { display: flex; gap: 6px; } .control-dot { width: 10px; height: 10px; border-radius: 50%; } .control-dot:nth-child(1) { background: #FF5F57; } .control-dot:nth-child(2) { background: #FFBD2E; } .control-dot:nth-child(3) { background: #28CA41; } .demo-content { padding: 15px; display: flex; flex-direction: column; height: calc(100% - 30px); } .code-line { font-family: 'Courier New', monospace; font-size: 12px; color: rgba(255, 255, 255, 0.7); margin-bottom: 4px; display: flex; } .line-number { color: rgba(255, 255, 255, 0.3); width: 20px; text-align: right; margin-right: 10px; } .typing-animation { border-right: 2px solid var(--accent); animation: blinkCursor 0.8s infinite; } .cta-section { padding: 3rem 1.5rem; text-align: center; position: relative; z-index: 1; } .floating-circles { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: -1; overflow: hidden; } .circle { position: absolute; border-radius: 50%; background: rgba(0, 98, 255, 0.1); animation: floatAround 12s infinite linear; } .circle:nth-child(1) { width: 80px; height: 80px; left: 10%; top: 20%; animation-duration: 15s; } .circle:nth-child(2) { width: 60px; height: 60px; right: 15%; top: 30%; animation-duration: 12s; animation-delay: 1s; } .circle:nth-child(3) { width: 40px; height: 40px; left: 20%; bottom: 20%; animation-duration: 18s; animation-delay: 2s; } .cta-title { font-size: 2.5rem; margin-bottom: 1rem; } .cta-text { font-size: 1.1rem; margin-bottom: 2rem; opacity: 0.9; max-width: 500px; margin-left: auto; margin-right: auto; } footer { padding: 1.5rem; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: 0.85rem; color: rgba(255, 255, 255, 0.6); } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(0, 234, 255, 0.7); } 70% { box-shadow: 0 0 0 10px rgba(0, 234, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(0, 234, 255, 0); } } @keyframes blinkCursor { 0%, 100% { border-color: transparent; } 50% { border-color: var(--accent); } } @keyframes floatAround { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(10px, 15px) rotate(90deg); } 50% { transform: translate(5px, -10px) rotate(180deg); } 75% { transform: translate(-10px, 5px) rotate(270deg); } 100% { transform: translate(0, 0) rotate(360deg); } } @keyframes orbitFloat { 0% { transform: rotate(0deg) translateX(20px) rotate(0deg); } 100% { transform: rotate(360deg) translateX(20px) rotate(-360deg); } } /* Mobile Responsiveness */ @media (max-width: 600px) { h1 { font-size: 2.5rem; } .subtitle { font-size: 1rem; } .feature-grid { grid-template-columns: 1fr; } .cta-buttons { flex-direction: column; gap: 1rem; } .btn { width: 100%; } nav ul { gap: 1rem; } .logo { font-size: 1.2rem; } .cta-title { font-size: 2rem; } } /* For embedding purposes - scrollbar styling */ ::-webkit-scrollbar { width: 6px; height: 6px; } ::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); } ::-webkit-scrollbar-thumb { background: rgba(0, 98, 255, 0.5); border-radius: 3px; } ::-webkit-scrollbar-thumb:hover { background: rgba(0, 98, 255, 0.7); } /* Custom cursor */ .custom-cursor { position: fixed; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--accent); pointer-events: none; transform: translate(-50%, -50%); transition: width 0.2s, height 0.2s, background 0.2s; z-index: 9999; mix-blend-mode: difference; } .cursor-dot { position: fixed; width: 4px; height: 4px; background-color: var(--accent); border-radius: 50%; pointer-events: none; transform: translate(-50%, -50%); z-index: 10000; mix-blend-mode: difference; } </style> </head> <body> <div class="bg-pattern"></div> <div class="color-overlay"></div> <div class="custom-cursor"></div> <div class="cursor-dot"></div> <header> <div class="logo">Quantum Nexus</div> <nav> <ul> <li><a href="#features">Features</a></li> <li><a href="#demo">Demo</a></li> <li><a href="#contact">Contact</a></li> </ul> </nav> </header> <main> <section class="hero"> <h1>Redefine Your <span class="highlight">Digital Reality</span></h1> <p class="subtitle">Building the infrastructure for next-gen AI operations with quantum-inspired algorithms and unprecedented computational efficiency.</p> <div class="cta-buttons"> <button class="btn btn-primary"> Schedule Demo <svg class="btn-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 12H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 5L19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </button> <button class="btn btn-secondary"> Learn Technology </button> </div> </section> <section class="features" id="features"> <h2 class="section-title">Core Capabilities</h2> <div class="feature-grid"> <div class="feature-card"> <div class="feature-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2 12H22" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 2C14.5013 4.73835 15.9228 8.29203 16 12C15.9228 15.708 14.5013 19.2616 12 22C9.49872 19.2616 8.07725 15.708 8 12C8.07725 8.29203 9.49872 4.73835 12 2Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <h3 class="feature-title">Neural Mesh Architecture</h3> <p class="feature-desc">Distributed computing framework that scales horizontally with 200% efficiency compared to traditional cloud stacks.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M10 3H3V10H10V3Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M21 3H14V10H21V3Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M21 14H14V21H21V14Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M10 14H3V21H10V14Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <h3 class="feature-title">Quantum-Proof Security</h3> <p class="feature-desc">Post-quantum cryptographic protocols ensuring future-proof data protection against emerging computational threats.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 2L2 7L12 12L22 7L12 2Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2 17L12 22L22 17" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2 12L12 17L22 12" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <h3 class="feature-title">Adaptive ML Processing</h3> <p class="feature-desc">Real-time training pipeline optimization reducing model convergence time by up to 73% versus traditional frameworks.</p> </div> </div> </section> <section class="tech-preview" id="demo"> <div class="glowing-sphere"></div> <h2 class="section-title">Technology Preview</h2> <div class="demo-interface"> <div class="interface-bar"> <div class="interface-controls"> <div class="control-dot"></div> <div class="control-dot"></div> <div class="control-dot"></div> </div> </div> <div class="demo-content"> <div class="code-line"> <span class="line-number">1</span> <span>import quantumnexus as qn</span> </div> <div class="code-line"> <span class="line-number">2</span> <span>from qn.neural import MeshNetwork</span> </div> <div class="code-line"> <span class="line-number">3</span> <span></span> </div> <div class="code-line"> <span class="line-number">4</span> <span>// Initialize distributed architecture</span> </div> <div class="code-line"> <span class="line-number">5</span> <span>network = MeshNetwork(nodes=16, redundancy=2.4)</span> </div> <div class="code-line"> <span class="line-number">6</span> <span>network.deploy(region="global")</span> </div> <div class="code-line"> <span class="line-number">7</span> <span></span> </div> <div class="code-line"> <span class="line-number">8</span> <span>// Start quantum-secure processing</span> </div> <div class="code-line"> <span class="line-number">9</span> <span>result = network.process(data, encryption="post-quantum"<span class="typing-animation"></span></span> </div> </div> </div> </section> <section class="cta-section" id="contact"> <div class="floating-circles"> <div class="circle"></div> <div class="circle"></div> <div class="circle"></div> </div> <h2 class="cta-title">Ready to Transform Your Stack?</h2> <p class="cta-text">Join forward-thinking enterprises already leveraging our platform for 8x computational efficiency gains.</p> <div class="cta-buttons"> <button class="btn btn-primary"> Get Early Access <svg class="btn-icon" width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 12H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 5L19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </button> </div> </section> </main> <footer> <p>© 2023 Quantum Nexus Technologies | Privacy Policy | Terms of Service</p> </footer> <script> // Custom cursor effect const cursor = document.querySelector('.custom-cursor'); const cursorDot = document.querySelector('.cursor-dot'); document.addEventListener('mousemove', (e) => { cursor.style.left = e.clientX + 'px'; cursor.style.top = e.clientY + 'px'; cursorDot.style.left = e.clientX + 'px'; cursorDot.style.top = e.clientY + 'px'; }); // Expand cursor on hoverable elements const hoverableElements = document.querySelectorAll('button, a, .feature-card'); hoverableElements.forEach(element => { element.addEventListener('mouseenter', () => { cursor.style.width = '50px'; cursor.style.height = '50px'; cursor.style.backgroundColor = 'rgba(0, 234, 255, 0.1)'; cursor.style.mixBlendMode = 'normal'; }); element.addEventListener('mouseleave', () => { cursor.style.width = '20px'; cursor.style.height = '20px'; cursor.style.backgroundColor = 'transparent'; cursor.style.mixBlendMode = 'difference'; }); }); // Button click effects const buttons = document.querySelectorAll('.btn'); buttons.forEach(button => { button.addEventListener('click', function(e) { // Create ripple effect const ripple = document.createElement('span'); ripple.classList.add('ripple'); this.appendChild(ripple); const x = e.clientX - e.target.getBoundingClientRect().left; const y = e.clientY - e.target.getBoundingClientRect().top; ripple.style.left = `${x}px`; ripple.style.top = `${y}px`; setTimeout(() => { ripple.remove(); }, 600); // Show success toast instead of actual form submission if (this.classList.contains('btn-primary')) { showToast("Request submitted successfully!"); } }); }); // Typing animation for the code section function typeText() { const typingElement = document.querySelector('.typing-animation'); const fullText = ', optimize=True)'; let currentIndex = 0; function type() { if (currentIndex < fullText.length) { typingElement.textContent += fullText.charAt(currentIndex); currentIndex++; setTimeout(type, 100); } else { setTimeout(resetTyping, 2000); } } function resetTyping() { typingElement.textContent = ''; currentIndex = 0; setTimeout(type, 500); } type(); } // Show toast notification function showToast(message) { const toast = document.createElement('div'); toast.classList.add('toast'); toast.textContent = message; // Style the toast toast.style.position = 'fixed'; toast.style.bottom = '20px'; toast.style.left = '50%'; toast.style.transform = 'translateX(-50%)'; toast.style.backgroundColor = 'rgba(0, 234, 255, 0.9)'; toast.style.color = '#121421'; toast.style.padding = '10px 20px'; toast.style.borderRadius = '30px'; toast.style.zIndex = '1000'; toast.style.boxShadow = '0 4px 15px rgba(0, 234, 255, 0.3)'; toast.style.fontWeight = '600'; document.body.appendChild(toast); // Animate in toast.style.transition = 'all 0.3s ease'; toast.style.opacity = '0'; toast.style.bottom = '10px'; setTimeout(() => { toast.style.opacity = '1'; toast.style.bottom = '20px'; }, 10); // Remove after delay setTimeout(() => { toast.style.opacity = '0'; toast.style.bottom = '10px'; setTimeout(() => { document.body.removeChild(toast); }, 300); }, 3000); } // Smooth scrolling for navigation document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); const targetElement = document.querySelector(targetId); if (targetElement) { window.scrollTo({ top: targetElement.offsetTop - 20, behavior: 'smooth' }); } }); }); // Initialize typing animation on load window.addEventListener('load', typeText); // Intersection Observer for animations const animateOnScroll = () => { const elements = document.querySelectorAll('.feature-card, .section-title, .demo-interface'); const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.style.opacity = '1'; entry.target.style.transform = 'translateY(0)'; } }); }, { threshold: 0.1 }); elements.forEach(element => { element.style.opacity = '0'; element.style.transform = 'translateY(20px)'; element.style.transition = 'opacity 0.6s ease, transform 0.6s ease'; observer.observe(element); }); }; // Run animations animateOnScroll(); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>EarthGuard Alliance | Protecting Natural Habitats</title> <style> :root { --primary-color: #457b9d; --secondary-color: #1d3557; --accent-color: #e76f51; --light-color: #f1faee; --dark-color: #2a2a2a; --transition: all 0.4s cubic-bezier(0.645, 0.045, 0.355, 1); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; } body { background-color: var(--light-color); color: var(--dark-color); font-size: 16px; line-height: 1.6; overflow-x: hidden; max-width: 700px; margin: 0 auto; height: 100vh; display: flex; flex-direction: column; } header { background-color: var(--primary-color); color: white; padding: 0.5rem 1rem; position: relative; z-index: 10; display: flex; justify-content: space-between; align-items: center; } .logo { display: flex; align-items: center; gap: 0.5rem; } .logo svg { width: 30px; height: 30px; } .logo h1 { font-size: 1.2rem; font-weight: 700; } nav ul { display: flex; list-style: none; gap: 1rem; } nav a { color: white; text-decoration: none; font-size: 0.9rem; position: relative; padding: 0.5rem 0; } nav a::after { content: ''; position: absolute; width: 0; height: 2px; bottom: 0; left: 0; background-color: white; transition: var(--transition); } nav a:hover::after { width: 100%; } .mobile-toggle { display: none; background: none; border: none; color: white; cursor: pointer; font-size: 1.5rem; } .hero { position: relative; height: 40vh; display: flex; align-items: center; justify-content: center; text-align: center; color: white; overflow: hidden; } .hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1465146344425-f00d5f5c8f07?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80'); background-size: cover; background-position: center; background-color: var(--primary-color); background-blend-mode: soft-light; transition: var(--transition); transform-origin: center; } .hero:hover .hero-bg { transform: scale(1.05); background-blend-mode: overlay; } .hero-content { position: relative; z-index: 2; max-width: 80%; padding: 2rem; background-color: rgba(29, 53, 87, 0.7); backdrop-filter: blur(5px); border-radius: 8px; transition: var(--transition); } .hero:hover .hero-content { background-color: rgba(29, 53, 87, 0.8); } .hero h2 { font-size: 2rem; margin-bottom: 1rem; line-height: 1.2; } .hero p { margin-bottom: 1.5rem; } .btn { display: inline-block; padding: 0.75rem 1.5rem; background-color: var(--accent-color); color: white; text-decoration: none; border-radius: 30px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; font-size: 0.9rem; transition: var(--transition); border: none; cursor: pointer; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .btn:hover { background-color: #c85a3e; transform: translateY(-3px); box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15); } .btn:active { transform: translateY(0); box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .main-content { padding: 2rem 1rem; flex: 1; } .mission { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 3rem; } .mission-text { display: flex; flex-direction: column; justify-content: center; } .mission-text h3 { color: var(--secondary-color); margin-bottom: 1rem; font-size: 1.5rem; position: relative; } .mission-text h3::after { content: ''; position: absolute; width: 60px; height: 3px; background-color: var(--accent-color); bottom: -10px; left: 0; } .mission-img { height: 100%; border-radius: 8px; overflow: hidden; position: relative; } .mission-img::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1552084117-56a987666449?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80'); background-size: cover; background-position: center; background-color: var(--primary-color); background-blend-mode: soft-light; transition: var(--transition); } .mission-img:hover::before { background-blend-mode: overlay; } .key-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-bottom: 3rem; } .stat-card { background-color: white; padding: 1.5rem; border-radius: 8px; text-align: center; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05); transition: var(--transition); border-top: 3px solid var(--primary-color); position: relative; overflow: hidden; } .stat-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80'); background-size: cover; background-position: center; background-color: var(--primary-color); background-blend-mode: soft-light; opacity: 0.07; z-index: 0; transition: var(--transition); } .stat-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); } .stat-card:hover::before { opacity: 0.12; } .stat-card .number { font-size: 2.5rem; font-weight: 700; color: var(--accent-color); margin-bottom: 0.5rem; position: relative; z-index: 1; } .stat-card .label { font-size: 0.9rem; color: var(--secondary-color); text-transform: uppercase; letter-spacing: 1px; position: relative; z-index: 1; } .get-involved { background-color: var(--secondary-color); color: white; padding: 2rem; border-radius: 8px; position: relative; overflow: hidden; } .get-involved::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?ixlib=rb-1.2.1&auto=format&fit=crop&w=1350&q=80'); background-size: cover; background-position: center; background-color: var(--secondary-color); background-blend-mode: soft-light; opacity: 0.3; transition: var(--transition); } .get-involved:hover::before { background-blend-mode: overlay; } .get-involved-content { position: relative; z-index: 2; } .get-involved h3 { margin-bottom: 1rem; font-size: 1.5rem; } .get-involved p { margin-bottom: 1.5rem; } .get-involved form { display: flex; gap: 0.5rem; } .get-involved input { flex: 1; padding: 0.75rem 1rem; border: none; border-radius: 30px; font-size: 0.9rem; } footer { background-color: var(--secondary-color); color: white; padding: 1rem; text-align: center; font-size: 0.8rem; } .social-icons { display: flex; justify-content: center; gap: 1rem; margin-bottom: 0.5rem; } .social-icon { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; background-color: rgba(255, 255, 255, 0.1); border-radius: 50%; transition: var(--transition); } .social-icon:hover { background-color: var(--accent-color); transform: translateY(-3px); } .social-icon svg { width: 16px; height: 16px; fill: white; } /* Popup for newsletter signup confirmation */ .popup { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 100; opacity: 0; visibility: hidden; transition: var(--transition); } .popup.active { opacity: 1; visibility: visible; } .popup-content { background-color: white; padding: 2rem; border-radius: 8px; position: relative; width: 90%; max-width: 400px; text-align: center; transform: translateY(20px); transition: var(--transition); } .popup.active .popup-content { transform: translateY(0); } .popup h3 { color: var(--secondary-color); margin-bottom: 1rem; } .popup p { margin-bottom: 1.5rem; } .close-popup { position: absolute; top: 10px; right: 10px; background: none; border: none; font-size: 1.5rem; line-height: 1; cursor: pointer; color: var(--dark-color); } /* Animation for stats */ @keyframes countUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animate-count { animation: countUp 0.8s ease-out forwards; } /* Responsive styles */ @media (max-width: 700px) { .mission { grid-template-columns: 1fr; } .key-stats { grid-template-columns: 1fr; } .mobile-toggle { display: block; } nav { position: absolute; top: 100%; left: 0; width: 100%; background-color: var(--primary-color); padding: 1rem; transform: translateY(-100%); opacity: 0; transition: var(--transition); z-index: -1; } nav.active { transform: translateY(0); opacity: 1; z-index: 9; } nav ul { flex-direction: column; align-items: center; } .hero h2 { font-size: 1.5rem; } .get-involved form { flex-direction: column; } } </style> </head> <body> <header> <div class="logo"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M8 16L12 12M12 12L16 16M12 12V21M20 16.7428C21.2215 15.734 22 14.2079 22 12.5C22 9.46243 19.5376 7 16.5 7C16.2815 7 16.0771 6.886 15.9661 6.69774C14.6621 4.48484 12.2544 3 9.5 3C5.35786 3 2 6.35786 2 10.5C2 12.5661 2.83545 14.4371 4.18695 15.7935" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> <h1>EarthGuard Alliance</h1> </div> <button class="mobile-toggle">☰</button> <nav> <ul> <li><a href="#mission">Our Mission</a></li> <li><a href="#impact">Our Impact</a></li> <li><a href="#join">Join Us</a></li> </ul> </nav> </header> <section class="hero"> <div class="hero-bg"></div> <div class="hero-content"> <h2>Protecting Natural Habitats For Future Generations</h2> <p>For 25 years, we've restored and protected over 5 million acres of crucial wildlife habitats across the globe.</p> <a href="#join" class="btn">Take Action Today</a> </div> </section> <main class="main-content"> <section id="mission" class="mission"> <div class="mission-text"> <h3>Our Mission</h3> <p>EarthGuard Alliance works at the intersection of conservation science, community engagement, and policy advocacy. We partner with local communities to implement sustainable solutions for habitat protection and restoration.</p> <p>Rather than imposing top-down approaches, our proven methodology empowers indigenous people and local stakeholders as the primary stewards of their ecosystems.</p> </div> <div class="mission-img"></div> </section> <section id="impact" class="key-stats"> <div class="stat-card" data-target="5"> <div class="number">0</div> <div class="label">Million Acres Protected</div> </div> <div class="stat-card" data-target="247"> <div class="number">0</div> <div class="label">Community Projects</div> </div> <div class="stat-card" data-target="83"> <div class="number">0</div> <div class="label">Endangered Species Supported</div> </div> </section> <section id="join" class="get-involved"> <div class="get-involved-content"> <h3>Join Our Community of Earth Guardians</h3> <p>Sign up for our newsletter to receive updates on our projects, upcoming volunteer opportunities, and ways you can make a difference from home.</p> <form id="newsletter-form"> <input type="email" placeholder="Your email address" required> <button type="submit" class="btn">Subscribe</button> </form> </div> </section> </main> <footer> <div class="social-icons"> <a href="#" class="social-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path> </svg> </a> <a href="#" class="social-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path> </svg> </a> <a href="#" class="social-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> <rect x="2" y="2" width="20" height="20" rx="5" ry="5"></rect> <path d="M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z"></path> <line x1="17.5" y1="6.5" x2="17.51" y2="6.5"></line> </svg> </a> </div> <p>© 2023 EarthGuard Alliance. All rights reserved.</p> </footer> <!-- Popup for newsletter signup --> <div class="popup" id="newsletter-popup"> <div class="popup-content"> <button class="close-popup">×</button> <h3>Thank You For Joining Us!</h3> <p>You've taken the first step toward becoming an Earth Guardian. Watch your inbox for our welcome message and latest newsletter.</p> <button class="btn">Continue Exploring</button> </div> </div> <script> // Mobile navigation toggle const mobileToggle = document.querySelector('.mobile-toggle'); const nav = document.querySelector('nav'); mobileToggle.addEventListener('click', () => { nav.classList.toggle('active'); }); // Smooth scrolling for navigation links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); nav.classList.remove('active'); document.querySelector(this.getAttribute('href')).scrollIntoView({ behavior: 'smooth' }); }); }); // Animate stats counter when in viewport const statElements = document.querySelectorAll('.stat-card'); const animateStats = () => { statElements.forEach(stat => { const numberElement = stat.querySelector('.number'); const targetValue = parseInt(stat.dataset.target); // Only animate if not already animated if (numberElement.textContent === '0') { stat.classList.add('animate-count'); let currentValue = 0; const increment = targetValue / 50; // Divide animation into 50 steps const duration = 1500; // Animation duration in ms const interval = duration / 50; const counter = setInterval(() => { currentValue += increment; if (currentValue > targetValue) { currentValue = targetValue; clearInterval(counter); } numberElement.textContent = Math.floor(currentValue); }, interval); } }); }; // Check if element is in viewport const isInViewport = (element) => { const rect = element.getBoundingClientRect(); return ( rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth) ); }; // Run on scroll and initial load const handleScroll = () => { if (isInViewport(document.querySelector('.key-stats'))) { animateStats(); // Remove the event listener once animation has started window.removeEventListener('scroll', handleScroll); } }; window.addEventListener('scroll', handleScroll); // Check on initial load as well setTimeout(handleScroll, 500); // Newsletter form submission const newsletterForm = document.getElementById('newsletter-form'); const popup = document.getElementById('newsletter-popup'); const closePopup = document.querySelector('.close-popup'); const continueBtn = document.querySelector('.popup-content .btn'); newsletterForm.addEventListener('submit', (e) => { e.preventDefault(); popup.classList.add('active'); newsletterForm.reset(); }); closePopup.addEventListener('click', () => { popup.classList.remove('active'); }); continueBtn.addEventListener('click', () => { popup.classList.remove('active'); }); // Close popup if clicked outside content popup.addEventListener('click', (e) => { if (e.target === popup) { popup.classList.remove('active'); } }); // Background parallax effect for hero section const hero = document.querySelector('.hero'); const heroBg = document.querySelector('.hero-bg'); hero.addEventListener('mousemove', (e) => { const x = e.clientX / window.innerWidth; const y = e.clientY / window.innerHeight; heroBg.style.transform = `scale(1.05) translate(${x * -20}px, ${y * -20}px)`; }); // Reset transform when mouse leaves hero.addEventListener('mouseleave', () => { heroBg.style.transform = 'scale(1.05)'; }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Prism Fest 2023</title> <style> :root { --color-primary: #ff3e6c; --color-secondary: #4f3dfb; --color-tertiary: #00c9a7; --color-dark: #12122a; --color-light: #f8f9fa; --font-main: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--font-main); background-color: var(--color-dark); color: var(--color-light); overflow-x: hidden; max-width: 700px; margin: 0 auto; height: 100vh; scrollbar-width: thin; scrollbar-color: var(--color-primary) var(--color-dark); } body::-webkit-scrollbar { width: 8px; } body::-webkit-scrollbar-track { background: var(--color-dark); } body::-webkit-scrollbar-thumb { background-color: var(--color-primary); border-radius: 20px; } header { padding: 1.5rem 1rem; position: sticky; top: 0; z-index: 100; background-color: rgba(18, 18, 42, 0.8); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } nav { display: flex; justify-content: space-between; align-items: center; } .logo { font-weight: 800; font-size: 1.5rem; background: linear-gradient(90deg, var(--color-primary), var(--color-tertiary)); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -0.5px; position: relative; } .logo::after { content: "2023"; position: absolute; font-size: 0.8rem; top: 0; right: -30px; color: var(--color-light); opacity: 0.7; } .nav-items { display: flex; gap: 1.5rem; } .nav-items a { color: var(--color-light); text-decoration: none; font-size: 0.9rem; font-weight: 500; position: relative; padding: 0.3rem 0; transition: color 0.3s ease; } .nav-items a::after { content: ""; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, var(--color-primary), var(--color-tertiary)); transition: width 0.3s ease; } .nav-items a:hover { color: var(--color-primary); } .nav-items a:hover::after { width: 100%; } .hero { height: 90vh; display: flex; flex-direction: column; justify-content: center; align-items: center; text-align: center; padding: 2rem; position: relative; overflow: hidden; margin-top: -80px; } .hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1533174072545-7a4b6ad7a6a3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80'); background-size: cover; background-position: center; background-color: var(--color-primary); background-blend-mode: multiply; filter: brightness(0.6); z-index: -1; animation: bgPulse 10s infinite alternate; } @keyframes bgPulse { 0% { background-color: var(--color-primary); transform: scale(1); } 33% { background-color: var(--color-secondary); } 66% { background-color: var(--color-tertiary); } 100% { background-color: var(--color-primary); transform: scale(1.05); } } .hero-content { max-width: 700px; z-index: 2; opacity: 0; transform: translateY(30px); animation: fadeInUp 1s forwards 0.5s; } @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } } .hero h1 { font-size: 4rem; font-weight: 900; margin-bottom: 1rem; line-height: 1.1; letter-spacing: -2px; color: white; text-shadow: 0 2px 20px rgba(0, 0, 0, 0.3); } .hero p { font-size: 1.2rem; line-height: 1.6; margin-bottom: 2rem; max-width: 600px; } .dates { font-weight: 700; letter-spacing: 1px; padding: 0.5rem 1.5rem; background: rgba(0, 0, 0, 0.3); border-radius: 50px; backdrop-filter: blur(5px); margin-bottom: 2rem; display: inline-block; border: 1px solid rgba(255, 255, 255, 0.1); } .cta-btn { display: inline-block; padding: 1rem 2.5rem; background: linear-gradient(45deg, var(--color-primary), var(--color-secondary)); color: white; border: none; border-radius: 50px; font-weight: 700; font-size: 1rem; cursor: pointer; transition: transform 0.3s, box-shadow 0.3s; text-decoration: none; box-shadow: 0 10px 20px rgba(79, 61, 251, 0.3); position: relative; overflow: hidden; z-index: 1; } .cta-btn::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, var(--color-secondary), var(--color-primary)); opacity: 0; transition: opacity 0.3s ease; z-index: -1; } .cta-btn:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(79, 61, 251, 0.4); } .cta-btn:hover::before { opacity: 1; } .section-title { text-align: center; font-size: 2rem; font-weight: 800; margin-bottom: 3rem; position: relative; padding-bottom: 1rem; } .section-title::after { content: ""; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 50px; height: 3px; background: linear-gradient(90deg, var(--color-primary), var(--color-tertiary)); } .lineup-section { padding: 5rem 1.5rem; background-color: var(--color-dark); position: relative; } .lineup-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; margin-bottom: 3rem; } .artist-card { border-radius: 10px; overflow: hidden; position: relative; height: 250px; transition: transform 0.3s ease; cursor: pointer; } .artist-card:hover { transform: translateY(-10px); } .artist-card img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .artist-card:hover img { transform: scale(1.1); } .artist-info { position: absolute; bottom: 0; left: 0; width: 100%; padding: 1rem; background: linear-gradient(transparent, rgba(0, 0, 0, 0.9)); color: white; transform: translateY(0); transition: transform 0.3s ease; } .artist-name { font-weight: 700; font-size: 1.2rem; margin-bottom: 0.5rem; } .artist-genre { font-size: 0.8rem; opacity: 0.8; } .experience-section { padding: 5rem 1.5rem; position: relative; } .experience-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1.5rem; } .experience-item { background: rgba(255, 255, 255, 0.05); padding: 2rem 1.5rem; border-radius: 10px; text-align: center; transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer; position: relative; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); } .experience-item::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); opacity: 0; transition: opacity 0.3s ease; z-index: -1; } .experience-item:hover { transform: translateY(-10px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); border-color: transparent; } .experience-item:hover::before { opacity: 0.1; } .experience-icon { font-size: 2.5rem; margin-bottom: 1rem; color: var(--color-primary); } .experience-title { font-weight: 700; margin-bottom: 0.5rem; font-size: 1.2rem; } .experience-desc { font-size: 0.9rem; opacity: 0.8; line-height: 1.6; } .gallery-section { padding: 5rem 1.5rem; background: linear-gradient(to bottom, var(--color-dark), rgba(18, 18, 42, 0.95)); position: relative; overflow: hidden; } .gallery-pattern { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: radial-gradient(circle at 10% 20%, rgba(255, 62, 108, 0.1) 0%, transparent 20%), radial-gradient(circle at 90% 50%, rgba(79, 61, 251, 0.1) 0%, transparent 25%), radial-gradient(circle at 40% 80%, rgba(0, 201, 167, 0.1) 0%, transparent 15%); z-index: -1; } .gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin-bottom: 2rem; } .gallery-item { position: relative; overflow: hidden; aspect-ratio: 1; border-radius: 10px; cursor: pointer; } .gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .gallery-item:hover img { transform: scale(1.15); } .gallery-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(18, 18, 42, 0.5); opacity: 0; transition: opacity 0.3s ease; display: flex; justify-content: center; align-items: center; font-size: 1.5rem; color: white; } .gallery-item:hover .gallery-overlay { opacity: 1; } .cta-section { text-align: center; padding: 5rem 1.5rem; background-color: var(--color-dark); position: relative; overflow: hidden; } .cta-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1470229722913-7c0e2dbbafd3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80'); background-size: cover; background-position: center; background-color: var(--color-secondary); background-blend-mode: soft-light; filter: blur(5px) brightness(0.4); z-index: -1; } .cta-content { max-width: 600px; margin: 0 auto; position: relative; z-index: 2; } .cta-title { font-size: 2.5rem; font-weight: 800; margin-bottom: 1.5rem; letter-spacing: -1px; } .tickets-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; margin-top: 3rem; margin-bottom: 3rem; } .ticket-card { background: rgba(255, 255, 255, 0.05); border-radius: 15px; padding: 2rem 1.5rem; text-align: center; border: 1px solid rgba(255, 255, 255, 0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; overflow: hidden; } .ticket-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 5px; background: linear-gradient(90deg, var(--color-primary), var(--color-secondary)); } .ticket-card:hover { transform: translateY(-10px); box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); } .ticket-name { font-weight: 700; font-size: 1.5rem; margin-bottom: 0.5rem; } .ticket-price { font-size: 2rem; font-weight: 800; margin-bottom: 1.5rem; color: var(--color-tertiary); } .ticket-desc { font-size: 0.9rem; opacity: 0.8; margin-bottom: 1.5rem; line-height: 1.6; } .ticket-btn { display: inline-block; padding: 0.8rem 1.5rem; background: transparent; color: white; border: 1px solid var(--color-primary); border-radius: 50px; font-weight: 600; font-size: 0.9rem; cursor: pointer; transition: background 0.3s, color 0.3s, transform 0.3s; text-decoration: none; } .ticket-btn:hover { background: var(--color-primary); color: white; transform: translateY(-3px); } .countdown { display: flex; justify-content: center; gap: 1.5rem; margin-bottom: 2rem; } .countdown-item { display: flex; flex-direction: column; align-items: center; } .countdown-value { font-size: 2.5rem; font-weight: 800; line-height: 1; background: linear-gradient(135deg, var(--color-primary), var(--color-secondary)); -webkit-background-clip: text; background-clip: text; color: transparent; } .countdown-label { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 1px; opacity: 0.7; margin-top: 0.5rem; } .footer { background-color: rgba(0, 0, 0, 0.5); padding: 2rem 1.5rem; text-align: center; border-top: 1px solid rgba(255, 255, 255, 0.1); } .social-links { display: flex; justify-content: center; gap: 1.5rem; margin-bottom: 1.5rem; } .social-link { width: 40px; height: 40px; border-radius: 50%; display: flex; justify-content: center; align-items: center; background: rgba(255, 255, 255, 0.1); color: white; transition: transform 0.3s, background 0.3s; text-decoration: none; font-size: 1.2rem; } .social-link:hover { transform: translateY(-5px); background: var(--color-primary); } .copyright { font-size: 0.9rem; opacity: 0.7; } .menu-btn { display: none; cursor: pointer; z-index: 1000; } .menu-btn div { width: 25px; height: 3px; background-color: white; margin: 5px 0; transition: all 0.3s ease; } @media (max-width: 768px) { .menu-btn { display: block; } .nav-items { position: fixed; top: 0; right: -300px; width: 250px; height: 100vh; background-color: var(--color-dark); flex-direction: column; justify-content: center; align-items: center; padding: 2rem; transition: right 0.3s ease; z-index: 900; box-shadow: -5px 0 30px rgba(0, 0, 0, 0.2); } .nav-items.active { right: 0; } .nav-items a { margin: 1rem 0; font-size: 1.2rem; } .hero h1 { font-size: 2.5rem; } .hero p { font-size: 1rem; } .countdown-value { font-size: 1.8rem; } .menu-btn.active div:nth-child(1) { transform: rotate(-45deg) translate(-5px, 6px); } .menu-btn.active div:nth-child(2) { opacity: 0; } .menu-btn.active div:nth-child(3) { transform: rotate(45deg) translate(-5px, -6px); } .cta-title { font-size: 2rem; } .lineup-grid, .experience-grid, .tickets-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } } @media (max-width: 480px) { .hero h1 { font-size: 2rem; } .countdown { gap: 1rem; } .countdown-value { font-size: 1.5rem; } .countdown-label { font-size: 0.7rem; } .lineup-grid, .experience-grid, .tickets-grid { grid-template-columns: 1fr; } .section-title { font-size: 1.5rem; } } /* Animations and effects */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } .float { animation: float 4s ease-in-out infinite; } /* Sound wave animation */ .sound-wave { height: 30px; display: flex; align-items: center; justify-content: center; gap: 4px; margin: 2rem 0; } .sound-wave span { display: block; width: 3px; height: 100%; background-color: var(--color-primary); border-radius: 10px; animation: wave 1.5s infinite ease-in-out; } .sound-wave span:nth-child(2) { animation-delay: 0.2s; background-color: var(--color-secondary); } .sound-wave span:nth-child(3) { animation-delay: 0.4s; background-color: var(--color-tertiary); } .sound-wave span:nth-child(4) { animation-delay: 0.6s; background-color: var(--color-primary); } .sound-wave span:nth-child(5) { animation-delay: 0.8s; background-color: var(--color-secondary); } @keyframes wave { 0%, 100% { height: 10px; } 50% { height: 30px; } } /* Scroll reveal animation */ .reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; } .reveal.active { opacity: 1; transform: translateY(0); } /* Cursor trail effect */ .cursor-trail { position: fixed; width: 10px; height: 10px; background: var(--color-primary); border-radius: 50%; pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); mix-blend-mode: screen; opacity: 0.7; filter: blur(2px); transition: opacity 0.2s, width 0.2s, height 0.2s, transform 0.2s, background 0.2s; } /* Dark overlay for mobile menu */ .overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); z-index: 800; display: none; opacity: 0; transition: opacity 0.3s ease; } .overlay.active { display: block; opacity: 1; } </style> </head> <body> <div id="cursorTrail" class="cursor-trail"></div> <div class="overlay" id="overlay"></div> <header> <nav> <div class="logo">PRISMFEST</div> <div class="menu-btn" id="menuBtn"> <div></div> <div></div> <div></div> </div> <div class="nav-items" id="navItems"> <a href="#lineup">Lineup</a> <a href="#experience">Experience</a> <a href="#gallery">Gallery</a> <a href="#tickets">Tickets</a> </div> </nav> </header> <section class="hero"> <div class="hero-bg"></div> <div class="hero-content"> <div class="dates">AUGUST 15-17, 2023 • PRISM VALLEY</div> <h1>Where Music Meets Magic</h1> <p>Experience three days of sonic innovation, visual spectacle, and boundary-pushing performances from global artists in a breathtaking natural setting.</p> <div class="sound-wave"> <span></span> <span></span> <span></span> <span></span> <span></span> </div> <a href="#tickets" class="cta-btn">Get Tickets</a> </div> </section> <section class="lineup-section" id="lineup"> <h2 class="section-title reveal">Stellar Lineup</h2> <div class="lineup-grid"> <div class="artist-card reveal"> <img src="https://images.unsplash.com/photo-1559519529-0936e4058364?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=774&q=80" alt="Solar Flux"> <div class="artist-info"> <div class="artist-name">Solar Flux</div> <div class="artist-genre">Electronic Fusion</div> </div> </div> <div class="artist-card reveal"> <img src="https://images.unsplash.com/photo-1493676304819-0d7a8d026dcf?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=774&q=80" alt="Neon Pulse"> <div class="artist-info"> <div class="artist-name">Neon Pulse</div> <div class="artist-genre">Synth Wave</div> </div> </div> <div class="artist-card reveal"> <img src="https://images.unsplash.com/photo-1509824227185-9c5a01ceba0d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1180&q=80" alt="Echo Valley"> <div class="artist-info"> <div class="artist-name">Echo Valley</div> <div class="artist-genre">Indie Folk</div> </div> </div> <div class="artist-card reveal"> <img src="https://images.unsplash.com/photo-1593697821252-0c9137d9fc45?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=928&q=80" alt="Quantum Beat"> <div class="artist-info"> <div class="artist-name">Quantum Beat</div> <div class="artist-genre">Techno Groove</div> </div> </div> </div> <div class="text-center"> <a href="#" class="cta-btn float">Full Lineup</a> </div> </section> <section class="experience-section" id="experience"> <h2 class="section-title reveal">The Experience</h2> <div class="experience-grid"> <div class="experience-item reveal"> <div class="experience-icon">🎵</div> <h3 class="experience-title">4 Unique Stages</h3> <p class="experience-desc">Each with custom acoustics and immersive visual designs tailored to genre.</p> </div> <div class="experience-item reveal"> <div class="experience-icon">✨</div> <h3 class="experience-title">Light Installations</h3> <p class="experience-desc">Interactive light art throughout the festival grounds that responds to music.</p> </div> <div class="experience-item reveal"> <div class="experience-icon">🌿</div> <h3 class="experience-title">Forest Lounge</h3> <p class="experience-desc">Secluded chill zone with ambient sounds and comfortable hammocks.</p> </div> <div class="experience-item reveal"> <div class="experience-icon">🍹</div> <h3 class="experience-title">Craft Mixology</h3> <p class="experience-desc">Signature cocktails created by award-winning mixologists from around the world.</p> </div> </div> </section> <section class="gallery-section" id="gallery"> <div class="gallery-pattern"></div> <h2 class="section-title reveal">Festival Vibes</h2> <div class="gallery-grid"> <div class="gallery-item reveal"> <img src="https://images.unsplash.com/photo-1506157786151-b8491531f063?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Festival crowd"> <div class="gallery-overlay"> <i>👁️</i> </div> </div> <div class="gallery-item reveal"> <img src="https://images.unsplash.com/photo-1516450360452-9312f5e86fc7?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Night concert"> <div class="gallery-overlay"> <i>👁️</i> </div> </div> <div class="gallery-item reveal"> <img src="https://images.unsplash.com/photo-1429962714451-bb934ecdc4ec?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Festival lights"> <div class="gallery-overlay"> <i>👁️</i> </div> </div> <div class="gallery-item reveal"> <img src="https://images.unsplash.com/photo-1540039155733-5bb30b53aa14?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1074&q=80" alt="DJ performance"> <div class="gallery-overlay"> <i>👁️</i> </div> </div> </div> </section> <section class="cta-section" id="tickets"> <div class="cta-bg"></div> <div class="cta-content"> <h2 class="cta-title reveal">Get Your Pass</h2> <p class="reveal">Limited tickets available. Secure your spot for this unforgettable musical journey.</p> <div class="countdown reveal"> <div class="countdown-item"> <div class="countdown-value" id="days">00</div> <div class="countdown-label">Days</div> </div> <div class="countdown-item"> <div class="countdown-value" id="hours">00</div> <div class="countdown-label">Hours</div> </div> <div class="countdown-item"> <div class="countdown-value" id="minutes">00</div> <div class="countdown-label">Minutes</div> </div> <div class="countdown-item"> <div class="countdown-value" id="seconds">00</div> <div class="countdown-label">Seconds</div> </div> </div> <div class="tickets-grid"> <div class="ticket-card reveal"> <h3 class="ticket-name">Weekend Pass</h3> <div class="ticket-price">$199</div> <p class="ticket-desc">Full 3-day access to all stages, camping area, and workshops.</p> <a href="#" class="ticket-btn">Select</a> </div> <div class="ticket-card reveal"> <h3 class="ticket-name">VIP Experience</h3> <div class="ticket-price">$349</div> <p class="ticket-desc">Priority entry, exclusive viewing areas, artist meet & greets, VIP lounge.</p> <a href="#" class="ticket-btn">Select</a> </div> </div> </div> </section> <footer class="footer"> <div class="social-links"> <a href="#" class="social-link">📱</a> <a href="#" class="social-link">📷</a> <a href="#" class="social-link">🎵</a> <a href="#" class="social-link">📺</a> </div> <p class="copyright">© 2023 PrismFest. All rights reserved. Created with passion.</p> </footer> <script> // Mobile menu toggle const menuBtn = document.getElementById('menuBtn'); const navItems = document.getElementById('navItems'); const overlay = document.getElementById('overlay'); menuBtn.addEventListener('click', () => { menuBtn.classList.toggle('active'); navItems.classList.toggle('active'); overlay.classList.toggle('active'); document.body.style.overflow = navItems.classList.contains('active') ? 'hidden' : 'auto'; }); overlay.addEventListener('click', () => { menuBtn.classList.remove('active'); navItems.classList.remove('active'); overlay.classList.remove('active'); document.body.style.overflow = 'auto'; }); // Smooth scroll for navigation links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function (e) { e.preventDefault(); // Close mobile menu if open
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Culinary Canvas</title> <style> :root { --primary-color: #ff6b35; --secondary-color: #2e282a; --tertiary-color: #f7fff7; --accent-color: #c0d461; --overlay-color: rgba(255, 107, 53, 0.3); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Playfair Display', Georgia, serif; } body { background-color: #fcfcfc; color: var(--secondary-color); max-width: 700px; margin: 0 auto; overflow-x: hidden; } .container { max-width: 700px; height: 700px; margin: 0 auto; overflow-y: auto; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: var(--primary-color) var(--tertiary-color); } .container::-webkit-scrollbar { width: 8px; } .container::-webkit-scrollbar-track { background: var(--tertiary-color); } .container::-webkit-scrollbar-thumb { background-color: var(--primary-color); border-radius: 20px; } header { padding: 1.5rem; text-align: center; position: sticky; top: 0; background-color: rgba(255, 255, 255, 0.95); z-index: 100; backdrop-filter: blur(5px); border-bottom: 2px solid var(--accent-color); } .logo { font-size: 2rem; font-weight: 700; color: var(--primary-color); letter-spacing: 1px; margin-bottom: 0.5rem; transition: transform 0.3s ease; } .logo:hover { transform: translateY(-3px); } nav ul { display: flex; justify-content: center; list-style: none; gap: 1.5rem; margin-top: 0.5rem; } nav ul li a { text-decoration: none; color: var(--secondary-color); font-size: 0.9rem; font-weight: 500; transition: color 0.3s ease; position: relative; } nav ul li a::after { content: ''; position: absolute; width: 0; height: 2px; bottom: -5px; left: 0; background-color: var(--primary-color); transition: width 0.3s ease; } nav ul li a:hover { color: var(--primary-color); } nav ul li a:hover::after { width: 100%; } .hero { height: 350px; position: relative; margin-bottom: 2rem; overflow: hidden; } .hero-image { width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1540189549336-e6e99c3679fe?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1000&q=80'), linear-gradient(45deg, var(--overlay-color), transparent); background-size: cover; background-position: center; background-blend-mode: overlay; transition: transform 0.5s ease, background-blend-mode 0.5s ease; } .hero:hover .hero-image { transform: scale(1.05); background-blend-mode: soft-light; } .hero-content { position: absolute; bottom: 0; left: 0; padding: 2rem; background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0) 100%); width: 100%; color: white; } .hero-title { font-size: 2rem; margin-bottom: 0.5rem; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.6); opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 0.3s; } .hero-desc { font-size: 1rem; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 0.5s; } @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } } main { padding: 0 1.5rem 2rem; } .section-title { font-size: 1.75rem; margin-bottom: 1.5rem; position: relative; display: inline-block; } .section-title::after { content: ''; position: absolute; height: 3px; width: 50%; bottom: -5px; left: 0; background-color: var(--accent-color); } .featured-posts { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 1.5rem; margin-bottom: 2.5rem; } .post-card { border-radius: 10px; overflow: hidden; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer; } .post-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); } .post-image { height: 200px; position: relative; overflow: hidden; } .post-image-bg { width: 100%; height: 100%; background-size: cover; background-position: center; transition: transform 0.5s ease; background-blend-mode: overlay; } .post-image-bg.img1 { background-image: url('https://images.unsplash.com/photo-1525351484163-7529414344d8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80'), linear-gradient(45deg, var(--overlay-color), transparent); } .post-image-bg.img2 { background-image: url('https://images.unsplash.com/photo-1498837167922-ddd27525d352?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80'), linear-gradient(45deg, var(--overlay-color), transparent); } .post-card:hover .post-image-bg { transform: scale(1.1); background-blend-mode: soft-light; } .post-content { padding: 1.25rem; background-color: white; } .post-title { font-size: 1.25rem; margin-bottom: 0.75rem; color: var(--secondary-color); } .post-excerpt { font-size: 0.9rem; color: #555; line-height: 1.6; margin-bottom: 1rem; } .post-meta { display: flex; justify-content: space-between; align-items: center; font-size: 0.8rem; color: #777; } .read-more { color: var(--primary-color); font-weight: 500; text-decoration: none; transition: color 0.3s ease; } .read-more:hover { color: #e05a2b; } .newsletter { background-color: #f8f8f8; padding: 2rem; border-radius: 10px; margin-top: 2rem; border: 1px solid #eee; position: relative; overflow: hidden; } .newsletter::before { content: ''; position: absolute; top: 0; right: 0; width: 150px; height: 150px; background-image: url('https://images.unsplash.com/photo-1556679343-c7306c1976bc?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=200&q=80'); background-size: cover; background-position: center; border-bottom-left-radius: 100%; opacity: 0.2; background-blend-mode: multiply; } .newsletter-title { font-size: 1.5rem; margin-bottom: 1rem; } .newsletter-desc { font-size: 0.9rem; margin-bottom: 1.5rem; max-width: 80%; } .newsletter-form { display: flex; gap: 0.5rem; max-width: 90%; } .newsletter-input { flex: 1; padding: 0.75rem 1rem; border: 1px solid #ddd; border-radius: 5px; font-size: 0.9rem; transition: border-color 0.3s ease; } .newsletter-input:focus { outline: none; border-color: var(--primary-color); } .newsletter-button { background-color: var(--primary-color); color: white; border: none; border-radius: 5px; padding: 0.75rem 1.25rem; font-size: 0.9rem; cursor: pointer; transition: background-color 0.3s ease; } .newsletter-button:hover { background-color: #e05a2b; } footer { text-align: center; padding: 2rem 1.5rem; margin-top: 2rem; background-color: var(--secondary-color); color: white; } .social-links { display: flex; justify-content: center; gap: 1.5rem; margin: 1rem 0; } .social-link { color: white; font-size: 1.25rem; transition: color 0.3s ease, transform 0.3s ease; } .social-link:hover { color: var(--primary-color); transform: translateY(-3px); } .copyright { font-size: 0.8rem; color: rgba(255, 255, 255, 0.7); } .featured-recipe { margin: 3rem 0; display: grid; grid-template-columns: 1fr; gap: 2rem; } .recipe-image-container { position: relative; height: 300px; overflow: hidden; border-radius: 10px; } .recipe-image { position: absolute; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1515516969-d4008cc6241a?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=900&q=80'), linear-gradient(45deg, var(--overlay-color), transparent); background-size: cover; background-position: center; background-blend-mode: overlay; transition: transform 0.5s ease, background-blend-mode 0.5s ease; } .recipe-image-container:hover .recipe-image { transform: scale(1.05); background-blend-mode: soft-light; } .recipe-content { padding: 0 1rem; } .recipe-title { font-size: 1.75rem; margin-bottom: 1rem; color: var(--secondary-color); } .recipe-description { font-size: 1rem; line-height: 1.7; margin-bottom: 1.5rem; } .recipe-meta { display: flex; gap: 1.5rem; margin-bottom: 1.5rem; } .recipe-meta-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; color: #666; } .recipe-meta-icon { color: var(--primary-color); font-size: 1.1rem; } @media (max-width: 600px) { .logo { font-size: 1.75rem; } .hero { height: 250px; } .hero-title { font-size: 1.5rem; } .hero-desc { font-size: 0.9rem; } .section-title { font-size: 1.5rem; } .recipe-image-container { height: 200px; } .recipe-title { font-size: 1.5rem; } .newsletter-form { flex-direction: column; } .newsletter-button { width: 100%; } } /* Toast notification */ .toast { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%) translateY(100px); background-color: var(--secondary-color); color: white; padding: 1rem 1.5rem; border-radius: 5px; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); z-index: 1000; opacity: 0; transition: transform 0.3s ease, opacity 0.3s ease; } .toast.show { transform: translateX(-50%) translateY(0); opacity: 1; } /* Loading animation */ .loading { display: inline-block; width: 20px; height: 20px; border: 3px solid rgba(255, 255, 255, 0.3); border-radius: 50%; border-top-color: white; animation: spin 0.8s linear infinite; margin-left: 8px; display: none; } @keyframes spin { to { transform: rotate(360deg); } } /* Icons */ .icon { font-size: 1.2rem; } </style> </head> <body> <div class="container"> <header> <div class="logo">Culinary Canvas</div> <nav> <ul> <li><a href="#recipes">Recipes</a></li> <li><a href="#techniques">Techniques</a></li> <li><a href="#stories">Food Stories</a></li> <li><a href="#about">About</a></li> </ul> </nav> </header> <section class="hero"> <div class="hero-image"></div> <div class="hero-content"> <h1 class="hero-title">The Art of Food Photography</h1> <p class="hero-desc">Discover how culinary visuals can transform your dining experience</p> </div> </section> <main> <section id="featured"> <h2 class="section-title">Latest Features</h2> <div class="featured-posts"> <article class="post-card"> <div class="post-image"> <div class="post-image-bg img1"></div> </div> <div class="post-content"> <h3 class="post-title">The Science Behind Perfect Food Blending</h3> <p class="post-excerpt">How understanding color theory and texture composition elevates food presentation from ordinary to extraordinary.</p> <div class="post-meta"> <span class="post-date">Oct 12, 2023</span> <a href="#" class="read-more">Read more →</a> </div> </div> </article> <article class="post-card"> <div class="post-image"> <div class="post-image-bg img2"></div> </div> <div class="post-content"> <h3 class="post-title">Seasonal Ingredients: Fall Edition</h3> <p class="post-excerpt">Embracing autumn's bounty through rich, warming colors and rustic presentation techniques that celebrate harvest time.</p> <div class="post-meta"> <span class="post-date">Oct 8, 2023</span> <a href="#" class="read-more">Read more →</a> </div> </div> </article> </div> </section> <section id="recipes" class="featured-recipe"> <div class="recipe-image-container"> <div class="recipe-image"></div> </div> <div class="recipe-content"> <h2 class="recipe-title">Caramelized Citrus & Spice Cake</h2> <div class="recipe-meta"> <div class="recipe-meta-item"> <span class="recipe-meta-icon">⏱️</span> <span>Prep: 30 mins</span> </div> <div class="recipe-meta-item"> <span class="recipe-meta-icon">🔥</span> <span>Cook: 45 mins</span> </div> <div class="recipe-meta-item"> <span class="recipe-meta-icon">⭐</span> <span>Difficulty: Medium</span> </div> </div> <p class="recipe-description"> This beautiful spice cake combines warm autumn flavors with bright citrus notes. The caramelized orange slices create a stunning visual effect that's enhanced through our signature blend-mode photography technique, capturing the glossy caramel against the rustic cake texture. Perfect for holiday gatherings or special occasions when you want to create a memorable centerpiece dessert. </p> <a href="#" class="read-more">View full recipe →</a> </div> </section> <section class="newsletter"> <h3 class="newsletter-title">Elevate Your Food Photography</h3> <p class="newsletter-desc">Subscribe to receive weekly tips, techniques and inspiration for capturing food in its most appetizing light.</p> <form class="newsletter-form" id="newsletter-form"> <input type="email" class="newsletter-input" placeholder="Your email address" required> <button type="submit" class="newsletter-button"> Subscribe <span class="loading"></span> </button> </form> </section> </main> <footer> <div class="social-links"> <a href="#" class="social-link">📷</a> <a href="#" class="social-link">📱</a> <a href="#" class="social-link">📘</a> <a href="#" class="social-link">📌</a> </div> <p class="copyright">© 2023 Culinary Canvas. All photography techniques and recipes are original creations.</p> </footer> </div> <div class="toast" id="toast">Thanks for subscribing!</div> <script> document.addEventListener('DOMContentLoaded', function() { const newsletterForm = document.getElementById('newsletter-form'); const toast = document.getElementById('toast'); const loadingSpinner = document.querySelector('.loading'); // Form submission event newsletterForm.addEventListener('submit', function(e) { e.preventDefault(); // Show loading spinner loadingSpinner.style.display = 'inline-block'; // Simulate API call setTimeout(() => { // Hide loading spinner loadingSpinner.style.display = 'none'; // Clear input newsletterForm.querySelector('input').value = ''; // Show toast notification toast.classList.add('show'); // Hide toast after 3 seconds setTimeout(() => { toast.classList.remove('show'); }, 3000); }, 1500); }); // Smooth scrolling for navigation links document.querySelectorAll('nav a').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId.startsWith('#')) { const targetElement = document.querySelector(targetId); if (targetElement) { targetElement.scrollIntoView({ behavior: 'smooth' }); } } }); }); // Image hover intensity control const hoverableImages = document.querySelectorAll('.post-image-bg, .recipe-image, .hero-image'); hoverableImages.forEach(image => { image.addEventListener('mousemove', function(e) { const rect = this.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; // Calculate percentage positions const xPercent = x / rect.width; const yPercent = y / rect.height; // Adjust background position slightly based on mouse movement this.style.backgroundPosition = `${50 + (xPercent - 0.5) * 10}% ${50 + (yPercent - 0.5) * 10}%`; }); image.addEventListener('mouseleave', function() { this.style.backgroundPosition = 'center'; }); }); // Read more links document.querySelectorAll('.read-more').forEach(link => { link.addEventListener('click', function(e) { e.preventDefault(); // Add a subtle animation effect this.style.transform = 'translateX(5px)'; setTimeout(() => { this.style.transform = 'translateX(0)'; }, 300); }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PeakPulse Fitness</title> <style> :root { --primary-color: #ff4757; --secondary-color: #5352ed; --accent-color: #2ed573; --dark-color: #2f3542; --light-color: #f1f2f6; --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background-color: var(--light-color); color: var(--dark-color); overflow-x: hidden; height: 100vh; width: 100%; display: flex; flex-direction: column; } .container { max-width: 700px; margin: 0 auto; padding: 0 15px; height: 100%; display: flex; flex-direction: column; } header { display: flex; justify-content: space-between; align-items: center; padding: 15px 0; position: relative; z-index: 10; } .logo { font-weight: 800; font-size: 1.5rem; color: var(--primary-color); display: flex; align-items: center; } .logo-dot { display: inline-block; width: 10px; height: 10px; background-color: var(--secondary-color); border-radius: 50%; margin-left: 4px; animation: pulse 2s infinite; } nav { display: flex; gap: 20px; } .nav-item { cursor: pointer; position: relative; font-weight: 600; transition: var(--transition); } .nav-item::after { content: ''; position: absolute; width: 0; height: 2px; bottom: -4px; left: 0; background-color: var(--primary-color); transition: var(--transition); } .nav-item:hover::after { width: 100%; } main { flex: 1; display: flex; flex-direction: column; position: relative; } .hero { height: 300px; position: relative; overflow: hidden; border-radius: 20px; margin: 20px 0; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); } .hero-image { width: 100%; height: 100%; object-fit: cover; background-image: url('https://images.unsplash.com/photo-1583454110551-21f2fa2afe61?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80'); background-size: cover; background-position: center; background-color: var(--primary-color); background-blend-mode: overlay; position: relative; transition: var(--transition); } .hero-content { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: flex; flex-direction: column; justify-content: center; padding: 30px; background: linear-gradient(45deg, rgba(255, 71, 87, 0.7), rgba(83, 82, 237, 0.4)); color: white; background-blend-mode: overlay; } .hero-title { font-size: 2.5rem; font-weight: 800; line-height: 1.2; margin-bottom: 15px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2); animation: fadeIn 1s ease-out; } .hero-subtitle { font-size: 1.1rem; font-weight: 500; max-width: 400px; margin-bottom: 25px; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.2); animation: fadeIn 1s ease-out 0.3s forwards; opacity: 0; } .btn { display: inline-flex; align-items: center; justify-content: center; padding: 10px 25px; border: none; border-radius: 30px; font-weight: 600; cursor: pointer; transition: var(--transition); text-transform: uppercase; letter-spacing: 1px; font-size: 0.85rem; position: relative; overflow: hidden; animation: fadeIn 1s ease-out 0.6s forwards; opacity: 0; } .btn-primary { background-color: var(--primary-color); color: white; align-self: flex-start; } .btn-primary:hover { background-color: #ff2d40; transform: translateY(-2px); box-shadow: 0 5px 15px rgba(255, 71, 87, 0.4); } .btn-primary::after { content: ''; position: absolute; top: 50%; left: 50%; width: 5px; height: 5px; background: rgba(255, 255, 255, 0.5); opacity: 0; border-radius: 100%; transform: scale(1, 1) translate(-50%); transform-origin: 50% 50%; } .btn-primary:hover::after { animation: ripple 1s ease-out; } .workouts { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 20px; margin: 20px 0; } .workout-card { background: white; border-radius: 15px; overflow: hidden; transition: var(--transition); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); display: flex; flex-direction: column; height: 220px; position: relative; cursor: pointer; } .workout-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); } .workout-image { height: 130px; position: relative; overflow: hidden; } .workout-bg { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; transition: var(--transition); } .workout-card:hover .workout-bg { transform: scale(1.1); } .workout-bg-1 { background-image: url('https://images.unsplash.com/photo-1549060279-7e168fcee0c2?ixlib=rb-1.2.1&auto=format&fit=crop&w=300&q=80'); background-size: cover; background-position: center; background-color: var(--primary-color); background-blend-mode: soft-light; } .workout-bg-2 { background-image: url('https://images.unsplash.com/photo-1534258936925-c58bed479fcb?ixlib=rb-1.2.1&auto=format&fit=crop&w=300&q=80'); background-size: cover; background-position: center; background-color: var(--secondary-color); background-blend-mode: soft-light; } .workout-bg-3 { background-image: url('https://images.unsplash.com/photo-1518310383802-640c2de311b6?ixlib=rb-1.2.1&auto=format&fit=crop&w=300&q=80'); background-size: cover; background-position: center; background-color: var(--accent-color); background-blend-mode: soft-light; } .workout-info { padding: 15px; flex: 1; display: flex; flex-direction: column; justify-content: space-between; } .workout-title { font-weight: 700; font-size: 1.1rem; margin-bottom: 5px; color: var(--dark-color); } .workout-stats { display: flex; font-size: 0.8rem; color: #777; gap: 10px; } .progress-section { background: white; border-radius: 15px; padding: 20px; margin: 20px 0; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); } .progress-title { font-weight: 700; margin-bottom: 20px; color: var(--dark-color); display: flex; align-items: center; justify-content: space-between; } .progress-date { font-size: 0.9rem; font-weight: 600; color: #777; } .progress-bars { display: flex; gap: 15px; justify-content: space-between; } .progress-item { flex: 1; display: flex; flex-direction: column; align-items: center; } .progress-circle { width: 80px; height: 80px; position: relative; margin-bottom: 10px; } .progress-circle svg { width: 100%; height: 100%; transform: rotate(-90deg); } .progress-bg { fill: none; stroke: #e9ecef; stroke-width: 8; } .progress-value { fill: none; stroke-width: 8; stroke-linecap: round; transition: stroke-dashoffset 1s ease-out; } .progress-value-1 { stroke: var(--primary-color); } .progress-value-2 { stroke: var(--secondary-color); } .progress-value-3 { stroke: var(--accent-color); } .progress-label { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); font-weight: 700; font-size: 1.2rem; } .progress-name { font-size: 0.9rem; font-weight: 600; color: #555; } .motivational-banner { display: flex; align-items: center; padding: 20px; background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); border-radius: 15px; margin: 20px 0; color: white; box-shadow: 0 6px 20px rgba(83, 82, 237, 0.3); overflow: hidden; position: relative; } .motivational-banner::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background-image: url('https://images.unsplash.com/photo-1541534741688-6078c6bfb5c5?ixlib=rb-1.2.1&auto=format&fit=crop&w=300&q=80'); background-size: cover; background-position: center; opacity: 0.2; mix-blend-mode: overlay; } .motivational-content { position: relative; z-index: 1; } .motivational-text { font-weight: 700; font-size: 1.2rem; margin-bottom: 5px; } .motivational-subtext { font-size: 0.9rem; opacity: 0.9; } @keyframes pulse { 0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 71, 87, 0.7); } 70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(255, 71, 87, 0); } 100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(255, 71, 87, 0); } } @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes ripple { 0% { transform: scale(0); opacity: 1; } 20% { transform: scale(25); opacity: 1; } 100% { opacity: 0; transform: scale(40); } } /* Mobile responsiveness */ @media (max-width: 600px) { .hero-title { font-size: 2rem; } .workouts { grid-template-columns: 1fr; } .progress-bars { flex-direction: column; gap: 30px; } .nav-item { display: none; } .nav-item:first-child { display: block; } } </style> </head> <body> <div class="container"> <header> <div class="logo"> PeakPulse<span class="logo-dot"></span> </div> <nav> <div class="nav-item">Home</div> <div class="nav-item">Workouts</div> <div class="nav-item">Stats</div> <div class="nav-item">Profile</div> </nav> </header> <main> <div class="hero"> <div class="hero-image"></div> <div class="hero-content"> <h1 class="hero-title">Push Your Limits Today</h1> <p class="hero-subtitle">Track your progress, challenge yourself, and celebrate every victory on your fitness journey.</p> <button class="btn btn-primary">Start Workout</button> </div> </div> <div class="motivational-banner"> <div class="motivational-content"> <div class="motivational-text">Your only competition is yesterday's you.</div> <div class="motivational-subtext">Set a new personal record this week!</div> </div> </div> <div class="workouts"> <div class="workout-card"> <div class="workout-image"> <div class="workout-bg workout-bg-1"></div> </div> <div class="workout-info"> <div> <div class="workout-title">HIIT Cardio Blast</div> <div class="workout-stats"> <span>25 min</span> <span>•</span> <span>High intensity</span> </div> </div> </div> </div> <div class="workout-card"> <div class="workout-image"> <div class="workout-bg workout-bg-2"></div> </div> <div class="workout-info"> <div> <div class="workout-title">Core Strength</div> <div class="workout-stats"> <span>20 min</span> <span>•</span> <span>Medium intensity</span> </div> </div> </div> </div> <div class="workout-card"> <div class="workout-image"> <div class="workout-bg workout-bg-3"></div> </div> <div class="workout-info"> <div> <div class="workout-title">Full Body Power</div> <div class="workout-stats"> <span>40 min</span> <span>•</span> <span>High intensity</span> </div> </div> </div> </div> </div> <div class="progress-section"> <div class="progress-title"> <span>Weekly Progress</span> <span class="progress-date">May 15 - May 21</span> </div> <div class="progress-bars"> <div class="progress-item"> <div class="progress-circle"> <svg> <circle class="progress-bg" cx="40" cy="40" r="36"></circle> <circle class="progress-value progress-value-1" cx="40" cy="40" r="36" id="progress1"></circle> </svg> <div class="progress-label">78%</div> </div> <div class="progress-name">Workouts</div> </div> <div class="progress-item"> <div class="progress-circle"> <svg> <circle class="progress-bg" cx="40" cy="40" r="36"></circle> <circle class="progress-value progress-value-2" cx="40" cy="40" r="36" id="progress2"></circle> </svg> <div class="progress-label">92%</div> </div> <div class="progress-name">Calories</div> </div> <div class="progress-item"> <div class="progress-circle"> <svg> <circle class="progress-bg" cx="40" cy="40" r="36"></circle> <circle class="progress-value progress-value-3" cx="40" cy="40" r="36" id="progress3"></circle> </svg> <div class="progress-label">65%</div> </div> <div class="progress-name">Steps</div> </div> </div> </div> </main> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Set up circular progress bars const setProgress = (id, percent) => { const circle = document.getElementById(id); const radius = circle.getAttribute('r'); const circumference = 2 * Math.PI * radius; circle.style.strokeDasharray = `${circumference} ${circumference}`; circle.style.strokeDashoffset = circumference; const offset = circumference - (percent / 100) * circumference; setTimeout(() => { circle.style.strokeDashoffset = offset; }, 300); }; setProgress('progress1', 78); setProgress('progress2', 92); setProgress('progress3', 65); // Workout card hover effects const workoutCards = document.querySelectorAll('.workout-card'); workoutCards.forEach(card => { card.addEventListener('mouseenter', function() { const image = this.querySelector('.workout-bg'); image.style.transform = 'scale(1.1)'; }); card.addEventListener('mouseleave', function() { const image = this.querySelector('.workout-bg'); image.style.transform = 'scale(1)'; }); card.addEventListener('click', function() { // Add a subtle click effect this.style.transform = 'scale(0.98)'; setTimeout(() => { this.style.transform = 'translateY(-5px)'; }, 150); }); }); // Button ripple effect const btn = document.querySelector('.btn-primary'); btn.addEventListener('click', function(e) { const rect = this.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; const ripple = document.createElement('span'); ripple.classList.add('ripple'); ripple.style.left = `${x}px`; ripple.style.top = `${y}px`; this.appendChild(ripple); setTimeout(() => { ripple.remove(); }, 600); }); // Dynamic banner messages const motivationalTexts = [ "Your only competition is yesterday's you.", "The pain you feel today is the strength you feel tomorrow.", "Don't wish for it. Work for it.", "A little progress each day adds up to big results." ]; const motivationalSubtexts = [ "Set a new personal record this week!", "Every rep counts toward your goal.", "Let's crush those fitness goals together.", "Take pride in how far you've already come." ]; let currentMotivationIndex = 0; setInterval(() => { currentMotivationIndex = (currentMotivationIndex + 1) % motivationalTexts.length; const textElement = document.querySelector('.motivational-text'); const subtextElement = document.querySelector('.motivational-subtext'); textElement.style.opacity = '0'; subtextElement.style.opacity = '0'; setTimeout(() => { textElement.textContent = motivationalTexts[currentMotivationIndex]; subtextElement.textContent = motivationalSubtexts[currentMotivationIndex]; textElement.style.opacity = '1'; subtextElement.style.opacity = '1'; }, 500); }, 5000); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Maison L'Étoile</title> <style> @import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&family=Montserrat:wght@200;300;400;500;600&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } :root { --gold: #c9a980; --gold-light: #e7d8be; --dark: #1c1c1c; --white: #ffffff; --offwhite: #f9f8f6; --transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1); } body { font-family: 'Montserrat', sans-serif; color: var(--dark); background-color: var(--offwhite); overflow-x: hidden; max-width: 700px; max-height: 700px; margin: 0 auto; } .container { width: 100%; height: 700px; position: relative; overflow: hidden; } /* Navigation */ nav { position: fixed; top: 0; left: 0; width: 100%; padding: 1.5rem; z-index: 100; display: flex; justify-content: space-between; align-items: center; mix-blend-mode: difference; } .logo { font-family: 'Cormorant Garamond', serif; font-weight: 500; font-size: 1.5rem; letter-spacing: 3px; color: var(--white); z-index: 10; } .menu-toggle { width: 30px; height: 20px; position: relative; cursor: pointer; z-index: 10; } .menu-toggle span { display: block; position: absolute; height: 1px; width: 100%; background: var(--white); opacity: 1; left: 0; transform: rotate(0deg); transition: var(--transition); } .menu-toggle span:nth-child(1) { top: 0px; } .menu-toggle span:nth-child(2) { top: 9px; } .menu-toggle span:nth-child(3) { top: 18px; } .menu-toggle.active span:nth-child(1) { top: 9px; transform: rotate(135deg); } .menu-toggle.active span:nth-child(2) { opacity: 0; left: -60px; } .menu-toggle.active span:nth-child(3) { top: 9px; transform: rotate(-135deg); } /* Menu Overlay */ .menu-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.95); z-index: 9; display: flex; justify-content: center; align-items: center; opacity: 0; visibility: hidden; transition: var(--transition); } .menu-overlay.active { opacity: 1; visibility: visible; } .menu-items { text-align: center; } .menu-items ul { list-style: none; } .menu-items ul li { margin: 1.5rem 0; opacity: 0; transform: translateY(20px); transition: var(--transition); } .menu-overlay.active .menu-items ul li { opacity: 1; transform: translateY(0); transition-delay: calc(0.1s * var(--i)); } .menu-items ul li a { font-family: 'Cormorant Garamond', serif; font-size: 2rem; color: var(--white); text-decoration: none; letter-spacing: 2px; position: relative; display: inline-block; padding: 0.5rem 0; transition: var(--transition); } .menu-items ul li a::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 1px; background-color: var(--gold); transition: var(--transition); } .menu-items ul li a:hover { color: var(--gold); } .menu-items ul li a:hover::after { width: 100%; left: 0; } /* Hero Section */ .hero { height: 100%; width: 100%; position: relative; overflow: hidden; } .hero-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; transition: opacity 1s ease-in-out; } .hero-slide.active { opacity: 1; } .hero-image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; background-repeat: no-repeat; transition: transform 10s ease-out; } .hero-slide.active .hero-image { transform: scale(1.1); } .hero-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.4); background-blend-mode: overlay; } .hero-content { position: absolute; bottom: 20%; left: 0; width: 100%; padding: 0 2rem; color: var(--white); z-index: 1; opacity: 0; transform: translateY(30px); transition: all 1s ease-out 0.5s; } .hero-slide.active .hero-content { opacity: 1; transform: translateY(0); } .hero-title { font-family: 'Cormorant Garamond', serif; font-size: 2.5rem; font-weight: 400; letter-spacing: 2px; margin-bottom: 1rem; position: relative; display: inline-block; } .hero-title::after { content: ''; position: absolute; bottom: -0.5rem; left: 0; width: 60px; height: 1px; background-color: var(--gold); } .hero-description { font-size: 0.9rem; font-weight: 300; letter-spacing: 1px; line-height: 1.6; max-width: 500px; margin-bottom: 2rem; } .cta-btn { display: inline-block; padding: 0.8rem 2rem; background-color: transparent; border: 1px solid var(--gold); color: var(--white); font-size: 0.8rem; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; cursor: pointer; position: relative; overflow: hidden; transition: var(--transition); } .cta-btn::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background-color: var(--gold); transition: var(--transition); z-index: -1; } .cta-btn:hover { color: var(--dark); } .cta-btn:hover::before { left: 0; } /* Slide Indicators */ .slide-indicators { position: absolute; bottom: 5%; right: 2rem; display: flex; } .indicator { width: 30px; height: 1px; background-color: rgba(255, 255, 255, 0.4); margin: 0 5px; cursor: pointer; transition: var(--transition); } .indicator.active { background-color: var(--gold); width: 50px; } /* Product Showcase */ .product-showcase { position: absolute; top: 50%; right: -350px; transform: translateY(-50%); width: 300px; height: 450px; background-color: var(--white); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1); padding: 2rem; z-index: 2; transition: right 0.8s cubic-bezier(0.16, 1, 0.3, 1); } .product-showcase.active { right: 30px; } .product-close { position: absolute; top: 1rem; right: 1rem; width: 20px; height: 20px; cursor: pointer; } .product-close span { display: block; width: 100%; height: 1px; background-color: var(--dark); position: absolute; top: 50%; } .product-close span:first-child { transform: rotate(45deg); } .product-close span:last-child { transform: rotate(-45deg); } .product-image { width: 100%; height: 200px; background-size: cover; background-position: center; margin-bottom: 1.5rem; } .product-category { font-size: 0.7rem; text-transform: uppercase; letter-spacing: 2px; color: var(--gold); margin-bottom: 0.5rem; } .product-title { font-family: 'Cormorant Garamond', serif; font-size: 1.5rem; margin-bottom: 1rem; } .product-description { font-size: 0.8rem; line-height: 1.6; margin-bottom: 1.5rem; } .product-price { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; margin-bottom: 1.5rem; } .product-btn { display: inline-block; padding: 0.7rem 1.5rem; background-color: var(--dark); color: var(--white); font-size: 0.7rem; letter-spacing: 2px; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: var(--transition); border: none; } .product-btn:hover { background-color: var(--gold); } /* Open Product Button */ .open-product { position: absolute; top: 50%; right: 2rem; transform: translateY(-50%); z-index: 1; width: 40px; height: 40px; background-color: var(--white); border-radius: 50%; display: flex; justify-content: center; align-items: center; cursor: pointer; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); transition: var(--transition); } .open-product:hover { background-color: var(--gold); } .open-product span { position: relative; width: 15px; height: 1px; background-color: var(--dark); } .open-product span::before { content: ''; position: absolute; top: -5px; right: 0; width: 10px; height: 1px; background-color: var(--dark); } .open-product span::after { content: ''; position: absolute; bottom: -5px; right: 0; width: 10px; height: 1px; background-color: var(--dark); } /* Responsive Styles */ @media screen and (max-width: 576px) { nav { padding: 1rem; } .logo { font-size: 1.2rem; } .hero-title { font-size: 2rem; } .hero-description { font-size: 0.8rem; } .menu-items ul li a { font-size: 1.5rem; } .product-showcase { width: 250px; height: 400px; padding: 1.5rem; } .product-showcase.active { right: 15px; } .product-title { font-size: 1.2rem; } .product-image { height: 150px; } .open-product { right: 1rem; } } /* Cursor */ .custom-cursor { position: fixed; width: 20px; height: 20px; border-radius: 50%; border: 1px solid var(--gold); pointer-events: none; z-index: 9999; transform: translate(-50%, -50%); transition: width 0.3s, height 0.3s, background-color 0.3s; mix-blend-mode: difference; } .custom-cursor.active { width: 50px; height: 50px; background-color: rgba(201, 169, 128, 0.2); } /* Loading Screen */ .loading-screen { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--dark); z-index: 1000; display: flex; justify-content: center; align-items: center; transition: opacity 0.5s ease, visibility 0.5s ease; } .loading-screen.hidden { opacity: 0; visibility: hidden; } .loading-content { text-align: center; } .loading-logo { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: 2rem; letter-spacing: 5px; color: var(--white); margin-bottom: 2rem; } .loading-bar { width: 200px; height: 1px; background-color: rgba(255, 255, 255, 0.2); position: relative; overflow: hidden; } .loading-progress { position: absolute; top: 0; left: 0; height: 100%; width: 0; background-color: var(--gold); transition: width 2.5s ease-out; } </style> </head> <body> <!-- Loading Screen --> <div class="loading-screen"> <div class="loading-content"> <div class="loading-logo">MAISON L'ÉTOILE</div> <div class="loading-bar"> <div class="loading-progress"></div> </div> </div> </div> <!-- Custom Cursor --> <div class="custom-cursor"></div> <!-- Main Container --> <div class="container"> <!-- Navigation --> <nav> <div class="logo">MAISON L'ÉTOILE</div> <div class="menu-toggle"> <span></span> <span></span> <span></span> </div> </nav> <!-- Menu Overlay --> <div class="menu-overlay"> <div class="menu-items"> <ul> <li style="--i:1;"><a href="#">Collections</a></li> <li style="--i:2;"><a href="#">Heritage</a></li> <li style="--i:3;"><a href="#">Ateliers</a></li> <li style="--i:4;"><a href="#">Journal</a></li> <li style="--i:5;"><a href="#">Boutiques</a></li> </ul> </div> </div> <!-- Hero Section --> <section class="hero"> <div class="hero-slide active"> <div class="hero-image" style="background-image: url('https://images.unsplash.com/photo-1592210454359-9043f067919b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80');"></div> <div class="hero-overlay"></div> <div class="hero-content"> <h1 class="hero-title">L'Art de Vivre</h1> <p class="hero-description">Introducing our Autumn 2023 collection, where centuries of artisanal craft meet modern sensibilities. Each piece embodies the quintessence of French savoir-faire—materials sourced from historical suppliers, patterns hand-drawn in our Parisian atelier.</p> <a href="#" class="cta-btn">Discover Collection</a> </div> </div> <div class="hero-slide"> <div class="hero-image" style="background-image: url('https://images.unsplash.com/photo-1513506030799-4fd6bf7f07e9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80');"></div> <div class="hero-overlay"></div> <div class="hero-content"> <h1 class="hero-title">Legacy of Craftsmanship</h1> <p class="hero-description">Since 1879, our master artisans have preserved techniques passed through generations. Every stitch reflects a heritage of perfectionism—where time stands still, and excellence is measured not in minutes, but in masterpieces.</p> <a href="#" class="cta-btn">Explore Heritage</a> </div> </div> <div class="hero-slide"> <div class="hero-image" style="background-image: url('https://images.unsplash.com/photo-1547996160-81dfa63595aa?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80');"></div> <div class="hero-overlay"></div> <div class="hero-content"> <h1 class="hero-title">Essence of Exclusivity</h1> <p class="hero-description">Our bespoke atelier service invites you into a world of uncompromising personalization. Collaborate with our designers to create heirloom pieces that express your unique sensibilities—a rarified experience reserved for our most discerning clientele.</p> <a href="#" class="cta-btn">Book Consultation</a> </div> </div> <!-- Slide Indicators --> <div class="slide-indicators"> <span class="indicator active" data-slide="0"></span> <span class="indicator" data-slide="1"></span> <span class="indicator" data-slide="2"></span> </div> <!-- Open Product Button --> <div class="open-product"> <span></span> </div> <!-- Product Showcase --> <div class="product-showcase"> <div class="product-close"> <span></span> <span></span> </div> <div class="product-image" style="background-image: url('https://images.unsplash.com/photo-1635767798638-3e25273a8236?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=880&q=80');"></div> <div class="product-category">Limited Edition</div> <h3 class="product-title">Lumière de Minuit Parfum</h3> <p class="product-description">A symphony of rare jasmine absolute, aged sandalwood, and midnight amber. Hand-blended in our Grasse laboratory and presented in a crystal flacon engraved by our master artisans.</p> <div class="product-price">€490</div> <button class="product-btn">Reserve Now</button> </div> </section> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Loading Screen const loadingScreen = document.querySelector('.loading-screen'); const loadingProgress = document.querySelector('.loading-progress'); // Set progress to 100% after a short delay setTimeout(() => { loadingProgress.style.width = '100%'; // Hide loading screen after progress completes setTimeout(() => { loadingScreen.classList.add('hidden'); }, 2500); }, 500); // Custom Cursor const cursor = document.querySelector('.custom-cursor'); document.addEventListener('mousemove', (e) => { cursor.style.left = `${e.clientX}px`; cursor.style.top = `${e.clientY}px`; }); document.addEventListener('mousedown', () => { cursor.classList.add('active'); }); document.addEventListener('mouseup', () => { cursor.classList.remove('active'); }); // Add hover effect for interactive elements const interactiveElements = document.querySelectorAll('a, button, .menu-toggle, .indicator, .open-product, .product-close'); interactiveElements.forEach(element => { element.addEventListener('mouseenter', () => { cursor.classList.add('active'); }); element.addEventListener('mouseleave', () => { cursor.classList.remove('active'); }); }); // Menu Toggle const menuToggle = document.querySelector('.menu-toggle'); const menuOverlay = document.querySelector('.menu-overlay'); menuToggle.addEventListener('click', () => { menuToggle.classList.toggle('active'); menuOverlay.classList.toggle('active'); }); // Hero Slider const slides = document.querySelectorAll('.hero-slide'); const indicators = document.querySelectorAll('.indicator'); let currentSlide = 0; let slideInterval; function startSlideInterval() { slideInterval = setInterval(() => { nextSlide(); }, 8000); } function resetSlideInterval() { clearInterval(slideInterval); startSlideInterval(); } function goToSlide(index) { slides[currentSlide].classList.remove('active'); indicators[currentSlide].classList.remove('active'); currentSlide = index; slides[currentSlide].classList.add('active'); indicators[currentSlide].classList.add('active'); resetSlideInterval(); } function nextSlide() { let next = currentSlide + 1; if (next >= slides.length) next = 0; goToSlide(next); } indicators.forEach((indicator, index) => { indicator.addEventListener('click', () => { goToSlide(index); }); }); startSlideInterval(); // Product Showcase const openProductBtn = document.querySelector('.open-product'); const productShowcase = document.querySelector('.product-showcase'); const productCloseBtn = document.querySelector('.product-close'); openProductBtn.addEventListener('click', () => { productShowcase.classList.add('active'); }); productCloseBtn.addEventListener('click', () => { productShowcase.classList.remove('active'); }); // Prevent form submission document.querySelectorAll('form').forEach(form => { form.addEventListener('submit', (e) => { e.preventDefault(); }); }); // Prevent default on buttons to avoid page refresh document.querySelectorAll('button').forEach(button => { button.addEventListener('click', (e) => { e.preventDefault(); }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Serenity - Health & Wellness App</title> <style> :root { --primary-color: #5b7b7a; --secondary-color: #c4e0de; --accent-color: #f7d9c4; --text-color: #2c3e50; --light-text: #f9f9f9; --dark-bg: #2c3e50; --transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Nunito', sans-serif; } body { width: 100%; height: 100vh; overflow-x: hidden; color: var(--text-color); background-color: #f9f9f9; } .app-container { max-width: 700px; height: 700px; margin: 0 auto; display: flex; flex-direction: column; position: relative; overflow: hidden; } header { padding: 1.5rem; display: flex; align-items: center; justify-content: space-between; position: relative; z-index: 10; } .logo { display: flex; align-items: center; gap: 0.5rem; } .logo-icon { width: 28px; height: 28px; border-radius: 50%; background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); position: relative; display: flex; align-items: center; justify-content: center; } .logo-icon::before { content: ""; position: absolute; width: 12px; height: 12px; border-radius: 50%; background: white; opacity: 0.8; } .logo-text { font-weight: 700; font-size: 1.4rem; color: var(--primary-color); } .menu-btn { width: 24px; height: 24px; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer; transition: var(--transition); } .menu-btn span { width: 100%; height: 2px; background-color: var(--primary-color); transition: var(--transition); } .menu-btn:hover span:nth-child(1) { width: 70%; } .menu-btn:hover span:nth-child(3) { width: 70%; align-self: flex-end; } .hero-section { height: 220px; position: relative; overflow: hidden; border-radius: 0 0 30px 30px; } .hero-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1558470598-a5dda9640f68?ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&q=80'); background-size: cover; background-position: center; background-color: var(--primary-color); background-blend-mode: soft-light; transition: var(--transition); } .hero-content { position: relative; z-index: 2; padding: 1.5rem; display: flex; flex-direction: column; justify-content: center; height: 100%; color: var(--light-text); } .hero-title { font-size: 1.8rem; font-weight: 700; margin-bottom: 0.5rem; text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .hero-subtitle { font-size: 1rem; font-weight: 400; opacity: 0.9; max-width: 80%; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); } .search-bar { position: absolute; bottom: -20px; left: 50%; transform: translateX(-50%); width: 85%; background: white; border-radius: 30px; padding: 0.8rem 1.5rem; display: flex; align-items: center; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); z-index: 20; } .search-icon { color: var(--primary-color); margin-right: 0.8rem; } .search-input { flex: 1; border: none; outline: none; font-size: 0.9rem; color: var(--text-color); } .search-input::placeholder { color: #aaa; } .categories { margin-top: 2.5rem; padding: 1rem 1.5rem; } .section-title { font-size: 1.1rem; font-weight: 600; margin-bottom: 1rem; color: var(--text-color); } .category-list { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 0.5rem; scrollbar-width: none; } .category-list::-webkit-scrollbar { display: none; } .category-item { min-width: 100px; height: 100px; border-radius: 16px; position: relative; overflow: hidden; cursor: pointer; transition: var(--transition); } .category-item:hover { transform: translateY(-5px); } .category-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; background-blend-mode: soft-light; transition: var(--transition); } .category-item:nth-child(1) .category-bg { background-image: url('https://images.unsplash.com/photo-1575052814086-f385e2e2ad1b?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80'); background-color: rgba(157, 192, 139, 0.7); } .category-item:nth-child(2) .category-bg { background-image: url('https://images.unsplash.com/photo-1544367567-0f2fcb009e0b?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80'); background-color: rgba(142, 166, 192, 0.7); } .category-item:nth-child(3) .category-bg { background-image: url('https://images.unsplash.com/photo-1512621776951-a57141f2eefd?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80'); background-color: rgba(218, 165, 132, 0.7); } .category-item:nth-child(4) .category-bg { background-image: url('https://images.unsplash.com/photo-1506126613408-eca07ce68773?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80'); background-color: rgba(170, 139, 173, 0.7); } .category-content { position: relative; z-index: 2; padding: 0.8rem; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; } .category-name { color: white; font-weight: 600; font-size: 0.9rem; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); } .recommendation-section { padding: 1rem 1.5rem; margin-top: 0.5rem; } .recommendation-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; } .recommendation-card { background-color: white; border-radius: 16px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); overflow: hidden; transition: var(--transition); cursor: pointer; } .recommendation-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); } .recommendation-card:hover .recommendation-img { transform: scale(1.1); } .recommendation-img-container { height: 100px; overflow: hidden; position: relative; } .recommendation-img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .recommendation-img-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--primary-color); opacity: 0.3; background-blend-mode: soft-light; } .recommendation-content { padding: 0.8rem; } .recommendation-title { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.3rem; color: var(--text-color); } .recommendation-info { display: flex; align-items: center; justify-content: space-between; } .recommendation-time { font-size: 0.7rem; color: #888; display: flex; align-items: center; gap: 0.3rem; } .recommendation-rating { font-size: 0.7rem; color: var(--primary-color); font-weight: 600; display: flex; align-items: center; gap: 0.3rem; } .nav-bar { position: absolute; bottom: 0; left: 0; width: 100%; background-color: white; display: flex; justify-content: space-around; padding: 0.8rem 0; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05); z-index: 100; } .nav-item { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; cursor: pointer; transition: var(--transition); } .nav-icon { color: #aaa; transition: var(--transition); } .nav-text { font-size: 0.7rem; color: #aaa; transition: var(--transition); } .nav-item.active .nav-icon, .nav-item.active .nav-text, .nav-item:hover .nav-icon, .nav-item:hover .nav-text { color: var(--primary-color); } .focus-mode-btn { position: fixed; bottom: 80px; right: 20px; width: 50px; height: 50px; border-radius: 50%; background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); display: flex; align-items: center; justify-content: center; color: white; box-shadow: 0 4px 15px rgba(91, 123, 122, 0.4); cursor: pointer; transition: var(--transition); z-index: 100; } .focus-mode-btn:hover { transform: scale(1.1); } .focus-mode-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(44, 62, 80, 0.95); z-index: 200; display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: var(--transition); } .focus-mode-overlay.active { opacity: 1; pointer-events: all; } .focus-mode-content { text-align: center; max-width: 80%; color: var(--light-text); } .focus-mode-title { font-size: 1.8rem; font-weight: 700; margin-bottom: 1rem; } .focus-mode-desc { margin-bottom: 2rem; line-height: 1.6; } .focus-mode-timer { font-size: 3rem; font-weight: 700; margin-bottom: 2rem; color: var(--accent-color); } .focus-mode-close { position: absolute; top: 20px; right: 20px; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; color: var(--light-text); background-color: rgba(255, 255, 255, 0.1); transition: var(--transition); } .focus-mode-close:hover { background-color: rgba(255, 255, 255, 0.2); } .focus-mode-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url('https://images.unsplash.com/photo-1475924156734-496f6cac6ec1?ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&q=80'); background-size: cover; background-position: center; background-color: var(--dark-bg); background-blend-mode: soft-light; opacity: 0.2; z-index: -1; } .breathing-circle { width: 150px; height: 150px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); position: relative; display: flex; align-items: center; justify-content: center; margin-bottom: 2rem; } .breathing-circle::before { content: ""; position: absolute; width: 100%; height: 100%; border-radius: 50%; border: 2px solid rgba(255, 255, 255, 0.3); animation: breathe 8s infinite ease-in-out; } .breathing-circle::after { content: ""; position: absolute; width: 20px; height: 20px; border-radius: 50%; background: var(--accent-color); } .breathing-text { position: absolute; bottom: -30px; font-size: 0.9rem; color: var(--accent-color); } @keyframes breathe { 0%, 100% { transform: scale(0.8); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.7; } } /* Responsive adjustments */ @media (max-width: 500px) { .hero-title { font-size: 1.5rem; } .hero-subtitle { font-size: 0.9rem; } .recommendation-cards { grid-template-columns: 1fr; } .category-item { min-width: 90px; height: 90px; } .category-name { font-size: 0.8rem; } .focus-mode-title { font-size: 1.5rem; } .focus-mode-timer { font-size: 2.5rem; } } </style> </head> <body> <div class="app-container"> <header> <div class="logo"> <div class="logo-icon"></div> <div class="logo-text">Serenity</div> </div> <div class="menu-btn"> <span></span> <span></span> <span></span> </div> </header> <div class="hero-section"> <div class="hero-bg"></div> <div class="hero-content"> <h1 class="hero-title">Discover your path to wellness</h1> <p class="hero-subtitle">Personalized routines for mind and body balance</p> </div> <div class="search-bar"> <div class="search-icon"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21 21L16.65 16.65M19 11C19 15.4183 15.4183 19 11 19C6.58172 19 3 15.4183 3 11C3 6.58172 6.58172 3 11 3C15.4183 3 19 6.58172 19 11Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <input type="text" class="search-input" placeholder="Search for meditations, exercises..."> </div> </div> <div class="categories"> <h2 class="section-title">Categories</h2> <div class="category-list"> <div class="category-item"> <div class="category-bg"></div> <div class="category-content"> <div class="category-name">Meditation</div> </div> </div> <div class="category-item"> <div class="category-bg"></div> <div class="category-content"> <div class="category-name">Sleep</div> </div> </div> <div class="category-item"> <div class="category-bg"></div> <div class="category-content"> <div class="category-name">Nutrition</div> </div> </div> <div class="category-item"> <div class="category-bg"></div> <div class="category-content"> <div class="category-name">Yoga</div> </div> </div> </div> </div> <div class="recommendation-section"> <h2 class="section-title">Recommended for you</h2> <div class="recommendation-cards"> <div class="recommendation-card"> <div class="recommendation-img-container"> <img src="https://images.unsplash.com/photo-1506126613408-eca07ce68773?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80" alt="Morning meditation" class="recommendation-img"> <div class="recommendation-img-overlay"></div> </div> <div class="recommendation-content"> <h3 class="recommendation-title">Morning Clarity</h3> <div class="recommendation-info"> <div class="recommendation-time"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 6V12L16 14M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> 10 min </div> <div class="recommendation-rating"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> 4.8 </div> </div> </div> </div> <div class="recommendation-card"> <div class="recommendation-img-container"> <img src="https://images.unsplash.com/photo-1575052814086-f385e2e2ad1b?ixlib=rb-1.2.1&auto=format&fit=crop&w=700&q=80" alt="Evening calm" class="recommendation-img"> <div class="recommendation-img-overlay"></div> </div> <div class="recommendation-content"> <h3 class="recommendation-title">Evening Calm</h3> <div class="recommendation-info"> <div class="recommendation-time"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 6V12L16 14M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> 15 min </div> <div class="recommendation-rating"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 2L15.09 8.26L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L8.91 8.26L12 2Z" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> 4.9 </div> </div> </div> </div> </div> </div> <div class="focus-mode-btn" id="focusModeBtn"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M3 12H5M5.00006 19L7.00006 17M12 19V21M17 17L19 19M19 12H21M7.00006 5.00001L5.00006 7.00001M12 3V5M17 7.00001L19 5.00001M13.5 17C14.2956 17 15.0587 16.6839 15.6213 16.1213C16.1839 15.5587 16.5 14.7956 16.5 14C16.5 13.2044 16.1839 12.4413 15.6213 11.8787C15.0587 11.3161 14.2956 11 13.5 11C12.7044 11 11.9413 11.3161 11.3787 11.8787C10.8161 12.4413 10.5 13.2044 10.5 14C10.5 14.7956 10.8161 15.5587 11.3787 16.1213C11.9413 16.6839 12.7044 17 13.5 17Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="focus-mode-overlay" id="focusModeOverlay"> <div class="focus-mode-bg"></div> <div class="focus-mode-close" id="focusModeClose"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M18 6L6 18M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="breathing-circle"> <span class="breathing-text">Breathe</span> </div> <div class="focus-mode-content"> <h2 class="focus-mode-title">Focus Mode</h2> <p class="focus-mode-desc">Take a moment to center yourself. Follow the circle's rhythm for a guided breathing exercise to release tension and find clarity.</p> <div class="focus-mode-timer" id="focusTimer">05:00</div> </div> </div> <nav class="nav-bar"> <div class="nav-item active"> <div class="nav-icon"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M3 9L12 2L21 9V20C21 20.5304 20.7893 21.0391 20.4142 21.4142C20.0391 21.7893 19.5304 22 19 22H5C4.46957 22 3.96086 21.7893 3.58579 21.4142C3.21071 21.0391 3 20.5304 3 20V9Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M9 22V12H15V22" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="nav-text">Home</div> </div> <div class="nav-item"> <div class="nav-icon"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M22 12H18L15 21L9 3L6 12H2" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="nav-text">Progress</div> </div> <div class="nav-item"> <div class="nav-icon"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 16V12M12 8H12.01" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="nav-text">Discover</div> </div> <div class="nav-item"> <div class="nav-icon"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M20 21V19C20 17.9391 19.5786 16.9217 18.8284 16.1716C18.0783 15.4214 17.0609 15 16 15H8C6.93913 15 5.92172 15.4214 5.17157 16.1716C4.42143 16.9217 4 17.9391 4 19V21M16 7C16 9.20914 14.2091 11 12 11C9.79086 11 8 9.20914 8 7C8 4.79086 9.79086 3 12 3C14.2091 3 16 4.79086 16 7Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="nav-text">Profile</div> </div> </nav> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Focus mode functionality const focusModeBtn = document.getElementById('focusModeBtn'); const focusModeOverlay = document.getElementById('focusModeOverlay'); const focusModeClose = document.getElementById('focusModeClose'); const focusTimer = document.getElementById('focusTimer'); let timerInterval; let minutes = 5; let seconds = 0; focusModeBtn.addEventListener('click', function() { focusModeOverlay.classList.add('active'); startTimer(); }); focusModeClose.addEventListener('click', function() { focusModeOverlay.classList.remove('active'); clearInterval(timerInterval); resetTimer(); }); function startTimer() { clearInterval(timerInterval); timerInterval = setInterval(function() { seconds--; if (seconds < 0) { minutes--; seconds = 59; } if (minutes <= 0 && seconds <= 0) { clearInterval(timerInterval); focusModeOverlay.classList.remove('active'); resetTimer(); return; } updateTimerDisplay(); }, 1000); } function resetTimer() { minutes = 5; seconds = 0; updateTimerDisplay(); } function updateTimerDisplay() { const formattedMinutes = String(minutes).padStart(2, '0'); const formattedSeconds = String(seconds).padStart(2, '0'); focusTimer.textContent = `${formattedMinutes}:${formattedSeconds}`; } // Navigation functionality const navItems = document.querySelectorAll('.nav-item'); navItems.forEach(item => { item.addEventListener('click', function() { navItems.forEach(navItem => navItem.classList.remove('active')); this.classList.add('active'); }); }); // Category items hover effect const categoryItems = document.querySelectorAll('.category-item'); categoryItems.forEach(item => { item.addEventListener('mouseenter', function() { const bg = this.querySelector('.category-bg'); bg.style.transform = 'scale(1.1)'; }); item.addEventListener('mouseleave', function() { const bg = this.querySelector('.category-bg'); bg.style.transform = 'scale(1)'; }); }); // Hero background parallax effect const heroBg = document.querySelector('.hero-bg'); window.addEventListener('scroll', function() { const scrollPosition = window.scrollY; if (scrollPosition < 300) { heroBg.style.transform = `translateY(${scrollPosition * 0.3}px)`; } }); }); </script> </body> </html>