Illustrations are a powerful tool in the world of design, capable of transforming complex ideas into visually engaging content. Whether you're a seasoned designer or just starting out, exploring different illustration examples can spark creativity and inspire your next project.
In this article, we'll showcase 10 stunning illustration examples that highlight various styles and techniques. From digital art to hand-drawn sketches, these examples will provide a glimpse into the diverse world of illustration.
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 easy to create pixel-perfect UI every time. Loved by designers and developers alike, it simplifies the design process without compromising on quality.
Start for free and see how Subframe can transform your design workflow.
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 design game? With Subframe, you can create stunning, pixel-perfect UIs and illustrations effortlessly. Our drag-and-drop interface ensures efficiency and precision in every project.
Don't waitโstart for free and begin designing immediately. Transform your workflow and bring your creative visions to life with Subframe.
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Artisanal Homewares</title> <style> :root { --primary-color: #f9d5e5; --secondary-color: #d6eadf; --accent-color: #83c5be; --text-color: #595959; --light-color: #fff8f0; --dark-accent: #ff8ba7; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Quicksand', sans-serif; } body { background-color: var(--light-color); color: var(--text-color); overflow-x: hidden; width: 100%; height: 100%; max-width: 700px; max-height: 700px; margin: 0 auto; padding: 15px; position: relative; } .container { width: 100%; height: 100%; max-width: 670px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--accent-color) var(--light-color); position: relative; } .container::-webkit-scrollbar { width: 8px; } .container::-webkit-scrollbar-track { background: var(--light-color); } .container::-webkit-scrollbar-thumb { background-color: var(--accent-color); border-radius: 10px; } .nav-bar { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 2px dashed var(--primary-color); margin-bottom: 20px; position: sticky; top: 0; background-color: var(--light-color); z-index: 100; } .logo { font-size: 1.5rem; font-weight: bold; color: var(--text-color); position: relative; } .logo::before { content: ""; position: absolute; width: 20px; height: 20px; background-color: var(--primary-color); border-radius: 50%; z-index: -1; left: -5px; top: 8px; animation: float 3s ease-in-out infinite; } .nav-icons { display: flex; gap: 15px; } .icon { font-size: 1.2rem; cursor: pointer; transition: transform 0.3s ease; position: relative; } .icon:hover { transform: scale(1.2); color: var(--dark-accent); } .cart-icon { position: relative; } .cart-count { position: absolute; top: -8px; right: -8px; background-color: var(--dark-accent); color: white; width: 18px; height: 18px; border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 0.7rem; font-weight: bold; } .product-container { display: grid; grid-template-columns: 1fr; gap: 30px; padding-bottom: 40px; } @media (min-width: 600px) { .product-container { grid-template-columns: 1fr 1fr; } } .product-images { position: relative; border-radius: 15px; overflow: hidden; } .main-image { width: 100%; height: auto; border-radius: 15px; transition: transform 0.3s ease; display: block; } .image-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30,40 Q40,20 50,40 T70,40' fill='none' stroke='%23f9d5e5' stroke-width='2'/%3E%3C/svg%3E"); opacity: 0.3; mix-blend-mode: multiply; pointer-events: none; } .thumbnail-container { display: flex; gap: 10px; margin-top: 10px; } .thumbnail { width: 60px; height: 60px; border-radius: 8px; cursor: pointer; transition: transform 0.2s ease; border: 2px dashed transparent; } .thumbnail:hover { transform: translateY(-3px); } .thumbnail.active { border-color: var(--dark-accent); } .product-info { display: flex; flex-direction: column; justify-content: center; } .product-tag { background-color: var(--secondary-color); color: var(--text-color); display: inline-block; padding: 5px 12px; border-radius: 20px; font-size: 0.8rem; margin-bottom: 12px; position: relative; overflow: hidden; } .product-tag::before { content: ""; position: absolute; width: 10px; height: 10px; background-color: var(--accent-color); border-radius: 50%; top: 5px; left: 5px; opacity: 0.4; } .product-title { font-size: 1.8rem; margin-bottom: 15px; color: var(--text-color); position: relative; display: inline-block; } .product-title::after { content: ""; position: absolute; width: 100%; height: 8px; background-color: var(--primary-color); bottom: 0; left: 0; z-index: -1; border-radius: 10px; } .product-price { font-size: 1.5rem; font-weight: bold; margin-bottom: 20px; display: flex; align-items: center; } .original-price { text-decoration: line-through; color: #aaa; margin-right: 10px; font-size: 1.1rem; } .discount-badge { background-color: var(--dark-accent); color: white; padding: 3px 8px; border-radius: 12px; font-size: 0.8rem; margin-left: 10px; } .product-description { margin-bottom: 25px; line-height: 1.6; position: relative; } .product-description::before { content: ""; position: absolute; width: 30px; height: 30px; 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,5 C20,15 25,10 25,15 C25,20 20,25 15,25 C10,25 5,20 5,15 C5,10 10,5 15,5 Z' fill='none' stroke='%23d6eadf' stroke-width='2'/%3E%3C/svg%3E"); opacity: 0.5; top: -10px; left: -15px; z-index: -1; } .feature-list { margin-bottom: 25px; } .feature-item { display: flex; align-items: center; margin-bottom: 10px; } .feature-icon { width: 24px; height: 24px; margin-right: 10px; background-color: var(--secondary-color); border-radius: 50%; display: flex; justify-content: center; align-items: center; font-size: 0.9rem; } .color-selector { margin-bottom: 25px; } .color-title { font-size: 1rem; margin-bottom: 10px; font-weight: 500; } .color-options { display: flex; gap: 10px; } .color-option { width: 30px; height: 30px; border-radius: 50%; cursor: pointer; transition: transform 0.2s ease; position: relative; } .color-option:hover { transform: scale(1.15); } .color-option.active::after { content: ""; position: absolute; width: 40px; height: 40px; border: 2px dashed var(--text-color); border-radius: 50%; top: -7px; left: -7px; animation: rotate 10s linear infinite; } .quantity-selector { display: flex; align-items: center; margin-bottom: 25px; } .quantity-btn { width: 32px; height: 32px; background-color: var(--secondary-color); border: none; border-radius: 8px; display: flex; justify-content: center; align-items: center; cursor: pointer; font-size: 1.2rem; transition: all 0.2s ease; } .quantity-btn:hover { background-color: var(--accent-color); color: white; } .quantity-input { width: 50px; height: 32px; text-align: center; border: 2px dashed var(--accent-color); border-radius: 8px; margin: 0 10px; background-color: transparent; color: var(--text-color); font-size: 1rem; } .quantity-input:focus { outline: none; border-color: var(--dark-accent); } .action-buttons { display: flex; gap: 15px; } .add-to-cart { flex: 2; padding: 12px 20px; background-color: var(--accent-color); color: white; border: none; border-radius: 25px; font-size: 1rem; font-weight: 500; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; } .add-to-cart:hover { background-color: var(--dark-accent); transform: translateY(-3px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); } .add-to-cart::after { content: ""; position: absolute; 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='M5,10 Q10,5 15,10 T25,10' fill='none' stroke='%23ffffff' stroke-width='1' stroke-dasharray='2,2'/%3E%3C/svg%3E"); top: 0; left: 0; opacity: 0.2; pointer-events: none; } .wishlist-btn { flex: 1; padding: 12px; background-color: transparent; border: 2px dashed var(--accent-color); border-radius: 25px; font-size: 1rem; cursor: pointer; transition: all 0.3s ease; display: flex; justify-content: center; align-items: center; color: var(--text-color); } .wishlist-btn:hover { background-color: var(--primary-color); border-style: solid; } .wishlist-btn i { margin-right: 6px; } .shipping-info { margin-top: 25px; padding: 15px; background-color: var(--secondary-color); border-radius: 12px; font-size: 0.9rem; position: relative; } .shipping-info::before { content: ""; position: absolute; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M10,10 L90,10 L90,90 L10,90 Z' fill='none' stroke='%23ffffff' stroke-width='3' stroke-dasharray='5,5'/%3E%3C/svg%3E"); top: 0; left: 0; opacity: 0.3; pointer-events: none; border-radius: 12px; } .shipping-title { display: flex; align-items: center; margin-bottom: 10px; font-weight: 500; } .shipping-title i { margin-right: 8px; } .shipping-text { margin-left: 24px; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } } @keyframes rotate { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .hand-drawn-shape { position: absolute; opacity: 0.15; pointer-events: none; z-index: -1; } .shape1 { top: 10%; right: 5%; width: 100px; height: 100px; background-image: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20,50 C20,40 40,30 50,40 C60,50 80,60 80,50' fill='none' stroke='%23ff8ba7' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E"); animation: float 8s ease-in-out infinite; } .shape2 { bottom: 15%; left: 10%; width: 80px; height: 80px; background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='40' cy='40' r='30' fill='none' stroke='%2383c5be' stroke-width='2' stroke-dasharray='5,5'/%3E%3C/svg%3E"); animation: float 6s ease-in-out infinite 1s; } .added-notification { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%) translateY(100px); background-color: var(--dark-accent); color: white; padding: 12px 20px; border-radius: 25px; display: flex; align-items: center; gap: 10px; opacity: 0; transition: all 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55); z-index: 1000; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1); } .added-notification.show { transform: translateX(-50%) translateY(0); opacity: 1; } .added-notification i { font-size: 1.2rem; } </style> <link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@400;500;600;700&display=swap" rel="stylesheet"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css"> </head> <body> <div class="container"> <div class="nav-bar"> <div class="logo">CozyCraft</div> <div class="nav-icons"> <div class="icon"><i class="fas fa-search"></i></div> <div class="icon"><i class="fas fa-user"></i></div> <div class="icon cart-icon"> <i class="fas fa-shopping-basket"></i> <div class="cart-count">2</div> </div> </div> </div> <div class="product-container"> <div class="product-images"> <img src="https://images.unsplash.com/photo-1622428051717-dcd9065f169c?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="Ceramic Mug Set" class="main-image" id="main-product-image"> <div class="image-overlay"></div> <div class="thumbnail-container"> <img src="https://images.unsplash.com/photo-1622428051717-dcd9065f169c?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="Ceramic Mug Set - Front" class="thumbnail active" data-src="https://images.unsplash.com/photo-1622428051717-dcd9065f169c?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80"> <img src="https://images.unsplash.com/photo-1594282486552-05a3b6fbba1c?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="Ceramic Mug Set - Side" class="thumbnail" data-src="https://images.unsplash.com/photo-1594282486552-05a3b6fbba1c?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80"> <img src="https://images.unsplash.com/photo-1614528767034-5c88fc56bf7d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80" alt="Ceramic Mug Set - Detail" class="thumbnail" data-src="https://images.unsplash.com/photo-1614528767034-5c88fc56bf7d?ixlib=rb-1.2.1&auto=format&fit=crop&w=500&q=80"> </div> </div> <div class="product-info"> <div class="product-tag">Handcrafted</div> <h1 class="product-title">Ceramic Mug Set</h1> <div class="product-price"> <span class="original-price">$48.00</span> $39.95 <span class="discount-badge">Save 17%</span> </div> <p class="product-description">Each mug in this set is lovingly hand-thrown on a potter's wheel, glazed with our signature pastel finishes, and kiln-fired to perfection. Every piece features unique brush strokes and organic textures that make your morning coffee ritual truly special.</p> <div class="feature-list"> <div class="feature-item"> <div class="feature-icon"><i class="fas fa-check"></i></div> <div>Microwave & dishwasher safe</div> </div> <div class="feature-item"> <div class="feature-icon"><i class="fas fa-check"></i></div> <div>Set of 4 unique mugs (12oz each)</div> </div> <div class="feature-item"> <div class="feature-icon"><i class="fas fa-check"></i></div> <div>Lead-free, food-safe glazes</div> </div> </div> <div class="color-selector"> <div class="color-title">Color Palette:</div> <div class="color-options"> <div class="color-option active" style="background-color: #f9d5e5;" data-color="Blush"></div> <div class="color-option" style="background-color: #d6eadf;" data-color="Sage"></div> <div class="color-option" style="background-color: #b8c0ff;" data-color="Periwinkle"></div> <div class="color-option" style="background-color: #ffd6a5;" data-color="Honey"></div> </div> </div> <div class="quantity-selector"> <button class="quantity-btn" id="decrease-qty">-</button> <input type="text" class="quantity-input" value="1" id="qty-input" readonly> <button class="quantity-btn" id="increase-qty">+</button> </div> <div class="action-buttons"> <button class="add-to-cart" id="add-to-cart-btn"> <i class="fas fa-shopping-basket"></i> Add to Basket </button> <button class="wishlist-btn"> <i class="far fa-heart"></i> Save </button> </div> <div class="shipping-info"> <div class="shipping-title"> <i class="fas fa-truck"></i> Shipping & Returns </div> <p class="shipping-text">Free shipping on orders over $75. Ships within 3-5 business days. Easy 30-day returns if you change your mind.</p> </div> </div> </div> </div> <div class="hand-drawn-shape shape1"></div> <div class="hand-drawn-shape shape2"></div> <div class="added-notification" id="notification"> <i class="fas fa-check-circle"></i> <span>Added to your basket!</span> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Thumbnail gallery functionality const mainImage = document.getElementById('main-product-image'); const thumbnails = document.querySelectorAll('.thumbnail'); thumbnails.forEach(thumbnail => { thumbnail.addEventListener('click', function() { // Update main image mainImage.src = this.getAttribute('data-src'); // Update active thumbnail thumbnails.forEach(t => t.classList.remove('active')); this.classList.add('active'); // Add a little bounce effect to the main image mainImage.style.transform = 'scale(0.95)'; setTimeout(() => { mainImage.style.transform = 'scale(1)'; }, 200); }); }); // Color selector functionality const colorOptions = document.querySelectorAll('.color-option'); let selectedColor = 'Blush'; // Default colorOptions.forEach(option => { option.addEventListener('click', function() { // Update active color colorOptions.forEach(o => o.classList.remove('active')); this.classList.add('active'); selectedColor = this.getAttribute('data-color'); // Visual feedback this.style.transform = 'scale(1.2)'; setTimeout(() => { this.style.transform = 'scale(1)'; }, 200); }); // Color name tooltip on hover option.addEventListener('mouseenter', function() { const colorName = this.getAttribute('data-color'); const tooltip = document.createElement('div'); tooltip.classList.add('color-tooltip'); tooltip.style.position = 'absolute'; tooltip.style.backgroundColor = 'white'; tooltip.style.padding = '4px 8px'; tooltip.style.borderRadius = '4px'; tooltip.style.fontSize = '0.8rem'; tooltip.style.boxShadow = '0 2px 5px rgba(0,0,0,0.1)'; tooltip.style.top = '-30px'; tooltip.style.left = '50%'; tooltip.style.transform = 'translateX(-50%)'; tooltip.style.pointerEvents = 'none'; tooltip.textContent = colorName; this.style.position = 'relative'; this.appendChild(tooltip); }); option.addEventListener('mouseleave', function() { const tooltip = this.querySelector('.color-tooltip'); if (tooltip) { tooltip.remove(); } }); }); // Quantity input functionality const qtyInput = document.getElementById('qty-input'); const decreaseBtn = document.getElementById('decrease-qty'); const increaseBtn = document.getElementById('increase-qty'); decreaseBtn.addEventListener('click', function() { let currentQty = parseInt(qtyInput.value); if (currentQty > 1) { qtyInput.value = currentQty - 1; // Add a little pop animation this.style.transform = 'scale(0.8)'; setTimeout(() => { this.style.transform = 'scale(1)'; }, 100); } }); increaseBtn.addEventListener('click', function() { let currentQty = parseInt(qtyInput.value); if (currentQty < 10) { qtyInput.value = currentQty + 1; // Add a little pop animation this.style.transform = 'scale(0.8)'; setTimeout(() => { this.style.transform = 'scale(1)'; }, 100); } }); // Add to cart button const addToCartBtn = document.getElementById('add-to-cart-btn'); const notification = document.getElementById('notification'); addToCartBtn.addEventListener('click', function() { // Button animation this.style.transform = 'scale(0.95)'; setTimeout(() => { this.style.transform = 'translateY(-3px)'; }, 100); // Update cart count const cartCount = document.querySelector('.cart-count'); cartCount.textContent = parseInt(cartCount.textContent) + parseInt(qtyInput.value); // Show notification notification.classList.add('show'); setTimeout(() => { notification.classList.remove('show'); }, 3000); // Reset button setTimeout(() => { this.style.transform = 'translateY(0)'; }, 300); }); // Wishlist button heart toggle const wishlistBtn = document.querySelector('.wishlist-btn'); const heartIcon = wishlistBtn.querySelector('i'); wishlistBtn.addEventListener('click', function() { if (heartIcon.classList.contains('far')) { heartIcon.classList.remove('far'); heartIcon.classList.add('fas'); heartIcon.style.color = '#ff8ba7'; } else { heartIcon.classList.remove('fas'); heartIcon.classList.add('far'); heartIcon.style.color = ''; } // Button animation this.style.transform = 'scale(0.95)'; setTimeout(() => { this.style.transform = 'scale(1)'; }, 200); }); // Add subtle parallax effect on mouse move const container = document.querySelector('.container'); const shapes = document.querySelectorAll('.hand-drawn-shape'); container.addEventListener('mousemove', function(e) { const x = e.clientX / window.innerWidth; const y = e.clientY / window.innerHeight; shapes.forEach(shape => { const speed = shape.classList.contains('shape1') ? 20 : 10; shape.style.transform = `translate(${x * speed}px, ${y * speed}px)`; }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Wanderlust Explorer</title> <style> :root { --primary: #ff7e5f; --secondary: #feb47b; --accent: #7c4dff; --dark: #2c3e50; --light: #f9f9f9; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background-color: var(--light); color: var(--dark); overflow-x: hidden; width: 100%; height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; } .app-container { width: 100%; max-width: 700px; height: 700px; overflow: hidden; position: relative; } .app-header { position: relative; height: 60px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; background-color: rgba(255, 255, 255, 0.9); backdrop-filter: blur(10px); z-index: 10; box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1); } .logo { display: flex; align-items: center; gap: 10px; } .logo-icon { width: 30px; height: 30px; background: linear-gradient(45deg, var(--primary), var(--secondary)); border-radius: 8px; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 10px rgba(255, 126, 95, 0.3); } .logo-icon i { color: white; font-size: 14px; } .logo-text { font-weight: 700; font-size: 18px; color: var(--dark); } .menu-button { width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background-color: var(--light); border: none; cursor: pointer; transition: all 0.3s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); } .menu-button:hover { transform: rotate(90deg); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.15); } .main-content { height: calc(100% - 60px); overflow-y: auto; overflow-x: hidden; position: relative; scroll-behavior: smooth; scrollbar-width: none; } .main-content::-webkit-scrollbar { display: none; } .destination-card { position: relative; width: 100%; height: 300px; overflow: hidden; margin-bottom: 20px; border-radius: 16px; cursor: pointer; transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } .destination-card:hover { transform: translateY(-5px); } .destination-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease, filter 0.5s ease; } .destination-card:hover .destination-image { transform: scale(1.05); filter: brightness(0.85); } .destination-overlay { position: absolute; bottom: 0; left: 0; width: 100%; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); padding: 20px; color: white; transform: translateY(40px); opacity: 0.8; transition: all 0.3s ease-out; } .destination-card:hover .destination-overlay { transform: translateY(0); opacity: 1; } .destination-title { font-size: 24px; font-weight: 700; margin-bottom: 6px; } .destination-desc { font-size: 14px; margin-bottom: 12px; opacity: 0; transform: translateY(20px); transition: all 0.3s 0.1s ease-out; } .destination-card:hover .destination-desc { opacity: 1; transform: translateY(0); } .destination-meta { display: flex; align-items: center; gap: 16px; margin-top: 10px; } .meta-item { display: flex; align-items: center; gap: 5px; font-size: 12px; opacity: 0; transform: translateY(20px); transition: all 0.3s 0.2s ease-out; } .destination-card:hover .meta-item { opacity: 1; transform: translateY(0); } .explore-button { display: inline-flex; align-items: center; gap: 8px; background: linear-gradient(45deg, var(--primary), var(--secondary)); color: white; border: none; padding: 8px 16px; border-radius: 20px; font-weight: 600; font-size: 14px; cursor: pointer; opacity: 0; transform: translateY(20px); transition: all 0.3s 0.3s ease-out, background 0.3s ease; margin-top: 10px; box-shadow: 0 4px 10px rgba(255, 126, 95, 0.3); } .destination-card:hover .explore-button { opacity: 1; transform: translateY(0); } .explore-button:hover { background: linear-gradient(45deg, var(--secondary), var(--primary)); box-shadow: 0 4px 15px rgba(255, 126, 95, 0.5); } .section-title { font-size: 20px; font-weight: 700; margin: 20px 0 15px; padding: 0 20px; display: flex; align-items: center; gap: 8px; } .section-title i { color: var(--accent); } .destination-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; padding: 0 20px; margin-bottom: 20px; } .mini-card { height: 150px; border-radius: 12px; overflow: hidden; position: relative; cursor: pointer; transition: transform 0.3s ease; } .mini-card:hover { transform: translateY(-3px); } .mini-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .mini-card:hover .mini-image { transform: scale(1.1); } .mini-overlay { position: absolute; bottom: 0; left: 0; width: 100%; background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent); padding: 10px; color: white; } .mini-title { font-size: 16px; font-weight: 600; } .search-container { position: relative; padding: 20px; } .search-bar { width: 100%; padding: 12px 20px; padding-left: 45px; border-radius: 30px; border: none; background-color: white; font-size: 14px; box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; } .search-bar:focus { outline: none; box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15); } .search-icon { position: absolute; left: 35px; top: 50%; transform: translateY(-50%); color: var(--dark); opacity: 0.5; } .bottom-nav { position: fixed; bottom: 0; left: 0; width: 100%; height: 60px; background-color: white; display: flex; justify-content: space-around; align-items: center; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); z-index: 10; } .nav-item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 70px; height: 100%; color: var(--dark); opacity: 0.6; transition: all 0.3s ease; cursor: pointer; } .nav-item.active { opacity: 1; color: var(--accent); } .nav-item:hover { opacity: 1; } .nav-icon { font-size: 20px; } .nav-text { font-size: 10px; font-weight: 600; } .floating-action { position: absolute; bottom: 80px; right: 20px; width: 50px; height: 50px; border-radius: 50%; background: linear-gradient(45deg, var(--accent), #9c7bff); display: flex; align-items: center; justify-content: center; color: white; box-shadow: 0 4px 15px rgba(124, 77, 255, 0.3); cursor: pointer; transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275); z-index: 5; } .floating-action:hover { transform: scale(1.1) rotate(45deg); box-shadow: 0 4px 20px rgba(124, 77, 255, 0.5); } .badge { display: inline-flex; align-items: center; justify-content: center; background-color: var(--accent); color: white; width: 20px; height: 20px; border-radius: 10px; font-size: 10px; font-weight: 700; position: absolute; top: -5px; right: -5px; } /* Animation keyframes */ @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(124, 77, 255, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(124, 77, 255, 0); } 100% { box-shadow: 0 0 0 0 rgba(124, 77, 255, 0); } } .featured-badge { position: absolute; top: 15px; right: 15px; background: rgba(255, 255, 255, 0.9); color: var(--dark); padding: 5px 10px; border-radius: 20px; font-size: 12px; font-weight: 600; display: flex; align-items: center; gap: 5px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); z-index: 2; } .featured-badge i { color: gold; } .recommendation-section { padding: 0 20px; margin-bottom: 80px; } .adventure-metrics { display: flex; align-items: center; gap: 15px; overflow-x: auto; padding: 10px 0; margin: 0 20px 15px; scrollbar-width: none; } .adventure-metrics::-webkit-scrollbar { display: none; } .metric-item { background-color: white; border-radius: 12px; padding: 10px 15px; display: flex; align-items: center; gap: 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05); flex-shrink: 0; } .metric-item i { color: var(--accent); } .metric-text { font-size: 13px; font-weight: 600; } .discover-animation { animation: float 4s ease-in-out infinite; } .pulse-animation { animation: pulse 2s infinite; } .map-container { width: 100%; height: 200px; background-color: #e9f1f7; border-radius: 16px; margin: 0 20px 20px; overflow: hidden; position: relative; } .map-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(2px); } .map-prompt { background-color: white; border-radius: 12px; padding: 12px 20px; display: flex; align-items: center; gap: 10px; box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1); cursor: pointer; transition: all 0.3s ease; } .map-prompt:hover { transform: scale(1.05); box-shadow: 0 2px 20px rgba(0, 0, 0, 0.15); } .map-prompt i { color: var(--accent); } .map-text { font-weight: 600; font-size: 14px; } /* Responsive adjustments */ @media (max-width: 500px) { .destination-grid { grid-template-columns: 1fr; } } </style> </head> <body> <div class="app-container"> <header class="app-header"> <div class="logo"> <div class="logo-icon"> <i class="fas fa-compass"></i> </div> <div class="logo-text">Wanderlust</div> </div> <button class="menu-button"> <i class="fas fa-bars"></i> </button> </header> <div class="main-content"> <div class="search-container"> <input type="text" class="search-bar" placeholder="Where to next, adventurer?"> <i class="fas fa-search search-icon"></i> </div> <div class="adventure-metrics"> <div class="metric-item"> <i class="fas fa-mountain"></i> <span class="metric-text">Hiking</span> </div> <div class="metric-item"> <i class="fas fa-water"></i> <span class="metric-text">Beaches</span> </div> <div class="metric-item"> <i class="fas fa-city"></i> <span class="metric-text">Cities</span> </div> <div class="metric-item"> <i class="fas fa-campground"></i> <span class="metric-text">Camping</span> </div> <div class="metric-item"> <i class="fas fa-hiking"></i> <span class="metric-text">Trails</span> </div> </div> <div class="destination-card discover-animation"> <img src="https://images.unsplash.com/photo-1506197603052-3cc9c3a201bd?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Santorini, Greece" class="destination-image"> <div class="featured-badge"> <i class="fas fa-star"></i> <span>Featured</span> </div> <div class="destination-overlay"> <h3 class="destination-title">Santorini, Greece</h3> <p class="destination-desc">Discover the iconic blue-domed churches and white-washed buildings perched on dramatic cliffs overlooking the Aegean Sea.</p> <div class="destination-meta"> <div class="meta-item"> <i class="fas fa-calendar-alt"></i> <span>Best time: May-Oct</span> </div> <div class="meta-item"> <i class="fas fa-star"></i> <span>4.9 (2.4k reviews)</span> </div> </div> <button class="explore-button"> <i class="fas fa-compass"></i> <span>Explore Now</span> </button> </div> </div> <h2 class="section-title"> <i class="fas fa-thumbtack"></i> <span>Trending Adventures</span> </h2> <div class="destination-grid"> <div class="mini-card"> <img src="https://images.unsplash.com/photo-1520808663317-647b476a81b9?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Bali, Indonesia" class="mini-image"> <div class="mini-overlay"> <h4 class="mini-title">Bali, Indonesia</h4> </div> </div> <div class="mini-card"> <img src="https://images.unsplash.com/photo-1504019347908-b45f9b0b8dd5?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="New Zealand" class="mini-image"> <div class="mini-overlay"> <h4 class="mini-title">New Zealand</h4> </div> </div> <div class="mini-card"> <img src="https://images.unsplash.com/photo-1526392060635-9d6019884377?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Kyoto, Japan" class="mini-image"> <div class="mini-overlay"> <h4 class="mini-title">Kyoto, Japan</h4> </div> </div> <div class="mini-card"> <img src="https://images.unsplash.com/photo-1531572753322-ad063cecc140?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Cappadocia, Turkey" class="mini-image"> <div class="mini-overlay"> <h4 class="mini-title">Cappadocia, Turkey</h4> </div> </div> </div> <h2 class="section-title"> <i class="fas fa-map-marked-alt"></i> <span>Adventure Map</span> </h2> <div class="map-container"> <img src="https://images.unsplash.com/photo-1524661135-423995f22d0b?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="World Map" style="width:100%; height:100%; object-fit:cover;"> <div class="map-overlay"> <div class="map-prompt pulse-animation"> <i class="fas fa-location-arrow"></i> <span class="map-text">Discover nearby adventures</span> </div> </div> </div> <h2 class="section-title"> <i class="fas fa-fire"></i> <span>Curated Experiences</span> </h2> <div class="destination-card"> <img src="https://images.unsplash.com/photo-1477852058498-689ca8e27a0a?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Northern Lights, Iceland" class="destination-image"> <div class="destination-overlay"> <h3 class="destination-title">Northern Lights, Iceland</h3> <p class="destination-desc">Chase the ethereal aurora borealis as they dance across Iceland's night sky - a natural spectacle that will leave you breathless.</p> <div class="destination-meta"> <div class="meta-item"> <i class="fas fa-calendar-alt"></i> <span>Best time: Sep-Mar</span> </div> <div class="meta-item"> <i class="fas fa-star"></i> <span>4.8 (1.9k reviews)</span> </div> </div> <button class="explore-button"> <i class="fas fa-compass"></i> <span>Explore Now</span> </button> </div> </div> <div class="recommendation-section"> <h2 class="section-title"> <i class="fas fa-heart"></i> <span>Just For You</span> </h2> <div class="destination-card"> <img src="https://images.unsplash.com/photo-1519681393784-d120267933ba?ixlib=rb-1.2.1&auto=format&fit=crop&w=800&q=80" alt="Swiss Alps" class="destination-image"> <div class="destination-overlay"> <h3 class="destination-title">Swiss Alps</h3> <p class="destination-desc">Dramatic mountain landscapes, pristine lakes, and charming villages await in this alpine paradise for nature lovers and adventurers.</p> <div class="destination-meta"> <div class="meta-item"> <i class="fas fa-calendar-alt"></i> <span>Best time: June-Sep</span> </div> <div class="meta-item"> <i class="fas fa-star"></i> <span>4.9 (3.2k reviews)</span> </div> </div> <button class="explore-button"> <i class="fas fa-compass"></i> <span>Explore Now</span> </button> </div> </div> </div> </div> <div class="floating-action pulse-animation"> <i class="fas fa-plane"></i> <div class="badge">3</div> </div> <nav class="bottom-nav"> <div class="nav-item active"> <i class="fas fa-home nav-icon"></i> <span class="nav-text">Home</span> </div> <div class="nav-item"> <i class="fas fa-search nav-icon"></i> <span class="nav-text">Explore</span> </div> <div class="nav-item"> <i class="fas fa-heart nav-icon"></i> <span class="nav-text">Saved</span> </div> <div class="nav-item"> <i class="fas fa-user nav-icon"></i> <span class="nav-text">Profile</span> </div> </nav> </div> <script src="https://kit.fontawesome.com/a076d05399.js" crossorigin="anonymous"></script> <script> document.addEventListener('DOMContentLoaded', function() { // Initialize bottom navigation functionality const navItems = document.querySelectorAll('.nav-item'); navItems.forEach(item => { item.addEventListener('click', function() { navItems.forEach(i => i.classList.remove('active')); this.classList.add('active'); }); }); // Cards hover enhancement const cards = document.querySelectorAll('.destination-card, .mini-card'); cards.forEach(card => { card.addEventListener('mouseenter', function() { this.style.zIndex = "5"; }); card.addEventListener('mouseleave', function() { setTimeout(() => { this.style.zIndex = "1"; }, 300); }); }); // Floating action button effect const fab = document.querySelector('.floating-action'); fab.addEventListener('click', function() { this.classList.toggle('pulse-animation'); // Create notification effect const notification = document.createElement('div'); notification.textContent = "New adventures ready to explore!"; notification.style.position = "fixed"; notification.style.bottom = "140px"; notification.style.right = "20px"; notification.style.backgroundColor = "var(--dark)"; notification.style.color = "white"; notification.style.padding = "10px 15px"; notification.style.borderRadius = "8px"; notification.style.maxWidth = "200px"; notification.style.fontSize = "14px"; notification.style.boxShadow = "0 4px 15px rgba(0, 0, 0, 0.2)"; notification.style.transform = "translateY(20px)"; notification.style.opacity = "0"; notification.style.transition = "all 0.3s ease"; document.body.appendChild(notification); // Animate notification setTimeout(() => { notification.style.transform = "translateY(0)"; notification.style.opacity = "1"; }, 100); // Remove notification after delay setTimeout(() => { notification.style.transform = "translateY(20px)"; notification.style.opacity = "0"; setTimeout(() => { document.body.removeChild(notification); }, 300); }, 3000); }); // Search bar effect const searchBar = document.querySelector('.search-bar'); searchBar.addEventListener('focus', function() { this.parentElement.style.transform = "scale(1.02)"; this.parentElement.style.transition = "all 0.3s ease"; }); searchBar.addEventListener('blur', function() { this.parentElement.style.transform = "scale(1)"; }); // Smooth scrolling for destination cards const destinationCards = document.querySelectorAll('.destination-card'); destinationCards.forEach(card => { const exploreBtn = card.querySelector('.explore-button'); if (exploreBtn) { exploreBtn.addEventListener('click', function(e) { e.stopPropagation(); // Show interaction effect - create ripple effect const ripple = document.createElement('div'); ripple.className = 'ripple'; ripple.style.position = 'absolute'; ripple.style.width = '100px'; ripple.style.height = '100px'; ripple.style.top = e.clientY - e.target.getBoundingClientRect().top + 'px'; ripple.style.left = e.clientX - e.target.getBoundingClientRect().left + 'px'; ripple.style.transform = 'translate(-50%, -50%)'; ripple.style.borderRadius = '50%'; ripple.style.backgroundColor = 'rgba(255, 255, 255, 0.3)'; ripple.style.animation = 'ripple 0.8s ease-out'; exploreBtn.appendChild(ripple); setTimeout(() => { exploreBtn.removeChild(ripple); }, 800); // Show "Destination details loading..." effect const parentCard = this.closest('.destination-card'); const overlay = parentCard.querySelector('.destination-overlay'); overlay.innerHTML = ` <div style="display: flex; flex-direction: column; align-items: center; justify-content: center; height: 150px; gap: 15px;"> <div style="width: 40px; height: 40px; border: 3px solid rgba(255, 255, 255, 0.3); border-top: 3px solid white; border-radius: 50%; animation: spin 1s linear infinite;"></div> <div style="font-weight: 600; font-size: 16px;">Loading your adventure...</div> </div> `; // Restore original content after delay setTimeout(() => { overlay.innerHTML = ` <h3 class="destination-title">${parentCard.querySelector('img').alt}</h3> <p class="destination-desc">${parentCard.querySelector('img').alt} awaits with unforgettable experiences and memories waiting to be made. Pack your bags!</p> <div class="destination-meta"> <div class="meta-item"> <i class="fas fa-calendar-alt"></i> <span>Available now</span> </div> <div class="meta-item"> <i class="fas fa-star"></i> <span>4.9 (2k+ reviews)</span> </div> </div> <button class="explore-button"> <i class="fas fa-compass"></i> <span>Explore Now</span> </button> `; }, 1500); }); } }); // Custom animation for map interaction const mapPrompt = document.querySelector('.map-prompt'); mapPrompt.addEventListener('click', function() { const mapContainer = document.querySelector('.map-container'); // Create dots as markers on the map for (let i = 0; i < 5; i++) { const marker = document.createElement('div'); marker.style.position = 'absolute'; marker.style.width = '15px'; marker.style.height = '15px'; marker.style.borderRadius = '50%'; marker.style.backgroundColor = 'var(--accent)'; marker.style.boxShadow = '0 0 0 5px rgba(124, 77, 255, 0.3)'; marker.style.top = `${20 + Math.random() * 60}%`; marker.style.left = `${20 + Math.random() * 60}%`; marker.style.transform = 'scale(0)'; marker.style.transition = 'transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275)'; marker.style.zIndex = '3'; mapContainer.appendChild(marker); // Animate markers setTimeout(() => { marker.style.transform = 'scale(1)'; }, 100 * i); // Add pulse effect setTimeout(() => { marker.style.animation = 'pulse 2s infinite'; }, 600 * i); } // Hide map prompt this.style.opacity = '0'; setTimeout(() => { this.style.display = 'none'; }, 300); }); // Add keyframes for ripple animation const style = document.createElement('style'); style.textContent = ` @keyframes ripple { 0% { width: 0; height: 0; opacity: 0.5; } 100% { width: 500px; height: 500px; opacity: 0; } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } `; document.head.appendChild(style); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Harmony Health App Illustrations</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } :root { --primary: #5ca0d3; --secondary: #64c9b9; --accent: #ffd166; --light: #f9f9fb; --dark: #4a4a68; --gradient-1: linear-gradient(135deg, #5ca0d3 0%, #64c9b9 100%); --gradient-2: linear-gradient(135deg, #64c9b9 0%, #5ca0d3 100%); --shadow: 0 8px 32px rgba(74, 74, 104, 0.1); --transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1); } body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background-color: var(--light); color: var(--dark); overflow-x: hidden; } .container { width: 700px; height: 700px; max-width: 100%; padding: 2rem; position: relative; display: flex; flex-direction: column; overflow: hidden; background-color: white; border-radius: 24px; box-shadow: var(--shadow); } .phone-frame { position: relative; width: 250px; height: 500px; margin: 0 auto; border-radius: 36px; background: var(--dark); padding: 12px; display: flex; flex-direction: column; box-shadow: 0 20px 40px rgba(74, 74, 104, 0.18); overflow: hidden; transition: var(--transition); transform: translateY(20px); } .phone-screen { background: var(--light); flex: 1; border-radius: 24px; position: relative; overflow: hidden; } .app-content { position: absolute; top: 0; left: 0; width: 100%; height: 100%; transition: var(--transition); transform: translateX(0); } .app-screen { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 1.5rem 1rem; transition: var(--transition); opacity: 0; transform: translateY(20px); } .app-screen.active { opacity: 1; transform: translateY(0); } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 1.5rem; } .logo { display: flex; align-items: center; gap: 5px; font-weight: 600; font-size: 1.2rem; color: var(--primary); } .logo-icon { width: 24px; height: 24px; border-radius: 8px; background: var(--gradient-1); display: flex; align-items: center; justify-content: center; } .badge { font-size: 0.8rem; font-weight: 500; color: white; background: var(--gradient-1); padding: 4px 12px; border-radius: 16px; } .title { margin-bottom: 1rem; font-size: 1.1rem; font-weight: 600; color: var(--dark); } .nav-dots { display: flex; justify-content: center; gap: 8px; margin-top: 1rem; } .nav-dot { width: 8px; height: 8px; border-radius: 50%; background: #e0e0e0; cursor: pointer; transition: var(--transition); } .nav-dot.active { width: 24px; border-radius: 12px; background: var(--primary); } .description { font-size: 0.85rem; line-height: 1.4; color: #666; margin-bottom: 1.5rem; } .icon-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 1rem; } .icon-item { display: flex; flex-direction: column; align-items: center; text-align: center; cursor: pointer; transition: var(--transition); padding: 10px 5px; border-radius: 12px; } .icon-item:hover { background: rgba(100, 201, 185, 0.08); transform: translateY(-3px); } .icon { width: 40px; height: 40px; margin-bottom: 8px; display: flex; align-items: center; justify-content: center; border-radius: 12px; color: white; position: relative; background: var(--gradient-1); box-shadow: 0 4px 12px rgba(100, 201, 185, 0.2); } .icon-label { font-size: 0.7rem; font-weight: 500; color: var(--dark); } .decorative-elements { position: absolute; width: 100%; height: 100%; top: 0; left: 0; pointer-events: none; z-index: -1; } .decorative-circle { position: absolute; border-radius: 50%; background: var(--gradient-2); opacity: 0.05; transform-origin: center; animation: pulse 10s infinite alternate ease-in-out; } .community-item { display: flex; align-items: center; padding: 12px; margin-bottom: 10px; border-radius: 16px; background: rgba(250, 250, 252, 0.9); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04); transition: var(--transition); cursor: pointer; } .community-item:hover { background: rgba(250, 250, 252, 1); transform: translateY(-2px) scale(1.02); box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08); } .community-avatar { width: 36px; height: 36px; border-radius: 50%; margin-right: 12px; background: var(--gradient-1); display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; font-size: 0.9rem; } .community-details { flex: 1; } .community-name { font-size: 0.85rem; font-weight: 600; margin-bottom: 2px; color: var(--dark); } .community-type { font-size: 0.7rem; color: #888; } .community-members { font-size: 0.7rem; color: var(--primary); font-weight: 500; } .wellbeing-cards { display: flex; overflow-x: auto; gap: 10px; padding: 5px 0; scrollbar-width: none; -ms-overflow-style: none; } .wellbeing-cards::-webkit-scrollbar { display: none; } .wellbeing-card { flex: 0 0 120px; height: 140px; border-radius: 16px; padding: 15px; display: flex; flex-direction: column; justify-content: space-between; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); transition: var(--transition); background: white; cursor: pointer; } .wellbeing-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1); } .card-icon { width: 32px; height: 32px; border-radius: 10px; background: var(--gradient-1); display: flex; align-items: center; justify-content: center; color: white; margin-bottom: 10px; } .card-title { font-size: 0.8rem; font-weight: 600; color: var(--dark); margin-bottom: 5px; } .card-metric { font-size: 0.7rem; color: #888; } .progress-bar { height: 4px; background: #f0f0f0; border-radius: 2px; margin-top: 8px; position: relative; overflow: hidden; } .progress { position: absolute; height: 100%; left: 0; top: 0; background: var(--gradient-1); border-radius: 2px; } .bottom-nav { display: flex; justify-content: space-between; padding: 12px 15px; background: white; border-radius: 18px; box-shadow: 0 -2px 15px rgba(0, 0, 0, 0.04); position: absolute; bottom: 15px; left: 15px; right: 15px; } .nav-item { display: flex; flex-direction: column; align-items: center; cursor: pointer; } .nav-icon { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; margin-bottom: 4px; color: #aaa; transition: color 0.2s ease; } .nav-item.active .nav-icon { color: var(--primary); } .nav-label { font-size: 0.6rem; font-weight: 500; color: #aaa; } .nav-item.active .nav-label { color: var(--primary); } .illustration-elements { position: absolute; top: 20px; right: 20px; width: 330px; height: 330px; z-index: -1; } .illustration-circle { position: absolute; border-radius: 50%; background: var(--gradient-2); opacity: 0.03; transform-origin: center; } @keyframes float { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-15px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } } @keyframes pulse { 0% { transform: scale(1); opacity: 0.05; } 50% { transform: scale(1.1); opacity: 0.08; } 100% { transform: scale(1); opacity: 0.05; } } @keyframes slow-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } .intro-title { font-size: 2.5rem; font-weight: 700; margin-bottom: 1rem; background: var(--gradient-1); -webkit-background-clip: text; -webkit-text-fill-color: transparent; text-align: center; } .intro-subtitle { font-size: 1.2rem; font-weight: 500; text-align: center; color: var(--dark); max-width: 600px; margin: 0 auto 2rem auto; line-height: 1.5; } .indicators { position: absolute; bottom: 30px; left: 0; right: 0; display: flex; justify-content: center; gap: 15px; } .indicator { padding: 10px 20px; background: white; border-radius: 20px; display: flex; align-items: center; gap: 10px; box-shadow: var(--shadow); cursor: pointer; transition: var(--transition); } .indicator:hover { transform: translateY(-5px); box-shadow: 0 10px 30px rgba(74, 74, 104, 0.15); } .indicator.active { background: var(--gradient-1); color: white; } .indicator-icon { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; font-size: 0.9rem; } .indicator-label { font-size: 0.9rem; font-weight: 500; } .feature-title { font-size: 1.2rem; text-align: left; margin-bottom: 15px; color: var(--dark); font-weight: 600; } .feature-description { font-size: 0.9rem; line-height: 1.5; color: #666; margin-bottom: 30px; text-align: left; } </style> </head> <body> <div class="container"> <h1 class="intro-title">Harmony Health</h1> <p class="intro-subtitle">A mindful approach to healthcare, focused on community and well-being through compassionate digital design.</p> <div class="phone-frame"> <div class="phone-screen"> <div class="app-content"> <div class="app-screen active" id="screen1"> <div class="header"> <div class="logo"> <div class="logo-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path> </svg> </div> <span>Harmony</span> </div> <div class="badge">New</div> </div> <h3 class="title">Daily Wellness</h3> <p class="description">Track your mental and physical wellness with personalized insights and gentle reminders.</p> <div class="wellbeing-cards"> <div class="wellbeing-card" style="background: rgba(92, 160, 211, 0.05);"> <div class="card-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <path d="M8 14s1.5 2 4 2 4-2 4-2"></path> <line x1="9" y1="9" x2="9.01" y2="9"></line> <line x1="15" y1="9" x2="15.01" y2="9"></line> </svg> </div> <div class="card-title">Mood</div> <div class="card-metric">Balanced</div> <div class="progress-bar"> <div class="progress" style="width: 75%;"></div> </div> </div> <div class="wellbeing-card" style="background: rgba(100, 201, 185, 0.05);"> <div class="card-icon" style="background: var(--gradient-2);"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path> </svg> </div> <div class="card-title">Heart Rate</div> <div class="card-metric">72 bpm</div> <div class="progress-bar"> <div class="progress" style="width: 65%;"></div> </div> </div> <div class="wellbeing-card" style="background: rgba(255, 209, 102, 0.05);"> <div class="card-icon" style="background: linear-gradient(135deg, #ffd166 0%, #e78c45 100%);"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 8h1a4 4 0 0 1 0 8h-1"></path> <path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path> <line x1="6" y1="1" x2="6" y2="4"></line> <line x1="10" y1="1" x2="10" y2="4"></line> <line x1="14" y1="1" x2="14" y2="4"></line> </svg> </div> <div class="card-title">Sleep</div> <div class="card-metric">7.5 hours</div> <div class="progress-bar"> <div class="progress" style="width: 88%;"></div> </div> </div> </div> <h3 class="title" style="margin-top: 20px;">Care Categories</h3> <div class="icon-grid"> <div class="icon-item"> <div class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path> </svg> </div> <div class="icon-label">Heart Health</div> </div> <div class="icon-item"> <div class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <path d="M8 14s1.5 2 4 2 4-2 4-2"></path> <line x1="9" y1="9" x2="9.01" y2="9"></line> <line x1="15" y1="9" x2="15.01" y2="9"></line> </svg> </div> <div class="icon-label">Mental Health</div> </div> <div class="icon-item"> <div class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 18v-6a9 9 0 0 1 18 0v6"></path> <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path> </svg> </div> <div class="icon-label">Meditation</div> </div> <div class="icon-item"> <div class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path> <path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path> </svg> </div> <div class="icon-label">Education</div> </div> <div class="icon-item"> <div class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="9" cy="7" r="4"></circle> <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path> <path d="M16 3.13a4 4 0 0 1 0 7.75"></path> </svg> </div> <div class="icon-label">Support</div> </div> <div class="icon-item"> <div class="icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect> <path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path> </svg> </div> <div class="icon-label">Medication</div> </div> </div> <div class="nav-dots"> <div class="nav-dot active"></div> <div class="nav-dot"></div> <div class="nav-dot"></div> </div> <div class="bottom-nav"> <div class="nav-item active"> <div class="nav-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path> <polyline points="9 22 9 12 15 12 15 22"></polyline> </svg> </div> <div class="nav-label">Home</div> </div> <div class="nav-item"> <div class="nav-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <circle cx="12" cy="12" r="6"></circle> <circle cx="12" cy="12" r="2"></circle> </svg> </div> <div class="nav-label">Track</div> </div> <div class="nav-item"> <div class="nav-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path> <circle cx="9" cy="7" r="4"></circle> <path d="M23 21v-2a4 4 0 0 0-3-3.87"></path> <path d="M16 3.13a4 4 0 0 1 0 7.75"></path> </svg> </div> <div class="nav-label">Community</div> </div> <div class="nav-item"> <div class="nav-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"></path> <circle cx="12" cy="7" r="4"></circle> </svg> </div> <div class="nav-label">Profile</div> </div> </div> <div class="decorative-elements"> <div class="decorative-circle" style="width: 120px; height: 120px; top: 10%; left: 10%; animation-delay: 0s;"></div> <div class="decorative-circle" style="width: 80px; height: 80px; top: 50%; right: 5%; animation-delay: 1s;"></div> <div class="decorative-circle" style="width: 60px; height: 60px; bottom: 15%; left: 20%; animation-delay: 2s;"></div> </div> </div> <div class="app-screen" id="screen2"> <div class="header"> <div class="logo"> <div class="logo-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path> </svg> </div> <span>Harmony</span> </div> <div class="badge">Community</div> </div> <h3 class="title">Support Circles</h3> <p class="description">Connect with people who understand your journey and nurture your well-being together.</p> <div class="community-item"> <div class="community-avatar" style="background: linear-gradient(135deg, #5ca0d3 0%, #4888bd 100%);"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"></path> </svg> </div> <div class="community-details"> <div class="community-name">Heart Health Warriors</div> <div class="community-type">Support & Education</div> </div> <div class="community-members">2,348 members</div> </div> <div class="community-item"> <div class="community-avatar" style="background: linear-gradient(135deg, #64c9b9 0%, #4aab9b 100%);"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <path d="M8 14s1.5 2 4 2 4-2 4-2"></path> <line x1="9" y1="9" x2="9.01" y2="9"></line> <line x1="15" y1="9" x2="15.01" y2="9"></line> </svg> </div> <div class="community-details"> <div class="community-name">Mindfulness Meditation</div> <div class="community-type">Practice & Guidance</div> </div> <div class="community-members">1,756 members</div> </div> <div class="community-item"> <div class="community-avatar" style="background: linear-gradient(135deg, #ffd166 0%, #e7bb45 100%);"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M17 18a5 5 0 0 0-10 0"></path> <line x1="12" y1="9" x2="12" y2="2"></line> <line x1="4.22" y1="10.22" x2="5.64" y2="11.64"></line> <line x1="1" y1="18" x2="3" y2="18"></line> <line x1="21" y1="18" x2="23" y2="18"></line> <line x1="18.36" y1="11.64" x2="19.78" y2="10.22"></line> <line x1="23" y1="22" x2="1" y2="22"></line> <polyline points="16 5 12 9 8 5"></polyline> </svg> </div> <div class="community-details"> <div class="community-name">Holistic Wellness</div> <div class="community-type">Lifestyle & Balance</div> </div> <div class="community-members">3,125 members</div> </div> <div class="community-item"> <div class="community-avatar" style="background: linear-gradient(135deg, #9b6ef3 0%, #7c54c8 100%);"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="2" y="4" width="20" height="16" rx="2"></rect> <path d="M8 2v4"></path> <path d="M16 2v4"></path> <path d="M8 15h.01"></path> <path d="M12 15h.01"></path> <path d="M16 15h.01"></path> <path d="M8 19h.01"></path> <path d="M12 19h.01"></path> <path d="M16 19h.01"></path> </svg> </div> <div class="community-details"> <div class="community-name">Caregivers Connect</div> <div class="community-type">Support & Resources</div> </div> <div class="community-members">987 members</div> </div> <div class="nav-dots"> <div class="nav-dot"></div> <div class="nav-dot active"></div> <div class="nav-dot"></div> </div> <div class="bottom-
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>EduCartoon Learning Platform</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Nunito', sans-serif; } @import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800&display=swap'); body { width: 700px; height: 700px; overflow: hidden; background-color: #f8f9fa; position: relative; } .container { width: 100%; height: 100%; padding: 20px; position: relative; overflow: hidden; } .header { text-align: center; margin-bottom: 30px; position: relative; z-index: 2; } h1 { font-size: 2.5rem; font-weight: 800; color: #4a2cbb; text-shadow: 2px 2px 0px #ff9a3c; letter-spacing: 0.5px; margin-bottom: 10px; } h2 { font-size: 1.2rem; color: #444; font-weight: 600; } .subjects-container { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-height: 520px; overflow-y: auto; padding-right: 10px; padding-bottom: 20px; } .subject-card { background: white; border-radius: 16px; overflow: hidden; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); transition: all 0.3s ease; position: relative; border: 4px solid; } .subject-card:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15); } .math-card { border-color: #FF5C5C; } .science-card { border-color: #5CE1FF; } .history-card { border-color: #FFB74D; } .language-card { border-color: #9C64FF; } .card-header { height: 120px; position: relative; overflow: hidden; } .math-card .card-header { background: linear-gradient(135deg, #FF5C5C, #FF8A8A); } .science-card .card-header { background: linear-gradient(135deg, #5CE1FF, #72EFDD); } .history-card .card-header { background: linear-gradient(135deg, #FFB74D, #FFF176); } .language-card .card-header { background: linear-gradient(135deg, #9C64FF, #CF9FFF); } .subject-character { position: absolute; width: 100px; height: 100px; bottom: -20px; right: 20px; filter: drop-shadow(0 5px 5px rgba(0, 0, 0, 0.2)); transition: all 0.3s ease; } .subject-icon { position: absolute; left: 20px; top: 20px; font-size: 3rem; color: white; filter: drop-shadow(0 3px 3px rgba(0, 0, 0, 0.2)); } .card-content { padding: 20px; } .card-title { font-weight: 700; font-size: 1.5rem; margin-bottom: 10px; } .math-card .card-title { color: #FF5C5C; } .science-card .card-title { color: #5CE1FF; } .history-card .card-title { color: #FFB74D; } .language-card .card-title { color: #9C64FF; } .card-description { font-size: 0.9rem; color: #666; line-height: 1.4; margin-bottom: 15px; } .explore-btn { display: inline-block; padding: 8px 16px; border-radius: 20px; color: white; font-weight: 700; text-decoration: none; cursor: pointer; transition: all 0.2s ease; border: none; outline: none; } .math-card .explore-btn { background: #FF5C5C; } .science-card .explore-btn { background: #5CE1FF; } .history-card .explore-btn { background: #FFB74D; } .language-card .explore-btn { background: #9C64FF; } .explore-btn:hover { transform: scale(1.05); box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); } .subject-card:hover .subject-character { transform: translateY(-20px) rotate(10deg); } /* Floating elements */ .float-element { position: absolute; z-index: 1; animation: float 6s ease-in-out infinite; opacity: 0.7; } .float-1 { width: 60px; height: 60px; background: #FFD166; border-radius: 50%; top: 10%; left: 10%; animation-delay: 0s; } .float-2 { width: 40px; height: 40px; background: #06D6A0; border-radius: 10px; top: 20%; right: 15%; animation-delay: 1s; } .float-3 { width: 30px; height: 30px; background: #EF476F; border-radius: 5px; top: 70%; left: 15%; animation-delay: 2s; } .float-4 { width: 50px; height: 50px; background: #118AB2; border-radius: 8px; bottom: 15%; right: 10%; animation-delay: 3s; } @keyframes float { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } } /* Modal */ .modal { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.7); display: flex; justify-content: center; align-items: center; z-index: 10; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .modal-content { background-color: white; width: 90%; max-width: 600px; max-height: 90%; border-radius: 20px; padding: 30px; position: relative; overflow: auto; transform: scale(0.7); transition: all 0.3s ease; } .modal.active { opacity: 1; visibility: visible; } .modal.active .modal-content { transform: scale(1); } .close-modal { position: absolute; top: 20px; right: 20px; font-size: 1.5rem; background: none; border: none; color: #333; cursor: pointer; } .modal-character { width: 150px; height: 150px; margin: 0 auto 20px; display: block; } .modal-title { text-align: center; margin-bottom: 20px; font-size: 2rem; } .modal-description { line-height: 1.6; color: #555; margin-bottom: 20px; } .fun-fact { background-color: #f0f7ff; padding: 15px; border-radius: 10px; border-left: 5px solid #4a2cbb; margin-bottom: 20px; } .fun-fact h3 { color: #4a2cbb; margin-bottom: 10px; } .interactive-element { background-color: #f9f2ff; padding: 20px; border-radius: 10px; text-align: center; margin-top: 30px; } .interactive-element h3 { color: #9C64FF; margin-bottom: 15px; } .quiz-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 15px; } .quiz-option { background-color: white; border: 2px solid #ddd; border-radius: 10px; padding: 10px; cursor: pointer; transition: all 0.2s ease; } .quiz-option:hover { border-color: #9C64FF; transform: translateY(-2px); } .quiz-option.correct { background-color: #d4ffea; border-color: #06D6A0; } .quiz-option.incorrect { background-color: #ffe6e6; border-color: #FF5C5C; } .quiz-feedback { margin-top: 15px; font-weight: 600; min-height: 24px; } /* For smaller screens */ @media (max-width: 600px) { .subjects-container { grid-template-columns: 1fr; } h1 { font-size: 2rem; } } /* Custom scrollbar */ .subjects-container::-webkit-scrollbar { width: 8px; } .subjects-container::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 10px; } .subjects-container::-webkit-scrollbar-thumb { background: #888; border-radius: 10px; } .subjects-container::-webkit-scrollbar-thumb:hover { background: #555; } </style> </head> <body> <div class="container"> <div class="header"> <h1>LearnToons</h1> <h2>Where learning comes to life through colorful characters!</h2> </div> <div class="subjects-container"> <div class="subject-card math-card"> <div class="card-header"> <div class="subject-icon">โ</div> <svg class="subject-character" viewBox="0 0 100 100"> <circle cx="50" cy="50" r="40" fill="#FFE0E0" stroke="#FF5C5C" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M35 65 Q50 75 65 65" stroke="black" stroke-width="3" fill="none" /> <path d="M20 25 L30 35" stroke="#FF5C5C" stroke-width="3" /> <path d="M80 25 L70 35" stroke="#FF5C5C" stroke-width="3" /> </svg> </div> <div class="card-content"> <h3 class="card-title">Math Magic</h3> <p class="card-description">Join Count Numerus on mathematical adventures where numbers become exciting tools for solving puzzles and understanding patterns!</p> <button class="explore-btn" data-subject="math">Explore</button> </div> </div> <div class="subject-card science-card"> <div class="card-header"> <div class="subject-icon">๐ฌ</div> <svg class="subject-character" viewBox="0 0 100 100"> <circle cx="50" cy="50" r="40" fill="#E0F7FF" stroke="#5CE1FF" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M35 60 Q50 70 65 60" stroke="black" stroke-width="3" fill="none" /> <rect x="40" y="20" width="20" height="10" fill="#5CE1FF" /> <rect x="45" y="15" width="10" height="5" fill="#5CE1FF" /> </svg> </div> <div class="card-content"> <h3 class="card-title">Science Explorers</h3> <p class="card-description">Discover the wonders of our world with Professor Molecule through hands-on experiments and interactive explanations!</p> <button class="explore-btn" data-subject="science">Explore</button> </div> </div> <div class="subject-card history-card"> <div class="card-header"> <div class="subject-icon">๐๏ธ</div> <svg class="subject-character" viewBox="0 0 100 100"> <circle cx="50" cy="50" r="40" fill="#FFF8E0" stroke="#FFB74D" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M40 60 Q50 65 60 60" stroke="black" stroke-width="3" fill="none" /> <path d="M30 30 Q50 10 70 30" fill="#FFB74D" /> </svg> </div> <div class="card-content"> <h3 class="card-title">Time Travelers</h3> <p class="card-description">Adventure through different eras with Chrono the Explorer, bringing historical events to life through engaging stories!</p> <button class="explore-btn" data-subject="history">Explore</button> </div> </div> <div class="subject-card language-card"> <div class="card-header"> <div class="subject-icon">๐</div> <svg class="subject-character" viewBox="0 0 100 100"> <circle cx="50" cy="50" r="40" fill="#F5E0FF" stroke="#9C64FF" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M35 65 Q50 75 65 65" stroke="black" stroke-width="3" fill="none" /> <path d="M25 25 Q50 35 75 25" fill="none" stroke="#9C64FF" stroke-width="3" /> </svg> </div> <div class="card-content"> <h3 class="card-title">Word Wizards</h3> <p class="card-description">Join Verbley the Word Wizard to unlock the power of language through creative writing, storytelling, and vocabulary games!</p> <button class="explore-btn" data-subject="language">Explore</button> </div> </div> </div> <!-- Floating elements for dynamic background --> <div class="float-element float-1"></div> <div class="float-element float-2"></div> <div class="float-element float-3"></div> <div class="float-element float-4"></div> <!-- Modal --> <div class="modal" id="subject-modal"> <div class="modal-content"> <button class="close-modal">×</button> <svg class="modal-character" id="modal-character" viewBox="0 0 100 100"></svg> <h2 class="modal-title" id="modal-title">Subject Title</h2> <div class="modal-description" id="modal-description"> Subject description goes here. </div> <div class="fun-fact" id="fun-fact"> <h3>Did You Know?</h3> <p id="fun-fact-text">Interesting fact goes here!</p> </div> <div class="interactive-element"> <h3>Quick Quiz</h3> <p id="quiz-question">Question goes here?</p> <div class="quiz-options"> <div class="quiz-option" data-correct="false">Option 1</div> <div class="quiz-option" data-correct="false">Option 2</div> <div class="quiz-option" data-correct="false">Option 3</div> <div class="quiz-option" data-correct="false">Option 4</div> </div> <div class="quiz-feedback" id="quiz-feedback"></div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Modal functionality const modal = document.getElementById('subject-modal'); const modalTitle = document.getElementById('modal-title'); const modalDescription = document.getElementById('modal-description'); const modalCharacter = document.getElementById('modal-character'); const funFactText = document.getElementById('fun-fact-text'); const quizQuestion = document.getElementById('quiz-question'); const quizOptions = document.querySelectorAll('.quiz-option'); const quizFeedback = document.getElementById('quiz-feedback'); // Subject data const subjects = { math: { title: "Math Magic", description: "Count Numerus makes numbers come alive! Through playful illustrations and interactive examples, complex mathematical concepts become approachable and fun. From the basics of addition to the mysteries of geometry, every math journey is an adventure waiting to happen.", character: ` <circle cx="50" cy="50" r="40" fill="#FFE0E0" stroke="#FF5C5C" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M35 65 Q50 75 65 65" stroke="black" stroke-width="3" fill="none" /> <path d="M20 25 L30 35" stroke="#FF5C5C" stroke-width="3" /> <path d="M80 25 L70 35" stroke="#FF5C5C" stroke-width="3" /> <text x="40" y="53" font-size="10" fill="#FF5C5C">123</text> `, funFact: "The Fibonacci sequence appears throughout nature, from the arrangement of leaves on a stem to the pattern of florets in a sunflower!", quiz: { question: "What do you call an angle that measures exactly 90 degrees?", options: [ { text: "Acute angle", correct: false }, { text: "Right angle", correct: true }, { text: "Obtuse angle", correct: false }, { text: "Straight angle", correct: false } ] } }, science: { title: "Science Explorers", description: "Professor Molecule guides young scientists through the fascinating world of natural phenomena. Through colorful diagrams and hands-on activities, children discover how things work โ from the tiniest cells to the vastness of our solar system.", character: ` <circle cx="50" cy="50" r="40" fill="#E0F7FF" stroke="#5CE1FF" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M35 60 Q50 70 65 60" stroke="black" stroke-width="3" fill="none" /> <rect x="40" y="20" width="20" height="10" fill="#5CE1FF" /> <rect x="45" y="15" width="10" height="5" fill="#5CE1FF" /> <circle cx="30" cy="70" r="5" fill="#5CE1FF" /> <circle cx="70" cy="70" r="5" fill="#5CE1FF" /> `, funFact: "Octopuses have three hearts and blue blood! Two hearts pump blood to the gills, while the third pumps it to the rest of the body.", quiz: { question: "Which planet is known as the Red Planet?", options: [ { text: "Venus", correct: false }, { text: "Jupiter", correct: false }, { text: "Mars", correct: true }, { text: "Saturn", correct: false } ] } }, history: { title: "Time Travelers", description: "Join Chrono the Explorer as you journey through the most significant moments in human history. From ancient civilizations to modern revolutions, historical events are presented through vivid storytelling and interactive timelines.", character: ` <circle cx="50" cy="50" r="40" fill="#FFF8E0" stroke="#FFB74D" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M40 60 Q50 65 60 60" stroke="black" stroke-width="3" fill="none" /> <path d="M30 30 Q50 10 70 30" fill="#FFB74D" /> <rect x="45" y="70" width="10" height="15" fill="#FFB74D" /> `, funFact: "The Great Wall of China is not actually visible from space with the naked eye, despite popular belief. This myth has been debunked by many astronauts!", quiz: { question: "Which ancient civilization built the pyramids of Giza?", options: [ { text: "Romans", correct: false }, { text: "Greeks", correct: false }, { text: "Egyptians", correct: true }, { text: "Mayans", correct: false } ] } }, language: { title: "Word Wizards", description: "Verbley the Word Wizard turns language learning into a magical experience. Through rhyming games, storytelling challenges, and character dialogues, children expand their vocabulary and develop a love for reading and writing.", character: ` <circle cx="50" cy="50" r="40" fill="#F5E0FF" stroke="#9C64FF" stroke-width="2" /> <circle cx="35" cy="40" r="5" fill="black" /> <circle cx="65" cy="40" r="5" fill="black" /> <path d="M35 65 Q50 75 65 65" stroke="black" stroke-width="3" fill="none" /> <path d="M25 25 Q50 35 75 25" fill="none" stroke="#9C64FF" stroke-width="3" /> <text x="40" y="55" font-size="10" fill="#9C64FF">ABC</text> `, funFact: "The English language has borrowed words from over 350 other languages! Words like 'karaoke' (Japanese), 'avatar' (Sanskrit), and 'emoji' (Japanese) are all loanwords.", quiz: { question: "What's the term for words that sound the same but have different meanings?", options: [ { text: "Synonyms", correct: false }, { text: "Antonyms", correct: false }, { text: "Homonyms", correct: true }, { text: "Acronyms", correct: false } ] } } }; // Open modal when clicking Explore button document.querySelectorAll('.explore-btn').forEach(button => { button.addEventListener('click', function() { const subject = this.getAttribute('data-subject'); const subjectData = subjects[subject]; // Set modal content modalTitle.textContent = subjectData.title; modalDescription.textContent = subjectData.description; modalCharacter.innerHTML = subjectData.character; funFactText.textContent = subjectData.funFact; // Set quiz quizQuestion.textContent = subjectData.quiz.question; quizFeedback.textContent = ''; // Reset quiz options quizOptions.forEach((option, index) => { option.textContent = subjectData.quiz.options[index].text; option.setAttribute('data-correct', subjectData.quiz.options[index].correct); option.classList.remove('correct', 'incorrect'); }); // Show modal modal.classList.add('active'); }); }); // Close modal document.querySelector('.close-modal').addEventListener('click', function() { modal.classList.remove('active'); }); // Quiz functionality quizOptions.forEach(option => { option.addEventListener('click', function() { // Check if quiz has already been answered if (quizFeedback.textContent !== '') return; const isCorrect = this.getAttribute('data-correct') === 'true'; if (isCorrect) { this.classList.add('correct'); quizFeedback.textContent = 'Correct! Great job! ๐'; } else { this.classList.add('incorrect'); // Find the correct answer const correctOption = document.querySelector('.quiz-option[data-correct="true"]'); correctOption.classList.add('correct'); quizFeedback.textContent = 'Not quite! Try again! ๐ช'; } }); }); // Close modal when clicking outside window.addEventListener('click', function(event) { if (event.target === modal) { modal.classList.remove('active'); } }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Corporate Website Illustrations</title> <style> :root { --primary: #2a5b84; --secondary: #48a0b8; --accent: #f0a868; --light: #f2f6fa; --dark: #1a2c3d; --grey: #e0e5eb; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(--light); color: var(--dark); overflow-x: hidden; max-width: 700px; height: 700px; margin: 0 auto; position: relative; } .container { padding: 2rem; height: 100%; overflow-y: auto; scrollbar-width: thin; } /* Custom scrollbar */ .container::-webkit-scrollbar { width: 6px; } .container::-webkit-scrollbar-track { background: var(--light); } .container::-webkit-scrollbar-thumb { background: var(--secondary); border-radius: 3px; } header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; } .logo { font-size: 1.5rem; font-weight: 600; letter-spacing: 1px; color: var(--primary); position: relative; z-index: 1; display: flex; align-items: center; } .logo-icon { width: 30px; height: 30px; background: linear-gradient(135deg, var(--primary), var(--secondary)); border-radius: 6px; margin-right: 0.5rem; position: relative; overflow: hidden; } .logo-icon::before { content: ''; position: absolute; width: 15px; height: 15px; background-color: rgba(255, 255, 255, 0.3); border-radius: 50%; top: -5px; left: -5px; animation: pulse 5s infinite alternate; } @keyframes pulse { 0% { transform: scale(1); opacity: 0.2; } 50% { transform: scale(1.5); opacity: 0.3; } 100% { transform: scale(1); opacity: 0.2; } } nav ul { list-style: none; display: flex; gap: 1.5rem; } nav ul li a { text-decoration: none; color: var(--dark); font-weight: 500; transition: all 0.3s ease; position: relative; } nav ul li a::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: linear-gradient(90deg, var(--primary), var(--secondary)); transition: width 0.3s ease; } nav ul li a:hover { color: var(--primary); } nav ul li a:hover::after { width: 100%; } .hero { position: relative; overflow: hidden; border-radius: 12px; padding: 3rem; margin-bottom: 3rem; background: linear-gradient(135deg, #f8fafc, #e0e7ef); box-shadow: 0 10px 25px rgba(42, 91, 132, 0.05); display: flex; align-items: center; justify-content: space-between; } .hero-text { width: 55%; z-index: 2; } h1 { font-size: 2.5rem; line-height: 1.2; margin-bottom: 1rem; background: linear-gradient(90deg, var(--dark), var(--primary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: 700; } .subtitle { color: var(--secondary); font-size: 1.2rem; margin-bottom: 1.5rem; font-weight: 500; } p { line-height: 1.6; margin-bottom: 1.5rem; color: var(--dark); opacity: 0.9; } .hero-shapes { position: absolute; right: 0; top: 0; width: 50%; height: 100%; z-index: 1; overflow: hidden; } .shape { position: absolute; border-radius: 50%; background: linear-gradient(135deg, rgba(72, 160, 184, 0.2), rgba(42, 91, 132, 0.2)); transition: all 0.5s ease; } .shape-1 { width: 180px; height: 180px; right: -50px; top: 20px; animation: float 8s infinite alternate ease-in-out; } .shape-2 { width: 120px; height: 120px; right: 100px; bottom: 40px; animation: float 7s infinite alternate-reverse ease-in-out; background: linear-gradient(135deg, rgba(240, 168, 104, 0.15), rgba(240, 168, 104, 0.05)); } .shape-3 { width: 60px; height: 60px; right: 80px; top: 140px; animation: float 6s infinite alternate ease-in-out; background: linear-gradient(135deg, rgba(42, 91, 132, 0.2), rgba(72, 160, 184, 0.2)); } @keyframes float { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-15px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } } .cta-button { display: inline-block; padding: 0.8rem 1.8rem; background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; border-radius: 30px; text-decoration: none; font-weight: 600; transition: all 0.3s ease; border: none; cursor: pointer; position: relative; overflow: hidden; box-shadow: 0 4px 12px rgba(42, 91, 132, 0.15); } .cta-button::after { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); transition: left 0.7s ease; } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 6px 15px rgba(42, 91, 132, 0.2); } .cta-button:hover::after { left: 100%; } section { margin-bottom: 3rem; } h2 { font-size: 1.8rem; margin-bottom: 1.5rem; color: var(--primary); position: relative; display: inline-block; } h2::after { content: ''; position: absolute; bottom: -8px; left: 0; width: 40px; height: 3px; background: linear-gradient(90deg, var(--primary), var(--secondary)); border-radius: 2px; } .features { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; margin-top: 1rem; } .feature-card { background: white; border-radius: 12px; padding: 1.5rem; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; position: relative; overflow: hidden; border: 1px solid var(--grey); } .feature-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(42, 91, 132, 0.1); } .feature-icon { width: 60px; height: 60px; border-radius: 12px; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; position: relative; background: linear-gradient(135deg, #f0f4f8, #e0e5eb); } .feature-icon::before { content: ''; position: absolute; width: 100%; height: 100%; border-radius: 12px; background: linear-gradient(135deg, var(--primary), var(--secondary)); opacity: 0; transition: opacity 0.3s ease; z-index: 0; } .feature-card:hover .feature-icon::before { opacity: 0.1; } .feature-icon svg { width: 30px; height: 30px; z-index: 1; fill: var(--primary); transition: all 0.3s ease; } .feature-card:hover .feature-icon svg { transform: scale(1.1); } .feature-title { font-weight: 600; font-size: 1.1rem; margin-bottom: 0.5rem; color: var(--dark); } .testimonials { padding: 2rem; border-radius: 12px; position: relative; overflow: hidden; background: linear-gradient(135deg, #f2f6fa, #e5ecf3); margin-top: 2rem; } .testimonial-container { position: relative; height: 200px; overflow: hidden; } .testimonial { position: absolute; width: 100%; padding: 1.5rem; border-radius: 10px; background: white; box-shadow: 0 8px 20px rgba(42, 91, 132, 0.08); transition: all 0.5s ease; opacity: 0; transform: translateX(100px); } .testimonial.active { opacity: 1; transform: translateX(0); } .testimonial-text { font-style: italic; margin-bottom: 1rem; position: relative; } .testimonial-text::before { content: '"'; font-size: 3rem; position: absolute; left: -15px; top: -20px; color: var(--primary); opacity: 0.2; } .testimonial-author { display: flex; align-items: center; } .author-avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--secondary)); margin-right: 10px; display: flex; align-items: center; justify-content: center; color: white; font-weight: bold; } .author-name { font-weight: 600; } .author-position { font-size: 0.8rem; opacity: 0.7; } .testimonial-dots { display: flex; justify-content: center; margin-top: 1rem; gap: 0.5rem; } .dot { width: 10px; height: 10px; border-radius: 50%; background-color: var(--grey); cursor: pointer; transition: all 0.3s ease; } .dot.active { background-color: var(--primary); transform: scale(1.2); } footer { text-align: center; padding: 1.5rem; color: var(--dark); opacity: 0.8; font-size: 0.9rem; border-top: 1px solid var(--grey); margin-top: 2rem; } @media (max-width: 700px) { .container { padding: 1.5rem; } header { flex-direction: column; align-items: flex-start; gap: 1rem; } nav ul { gap: 1rem; } .hero { flex-direction: column; padding: 2rem 1.5rem; } .hero-text { width: 100%; } h1 { font-size: 2rem; } .subtitle { font-size: 1rem; } .hero-shapes { display: none; } .features { grid-template-columns: 1fr; } } /* Animation for elements entrance */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .animated { animation: fadeInUp 0.6s ease forwards; opacity: 0; } .delay-1 { animation-delay: 0.2s; } .delay-2 { animation-delay: 0.4s; } .delay-3 { animation-delay: 0.6s; } </style> </head> <body> <div class="container"> <header> <div class="logo"> <div class="logo-icon"></div> Ascend </div> <nav> <ul> <li><a href="#">Solutions</a></li> <li><a href="#">About</a></li> <li><a href="#">Contact</a></li> </ul> </nav> </header> <section class="hero animated"> <div class="hero-text"> <h1>Balance Professionalism with Creativity</h1> <div class="subtitle">Visual storytelling for forward-thinking companies</div> <p>Our custom-crafted illustrations transform complex ideas into engaging visuals that strengthen your brand narrative and connect with your audience at a deeper level.</p> <a href="#" class="cta-button">See Our Work</a> </div> <div class="hero-shapes"> <div class="shape shape-1"></div> <div class="shape shape-2"></div> <div class="shape shape-3"></div> </div> </section> <section class="animated delay-1"> <h2>Our Approach</h2> <p>We blend professional aesthetics with approachable design elements, creating a visual language that's distinctly yours. Every illustration is crafted to reinforce your brand identity while engaging your audience.</p> <div class="features"> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M17.5,12A5.5,5.5 0 0,1 12,17.5A5.5,5.5 0 0,1 6.5,12A5.5,5.5 0 0,1 12,6.5A5.5,5.5 0 0,1 17.5,12M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z"></path> </svg> </div> <div class="feature-title">Abstract Geometry</div> <p>Using geometric shapes to create depth and dimension while maintaining a clean, professional appearance.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M19,3H5C3.89,3 3,3.89 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5C21,3.89 20.1,3 19,3M19,19H5V5H19V19M12,17H17V15H14V11H17V9H12V17M7,17H10V9H7V17Z"></path> </svg> </div> <div class="feature-title">Color Gradients</div> <p>Subdued gradients that evoke professionalism while adding visual interest and a contemporary feel.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M8.5,4A5.5,5.5 0 0,0 3,9.5A5.5,5.5 0 0,0 8.5,15H15A3,3 0 0,0 18,12A3,3 0 0,0 15,9H14.5A1.5,1.5 0 0,1 13,7.5A1.5,1.5 0 0,1 14.5,6H15A3,3 0 0,0 18,3A3,3 0 0,0 15,0H8.5A5.5,5.5 0 0,0 3,5.5M8.5,6A3.5,3.5 0 0,1 12,9.5A3.5,3.5 0 0,1 8.5,13A3.5,3.5 0 0,1 5,9.5A3.5,3.5 0 0,1 8.5,6M19.5,15A3,3 0 0,0 16.5,18A3,3 0 0,0 19.5,21A3,3 0 0,0 22.5,18A3,3 0 0,0 19.5,15Z"></path> </svg> </div> <div class="feature-title">Subtle Motion</div> <p>Gentle animations that draw attention to key elements without overwhelming the user experience.</p> </div> </div> </section> <section class="animated delay-2"> <h2>Client Testimonials</h2> <div class="testimonials"> <div class="testimonial-container"> <div class="testimonial active" data-index="0"> <div class="testimonial-text"> The illustrations Ascend created for our website perfectly encapsulate our brand personalityโprofessional but not stiff, creative but not flashy. The subtle animations have significantly increased our engagement metrics. </div> <div class="testimonial-author"> <div class="author-avatar">EM</div> <div> <div class="author-name">Elena Marquez</div> <div class="author-position">Marketing Director, Fintech Solutions</div> </div> </div> </div> <div class="testimonial" data-index="1"> <div class="testimonial-text"> Working with Ascend transformed our digital presence. Their strategic use of abstract shapes and color gradients communicates our complex services in an approachable, visually compelling way. </div> <div class="testimonial-author"> <div class="author-avatar">JL</div> <div> <div class="author-name">James Lawson</div> <div class="author-position">CEO, Quantum Analytics</div> </div> </div> </div> <div class="testimonial" data-index="2"> <div class="testimonial-text"> The illustrations strike the perfect balance between professionalism and warmth. Our customers frequently comment on how our website feels both trustworthy and invitingโexactly what we wanted. </div> <div class="testimonial-author"> <div class="author-avatar">SR</div> <div> <div class="author-name">Sarah Reeves</div> <div class="author-position">UX Director, Horizon Healthcare</div> </div> </div> </div> </div> <div class="testimonial-dots"> <div class="dot active" data-index="0"></div> <div class="dot" data-index="1"></div> <div class="dot" data-index="2"></div> </div> </div> </section> <footer class="animated delay-3"> © 2023 Ascend Visual Solutions. Crafting brand-aligned illustrations for forward-thinking companies. </footer> </div> <script> // Animate elements on scroll document.addEventListener('DOMContentLoaded', function() { // Testimonial slider const testimonials = document.querySelectorAll('.testimonial'); const dots = document.querySelectorAll('.dot'); let currentTestimonial = 0; let testimonialInterval; function showTestimonial(index) { testimonials.forEach(testimonial => { testimonial.classList.remove('active'); }); dots.forEach(dot => { dot.classList.remove('active'); }); testimonials[index].classList.add('active'); dots[index].classList.add('active'); currentTestimonial = index; } function nextTestimonial() { let next = currentTestimonial + 1; if (next >= testimonials.length) { next = 0; } showTestimonial(next); } // Set up automatic transition testimonialInterval = setInterval(nextTestimonial, 6000); // Click event for dots dots.forEach(dot => { dot.addEventListener('click', function() { const index = parseInt(this.getAttribute('data-index')); showTestimonial(index); clearInterval(testimonialInterval); testimonialInterval = setInterval(nextTestimonial, 6000); }); }); // Interactive shapes const shapes = document.querySelectorAll('.shape'); shapes.forEach(shape => { shape.addEventListener('mouseover', function() { this.style.transform = 'scale(1.1) rotate(5deg)'; }); shape.addEventListener('mouseout', function() { this.style.transform = ''; }); }); // Feature cards hover effect const featureCards = document.querySelectorAll('.feature-card'); featureCards.forEach(card => { card.addEventListener('mouseenter', function() { const icon = this.querySelector('.feature-icon'); icon.style.transform = 'translateY(-5px)'; }); card.addEventListener('mouseleave', function() { const icon = this.querySelector('.feature-icon'); icon.style.transform = ''; }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Sonic Wave - Surreal Streaming</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; } body { background-color: #0c0c16; color: #fff; overflow: hidden; display: flex; justify-content: center; align-items: center; height: 100vh; width: 100vw; perspective: 1000px; } .container { width: 100%; max-width: 700px; height: 100%; max-height: 700px; padding: 2rem; position: relative; overflow: hidden; display: flex; flex-direction: column; } .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; position: relative; z-index: 10; } .logo { font-size: 1.8rem; font-weight: 800; background: linear-gradient(90deg, #ff00cc, #3393ff); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: -1px; } .menu-btn { background: none; border: none; color: #fff; font-size: 1.2rem; cursor: pointer; opacity: 0.7; transition: opacity 0.3s; } .menu-btn:hover { opacity: 1; } .now-playing { display: flex; flex-direction: column; gap: 1rem; z-index: 5; position: relative; } .now-playing h2 { font-size: 1rem; opacity: 0.6; text-transform: uppercase; letter-spacing: 2px; } .song-info { display: flex; gap: 1.5rem; align-items: center; } .album-art { width: 100px; height: 100px; background: #1e1e30; border-radius: 10px; position: relative; overflow: hidden; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); transition: transform 0.5s cubic-bezier(0.23, 1, 0.32, 1); } .album-art:hover { transform: scale(1.05) rotate(2deg); } .album-art::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(255, 0, 204, 0.5), rgba(51, 147, 255, 0.2)); z-index: 1; opacity: 0.5; } .album-art::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 20px; height: 20px; background: #fff; border-radius: 50%; z-index: 2; box-shadow: 0 0 10px 5px rgba(255, 255, 255, 0.3); } .song-details { flex: 1; } .song-title { font-size: 1.5rem; font-weight: 600; margin-bottom: 0.5rem; } .artist { font-size: 1rem; opacity: 0.7; } .progress-container { margin-top: 2rem; position: relative; z-index: 5; } .progress-bar { height: 4px; width: 100%; background: rgba(255, 255, 255, 0.1); border-radius: 2px; margin-bottom: 1rem; position: relative; overflow: hidden; } .progress { height: 100%; width: 35%; background: linear-gradient(90deg, #ff00cc, #3393ff); border-radius: 2px; position: relative; transition: width 0.1s linear; } .progress::after { content: ''; position: absolute; right: 0; top: 50%; transform: translateY(-50%); width: 10px; height: 10px; background: #fff; border-radius: 50%; box-shadow: 0 0 10px rgba(255, 255, 255, 0.8); opacity: 0; transition: opacity 0.3s; } .progress-bar:hover .progress::after { opacity: 1; } .time { display: flex; justify-content: space-between; font-size: 0.8rem; opacity: 0.6; } .controls { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; z-index: 5; position: relative; } .control-btn { background: none; border: none; color: #fff; font-size: 1.2rem; cursor: pointer; opacity: 0.7; transition: all 0.3s; display: flex; align-items: center; justify-content: center; } .control-btn:hover { opacity: 1; transform: scale(1.1); } .play-pause { width: 50px; height: 50px; background: linear-gradient(135deg, #ff00cc, #3393ff); border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 1; box-shadow: 0 5px 15px rgba(255, 0, 204, 0.4); } .play-pause:hover { transform: scale(1.05); box-shadow: 0 5px 20px rgba(255, 0, 204, 0.6); } .visualizer { position: absolute; bottom: 0; left: 0; width: 100%; height: 100px; display: flex; align-items: flex-end; justify-content: center; gap: 5px; padding: 0 2rem; z-index: 2; } .bar { width: 4px; height: 5px; background: rgba(255, 255, 255, 0.5); border-radius: 2px; animation: pulse 1.5s infinite; } @keyframes pulse { 0%, 100% { height: 5px; } 50% { height: 30px; } } .surreal-bg { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; pointer-events: none; } .neon-circle { position: absolute; border-radius: 50%; opacity: 0.2; filter: blur(40px); transition: all 3s cubic-bezier(0.23, 1, 0.32, 1); } .neon-circle-1 { width: 300px; height: 300px; background: #ff00cc; top: -150px; left: -150px; } .neon-circle-2 { width: 250px; height: 250px; background: #3393ff; bottom: -100px; right: -100px; } .neon-circle-3 { width: 200px; height: 200px; background: #9c27b0; top: 50%; left: 50%; transform: translate(-50%, -50%); } .floating-notes { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; } .note { position: absolute; width: 15px; height: 15px; background: rgba(255, 255, 255, 0.1); border-radius: 50%; animation: float-note 15s linear infinite; } @keyframes float-note { 0% { transform: translateY(100%) translateX(0) rotate(0deg); opacity: 0; } 10% { opacity: 0.3; } 90% { opacity: 0.2; } 100% { transform: translateY(-100%) translateX(50px) rotate(360deg); opacity: 0; } } .recommendations { margin-top: auto; z-index: 5; position: relative; } .recommendations h3 { font-size: 1rem; opacity: 0.6; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 1rem; } .rec-tracks { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 1rem; scrollbar-width: none; /* Firefox */ } .rec-tracks::-webkit-scrollbar { display: none; /* Chrome, Safari, Edge */ } .rec-track { min-width: 120px; background: rgba(30, 30, 48, 0.6); border-radius: 8px; padding: 0.8rem; transition: transform 0.3s, background 0.3s; cursor: pointer; position: relative; overflow: hidden; } .rec-track:hover { transform: translateY(-5px); background: rgba(40, 40, 58, 0.8); } .rec-track::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, #ff00cc, #3393ff); transform: scaleX(0); transform-origin: left; transition: transform 0.3s; } .rec-track:hover::before { transform: scaleX(1); } .rec-track h4 { font-size: 0.9rem; margin-bottom: 0.5rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .rec-track p { font-size: 0.8rem; opacity: 0.7; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } @media (max-width: 600px) { .header { margin-bottom: 1rem; } .logo { font-size: 1.5rem; } .album-art { width: 80px; height: 80px; } .song-title { font-size: 1.2rem; } .artist { font-size: 0.9rem; } .controls { margin-top: 1.5rem; } .play-pause { width: 40px; height: 40px; } .recommendations { margin-top: 1.5rem; } .rec-track { min-width: 100px; padding: 0.6rem; } } </style> </head> <body> <div class="container"> <div class="header"> <div class="logo">SonicWave</div> <button class="menu-btn">โฎ</button> </div> <div class="now-playing"> <h2>Now Playing</h2> <div class="song-info"> <div class="album-art"></div> <div class="song-details"> <div class="song-title">Neural Dreams</div> <div class="artist">Quantum Echo</div> </div> </div> </div> <div class="progress-container"> <div class="progress-bar"> <div class="progress" id="progress"></div> </div> <div class="time"> <span>1:45</span> <span>4:30</span> </div> </div> <div class="controls"> <button class="control-btn">โฒ</button> <button class="control-btn">โโ</button> <button class="control-btn play-pause">โถ</button> <button class="control-btn">โถโถ</button> <button class="control-btn">โป</button> </div> <div class="recommendations"> <h3>Minimalist Surrealism Mix</h3> <div class="rec-tracks"> <div class="rec-track"> <h4>Neon Pulse</h4> <p>Digital Void</p> </div> <div class="rec-track"> <h4>Subconscious Wave</h4> <p>Dream Syntax</p> </div> <div class="rec-track"> <h4>Void Rhythm</h4> <p>Abstract Noise</p> </div> <div class="rec-track"> <h4>Electric Dreams</h4> <p>Synth Collective</p> </div> </div> </div> <div class="visualizer" id="visualizer"></div> <div class="surreal-bg"> <div class="neon-circle neon-circle-1"></div> <div class="neon-circle neon-circle-2"></div> <div class="neon-circle neon-circle-3"></div> </div> <div class="floating-notes" id="floating-notes"></div> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Create audio visualizer bars const visualizer = document.getElementById('visualizer'); for (let i = 0; i < 50; i++) { const bar = document.createElement('div'); bar.className = 'bar'; bar.style.animationDelay = `${Math.random() * 1.5}s`; bar.style.height = `${Math.random() * 50 + 5}px`; visualizer.appendChild(bar); } // Create floating notes const floatingNotes = document.getElementById('floating-notes'); for (let i = 0; i < 15; i++) { const note = document.createElement('div'); note.className = 'note'; note.style.left = `${Math.random() * 100}%`; note.style.animationDelay = `${Math.random() * 15}s`; note.style.opacity = Math.random() * 0.3 + 0.1; note.style.width = `${Math.random() * 10 + 5}px`; note.style.height = note.style.width; floatingNotes.appendChild(note); } // Play/Pause functionality const playPauseBtn = document.querySelector('.play-pause'); let isPlaying = false; playPauseBtn.addEventListener('click', function() { isPlaying = !isPlaying; if (isPlaying) { this.textContent = 'โโ'; startVisualizerAnimation(); } else { this.textContent = 'โถ'; pauseVisualizerAnimation(); } }); // Progress bar manipulation const progressBar = document.getElementById('progress'); let progressWidth = 35; // Initial percentage function updateProgress() { if (isPlaying) { progressWidth += 0.1; if (progressWidth > 100) progressWidth = 0; progressBar.style.width = `${progressWidth}%`; } } // Visualizer animation function startVisualizerAnimation() { document.querySelectorAll('.bar').forEach(bar => { bar.style.animationPlayState = 'running'; }); } function pauseVisualizerAnimation() { document.querySelectorAll('.bar').forEach(bar => { bar.style.animationPlayState = 'paused'; }); } // Interactive neon circles document.addEventListener('mousemove', function(e) { const container = document.querySelector('.container'); const rect = container.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; const circle1 = document.querySelector('.neon-circle-1'); const circle2 = document.querySelector('.neon-circle-2'); const circle3 = document.querySelector('.neon-circle-3'); // Subtle movement of circles based on mouse position circle1.style.transform = `translate(${x * 0.02}px, ${y * 0.02}px)`; circle2.style.transform = `translate(${-x * 0.015}px, ${-y * 0.015}px)`; circle3.style.transform = `translate(calc(-50% + ${(x - rect.width/2) * 0.03}px), calc(-50% + ${(y - rect.height/2) * 0.03}px))`; }); // Recommendation track click effect document.querySelectorAll('.rec-track').forEach(track => { track.addEventListener('click', function() { const title = this.querySelector('h4').textContent; const artist = this.querySelector('p').textContent; document.querySelector('.song-title').textContent = title; document.querySelector('.artist').textContent = artist; // Reset progress and start playing progressWidth = 0; progressBar.style.width = '0%'; isPlaying = true; playPauseBtn.textContent = 'โโ'; startVisualizerAnimation(); }); }); // Update progress and visualizer continuously setInterval(updateProgress, 100); // Initialize visualizer state pauseVisualizerAnimation(); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>EcoVision Alliance</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; } :root { --leaf-green: #4a7c59; --moss-green: #6a994e; --soil-brown: #8e6c4e; --sky-blue: #a8dadc; --water-blue: #457b9d; --light-beige: #f8f4e3; --dark-earth: #2c3639; --transition-slow: 0.6s cubic-bezier(0.65, 0, 0.35, 1); --transition-medium: 0.4s cubic-bezier(0.65, 0, 0.35, 1); --transition-fast: 0.2s cubic-bezier(0.65, 0, 0.35, 1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(--light-beige); color: var(--dark-earth); line-height: 1.6; overflow-x: hidden; max-width: 700px; max-height: 700px; height: 100vh; width: 100%; overflow-y: auto; } .container { max-width: 700px; margin: 0 auto; padding: 0; position: relative; overflow: hidden; } .hero { position: relative; height: 45vh; min-height: 300px; max-height: 400px; display: flex; align-items: center; justify-content: center; overflow: hidden; } .hero-bg { position: absolute; width: 100%; height: 100%; background: linear-gradient(135deg, var(--leaf-green), var(--moss-green)); z-index: -2; } .leaf-pattern { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: radial-gradient(var(--light-beige) 1px, transparent 1px); background-size: 20px 20px; opacity: 0.07; z-index: -1; } .water-droplets { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; opacity: 0.3; } .water-drop { position: absolute; background-color: var(--sky-blue); border-radius: 50%; transform: scale(0); opacity: 0; animation: dropFall 6s infinite; } @keyframes dropFall { 0%, 100% { transform: scale(0); opacity: 0; } 30% { transform: scale(1); opacity: 0.7; } 70% { transform: scale(1); opacity: 0.7; } 100% { transform: translateY(300px) scale(0); opacity: 0; } } .hero-content { text-align: center; max-width: 600px; padding: 0 20px; position: relative; z-index: 2; } .hero-logo { width: 80px; height: 80px; margin: 0 auto 15px; position: relative; } .hero-logo svg { width: 100%; height: 100%; filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2)); } h1 { color: white; font-size: 2.5rem; margin-bottom: 10px; text-shadow: 0 2px 4px rgba(0,0,0,0.2); letter-spacing: 1px; font-weight: 700; opacity: 0; transform: translateY(20px); animation: fadeUp 1s forwards 0.2s; } .tagline { color: rgba(255,255,255,0.9); font-size: 1rem; margin-bottom: 25px; text-shadow: 0 1px 2px rgba(0,0,0,0.2); opacity: 0; transform: translateY(20px); animation: fadeUp 1s forwards 0.4s; } @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } } .cta-button { background: var(--soil-brown); color: white; border: none; border-radius: 50px; padding: 12px 30px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all var(--transition-medium); box-shadow: 0 4px 12px rgba(0,0,0,0.15); position: relative; overflow: hidden; opacity: 0; transform: translateY(20px); animation: fadeUp 1s forwards 0.6s; } .cta-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); transition: all 0.6s; } .cta-button:hover { background: #7d5c40; transform: translateY(-2px); box-shadow: 0 6px 15px rgba(0,0,0,0.2); } .cta-button:hover::before { left: 100%; } .content-section { padding: 50px 20px; position: relative; } .section-title { font-size: 1.75rem; margin-bottom: 20px; color: var(--dark-earth); position: relative; display: inline-block; font-weight: 700; } .section-title::after { content: ''; position: absolute; width: 40%; height: 3px; background: var(--moss-green); bottom: -5px; left: 0; border-radius: 2px; } .initiatives { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; margin-top: 30px; } .initiative-card { background: white; border-radius: 12px; overflow: hidden; box-shadow: 0 5px 15px rgba(0,0,0,0.08); transition: transform var(--transition-medium), box-shadow var(--transition-medium); position: relative; } .initiative-card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0,0,0,0.1); } .card-image { height: 150px; background-size: cover; background-position: center; position: relative; overflow: hidden; } .card-image::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, transparent 50%, rgba(0,0,0,0.5)); } .forest-image { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="300" height="150" viewBox="0 0 300 150"><rect width="300" height="150" fill="%234a7c59"/><path d="M100,140 L110,90 L130,120 L140,70 L160,110 L180,60 L185,90 L200,80 L210,140 Z" fill="%23355b41"/><path d="M90,140 L80,90 L60,120 L50,70 L30,140 Z" fill="%23355b41"/><path d="M240,140 L230,90 L210,120 L200,70 L170,140 Z" fill="%23355b41"/><path d="M100,80 C120,40 130,60 150,30 C170,60 180,40 200,80 Z" fill="%236a994e"/><path d="M60,100 C70,70 80,80 90,60 C100,80 110,70 120,100 Z" fill="%236a994e"/><path d="M180,100 C190,70 200,80 210,60 C220,80 230,70 240,100 Z" fill="%236a994e"/></svg>'); } .ocean-image { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="300" height="150" viewBox="0 0 300 150"><rect width="300" height="150" fill="%23457b9d"/><path d="M0,100 C30,85 60,115 90,100 C120,85 150,115 180,100 C210,85 240,115 270,100 C300,85 330,115 360,100 L360,150 L0,150 Z" fill="%23a8dadc"/><path d="M0,120 C30,105 60,135 90,120 C120,105 150,135 180,120 C210,105 240,135 270,120 C300,105 330,135 360,120 L360,150 L0,150 Z" fill="%235c98ba"/><circle cx="250" cy="40" r="15" fill="%23f8f4e3" opacity="0.7"/><path d="M5,50 C5,50 15,45 25,50 C35,55 45,45 45,45" stroke="%23a8dadc" stroke-width="2" fill="none"/><path d="M200,70 C200,70 210,65 220,70 C230,75 240,65 240,65" stroke="%23a8dadc" stroke-width="2" fill="none"/><path d="M100,30 C100,30 110,25 120,30 C130,35 140,25 140,25" stroke="%23a8dadc" stroke-width="2" fill="none"/></svg>'); } .wildlife-image { background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="300" height="150" viewBox="0 0 300 150"><rect width="300" height="150" fill="%238e6c4e"/><path d="M0,140 L300,140 L300,150 L0,150 Z" fill="%23735a3f"/><path d="M50,90 C80,75 130,100 160,80 C190,60 240,75 280,60 L280,140 L50,140 Z" fill="%23937253"/><path d="M150,110 C142,100 148,90 155,88 C160,95 158,105 150,110 Z" fill="%23735a3f"/><path d="M180,100 C172,90 178,80 185,78 C190,85 188,95 180,100 Z" fill="%23735a3f"/><path d="M165,140 L160,90 L170,90 Z" fill="%23735a3f"/><path d="M190,140 L180,95 L190,95 Z" fill="%23735a3f"/><circle cx="227" cy="40" r="12" fill="%23f8f4e3" opacity="0.7"/><path d="M170,65 C180,45 195,50 220,45 C225,55 215,65 200,70 C190,70 180,70 170,65 Z" fill="%23937253"/><circle cx="195" cy="55" r="3" fill="%23000000"/><path d="M185,63 C190,65 205,65 210,63" stroke="%23735a3f" stroke-width="1" fill="none"/></svg>'); } .card-content { padding: 20px; } .card-title { font-size: 1.25rem; margin-bottom: 10px; color: var(--dark-earth); font-weight: 600; } .card-text { font-size: 0.9rem; color: #5a5a5a; margin-bottom: 15px; } .card-link { display: inline-block; color: var(--leaf-green); text-decoration: none; font-weight: 600; font-size: 0.9rem; position: relative; transition: all var(--transition-fast); } .card-link::after { content: 'โ'; margin-left: 5px; transition: transform var(--transition-fast); } .card-link:hover { color: var(--moss-green); } .card-link:hover::after { transform: translateX(3px); } .impact-indicators { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 20px; } .impact-item { background: white; border-radius: 10px; padding: 15px; box-shadow: 0 4px 10px rgba(0,0,0,0.05); flex: 1 1 150px; text-align: center; position: relative; overflow: hidden; transition: transform var(--transition-medium); } .impact-item:hover { transform: translateY(-5px); } .impact-item::before { content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 100%; background: var(--moss-green); } .impact-number { font-size: 2rem; font-weight: 700; color: var(--leaf-green); margin-bottom: 5px; opacity: 0; transform: translateY(20px); } .impact-label { font-size: 0.85rem; color: #5a5a5a; opacity: 0; transform: translateY(20px); } .impact-visible .impact-number, .impact-visible .impact-label { animation: fadeUp 1s forwards; } .impact-visible .impact-number { animation-delay: 0.1s; } .impact-visible .impact-label { animation-delay: 0.2s; } .leaf-decoration { position: absolute; width: 60px; height: 60px; z-index: -1; opacity: 0.15; } .leaf-1 { top: 10%; right: 5%; transform: rotate(20deg); } .leaf-2 { bottom: 15%; left: 3%; transform: rotate(-15deg); } @media (max-width: 600px) { h1 { font-size: 2rem; } .tagline { font-size: 0.9rem; } .initiatives { grid-template-columns: 1fr; } .impact-indicators { justify-content: center; } .impact-item { flex: 1 1 120px; } } /* Wildlife animation */ .bird { position: absolute; width: 20px; height: 6px; background: transparent; opacity: 0.7; z-index: 3; } .bird::before, .bird::after { content: ''; position: absolute; width: 10px; height: 10px; border-radius: 50% 50% 0 50%; background: var(--dark-earth); } .bird::before { left: -5px; transform: rotate(20deg); animation: wingFlapLeft 0.6s infinite alternate; } .bird::after { left: 15px; transform: rotate(-20deg); animation: wingFlapRight 0.6s infinite alternate; } @keyframes wingFlapLeft { to { transform: rotate(40deg); } } @keyframes wingFlapRight { to { transform: rotate(-40deg); } } /* Hover interaction */ .interactive-area { position: relative; margin-top: 40px; height: 100px; background: var(--light-beige); border-radius: 10px; overflow: hidden; display: flex; align-items: center; justify-content: center; box-shadow: inset 0 0 10px rgba(0,0,0,0.05); } .interactive-text { text-align: center; color: var(--dark-earth); font-size: 1rem; z-index: 2; pointer-events: none; } .ecosystem { position: absolute; width: 100%; height: 100%; z-index: 1; } .plant { position: absolute; bottom: 0; width: 20px; height: 40px; opacity: 0; transition: all var(--transition-slow); transform-origin: bottom center; } .stem { position: absolute; bottom: 0; left: 10px; width: 3px; height: 30px; background: var(--moss-green); transform-origin: bottom center; } .leaf { position: absolute; width: 15px; height: 8px; background: var(--leaf-green); border-radius: 50% 50% 0 50%; transform: rotate(-45deg); transform-origin: bottom left; } .leaf.left { left: 3px; bottom: 15px; } .leaf.right { left: 10px; bottom: 22px; transform: rotate(45deg) scaleX(-1); } .flower { position: absolute; top: 0; left: 7px; width: 8px; height: 8px; border-radius: 50%; background: var(--sky-blue); box-shadow: 0 0 0 2px var(--leaf-green), 0 0 0 4px var(--light-beige); transform: translateY(-3px); } /* Scroll animation */ .scroll-animation { opacity: 0; transform: translateY(30px); transition: opacity 0.8s ease, transform 0.8s ease; } .scroll-animation.visible { opacity: 1; transform: translateY(0); } /* Custom checkbox */ .theme-toggle { position: absolute; top: 20px; right: 20px; z-index: 100; display: flex; align-items: center; } .switch { position: relative; display: inline-block; width: 45px; height: 24px; margin-left: 10px; } .switch input { opacity: 0; width: 0; height: 0; } .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(255,255,255,0.3); transition: .3s; border-radius: 24px; } .slider:before { position: absolute; content: ""; height: 18px; width: 18px; left: 3px; bottom: 3px; background-color: white; transition: .3s; border-radius: 50%; } input:checked + .slider { background-color: var(--leaf-green); } input:checked + .slider:before { transform: translateX(21px); } .mode-label { color: white; font-size: 0.8rem; text-shadow: 0 1px 2px rgba(0,0,0,0.2); } /* Dark mode */ body.dark-mode { background-color: #1a2023; color: #f8f4e3; } body.dark-mode .card-content, body.dark-mode .impact-item { background: #2c3639; } body.dark-mode .card-title { color: #f8f4e3; } body.dark-mode .card-text, body.dark-mode .impact-label { color: #c4c4c4; } body.dark-mode .interactive-area { background: #232b2e; } body.dark-mode .interactive-text { color: #f8f4e3; } body.dark-mode .section-title { color: #f8f4e3; } </style> </head> <body> <div class="container"> <section class="hero"> <div class="hero-bg"></div> <div class="leaf-pattern"></div> <div class="water-droplets" id="waterDroplets"></div> <div class="theme-toggle"> <span class="mode-label">Eco Mode</span> <label class="switch"> <input type="checkbox" id="themeToggle"> <span class="slider"></span> </label> </div> <div class="hero-content"> <div class="hero-logo"> <svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"> <circle cx="50" cy="50" r="45" fill="white" opacity="0.9"/> <path d="M50,20 C40,35 30,50 50,80 C70,50 60,35 50,20 Z" fill="#4a7c59"/> <path d="M30,40 C25,50 20,60 30,70 C40,60 35,50 30,40 Z" fill="#6a994e"/> <path d="M70,40 C75,50 80,60 70,70 C60,60 65,50 70,40 Z" fill="#6a994e"/> <circle cx="50" cy="50" r="8" fill="#8e6c4e"/> </svg> </div> <h1>EcoVision Alliance</h1> <p class="tagline">Creating sustainable ecosystems through community action</p> <button class="cta-button" id="ctaButton">Join Our Movement</button> </div> <!-- Birds animation --> <div class="bird" style="top: 30%; left: 15%; animation: flyRight 20s linear infinite;"></div> <div class="bird" style="top: 20%; left: 20%; animation: flyRight 25s linear infinite 2s;"></div> <div class="bird" style="top: 25%; left: 10%; animation: flyRight 22s linear infinite 5s;"></div> </section> <section class="content-section"> <h2 class="section-title">Our Initiatives</h2> <p>We drive transformative environmental projects that create a meaningful and lasting impact on our planet's ecosystems.</p> <div class="initiatives"> <div class="initiative-card scroll-animation"> <div class="card-image forest-image"></div> <div class="card-content"> <h3 class="card-title">Forest Restoration</h3> <p class="card-text">Revitalizing native forests using indigenous seedlings and community-led planting techniques that enhance biodiversity.</p> <a href="#" class="card-link">Explore projects</a> </div> </div> <div class="initiative-card scroll-animation"> <div class="card-image ocean-image"></div> <div class="card-content"> <h3 class="card-title">Ocean Conservation</h3> <p class="card-text">Protecting marine ecosystems through plastic removal systems, coral restoration, and sustainable fishing advocacy.</p> <a href="#" class="card-link">Dive deeper</a> </div> </div> <div class="initiative-card scroll-animation"> <div class="card-image wildlife-image"></div> <div class="card-content"> <h3 class="card-title">Wildlife Protection</h3> <p class="card-text">Creating safe habitats and corridors for endangered species with research-backed conservation strategies.</p> <a href="#" class="card-link">See our impact</a> </div> </div> </div> <h2 class="section-title" style="margin-top: 40px;">Our Impact</h2> <p>Through collaborative efforts with communities worldwide, we've achieved measurable environmental progress.</p> <div class="impact-indicators"> <div class="impact-item scroll-animation"> <div class="impact-number" id="treesCounter">0</div> <div class="impact-label">Trees Planted This Year</div> </div> <div class="impact-item scroll-animation"> <div class="impact-number" id="speciesCounter">0</div> <div class="impact-label">Species Protected</div> </div> <div class="impact-item scroll-animation"> <div class="impact-number" id="communitiesCounter">0</div> <div class="impact-label">Communities Engaged</div> </div> </div> <div class="interactive-area scroll-animation"> <div class="ecosystem" id="ecosystem"></div> <p class="interactive-text">Hover or touch to grow our virtual ecosystem</p> </div> <!-- Decorative leaves --> <svg class="leaf-decoration leaf-1" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"> <path d="M25,5 C15,20 5,35 25,45 C45,35 35,20 25,5 Z" fill="#4a7c59"/> <path d="M25,5 L25,45" stroke="#4a7c59" stroke-width="1" opacity="0.5"/> </svg> <svg class="leaf-decoration leaf-2" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"> <path d="M25,5 C15,20 5,35 25,45 C45,35 35,20 25,5 Z" fill="#6a994e"/> <path d="M25,5 L25,45" stroke="#6a994e" stroke-width="1" opacity="0.5"/> </svg> </section> </div> <script> // Create water droplets const waterDroplets = document.getElementById('waterDroplets'); for (let i = 0; i < 20; i++) { const drop = document.createElement('div'); drop.classList.add('water-drop'); // Random position, size and delay const size = Math.random() * 10 + 5; drop.style.width = `${size}px`; drop.style.height = `${size}px`; drop.style.left = `${Math.random() * 100}%`; drop.style.top = `${Math.random() * 30}%`; drop.style.animationDelay = `${Math.random() * 5}s`; waterDroplets.appendChild(drop); } // Scroll animations function checkScroll() { const scrollElements = document.querySelectorAll('.scroll-animation'); const windowHeight = window.innerHeight; scrollElements.forEach(element => { const elementPosition = element.getBoundingClientRect().top; if (elementPosition < windowHeight * 0.9) { element.classList.add('visible'); // Check if it's an impact item and add the class for counter animation if (element.classList.contains('impact-item')) { element.classList.add('impact-visible'); } } }); } window.addEventListener('scroll', checkScroll); // Initial check setTimeout(checkScroll, 100); // Counter animation function animateCounter(id, target) { const counter = document.getElementById(id); const duration = 2000; // milliseconds const frameRate = 60; const increment = target / (duration / 1000 * frameRate); let current = 0; const timer = setInterval(() => { current += increment; if (current >= target) { clearInterval(timer); current = target; } counter.textContent = Math.floor(current).toLocaleString(); }, 1000 / frameRate); } // Start the counter when they become visible const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { if (entry.target.id === 'treesCounter') { animateCounter('treesCounter', 58946); } else if (entry.target.id === 'speciesCounter') { animateCounter('speciesCounter', 124); } else if (entry.target.id === 'communitiesCounter') { animateCounter('communitiesCounter', 67); } // Unobserve after triggering observer.unobserve(entry.target); } }); }, { threshold: 0.5 }); // Observe all counters document.querySelectorAll('.impact-number').forEach(counter => { observer.observe(counter); }); // Interactive ecosystem const ecosystem = document.getElementById('ecosystem'); const interactiveArea = document.querySelector('.interactive-area'); // Create plants on hover/touch interactiveArea.addEventListener('mousemove', createPlant); interactiveArea.addEventListener('touchmove', handleTouch); function handleTouch(e) { e.preventDefault(); const touch = e.touches[0]; const rect = interactiveArea.getBoundingClientRect(); const x = touch.clientX - rect.left; const y = touch.clientY - rect.top; createPlantAt(x, y); } function createPlant(e) { const rect = interactiveArea.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; // Limit creation rate if (Math.random() > 0.2) return; createPlantAt(x, y); } function createPlantAt(x, y) { // Create a plant const plant = document.createElement('div'); plant.classList.add('plant'); plant.style.left = `${x}px`; // Create stem const stem = document.createElement('div'); stem.classList.add('stem'); // Create leaves const leafLeft = document.createElement('div'); leafLeft.classList.add('leaf', 'left'); const leafRight = document.createElement('div'); leafRight.classList.add('leaf', 'right'); // Create flower (random chance) if (Math.random() > 0.5) { const flower = document.createElement('div'); flower.classList.add('flower'); plant.appendChild(flower); } // Randomize plant characteristics const height = 30 + Math.random() * 30; stem.style.height = `${height}px`; // Random color variation const greenHue = 100 + Math.floor(Math.random() * 40); leafLeft.style.backgroundColor = `hsl(${greenHue}, 60%, 45%)`; leafRight.style.backgroundColor = `hsl(${greenHue}, 60%, 45%)`; // Assemble plant plant.appendChild(stem); plant.appendChild(leafLeft); plant.appendChild(leafRight); // Add to ecosystem ecosystem.appendChild(plant); // Animate growth setTimeout(() => { plant.style.opacity = '1'; plant.style.transform = 'scale(1)'; }, 50); // Add slight sway if it's tall if (height > 40) { plant.style.animation = `sway ${2 + Math.random() * 2}s ease-in-out infinite alternate`; } // Limit the number of plants if (ecosystem.children.length > 40) { ecosystem.removeChild(ecosystem.children[0]); } } // Add fly animation for birds document.head.insertAdjacentHTML('beforeend', ` <style> @keyframes flyRight { from { transform: translateX(0); } to { transform: translateX(700px); } } </style> `); // CTA button effect document.getElementById('ctaButton').addEventListener('click', function() { this.textContent = 'Thanks for Joining!'; this.style.background = 'var(--moss-green)'; // Reset after delay setTimeout(() => { this.textContent = 'Join Our Movement'; this.style.background = 'var(--soil-brown)'; }, 3000); }); // Theme toggle document.getElementById('themeToggle').addEventListener('change', function() { document.body.classList.toggle('dark-mode', this.checked); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Festivent - Event Management App</title> <style> /* Reset and Base Styles */ * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); body { background-color: #f9f4ff; color: #333; overflow-x: hidden; width: 700px; height: 700px; display: flex; flex-direction: column; } /* Main Container */ .app-container { max-width: 700px; height: 700px; margin: 0 auto; padding: 20px; position: relative; overflow: hidden; } /* Confetti Animation */ .confetti { position: absolute; width: 10px; height: 10px; background-color: #f33; border-radius: 0; pointer-events: none; opacity: 0; animation: fall 8s linear infinite; z-index: 1; } @keyframes fall { 0% { transform: translateY(-100px) rotate(0deg); opacity: 1; } 100% { transform: translateY(700px) rotate(360deg); opacity: 0; } } /* Header Styles */ .app-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; position: relative; z-index: 2; } .logo { font-size: 28px; font-weight: 700; color: #6a3de8; text-decoration: none; display: flex; align-items: center; } .logo-icon { display: inline-block; margin-right: 8px; width: 40px; height: 40px; background: linear-gradient(135deg, #ff6b6b, #6a3de8); border-radius: 50%; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; } .logo-icon::before { content: ''; position: absolute; width: 100%; height: 100%; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E") center no-repeat; } .nav-links { display: flex; gap: 20px; } .nav-link { color: #6a3de8; text-decoration: none; font-weight: 500; transition: all 0.3s ease; position: relative; padding: 5px 0; } .nav-link::after { content: ''; position: absolute; width: 0; height: 2px; bottom: 0; left: 0; background-color: #ff6b6b; transition: width 0.3s ease; } .nav-link:hover::after { width: 100%; } /* Hero Section */ .hero { position: relative; background: linear-gradient(135deg, #6a3de8, #ff6b6b); border-radius: 20px; padding: 30px; margin-bottom: 30px; display: flex; align-items: center; overflow: hidden; z-index: 2; transition: transform 0.3s ease; } .hero:hover { transform: translateY(-5px); } .hero-content { width: 60%; color: white; position: relative; z-index: 2; } .hero h1 { font-size: 36px; margin-bottom: 15px; line-height: 1.2; } .hero p { margin-bottom: 25px; font-size: 16px; opacity: 0.9; } .cta-button { display: inline-block; background-color: white; color: #6a3de8; padding: 12px 24px; border-radius: 30px; text-decoration: none; font-weight: 600; transition: all 0.3s ease; border: none; cursor: pointer; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); position: relative; overflow: hidden; } .cta-button::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.3), rgba(255,255,255,0)); transition: left 0.5s ease; } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.15); } .cta-button:hover::before { left: 100%; } .hero-illustration { position: absolute; right: 30px; top: 50%; transform: translateY(-50%); width: 200px; height: 200px; z-index: 1; } .character { position: absolute; width: 100%; height: 100%; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 500 500'%3E%3Ccircle cx='250' cy='250' r='160' fill='%23FFD166'/%3E%3Ccircle cx='200' cy='200' r='25' fill='%23333'/%3E%3Ccircle cx='300' cy='200' r='25' fill='%23333'/%3E%3Cpath d='M200,300 Q250,350 300,300' stroke='%23333' stroke-width='10' fill='none'/%3E%3C/svg%3E"); background-size: contain; background-repeat: no-repeat; animation: float 4s ease-in-out infinite; } @keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-20px); } } .streamers { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; pointer-events: none; } .streamer { position: absolute; width: 5px; height: 80px; background: white; opacity: 0.5; border-radius: 5px; transform-origin: top center; animation: swing 5s ease-in-out infinite; } @keyframes swing { 0%, 100% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } } /* Features Section */ .features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: 30px; position: relative; z-index: 2; } .feature-card { background-color: white; border-radius: 15px; padding: 20px; box-shadow: 0 8px 20px rgba(106, 61, 232, 0.1); transition: all 0.3s ease; position: relative; overflow: hidden; } .feature-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(106, 61, 232, 0.15); } .feature-icon { width: 60px; height: 60px; margin-bottom: 15px; position: relative; } .feature-icon svg { width: 100%; height: 100%; } .feature-card h3 { font-size: 18px; margin-bottom: 10px; color: #6a3de8; } .feature-card p { font-size: 14px; color: #666; line-height: 1.5; } /* Events Section */ .events-section { margin-bottom: 30px; position: relative; z-index: 2; } .section-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .section-header h2 { font-size: 24px; color: #6a3de8; } .view-all { color: #ff6b6b; text-decoration: none; font-weight: 500; display: flex; align-items: center; } .view-all svg { margin-left: 5px; transition: transform 0.3s ease; } .view-all:hover svg { transform: translateX(5px); } .events-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; } .event-card { background-color: white; border-radius: 15px; overflow: hidden; box-shadow: 0 8px 20px rgba(106, 61, 232, 0.1); transition: all 0.3s ease; position: relative; } .event-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(106, 61, 232, 0.15); } .event-image { height: 140px; background-size: cover; background-position: center; position: relative; overflow: hidden; } .event-1 { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='200' viewBox='0 0 400 200'%3E%3Crect width='400' height='200' fill='%23ff9e7d'/%3E%3Ccircle cx='50' cy='50' r='20' fill='%23ffcd56'/%3E%3Ccircle cx='100' cy='70' r='30' fill='%236a3de8'/%3E%3Cpath d='M0,150 Q100,100 200,150 T400,150' fill='%23ff6b6b'/%3E%3C/svg%3E"); } .event-2 { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='200' viewBox='0 0 400 200'%3E%3Crect width='400' height='200' fill='%236a3de8'/%3E%3Ccircle cx='350' cy='50' r='30' fill='%23ffcd56'/%3E%3Crect x='50' y='80' width='40' height='40' fill='%23ff6b6b'/%3E%3Cpath d='M0,180 Q100,130 200,180 T400,180' fill='%23ff9e7d'/%3E%3C/svg%3E"); } .event-tag { position: absolute; top: 10px; left: 10px; background-color: rgba(255, 107, 107, 0.9); color: white; padding: 5px 10px; border-radius: 20px; font-size: 12px; font-weight: 500; } .event-details { padding: 15px; } .event-date { font-size: 12px; color: #ff6b6b; margin-bottom: 5px; display: flex; align-items: center; } .event-date svg { margin-right: 5px; width: 14px; height: 14px; } .event-card h3 { font-size: 16px; margin-bottom: 10px; color: #333; } .event-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; } .event-location { font-size: 12px; color: #666; display: flex; align-items: center; } .event-location svg { margin-right: 5px; width: 14px; height: 14px; } /* Create Event Modal */ .modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.6); display: flex; justify-content: center; align-items: center; z-index: 1000; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .modal-overlay.active { opacity: 1; visibility: visible; } .modal { width: 90%; max-width: 500px; background-color: white; border-radius: 20px; overflow: hidden; transform: translateY(20px); transition: all 0.3s ease; position: relative; } .modal-overlay.active .modal { transform: translateY(0); } .modal-header { padding: 20px; background: linear-gradient(135deg, #6a3de8, #ff6b6b); color: white; display: flex; justify-content: space-between; align-items: center; } .modal-header h2 { font-size: 24px; } .close-modal { background: none; border: none; color: white; font-size: 24px; cursor: pointer; } .modal-body { padding: 20px; } .form-group { margin-bottom: 20px; } .form-group label { display: block; margin-bottom: 8px; font-weight: 500; color: #333; } .form-control { width: 100%; padding: 12px 15px; border: 1px solid #ddd; border-radius: 10px; font-size: 16px; transition: all 0.3s ease; } .form-control:focus { border-color: #6a3de8; outline: none; box-shadow: 0 0 0 3px rgba(106, 61, 232, 0.1); } .modal-footer { padding: 20px; display: flex; justify-content: flex-end; border-top: 1px solid #eee; } .btn-secondary { background-color: #eee; color: #333; padding: 12px 24px; border-radius: 30px; text-decoration: none; font-weight: 600; transition: all 0.3s ease; border: none; cursor: pointer; margin-right: 10px; } .btn-primary { background: linear-gradient(135deg, #6a3de8, #ff6b6b); color: white; padding: 12px 24px; border-radius: 30px; text-decoration: none; font-weight: 600; transition: all 0.3s ease; border: none; cursor: pointer; box-shadow: 0 4px 15px rgba(106, 61, 232, 0.2); } .btn-primary:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(106, 61, 232, 0.3); } /* Success Animation */ .success-animation { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(255, 255, 255, 0.9); display: flex; justify-content: center; align-items: center; z-index: 1100; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .success-animation.active { opacity: 1; visibility: visible; } .success-container { text-align: center; transform: translateY(20px); transition: all 0.3s ease; } .success-animation.active .success-container { transform: translateY(0); } .success-icon { width: 100px; height: 100px; margin: 0 auto 20px; position: relative; } .checkmark { width: 100px; height: 100px; border-radius: 50%; display: block; stroke-width: 2; stroke: #6a3de8; stroke-miterlimit: 10; box-shadow: 0 0 0 #6a3de8; animation: fill .4s ease-in-out .4s forwards, scale .3s ease-in-out .9s both; } .checkmark__circle { stroke-dasharray: 166; stroke-dashoffset: 166; stroke-width: 2; stroke-miterlimit: 10; stroke: #6a3de8; fill: none; animation: stroke 0.6s cubic-bezier(0.65, 0, 0.45, 1) forwards; } .checkmark__check { transform-origin: 50% 50%; stroke-dasharray: 48; stroke-dashoffset: 48; animation: stroke 0.3s cubic-bezier(0.65, 0, 0.45, 1) 0.8s forwards; } @keyframes stroke { 100% { stroke-dashoffset: 0; } } @keyframes scale { 0%, 100% { transform: none; } 50% { transform: scale3d(1.1, 1.1, 1); } } @keyframes fill { 100% { box-shadow: inset 0px 0px 0px 50px #f9f4ff; } } .success-message h2 { font-size: 28px; color: #6a3de8; margin-bottom: 10px; } .success-message p { font-size: 16px; color: #666; margin-bottom: 30px; } /* Mobile Responsiveness */ @media (max-width: 700px) { .hero-content { width: 100%; } .hero-illustration { display: none; } .features { grid-template-columns: 1fr; } .events-grid { grid-template-columns: 1fr; } } @media (max-width: 500px) { .nav-links { display: none; } .logo { font-size: 24px; } .logo-icon { width: 32px; height: 32px; } .hero h1 { font-size: 28px; } .hero p { font-size: 14px; } } </style> </head> <body> <div class="app-container"> <!-- Confetti Animation --> <div id="confetti-container"></div> <!-- App Header --> <header class="app-header"> <a href="#" class="logo"> <span class="logo-icon"></span> Festivent </a> <nav class="nav-links"> <a href="#" class="nav-link">Explore</a> <a href="#" class="nav-link">My Events</a> <a href="#" class="nav-link">Profile</a> </nav> </header> <!-- Hero Section --> <section class="hero"> <div class="hero-content"> <h1>Turn Gatherings into Celebrations</h1> <p>Seamlessly plan, manage, and delight your guests with our whimsical event planning tools.</p> <button class="cta-button" id="create-event-btn">Create Your Event</button> </div> <div class="hero-illustration"> <div class="character"></div> </div> <div class="streamers"> <div class="streamer" style="top: 0; left: 20%; background-color: #ffcd56;"></div> <div class="streamer" style="top: 0; left: 40%; background-color: #ff6b6b; animation-delay: 0.5s;"></div> <div class="streamer" style="top: 0; left: 60%; background-color: #6a3de8; animation-delay: 1s;"></div> <div class="streamer" style="top: 0; left: 80%; background-color: #4cd3c2; animation-delay: 1.5s;"></div> </div> </section> <!-- Features Section --> <section class="features"> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M19 4H5C3.89543 4 3 4.89543 3 6V20C3 21.1046 3.89543 22 5 22H19C20.1046 22 21 21.1046 21 20V6C21 4.89543 20.1046 4 19 4Z" stroke="#6a3de8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 2V6" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8 2V6" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M3 10H21" stroke="#6a3de8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8 14H8.01" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 14H12.01" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 14H16.01" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8 18H8.01" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 18H12.01" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 18H16.01" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <h3>Magical Planning</h3> <p>Craft extraordinary events with our intuitive timeline tools and whimsical theme suggestions.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17 21V19C17 17.9391 16.5786 16.9217 15.8284 16.1716C15.0783 15.4214 14.0609 15 13 15H5C3.93913 15 2.92172 15.4214 2.17157 16.1716C1.42143 16.9217 1 17.9391 1 19V21" stroke="#6a3de8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M9 11C11.2091 11 13 9.20914 13 7C13 4.79086 11.2091 3 9 3C6.79086 3 5 4.79086 5 7C5 9.20914 6.79086 11 9 11Z" stroke="#6a3de8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M23 21V19C22.9993 18.1137 22.7044 17.2528 22.1614 16.5523C21.6184 15.8519 20.8581 15.3516 20 15.13" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 3.13C16.8604 3.35031 17.623 3.85071 18.1676 4.55232C18.7122 5.25392 19.0078 6.11683 19.0078 7.005C19.0078 7.89318 18.7122 8.75608 18.1676 9.45769C17.623 10.1593 16.8604 10.6597 16 10.88" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <h3>Guest Delight</h3> <p>Surprise your guests with digital invitations that burst with confetti and personalized animations.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 15C15.866 15 19 11.866 19 8C19 4.13401 15.866 1 12 1C8.13401 1 5 4.13401 5 8C5 11.866 8.13401 15 12 15Z" stroke="#6a3de8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8.21 13.89L7 23L12 20L17 23L15.79 13.88" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <h3>Festive Memories</h3> <p>Capture the joy with our photo galleries, animated GIF booths, and digital keepsakes for every occasion.</p> </div> </section> <!-- Upcoming Events Section --> <section class="events-section"> <div class="section-header"> <h2>Upcoming Festivities</h2> <a href="#" class="view-all"> View all <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 12H19" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 5L19 12L12 19" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </a> </div> <div class="events-grid"> <div class="event-card"> <div class="event-image event-1"> <span class="event-tag">Music</span> </div> <div class="event-details"> <div class="event-date"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M19 4H5C3.89543 4 3 4.89543 3 6V20C3 21.1046 3.89543 22 5 22H19C20.1046 22 21 21.1046 21 20V6C21 4.89543 20.1046 4 19 4Z" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 2V6" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8 2V6" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M3 10H21" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> May 28, 2023 โข 7:00 PM </div> <h3>Summer Solstice Soirรฉe</h3> <div class="event-meta"> <div class="event-location"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21 10C21 17 12 23 12 23C12 23 3 17 3 10C3 7.61305 3.94821 5.32387 5.63604 3.63604C7.32387 1.94821 9.61305 1 12 1C14.3869 1 16.6761 1.94821 18.364 3.63604C20.0518 5.32387 21 7.61305 21 10Z" stroke="#666" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 13C13.6569 13 15 11.6569 15 10C15 8.34315 13.6569 7 12 7C10.3431 7 9 8.34315 9 10C9 11.6569 10.3431 13 12 13Z" stroke="#666" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> Botanical Gardens </div> </div> </div> </div> <div class="event-card"> <div class="event-image event-2"> <span class="event-tag">Workshop</span> </div> <div class="event-details"> <div class="event-date"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M19 4H5C3.89543 4 3 4.89543 3 6V20C3 21.1046 3.89543 22 5 22H19C20.1046 22 21 21.1046 21 20V6C21 4.89543 20.1046 4 19 4Z" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 2V6" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M8 2V6" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M3 10H21" stroke="#ff6b6b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> June 12, 2023 โข 2:00 PM </div> <h3>Confetti Craft Carnival</h3> <div class="event-meta"> <div class="event-location"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21 10C21 17 12 23 12 23C12 23 3 17 3 10C3 7.61305 3.94821 5.32387 5.63604 3.63604C7.32387 1.94821 9.61305 1 12 1C14.3869 1 16.6761 1.94821 18.364 3.63604C20.0518 5.32387 21 7.61305 21 10Z" stroke="#666" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 13C13.6569 13 15 11.6569 15 10C15 8.34315 13.6569 7 12 7C10.3431 7 9 8.34315 9 10C9 11.6569 10.3431 13 12 13Z" stroke="#666" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> Creator's Hub </div> </div> </div> </div> </div> </section> </div> <!-- Create Event Modal --> <div class="modal-overlay" id="create-event-modal"> <div class="modal"> <div class="modal-header"> <h2>Create Magical Event</h2> <button class="close-modal" id="close-modal">×</button> </div> <div class="modal-body"> <form id="event-form"> <div class="form-group"> <label for="event-name">Event Name</label> <input type="text" class="form-control" id="event-name" placeholder="Give your celebration a catchy name"> </div> <div class="form-group"> <label for="event-date">Date & Time</label> <input type="datetime-local" class="form-control" id="event-date"> </div> <div class="form-group"> <label for="event-location">Location</label> <input type="text" class="form-control" id="event-location" placeholder="Where will the magic happen?"> </div> <div class="form-group"> <label for="event-description">Description</label> <textarea class="form-control" id="event-description" rows="3" placeholder="
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>PulseInsight Analytics</title> <style> :root { --primary: #1e3a8a; --secondary: #3b82f6; --light: #f1f5f9; --dark: #0f172a; --accent: #60a5fa; --gradient: linear-gradient(135deg, var(--primary), var(--secondary)); --font-main: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: var(--font-main); background-color: var(--light); color: var(--dark); height: 100vh; overflow-x: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 20px; } .container { width: 100%; max-width: 680px; height: 680px; display: flex; flex-direction: column; border-radius: 16px; box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08); overflow: hidden; background-color: white; position: relative; } header { padding: 24px 30px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(15, 23, 42, 0.06); } .logo { display: flex; align-items: center; gap: 10px; } .logo svg { width: 32px; height: 32px; } .logo-text { font-weight: 700; font-size: 20px; color: var(--primary); } nav { display: flex; gap: 12px; } .nav-item { padding: 8px 12px; border-radius: 6px; font-size: 14px; font-weight: 500; color: var(--dark); cursor: pointer; transition: all 0.2s; position: relative; } .nav-item.active { color: var(--primary); } .nav-item.active::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 100%; height: 2px; background: var(--gradient); border-radius: 10px; } .content { flex: 1; padding: 30px; display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 20px; overflow-y: auto; } .card { background-color: white; border-radius: 12px; box-shadow: 0 4px 12px rgba(15, 23, 42, 0.04); padding: 20px; position: relative; overflow: hidden; display: flex; flex-direction: column; transition: transform 0.3s, box-shadow 0.3s; border: 1px solid rgba(15, 23, 42, 0.06); } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(15, 23, 42, 0.1); } .card-title { font-size: 16px; font-weight: 600; margin-bottom: 15px; color: var(--dark); display: flex; align-items: center; gap: 8px; } .card-title svg { width: 18px; height: 18px; color: var(--primary); } .metric { font-size: 28px; font-weight: 700; margin-bottom: 10px; color: var(--primary); } .trend { display: flex; align-items: center; gap: 5px; font-size: 13px; font-weight: 500; } .trend.up { color: #10b981; } .trend.down { color: #ef4444; } .chart-container { margin-top: auto; height: 80px; width: 100%; position: relative; } .pulse-chart { position: absolute; bottom: 0; left: 0; width: 100%; height: 100%; } .bar-container { display: flex; align-items: flex-end; height: 100%; gap: 6px; padding-top: 15px; } .bar { flex: 1; background: var(--gradient); border-radius: 4px 4px 0 0; transition: height 0.5s cubic-bezier(0.16, 1, 0.3, 1); position: relative; min-height: 4px; opacity: 0.8; } .bar:hover { opacity: 1; } .bar-label { position: absolute; top: -25px; left: 50%; transform: translateX(-50%); font-size: 11px; font-weight: 500; color: var(--dark); opacity: 0; transition: opacity 0.2s; } .bar:hover .bar-label { opacity: 1; } .card-large { grid-column: span 2; grid-row: span 1; } .line-chart { width: 100%; height: 120px; margin-top: 10px; position: relative; } .line-path { fill: none; stroke: var(--primary); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; } .area-path { fill: url(#areaGradient); opacity: 0.2; } .data-point { fill: white; stroke: var(--primary); stroke-width: 2; r: 4; transition: r 0.2s, stroke-width 0.2s; cursor: pointer; } .data-point:hover { r: 6; stroke-width: 3; } .tooltip { position: absolute; background: var(--dark); color: white; padding: 8px 12px; border-radius: 6px; font-size: 12px; font-weight: 500; pointer-events: none; opacity: 0; transition: opacity 0.2s; transform: translate(-50%, -125%); z-index: 10; box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2); } .tooltip::after { content: ''; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%); border-width: 5px 5px 0; border-style: solid; border-color: var(--dark) transparent transparent; } .pulse-grid { position: absolute; width: 100%; height: 100%; display: flex; flex-direction: column; opacity: 0.1; pointer-events: none; } .pulse-grid-line { flex: 1; border-bottom: 1px dashed var(--primary); } .date-axis { display: flex; justify-content: space-between; margin-top: 10px; } .date-label { font-size: 11px; color: var(--dark); opacity: 0.6; } .insight-card { display: flex; align-items: center; gap: 15px; padding: 15px; margin-top: 15px; background-color: rgba(59, 130, 246, 0.05); border-radius: 8px; border-left: 3px solid var(--primary); } .insight-icon { width: 32px; height: 32px; background: var(--gradient); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .insight-icon svg { width: 16px; height: 16px; color: white; } .insight-content { font-size: 13px; line-height: 1.4; } .insight-title { font-weight: 600; margin-bottom: 2px; color: var(--primary); } .insight-desc { color: var(--dark); opacity: 0.9; } .widgets { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: auto; } .widget { display: flex; align-items: center; gap: 12px; padding: 15px; border-radius: 8px; background-color: rgba(15, 23, 42, 0.02); transition: background-color 0.3s; cursor: pointer; } .widget:hover { background-color: rgba(15, 23, 42, 0.05); } .widget-icon { width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; border-radius: 8px; background-color: rgba(59, 130, 246, 0.1); color: var(--primary); } .widget-content h4 { font-size: 14px; font-weight: 600; color: var(--dark); margin-bottom: 3px; } .widget-content p { font-size: 12px; color: var(--dark); opacity: 0.7; } .data-card { display: flex; flex-direction: column; } .data-metrics { display: flex; gap: 15px; margin-top: 10px; } .data-metric { flex: 1; padding: 10px; background-color: rgba(15, 23, 42, 0.02); border-radius: 6px; text-align: center; } .data-metric-value { font-size: 18px; font-weight: 700; color: var(--primary); margin-bottom: 2px; } .data-metric-label { font-size: 11px; color: var(--dark); opacity: 0.7; } .data-metric-icon { margin-bottom: 5px; font-size: 18px; height: 20px; display: flex; align-items: center; justify-content: center; } .animated-circle { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 60px; height: 60px; border-radius: 50%; pointer-events: none; z-index: -1; } .pulse { width: 100%; height: 100%; border-radius: 50%; background-color: var(--primary); opacity: 0; transform: scale(0); animation: pulse 3s infinite cubic-bezier(0.3, 0.6, 0.8, 0.6); } @keyframes pulse { 0% { opacity: 0; transform: scale(0); } 25% { opacity: 0.3; } 50% { opacity: 0; transform: scale(1.8); } 100% { opacity: 0; transform: scale(0); } } .animate-in { animation: fadeInUp 0.5s forwards; opacity: 0; transform: translateY(20px); } @keyframes fadeInUp { to { opacity: 1; transform: translateY(0); } } .animate-delay-1 { animation-delay: 0.1s; } .animate-delay-2 { animation-delay: 0.2s; } .animate-delay-3 { animation-delay: 0.3s; } .animate-delay-4 { animation-delay: 0.4s; } .theme-toggle { position: absolute; right: 20px; bottom: 20px; width: 40px; height: 40px; border-radius: 50%; background: var(--dark); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 10; box-shadow: 0 4px 12px rgba(15, 23, 42, 0.15); transition: transform 0.3s, background-color 0.3s; } .theme-toggle:hover { transform: scale(1.1); } .theme-toggle svg { width: 18px; height: 18px; color: white; } #dashboard-section { display: block; } #reports-section, #users-section, #settings-section { display: none; } @media (max-width: 600px) { .content { grid-template-columns: 1fr; grid-template-rows: auto; padding: 20px; } .card-large { grid-column: span 1; } header { padding: 15px; } .logo-text { font-size: 18px; } .nav-item { padding: 6px 8px; font-size: 13px; } .widgets { grid-template-columns: 1fr; } } </style> </head> <body> <div class="container"> <header> <div class="logo"> <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M2 12C2 6.47715 6.47715 2 12 2V2C17.5228 2 22 6.47715 22 12V12C22 17.5228 17.5228 22 12 22V22C6.47715 22 2 17.5228 2 12V12Z" stroke="#1e3a8a" stroke-width="2"/> <path d="M7 14L10 11L13 14L17 10" stroke="#3b82f6" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> <div class="logo-text">PulseInsight</div> </div> <nav> <div class="nav-item active" data-section="dashboard">Dashboard</div> <div class="nav-item" data-section="reports">Reports</div> <div class="nav-item" data-section="users">Users</div> <div class="nav-item" data-section="settings">Settings</div> </nav> </header> <div id="dashboard-section" class="content"> <div class="card animate-in animate-delay-1"> <div class="card-title"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M18 8h1a4 4 0 0 1 0 8h-1"></path> <path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path> <line x1="6" y1="1" x2="6" y2="4"></line> <line x1="10" y1="1" x2="10" y2="4"></line> <line x1="14" y1="1" x2="14" y2="4"></line> </svg> Active Sessions </div> <div class="metric">2,845</div> <div class="trend up"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polyline points="18 15 12 9 6 15"></polyline> </svg> +12.5% this week </div> <div class="chart-container"> <div class="pulse-grid"> <div class="pulse-grid-line"></div> <div class="pulse-grid-line"></div> <div class="pulse-grid-line"></div> </div> <div class="pulse-chart"> <div class="bar-container"></div> </div> </div> </div> <div class="card animate-in animate-delay-2"> <div class="card-title"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path> </svg> System Health </div> <div class="metric">98.7%</div> <div class="trend up"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polyline points="18 15 12 9 6 15"></polyline> </svg> +0.3% this week </div> <div class="chart-container"> <div class="pulse-grid"> <div class="pulse-grid-line"></div> <div class="pulse-grid-line"></div> <div class="pulse-grid-line"></div> </div> <div class="pulse-chart"> <div class="bar-container"></div> </div> </div> </div> <div class="card card-large animate-in animate-delay-3"> <div class="card-title"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polyline points="22 12 18 12 15 21 9 3 6 12 2 12"></polyline> </svg> Data Throughput Performance </div> <div class="data-metrics"> <div class="data-metric"> <div class="data-metric-icon">๐</div> <div class="data-metric-value">8.3 TB</div> <div class="data-metric-label">Total Volume</div> </div> <div class="data-metric"> <div class="data-metric-icon">โก</div> <div class="data-metric-value">5.2 GB/s</div> <div class="data-metric-label">Peak Rate</div> </div> <div class="data-metric"> <div class="data-metric-icon">๐</div> <div class="data-metric-value">99.8%</div> <div class="data-metric-label">Success Rate</div> </div> </div> <div class="line-chart"> <svg width="100%" height="100%" viewBox="0 0 600 120"> <defs> <linearGradient id="areaGradient" x1="0%" y1="0%" x2="0%" y2="100%"> <stop offset="0%" stop-color="#1e3a8a" /> <stop offset="100%" stop-color="#3b82f6" stop-opacity="0" /> </linearGradient> </defs> <path class="line-path" d="M0,100 C50,80 100,110 150,70 S200,20 250,40 S350,100 400,60 S500,30 600,50" /> <path class="area-path" d="M0,100 C50,80 100,110 150,70 S200,20 250,40 S350,100 400,60 S500,30 600,50 L600,120 L0,120 Z" /> <circle class="data-point" cx="0" cy="100" r="4" data-value="3.2" data-date="May 1" /> <circle class="data-point" cx="75" cy="95" r="4" data-value="3.4" data-date="May 5" /> <circle class="data-point" cx="150" cy="70" r="4" data-value="4.1" data-date="May 10" /> <circle class="data-point" cx="225" cy="40" r="4" data-value="4.8" data-date="May 15" /> <circle class="data-point" cx="300" cy="60" r="4" data-value="4.3" data-date="May 20" /> <circle class="data-point" cx="375" cy="80" r="4" data-value="3.9" data-date="May 25" /> <circle class="data-point" cx="450" cy="55" r="4" data-value="4.5" data-date="May 30" /> <circle class="data-point" cx="525" cy="40" r="4" data-value="4.9" data-date="Jun 5" /> <circle class="data-point" cx="600" cy="50" r="4" data-value="4.7" data-date="Jun 10" /> </svg> <div class="tooltip"></div> </div> <div class="date-axis"> <span class="date-label">May 1</span> <span class="date-label">May 10</span> <span class="date-label">May 20</span> <span class="date-label">May 30</span> <span class="date-label">Jun 10</span> </div> <div class="insight-card"> <div class="insight-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="12" y1="8" x2="12" y2="12"></line> <line x1="12" y1="16" x2="12.01" y2="16"></line> </svg> </div> <div class="insight-content"> <div class="insight-title">Pattern Recognition Insight</div> <div class="insight-desc">Algorithmic analysis detected a 23% increase in data processing efficiency during off-peak hours. Consider redistributing resource-intensive tasks.</div> </div> </div> </div> <div class="card data-card animate-in animate-delay-4"> <div class="card-title"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect> <line x1="8" y1="12" x2="16" y2="12"></line> <line x1="12" y1="8" x2="12" y2="16"></line> </svg> Query Performance </div> <div class="metric">245ms</div> <div class="trend down"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <polyline points="6 9 12 15 18 9"></polyline> </svg> -18.3% this week </div> <div class="widgets"> <div class="widget"> <div class="widget-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path> <polyline points="14 2 14 8 20 8"></polyline> <line x1="16" y1="13" x2="8" y2="13"></line> <line x1="16" y1="17" x2="8" y2="17"></line> <polyline points="10 9 9 9 8 9"></polyline> </svg> </div> <div class="widget-content"> <h4>Query Optimizer</h4> <p>Fine-tune your database</p> </div> </div> <div class="widget"> <div class="widget-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="10"></circle> <line x1="12" y1="16" x2="12" y2="12"></line> <line x1="12" y1="8" x2="12.01" y2="8"></line> </svg> </div> <div class="widget-content"> <h4>Index Analysis</h4> <p>Optimize table structure</p> </div> </div> </div> </div> </div> <div id="reports-section" class="content"> <!-- Reports content would go here --> </div> <div id="users-section" class="content"> <!-- Users content would go here --> </div> <div id="settings-section" class="content"> <!-- Settings content would go here --> </div> <div class="theme-toggle" id="theme-toggle"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> </div> <div class="animated-circle"> <div class="pulse"></div> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Bar chart data generation const barContainers = document.querySelectorAll('.bar-container'); barContainers.forEach(container => { const days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; for (let i = 0; i < days.length; i++) { const height = Math.floor(Math.random() * 60) + 20; const bar = document.createElement('div'); bar.className = 'bar'; bar.style.height = '0px'; const label = document.createElement('div'); label.className = 'bar-label'; label.textContent = days[i]; bar.appendChild(label); container.appendChild(bar); setTimeout(() => { bar.style.height = height + 'px'; }, 100 * i); } }); // Line chart interaction const dataPoints = document.querySelectorAll('.data-point'); const tooltip = document.querySelector('.tooltip'); dataPoints.forEach(point => { point.addEventListener('mouseenter', function(e) { const value = this.getAttribute('data-value'); const date = this.getAttribute('data-date'); tooltip.textContent = `${date}: ${value} GB/s`; tooltip.style.opacity = 1; const rect = this.getBoundingClientRect(); const chartRect = document.querySelector('.line-chart').getBoundingClientRect(); tooltip.style.left = (rect.left - chartRect.left + rect.width/2) + 'px'; tooltip.style.top = (rect.top - chartRect.top) + 'px'; }); point.addEventListener('mouseleave', function() { tooltip.style.opacity = 0; }); }); // Navigation tabs const navItems = document.querySelectorAll('.nav-item'); navItems.forEach(item => { item.addEventListener('click', function() { // Remove active class from all items navItems.forEach(nav => nav.classList.remove('active')); // Add active class to clicked item this.classList.add('active'); // Show the corresponding section const sectionId = this.getAttribute('data-section'); // Hide all sections document.querySelectorAll('.content').forEach(section => { section.style.display = 'none'; }); // Show selected section document.getElementById(`${sectionId}-section`).style.display = 'grid'; }); }); // Random pulse effect position setInterval(() => { const animatedCircle = document.querySelector('.animated-circle'); const containerRect = document.querySelector('.container').getBoundingClientRect(); const maxX = containerRect.width - 60; const maxY = containerRect.height - 60; const randomX = Math.floor(Math.random() * maxX); const randomY = Math.floor(Math.random() * maxY); animatedCircle.style.left = randomX + 'px'; animatedCircle.style.top = randomY + 'px'; }, 3000); // Theme toggle const themeToggle = document.getElementById('theme-toggle'); let isDarkMode = false; themeToggle.addEventListener('click', () => { isDarkMode = !isDarkMode; if (isDarkMode) { document.documentElement.style.setProperty('--light', '#0f172a'); document.documentElement.style.setProperty('--dark', '#f1f5f9'); document.body.style.backgroundColor = '#0f172a'; document.body.style.color = '#f1f5f9'; themeToggle.innerHTML = ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path> </svg> `; themeToggle.style.backgroundColor = '#f1f5f9'; themeToggle.querySelector('svg').style.color = '#0f172a'; } else { document.documentElement.style.setProperty('--light', '#f1f5f9'); document.documentElement.style.setProperty('--dark', '#0f172a'); document.body.style.backgroundColor = '#f1f5f9'; document.body.style.color = '#0f172a'; themeToggle.innerHTML = ` <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> <circle cx="12" cy="12" r="5"></circle> <line x1="12" y1="1" x2="12" y2="3"></line> <line x1="12" y1="21" x2="12" y2="23"></line> <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line> <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line> <line x1="1" y1="12" x2="3" y2="12"></line> <line x1="21" y1="12" x2="23" y2="12"></line> <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line> <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line> </svg> `; themeToggle.style.backgroundColor = '#0f172a'; themeToggle.querySelector('svg').style.color = '#f1f5f9'; } }); // Card hover effects const cards = document.querySelectorAll('.card'); cards.forEach(card => { card.addEventListener('mouseenter', function() { this.style.transform = 'translateY(-5px)'; this.style.boxShadow = '0 10px 25px rgba(15, 23, 42, 0.1)'; }); card.addEventListener('mouseleave', function() { this.style.transform = 'translateY(0)'; this.style.boxShadow = '0 4px 12px rgba(15, 23, 42, 0.04)'; }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NEO:SYNC - VR Gaming Platform</title> <style> @import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;700;900&family=Syne+Mono&display=swap'); :root { --neon-magenta: #ff00ff; --neon-cyan: #00ffff; --neon-yellow: #ffff00; --neon-blue: #0088ff; --dark-purple: #12002c; --cyber-black: #050718; --grid-color: rgba(0, 255, 255, 0.2); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Orbitron', sans-serif; background-color: var(--cyber-black); color: white; overflow-x: hidden; height: 100vh; width: 100%; } .container { width: 100%; height: 100%; display: flex; flex-direction: column; overflow: hidden; position: relative; } /* Grid Background Animation */ .grid-bg { position: absolute; width: 200%; height: 200%; top: -50%; left: -50%; background-image: linear-gradient(var(--grid-color) 1px, transparent 1px), linear-gradient(90deg, var(--grid-color) 1px, transparent 1px); background-size: 40px 40px; transform: perspective(500px) rotateX(60deg); animation: grid-move 25s linear infinite; opacity: 0.5; z-index: 1; } @keyframes grid-move { 0% { background-position: 0 0; } 100% { background-position: 0 40px; } } /* Main Content */ .content { position: relative; z-index: 2; height: 100%; width: 100%; overflow-y: auto; scrollbar-width: none; /* Firefox */ display: flex; flex-direction: column; } .content::-webkit-scrollbar { display: none; /* Chrome, Safari, Edge */ } header { padding: 20px; display: flex; justify-content: space-between; align-items: center; background: linear-gradient(180deg, rgba(18, 0, 44, 0.9) 0%, rgba(5, 7, 24, 0) 100%); position: sticky; top: 0; z-index: 10; } .logo { font-size: 24px; font-weight: 900; background: linear-gradient(to right, var(--neon-cyan), var(--neon-magenta)); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: 1px; position: relative; display: flex; align-items: center; } .logo::before { content: ""; position: absolute; width: 20px; height: 20px; background: var(--neon-magenta); border-radius: 50%; filter: blur(10px); opacity: 0.7; animation: pulse 2s infinite; z-index: -1; } .logo::after { content: "VR"; font-size: 12px; background: var(--neon-cyan); color: var(--cyber-black); padding: 2px 6px; border-radius: 4px; margin-left: 8px; } @keyframes pulse { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.2); opacity: 0.9; } 100% { transform: scale(1); opacity: 0.7; } } nav ul { display: flex; list-style: none; gap: 20px; } nav a { color: white; text-decoration: none; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; position: relative; transition: color 0.3s; } nav a:hover { color: var(--neon-cyan); } nav a::after { content: ""; position: absolute; width: 0; height: 2px; bottom: -5px; left: 0; background: linear-gradient(to right, var(--neon-cyan), var(--neon-magenta)); transition: width 0.3s ease; } nav a:hover::after { width: 100%; } /* Hero Section */ .hero { height: 500px; display: flex; flex-direction: column; justify-content: center; align-items: center; position: relative; overflow: hidden; padding: 20px; } .hero-parallax { position: absolute; width: 100%; height: 100%; top: 0; left: 0; } .parallax-layer { position: absolute; width: 100%; height: 100%; top: 0; left: 0; background-size: cover; background-position: center; } .layer-1 { background: radial-gradient(circle at center, rgba(0, 255, 255, 0.2) 0%, transparent 70%); filter: blur(40px); transform: translateZ(-10px); } .layer-2 { background: radial-gradient(circle at 30% 70%, rgba(255, 0, 255, 0.2) 0%, transparent 60%); filter: blur(30px); transform: translateZ(-5px); } .layer-3 { opacity: 0.8; transform: translateZ(-2px); } .layer-3::before { content: ""; position: absolute; top: 10%; left: 30%; width: 150px; height: 150px; border: 1px solid var(--neon-cyan); border-radius: 50%; box-shadow: 0 0 20px var(--neon-cyan); animation: float 6s ease-in-out infinite; } .layer-3::after { content: ""; position: absolute; top: 60%; left: 60%; width: 100px; height: 100px; border: 1px solid var(--neon-magenta); border-radius: 50%; box-shadow: 0 0 15px var(--neon-magenta); animation: float 8s ease-in-out infinite reverse; } @keyframes float { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } } .hero-content { position: relative; z-index: 5; text-align: center; max-width: 600px; } .hero h1 { font-size: 48px; font-weight: 900; margin-bottom: 20px; line-height: 1.1; text-shadow: 0 0 10px rgba(0, 255, 255, 0.5); position: relative; } .hero h1 span { display: block; color: var(--neon-cyan); } .hero p { font-size: 16px; line-height: 1.6; max-width: 500px; margin-bottom: 30px; text-shadow: 0 0 5px rgba(0, 0, 0, 0.8); } .hero-buttons { display: flex; gap: 20px; margin-top: 20px; } .button { padding: 12px 24px; background: transparent; border: 1px solid var(--neon-cyan); color: white; font-family: 'Orbitron', sans-serif; font-weight: 500; font-size: 14px; text-transform: uppercase; letter-spacing: 1px; cursor: pointer; position: relative; overflow: hidden; z-index: 1; transition: all 0.3s; box-shadow: 0 0 10px rgba(0, 255, 255, 0.5); } .button::before { content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.2), transparent); transition: left 0.6s; } .button:hover { box-shadow: 0 0 20px rgba(0, 255, 255, 0.8); } .button:hover::before { left: 100%; } .primary-btn { background-color: var(--neon-cyan); color: var(--cyber-black); border: none; } /* Features Section */ .features { padding: 40px 20px; position: relative; } .section-title { font-size: 32px; margin-bottom: 40px; text-align: center; color: white; position: relative; display: inline-block; left: 50%; transform: translateX(-50%); } .section-title::after { content: ""; position: absolute; width: 80px; height: 3px; background: var(--neon-cyan); bottom: -10px; left: 50%; transform: translateX(-50%); } .cards-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 25px; margin-top: 20px; } .card { background: rgba(18, 0, 44, 0.7); border: 1px solid rgba(0, 255, 255, 0.3); padding: 25px; border-radius: 5px; transition: transform 0.3s, box-shadow 0.3s; position: relative; overflow: hidden; height: 250px; display: flex; flex-direction: column; justify-content: flex-end; } .card::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, rgba(5, 7, 24, 0.7) 0%, rgba(18, 0, 44, 0.7) 100%); pointer-events: none; } .card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 255, 255, 0.2); } .card-icon { font-size: 50px; margin-bottom: 15px; position: relative; z-index: 1; color: var(--neon-cyan); text-shadow: 0 0 10px var(--neon-cyan); } .card h3 { font-size: 20px; margin-bottom: 10px; position: relative; z-index: 1; } .card p { font-size: 14px; line-height: 1.5; position: relative; z-index: 1; color: rgba(255, 255, 255, 0.8); } /* Customize cards */ .card:nth-child(1)::after { content: ""; position: absolute; width: 100%; height: 100%; top: -30%; left: -30%; background: var(--neon-cyan); border-radius: 50%; filter: blur(60px); opacity: 0.2; z-index: 0; } .card:nth-child(2)::after { content: ""; position: absolute; width: 100%; height: 100%; top: -30%; left: -30%; background: var(--neon-magenta); border-radius: 50%; filter: blur(60px); opacity: 0.2; z-index: 0; } .card:nth-child(3)::after { content: ""; position: absolute; width: 100%; height: 100%; top: -30%; left: -30%; background: var(--neon-yellow); border-radius: 50%; filter: blur(60px); opacity: 0.2; z-index: 0; } /* Interactive Game Preview Section */ .game-preview { padding: 40px 20px; position: relative; } .game-container { width: 100%; max-width: 600px; height: 350px; margin: 0 auto; position: relative; border: 1px solid rgba(0, 255, 255, 0.3); border-radius: 5px; overflow: hidden; box-shadow: 0 0 30px rgba(0, 255, 255, 0.2); } .game-interface { position: absolute; width: 100%; height: 100%; display: flex; flex-direction: column; justify-content: space-between; padding: 20px; color: white; background: linear-gradient(135deg, rgba(0, 0, 0, 0.7) 0%, rgba(18, 0, 44, 0.7) 100%); z-index: 2; } .game-scene { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxkZWZzPjxwYXR0ZXJuIGlkPSJwYXR0ZXJuIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHBhdHRlcm5Vbml0cz0idXNlclNwYWNlT25Vc2UiIHBhdHRlcm5UcmFuc2Zvcm09InJvdGF0ZSg0NSkiPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjAiIHkyPSI0MCIgc3Ryb2tlPSIjMDBmZmZmMjAiIHN0cm9rZS13aWR0aD0iMSIvPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjQwIiB5Mj0iMCIgc3Ryb2tlPSIjMDBmZmZmMjAiIHN0cm9rZS13aWR0aD0iMSIvPjwvcGF0dGVybj48L2RlZnM+PHJlY3QgZmlsbD0iIzA1MDcxOCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIvPjxyZWN0IGZpbGw9InVybCgjcGF0dGVybikiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiLz48L3N2Zz4='); background-size: cover; transform: perspective(1000px) rotateX(0deg); transition: transform 1s ease; z-index: 1; } .game-header { display: flex; justify-content: space-between; align-items: center; } .game-status { font-size: 14px; background: rgba(0, 0, 0, 0.5); padding: 5px 10px; border-radius: 3px; border-left: 3px solid var(--neon-cyan); } .game-footer { display: flex; justify-content: space-between; align-items: center; } .power-meter { height: 5px; width: 150px; background: rgba(255, 255, 255, 0.2); border-radius: 3px; overflow: hidden; position: relative; } .power-level { height: 100%; width: 75%; background: linear-gradient(90deg, var(--neon-cyan), var(--neon-magenta)); animation: powerPulse 3s infinite; } @keyframes powerPulse { 0% { width: 75%; } 50% { width: 60%; } 100% { width: 75%; } } .game-controls { display: flex; gap: 10px; } .game-btn { background: rgba(0, 0, 0, 0.5); border: 1px solid rgba(0, 255, 255, 0.5); color: white; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; font-size: 14px; border-radius: 50%; cursor: pointer; transition: all 0.3s; } .game-btn:hover { background: var(--neon-cyan); color: var(--cyber-black); } .vr-objects { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 3; pointer-events: none; } .vr-object { position: absolute; border-radius: 50%; box-shadow: 0 0 10px currentColor; opacity: 0.7; } .obj1 { width: 15px; height: 15px; background-color: var(--neon-cyan); top: 30%; left: 20%; animation: floatObj 4s ease-in-out infinite; } .obj2 { width: 20px; height: 20px; background-color: var(--neon-magenta); top: 50%; left: 70%; animation: floatObj 5s ease-in-out infinite reverse; } .obj3 { width: 10px; height: 10px; background-color: var(--neon-yellow); top: 70%; left: 40%; animation: floatObj 3s ease-in-out infinite; } @keyframes floatObj { 0% { transform: translate(0, 0) rotate(0deg); } 33% { transform: translate(20px, -10px) rotate(30deg); } 66% { transform: translate(-10px, 15px) rotate(-20deg); } 100% { transform: translate(0, 0) rotate(0deg); } } /* Responsive */ @media (max-width: 768px) { .hero h1 { font-size: 36px; } .hero-buttons { flex-direction: column; gap: 10px; } .card { height: auto; min-height: 200px; } .cards-container { grid-template-columns: 1fr; } .game-container { height: 250px; } nav ul { gap: 10px; } nav a { font-size: 12px; } } @media (max-width: 480px) { .hero h1 { font-size: 28px; } .section-title { font-size: 24px; } header { flex-direction: column; gap: 15px; } } /* Glitch Effect */ .glitch { position: relative; animation: glitch 2s infinite; } @keyframes glitch { 0% { transform: translate(0); } 20% { transform: translate(-2px, 2px); } 40% { transform: translate(-2px, -2px); } 60% { transform: translate(2px, 2px); } 80% { transform: translate(2px, -2px); } 100% { transform: translate(0); } } .glitch::before, .glitch::after { content: attr(data-text); position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .glitch::before { left: 2px; text-shadow: -1px 0 var(--neon-magenta); clip: rect(24px, 550px, 90px, 0); animation: glitch-anim 5s infinite linear alternate-reverse; } .glitch::after { left: -2px; text-shadow: -1px 0 var(--neon-blue); clip: rect(85px, 550px, 140px, 0); animation: glitch-anim 4s infinite linear alternate-reverse; } @keyframes glitch-anim { 0% { clip: rect(57px, 9999px, 5px, 0); } 5% { clip: rect(87px, 9999px, 71px, 0); } 10% { clip: rect(15px, 9999px, 32px, 0); } 15% { clip: rect(84px, 9999px, 7px, 0); } 20% { clip: rect(63px, 9999px, 17px, 0); } 25% { clip: rect(46px, 9999px, 62px, 0); } 30% { clip: rect(64px, 9999px, 64px, 0); } 35% { clip: rect(88px, 9999px, 6px, 0); } 40% { clip: rect(28px, 9999px, 93px, 0); } 45% { clip: rect(75px, 9999px, 57px, 0); } 50% { clip: rect(86px, 9999px, 22px, 0); } 55% { clip: rect(16px, 9999px, 78px, 0); } 60% { clip: rect(89px, 9999px, 26px, 0); } 65% { clip: rect(28px, 9999px, 81px, 0); } 70% { clip: rect(19px, 9999px, 38px, 0); } 75% { clip: rect(31px, 9999px, 56px, 0); } 80% { clip: rect(40px, 9999px, 51px, 0); } 85% { clip: rect(27px, 9999px, 46px, 0); } 90% { clip: rect(86px, 9999px, 15px, 0); } 95% { clip: rect(2px, 9999px, 72px, 0); } 100% { clip: rect(53px, 9999px, 69px, 0); } } </style> </head> <body> <div class="container"> <div class="grid-bg"></div> <div class="content"> <header> <div class="logo">NEO:SYNC</div> <nav> <ul> <li><a href="#games">Games</a></li> <li><a href="#hardware">Hardware</a></li> <li><a href="#devs">Developers</a></li> <li><a href="#about">About</a></li> </ul> </nav> </header> <section class="hero"> <div class="hero-parallax"> <div class="parallax-layer layer-1"></div> <div class="parallax-layer layer-2"></div> <div class="parallax-layer layer-3"></div> </div> <div class="hero-content"> <h1 class="glitch" data-text="DIVE BEYOND REALITY">DIVE BEYOND <span>REALITY</span></h1> <p>NEO:SYNC immerses you in breathtaking cyberpunk worlds with cutting-edge neural feedback and holographic interfaces. Experience gaming as it was meant to be: limitless.</p> <div class="hero-buttons"> <button class="button primary-btn">Enter the Grid</button> <button class="button">Developer Access</button> </div> </div> </section> <section class="features"> <h2 class="section-title">Core Features</h2> <div class="cards-container"> <div class="card"> <div class="card-icon">โก</div> <h3>Neural Interface</h3> <p>Direct sensory feedback system with 8ms response time delivers tactile sensations across 1,200 neural pathways.</p> </div> <div class="card"> <div class="card-icon">๐ฎ</div> <h3>Quantum Rendering</h3> <p>Revolutionary 32K holographic projection with 240Hz refresh rate and 8D spatial mapping technology.</p> </div> <div class="card"> <div class="card-icon">๐</div> <h3>MetaSync Network</h3> <p>Connect with up to 200 players in shared persistent worlds with zero latency quantum encryption protocols.</p> </div> </div> </section> <section class="game-preview"> <h2 class="section-title">Interactive Experience</h2> <div class="game-container" id="gameContainer"> <div class="game-scene" id="gameScene"></div> <div class="game-interface"> <div class="game-header"> <div class="game-status">STATUS: CONNECTED</div> <div class="power-meter"> <div class="power-level"></div> </div> </div> <div class="game-footer"> <div>SECTOR-7 // NIGHT CITY</div> <div class="game-controls"> <div class="game-btn">A</div> <div class="game-btn">B</div> <div class="game-btn">C</div> </div> </div> </div> <div class="vr-objects"> <div class="vr-object obj1"></div> <div class="vr-object obj2"></div> <div class="vr-object obj3"></div> </div> </div> </section> </div> </div> <script> document.addEventListener('DOMContentLoaded', () => { // Parallax effect for hero section const heroSection = document.querySelector('.hero'); const parallaxLayers = document.querySelectorAll('.parallax-layer'); heroSection.addEventListener('mousemove', (e) => { const x = (window.innerWidth / 2 - e.pageX) / 30; const y = (window.innerHeight / 2 - e.pageY) / 30; parallaxLayers.forEach((layer, index) => { const speed = (index + 1) * 0.5; layer.style.transform = `translateX(${x * speed}px) translateY(${y * speed}px)`; }); }); // Interactive game container const gameContainer = document.getElementById('gameContainer'); const gameScene = document.getElementById('gameScene'); gameContainer.addEventListener('mousemove', (e) => { const rect = gameContainer.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; const rotateX = (y / rect.height - 0.5) * 10; const rotateY = (x / rect.width - 0.5) * -10; gameScene.style.transform = `perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; }); gameContainer.addEventListener('mouseleave', () => { gameScene.style.transform = 'perspective(1000px) rotateX(0deg) rotateY(0deg)'; }); // Interactive floating objects const gameButtons = document.querySelectorAll('.game-btn'); const vrObjects = document.querySelectorAll('.vr-object'); gameButtons.forEach((btn, index) => { btn.addEventListener('click', () => { // Make the corresponding VR object pulse if (vrObjects[index]) { vrObjects[index].style.transform = 'scale(1.5)'; vrObjects[index].style.opacity = '1'; setTimeout(() => { vrObjects[index].style.transform = 'scale(1)'; vrObjects[index].style.opacity = '0.7'; }, 300); } // Add a ripple effect const ripple = document.createElement('div'); ripple.classList.add('ripple'); ripple.style.position = 'absolute'; ripple.style.borderRadius = '50%'; ripple.style.transform = 'scale(0)'; ripple.style.width = '100px'; ripple.style.height = '100px'; ripple.style.background = 'rgba(0, 255, 255, 0.2)'; ripple.style.top = '50%'; ripple.style.left = '50%'; ripple.style.marginLeft = '-50px'; ripple.style.marginTop = '-50px'; ripple.style.animation = 'ripple 0.8s ease-out forwards'; gameContainer.appendChild(ripple); setTimeout(() => { gameContainer.removeChild(ripple); }, 800); }); }); // Add ripple animation const style = document.createElement('style'); style.textContent = ` @keyframes ripple { 0% { transform: scale(0); opacity: 1; } 100% { transform: scale(1); opacity: 0; } } `; document.head.appendChild(style); // Glitch effect for the heading const glitchElement = document.querySelector('.glitch'); function triggerGlitch() { glitchElement.classList.add('glitching'); setTimeout(() => { glitchElement.classList.remove('glitching'); }, 1000); } setInterval(triggerGlitch, 5000); }); </script> </body> </html>