Gradients have become a staple in modern web design, adding depth and vibrancy to user interfaces. They can transform a simple layout into a visually stunning experience.
In this article, we will explore 10 gradient examples that showcase the versatility and beauty of this design trend. From subtle transitions to bold color shifts, these examples will inspire your next project.
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 designing gradients a breeze. Loved by designers and developers alike, it ensures pixel-perfect UI every time.
Start for free and elevate your design game today!
CODE6
Here's the code:
CODETEXT6
CODE7
Here's the code:
CODETEXT7
CODE8
Here's the code:
CODETEXT8
CODE9
Here's the code:
CODETEXT9
CODE10
Here's the code:
CODETEXT10
Ready to elevate your UI design game? With Subframe, you can create stunning, pixel-perfect interfaces, including beautiful gradients, in minutes. Our drag-and-drop editor ensures efficiency and precision.
Don't wait! Start for free and begin designing immediately. Experience the ease and power of Subframe today!
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Neon Creative Agency</title> <style> @import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap'); :root { --magenta: #FF00FF; --electric-blue: #00FFFF; --dark-purple: #1A0B2E; --text-white: #ffffff; --text-light: rgba(255, 255, 255, 0.85); --text-lighter: rgba(255, 255, 255, 0.65); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Space Grotesk', sans-serif; background: linear-gradient(135deg, var(--dark-purple), #000); color: var(--text-white); overflow-x: hidden; height: 100%; line-height: 1.6; } .container { max-width: 700px; height: 700px; margin: 0 auto; overflow-y: auto; position: relative; scrollbar-width: thin; scrollbar-color: var(--electric-blue) rgba(255, 255, 255, 0.05); } .container::-webkit-scrollbar { width: 5px; } .container::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); } .container::-webkit-scrollbar-thumb { background-color: var(--electric-blue); border-radius: 20px; } .gradient-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at top right, rgba(0, 255, 255, 0.2), rgba(255, 0, 255, 0.2) 50%, transparent 70%); z-index: -1; opacity: 0.7; } .gradient-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, rgba(255, 0, 255, 0.7) 0%, rgba(0, 255, 255, 0.7) 100%); mix-blend-mode: overlay; pointer-events: none; z-index: -1; } .noise { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48ZmlsdGVyIGlkPSJhIiB4PSIwIiB5PSIwIj48ZmVUdXJidWxlbmNlIHR5cGU9ImZyYWN0YWxOb2lzZSIgYmFzZUZyZXF1ZW5jeT0iLjc1IiBzdGl0Y2hUaWxlcz0ic3RpdGNoIi8+PGZlQ29sb3JNYXRyaXggdHlwZT0ic2F0dXJhdGUiIHZhbHVlcz0iMCIvPjwvZmlsdGVyPjxwYXRoIGZpbHRlcj0idXJsKCNhKSIgb3BhY2l0eT0iLjA1IiBkPSJNMCAwaDMwMHYzMDBIMHoiLz48L3N2Zz4='); z-index: -1; opacity: 0.2; pointer-events: none; } header { padding: 1.5rem; display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; position: sticky; top: 0; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); z-index: 10; border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .logo { font-weight: 700; font-size: 1.5rem; color: var(--text-white); display: flex; align-items: center; } .logo-dot { width: 8px; height: 8px; background: linear-gradient(to right, var(--magenta), var(--electric-blue)); border-radius: 50%; margin-left: 4px; display: inline-block; animation: pulse 2s infinite; } nav ul { display: flex; list-style: none; gap: 1rem; } nav a { color: var(--text-light); text-decoration: none; font-size: 0.9rem; font-weight: 500; transition: all 0.3s ease; position: relative; } nav a:hover { color: var(--text-white); } nav a::after { content: ''; position: absolute; width: 0; height: 2px; bottom: -4px; left: 0; background: linear-gradient(to right, var(--magenta), var(--electric-blue)); transition: width 0.3s ease; } nav a:hover::after { width: 100%; } .hero { padding: 2rem 1.5rem; position: relative; overflow: hidden; } .hero-content { max-width: 600px; position: relative; z-index: 1; } h1 { font-size: 3rem; font-weight: 700; margin-bottom: 1rem; line-height: 1.1; background: linear-gradient(to right, var(--magenta), var(--electric-blue)); -webkit-background-clip: text; background-clip: text; color: transparent; animation: gradientShift 8s ease infinite; } .hero p { font-size: 1.1rem; color: var(--text-light); margin-bottom: 2rem; max-width: 90%; } .btn { display: inline-block; padding: 0.8rem 2rem; background: linear-gradient(45deg, var(--magenta), var(--electric-blue)); color: white; border: none; border-radius: 30px; font-weight: 600; text-decoration: none; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; font-size: 1rem; } .btn::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.5s ease; } .btn:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); } .btn:hover::before { left: 100%; } .btn-secondary { background: transparent; border: 1px solid rgba(255, 255, 255, 0.3); margin-left: 1rem; } .btn-secondary:hover { background: rgba(255, 255, 255, 0.1); } .showcase { padding: 2rem 1.5rem; } .section-title { font-size: 1.8rem; margin-bottom: 2rem; position: relative; display: inline-block; } .section-title::after { content: ''; position: absolute; bottom: -10px; left: 0; width: 50px; height: 3px; background: linear-gradient(to right, var(--magenta), var(--electric-blue)); } .portfolio-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; margin-bottom: 3rem; } .portfolio-item { position: relative; border-radius: 10px; overflow: hidden; aspect-ratio: 1/1; cursor: pointer; } .portfolio-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .portfolio-item::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to bottom, rgba(255, 0, 255, 0.6), rgba(0, 255, 255, 0.6)); opacity: 0; transition: opacity 0.5s ease; z-index: 1; } .portfolio-info { position: absolute; bottom: -60px; left: 0; width: 100%; padding: 1rem; background: rgba(0, 0, 0, 0.7); backdrop-filter: blur(5px); transition: bottom 0.5s ease; z-index: 2; } .portfolio-item:hover img { transform: scale(1.1); } .portfolio-item:hover::before { opacity: 0.7; } .portfolio-item:hover .portfolio-info { bottom: 0; } .portfolio-info h3 { font-size: 1rem; margin-bottom: 0.3rem; } .portfolio-info p { font-size: 0.8rem; color: var(--text-lighter); } .services { padding: 2rem 1.5rem; position: relative; } .services-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1.5rem; } .service-card { background: rgba(255, 255, 255, 0.03); border-radius: 10px; padding: 1.5rem; transition: all 0.3s ease; position: relative; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.05); } .service-card::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, rgba(255, 0, 255, 0.05), rgba(0, 255, 255, 0.05)); transform: translateY(100%); transition: transform 0.5s ease; z-index: -1; } .service-card:hover { transform: translateY(-10px); box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); border-color: rgba(255, 255, 255, 0.1); } .service-card:hover::before { transform: translateY(0); } .service-icon { margin-bottom: 1rem; font-size: 2rem; background: linear-gradient(to right, var(--magenta), var(--electric-blue)); -webkit-background-clip: text; background-clip: text; color: transparent; } .service-card h3 { font-size: 1.2rem; margin-bottom: 0.8rem; } .service-card p { font-size: 0.9rem; color: var(--text-lighter); } .cta { padding: 3rem 1.5rem; text-align: center; background: rgba(0, 0, 0, 0.2); border-radius: 15px; margin: 3rem 1.5rem; position: relative; overflow: hidden; } .cta::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: conic-gradient( transparent, rgba(255, 0, 255, 0.3), transparent, rgba(0, 255, 255, 0.3), transparent); animation: rotateConic 10s linear infinite; z-index: -1; } .cta-content { position: relative; z-index: 1; backdrop-filter: blur(5px); padding: 2rem; border-radius: 10px; background: rgba(0, 0, 0, 0.5); } .cta h2 { font-size: 2rem; margin-bottom: 1rem; } .cta p { max-width: 600px; margin: 0 auto 2rem; color: var(--text-light); } .cursor-follow { width: 100px; height: 100px; border-radius: 50%; background: radial-gradient(circle, rgba(255, 0, 255, 0.4), rgba(0, 255, 255, 0.4)); filter: blur(40px); position: fixed; pointer-events: none; z-index: -1; opacity: 0.5; mix-blend-mode: screen; transition: 0.1s ease-out; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @keyframes pulse { 0% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.5); opacity: 0.5; } 100% { transform: scale(1); opacity: 1; } } @keyframes rotateConic { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } @media (max-width: 700px) { h1 { font-size: 2.5rem; } .portfolio-grid, .services-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } .btn { padding: 0.7rem 1.5rem; font-size: 0.9rem; } .logo { font-size: 1.2rem; } nav ul { gap: 0.7rem; } nav a { font-size: 0.8rem; } } @media (max-width: 500px) { h1 { font-size: 2rem; } .hero p { font-size: 1rem; } .portfolio-grid, .services-grid { grid-template-columns: 1fr 1fr; } .btn-secondary { margin-left: 0; margin-top: 1rem; } .cta h2 { font-size: 1.5rem; } } </style> </head> <body> <div class="container"> <div class="gradient-bg"></div> <div class="gradient-overlay"></div> <div class="noise"></div> <div class="cursor-follow"></div> <header> <div class="logo">NEON<span class="logo-dot"></span></div> <nav> <ul> <li><a href="#work">Work</a></li> <li><a href="#services">Services</a></li> <li><a href="#contact">Contact</a></li> </ul> </nav> </header> <section class="hero"> <div class="hero-content"> <h1>Bringing Ideas to Life Through Digital Alchemy</h1> <p>We transform concepts into captivating digital experiences that push creative boundaries and deliver measurable results for forward-thinking brands.</p> <a href="#contact" class="btn">Start a Project</a> <a href="#work" class="btn btn-secondary">See Our Work</a> </div> </section> <section id="work" class="showcase"> <h2 class="section-title">Selected Work</h2> <div class="portfolio-grid"> <div class="portfolio-item"> <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMzQyQjZFIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjNEEyRTk2Ii8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgZmlsbD0idXJsKCNhKSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiLz48Y2lyY2xlIGN4PSIxMDAiIGN5PSIxMDAiIHI9IjUwIiBmaWxsPSJub25lIiBzdHJva2U9IiNmZjAwZmYiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik03MCAxMDBMMTAwIDEzMEwxMzAgNzAiIHN0cm9rZT0iIzAwZmZmZiIgc3Ryb2tlLXdpZHRoPSI0IiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48L3N2Zz4=" alt="Interactive Design Project"> <div class="portfolio-info"> <h3>VOLTA</h3> <p>Interactive UI/UX Design</p> </div> </div> <div class="portfolio-item"> <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMkEyQTcyIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMDA5RkZGIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgZmlsbD0idXJsKCNhKSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiLz48cGF0aCBkPSJNNTAgNTBIMTUwVjE1MEg1MFoiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmMDBmZiIgc3Ryb2tlLXdpZHRoPSIzIi8+PHBhdGggZD0iTTcwIDcwSDEzMFYxMzBINzBaIiBmaWxsPSJub25lIiBzdHJva2U9IiMwMGZmZmYiIHN0cm9rZS13aWR0aD0iMyIvPjwvc3ZnPg==" alt="Brand Identity Project"> <div class="portfolio-info"> <h3>PRISMA</h3> <p>Brand Identity</p> </div> </div> <div class="portfolio-item"> <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjNTIxQTY2Ii8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjRDgyMkIyIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgZmlsbD0idXJsKCNhKSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiLz48cGF0aCBkPSJNNDAgNDBMODAgODBMMTIwIDQwTDE2MCAxNjBMNDAgMTYwWiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDBmZmZmIiBzdHJva2Utd2lkdGg9IjMiLz48L3N2Zz4=" alt="Motion Graphics"> <div class="portfolio-info"> <h3>SYNAPSE</h3> <p>Motion Graphics</p> </div> </div> <div class="portfolio-item"> <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9ImEiIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIj48c3RvcCBvZmZzZXQ9IjAlIiBzdG9wLWNvbG9yPSIjMUIwMTNBIi8+PHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjNUIwMTc0Ii8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHJlY3QgZmlsbD0idXJsKCNhKSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAiLz48Y2lyY2xlIGN4PSI2MCIgY3k9IjYwIiByPSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZmYwMGZmIiBzdHJva2Utd2lkdGg9IjIiLz48Y2lyY2xlIGN4PSIxNDAiIGN5PSI2MCIgcj0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmMDBmZiIgc3Ryb2tlLXdpZHRoPSIyIi8+PHBhdGggZD0iTTUwIDEyMEMxMDAgMTUwIDE1MCAxMjAiIHN0cm9rZT0iIzAwZmZmZiIgc3Ryb2tlLXdpZHRoPSI0IiBmaWxsPSJub25lIiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz4=" alt="User Experience Design"> <div class="portfolio-info"> <h3>ELEVATE</h3> <p>Digital Campaign</p> </div> </div> </div> </section> <section id="services" class="services"> <h2 class="section-title">Our Services</h2> <div class="services-grid"> <div class="service-card"> <div class="service-icon">✧</div> <h3>Digital Brand Strategy</h3> <p>Crafting unforgettable brand identities that resonate with your audience and stand out in crowded marketplaces.</p> </div> <div class="service-card"> <div class="service-icon">☉</div> <h3>Interactive Experiences</h3> <p>Creating immersive digital experiences that captivate users and drive meaningful engagement with your brand.</p> </div> <div class="service-card"> <div class="service-icon">◇</div> <h3>Motion & Animation</h3> <p>Bringing static designs to life with fluid animations that enhance storytelling and user experience.</p> </div> <div class="service-card"> <div class="service-icon">△</div> <h3>Creative Development</h3> <p>Building cutting-edge websites and applications with seamless functionality and stunning visuals.</p> </div> </div> </section> <section id="contact" class="cta"> <div class="cta-content"> <h2>Let's Create Something Extraordinary</h2> <p>Have a project in mind? We're ready to transform your vision into reality with our unique blend of creativity and technical expertise.</p> <a href="#" class="btn" id="contact-btn">Get in Touch</a> </div> </section> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Cursor follow effect const cursorFollow = document.querySelector('.cursor-follow'); document.addEventListener('mousemove', function(e) { const x = e.clientX; const y = e.clientY; cursorFollow.style.left = x + 'px'; cursorFollow.style.top = y + 'px'; cursorFollow.style.transform = 'translate(-50%, -50%)'; }); // Prevent actual form submission and redirect document.getElementById('contact-btn').addEventListener('click', function(e) { e.preventDefault(); // Show a visual confirmation instead const btn = e.target; const originalText = btn.textContent; btn.textContent = "Message Received!"; btn.style.background = "linear-gradient(45deg, #00FFAA, #00FFFF)"; setTimeout(() => { btn.textContent = originalText; btn.style.background = "linear-gradient(45deg, var(--magenta), var(--electric-blue))"; }, 2000); }); // Animate service cards on scroll const serviceCards = document.querySelectorAll('.service-card'); const portfolioItems = document.querySelectorAll('.portfolio-item'); const fadeInElements = [...serviceCards, ...portfolioItems]; // Set initial opacity fadeInElements.forEach(el => { el.style.opacity = '0'; el.style.transform = 'translateY(20px)'; el.style.transition = 'opacity 0.5s ease, transform 0.5s ease'; }); // Check if element is in viewport function isInViewport(element) { const rect = element.getBoundingClientRect(); return ( rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.bottom >= 0 ); } // Fade in elements when they come into view function handleScrollAnimation() { fadeInElements.forEach(el => { if (isInViewport(el) && el.style.opacity === '0') { setTimeout(() => { el.style.opacity = '1'; el.style.transform = 'translateY(0)'; }, 100); } }); } // Run on load and scroll handleScrollAnimation(); document.querySelector('.container').addEventListener('scroll', handleScrollAnimation); // Smooth scroll for navigation document.querySelectorAll('nav a, .hero a').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); const targetElement = document.querySelector(targetId); if (targetElement) { document.querySelector('.container').scrollTo({ top: targetElement.offsetTop - 80, behavior: 'smooth' }); } }); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Montserrat', sans-serif; } body { display: flex; justify-content: center; align-items: center; min-height: 100vh; background-color: #f5f5f7; padding: 20px; } .product-card-container { width: 100%; max-width: 680px; height: 620px; perspective: 1500px; position: relative; } .product-card { width: 100%; height: 100%; border-radius: 18px; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1); overflow: hidden; transform-style: preserve-3d; transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); position: relative; background-color: #fff; } .product-card:hover { transform: rotateY(10deg); } .card-content { position: relative; width: 100%; height: 100%; display: flex; flex-direction: column; } .product-image { width: 100%; height: 65%; overflow: hidden; position: relative; } .product-image img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1); } .product-card:hover .product-image img { transform: scale(1.05); } .gradient-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: linear-gradient(135deg, rgba(128, 20, 40, 0.7) 0%, rgba(200, 60, 0, 0.6) 100%); mix-blend-mode: multiply; opacity: 0; transition: opacity 0.6s ease-out; } .product-card:hover .gradient-overlay { opacity: 1; } .product-badge { position: absolute; top: 20px; right: 20px; background: rgba(255, 255, 255, 0.9); border-radius: 50px; padding: 8px 16px; font-size: 12px; font-weight: 600; color: #801428; box-shadow: 0 4px 12px rgba(128, 20, 40, 0.15); transform: translateY(-10px); opacity: 0; transition: all 0.5s cubic-bezier(0.16, 1, 0.3, 1); z-index: 10; } .product-card:hover .product-badge { transform: translateY(0); opacity: 1; } .product-info { padding: 28px; background: white; height: 35%; display: flex; flex-direction: column; justify-content: space-between; position: relative; } .product-title { font-size: 24px; font-weight: 700; color: #2c2c2c; margin-bottom: 10px; } .product-description { font-size: 15px; line-height: 1.5; color: #666; margin-bottom: 16px; max-width: 90%; } .price-container { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; } .current-price { font-size: 22px; font-weight: 700; color: #801428; } .original-price { font-size: 16px; color: #999; text-decoration: line-through; } .discount-badge { background: linear-gradient(135deg, #801428 0%, #c83c00 100%); color: white; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 4px; } .action-buttons { display: flex; gap: 12px; } .add-to-cart { background: linear-gradient(135deg, #801428 0%, #c83c00 100%); color: white; border: none; padding: 12px 24px; border-radius: 30px; font-weight: 600; font-size: 14px; cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; flex-grow: 1; box-shadow: 0 4px 12px rgba(128, 20, 40, 0.2); } .add-to-cart:hover { transform: translateY(-2px); box-shadow: 0 6px 15px rgba(128, 20, 40, 0.3); } .wishlist-btn { width: 44px; height: 44px; border: 2px solid #e2e2e2; border-radius: 50%; background: white; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; } .wishlist-btn:hover { border-color: #801428; } .wishlist-btn svg { width: 20px; height: 20px; fill: none; stroke: #666; stroke-width: 2; transition: all 0.3s ease; } .wishlist-btn:hover svg { stroke: #801428; } .wishlist-btn.active svg { fill: #801428; stroke: #801428; } .color-options { display: flex; gap: 8px; margin-bottom: 20px; } .color-option { width: 20px; height: 20px; border-radius: 50%; cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; } .color-option:hover { transform: scale(1.1); } .color-option.selected { box-shadow: 0 0 0 2px white, 0 0 0 4px #801428; } .color-black { background-color: #2c2c2c; } .color-burgundy { background-color: #801428; } .color-gold { background-color: #d4af37; } .product-features { display: flex; gap: 16px; margin-top: 10px; } .feature { display: flex; align-items: center; gap: 5px; font-size: 12px; color: #666; } .feature svg { width: 14px; height: 14px; fill: #801428; } .floating-elements { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 5; } .floating-element { position: absolute; background: rgba(255, 255, 255, 0.1); border-radius: 50%; opacity: 0; transition: opacity 0.5s ease; } .product-card:hover .floating-element { opacity: 1; } .el-1 { width: 80px; height: 80px; top: 20%; left: 10%; animation: float 8s infinite ease-in-out; } .el-2 { width: 60px; height: 60px; top: 40%; right: 15%; animation: float 7s infinite ease-in-out reverse; } .el-3 { width: 40px; height: 40px; bottom: 30%; left: 20%; animation: float 6s infinite ease-in-out 1s; } @keyframes float { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(5deg); } } .cursor-dot { position: fixed; width: 8px; height: 8px; background-color: #801428; border-radius: 50%; pointer-events: none; z-index: 9999; opacity: 0; transition: opacity 0.3s ease; transform: translate(-50%, -50%); } .cursor-outline { position: fixed; width: 40px; height: 40px; border-radius: 50%; border: 2px solid rgba(128, 20, 40, 0.3); pointer-events: none; z-index: 9998; opacity: 0; transition: width 0.3s ease, height 0.3s ease, opacity 0.3s ease; transform: translate(-50%, -50%); } @media (max-width: 600px) { .product-card-container { height: 580px; } .product-image { height: 55%; } .product-info { height: 45%; padding: 20px; } .product-title { font-size: 20px; } .product-description { font-size: 14px; margin-bottom: 12px; } .price-container { margin-bottom: 15px; } .action-buttons { gap: 8px; } .add-to-cart { padding: 10px 16px; font-size: 13px; } .wishlist-btn { width: 38px; height: 38px; } .product-features { display: none; } .cursor-dot, .cursor-outline { display: none; } } </style> </head> <body> <div class="cursor-dot" id="cursor-dot"></div> <div class="cursor-outline" id="cursor-outline"></div> <div class="product-card-container"> <div class="product-card" id="product-card"> <div class="card-content"> <div class="product-image"> <img src="https://images.unsplash.com/photo-1606041008023-472dfb5e530f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Luxe Noir Wireless Headphones"> <div class="gradient-overlay"></div> <div class="product-badge">NEW ARRIVAL</div> <div class="floating-elements"> <div class="floating-element el-1"></div> <div class="floating-element el-2"></div> <div class="floating-element el-3"></div> </div> </div> <div class="product-info"> <div> <h2 class="product-title">Luxe Noir Wireless Headphones</h2> <p class="product-description">40-hour battery life with active noise cancellation and studio-grade sound in a premium design.</p> <div class="color-options"> <div class="color-option color-black selected" data-color="black"></div> <div class="color-option color-burgundy" data-color="burgundy"></div> <div class="color-option color-gold" data-color="gold"></div> </div> <div class="price-container"> <span class="current-price">$249.99</span> <span class="original-price">$299.99</span> <span class="discount-badge">SAVE 17%</span> </div> </div> <div> <div class="product-features"> <div class="feature"> <svg viewBox="0 0 24 24"> <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path> </svg> <span>Free Shipping</span> </div> <div class="feature"> <svg viewBox="0 0 24 24"> <path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path> </svg> <span>2-Year Warranty</span> </div> </div> <div class="action-buttons"> <button class="add-to-cart" id="add-to-cart">Add to Cart</button> <button class="wishlist-btn" id="wishlist-btn"> <svg viewBox="0 0 24 24"> <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"></path> </svg> </button> </div> </div> </div> </div> </div> </div> <script> // Custom cursor effect const cursorDot = document.getElementById('cursor-dot'); const cursorOutline = document.getElementById('cursor-outline'); if (window.innerWidth > 600) { document.addEventListener('mousemove', (e) => { const posX = e.clientX; const posY = e.clientY; cursorDot.style.opacity = '1'; cursorOutline.style.opacity = '1'; cursorDot.style.left = `${posX}px`; cursorDot.style.top = `${posY}px`; // Add a slight delay to the outline for a trailing effect setTimeout(() => { cursorOutline.style.left = `${posX}px`; cursorOutline.style.top = `${posY}px`; }, 50); }); // Mouse enter/leave effects document.querySelector('.product-card').addEventListener('mouseenter', () => { cursorOutline.style.width = '60px'; cursorOutline.style.height = '60px'; cursorOutline.style.borderColor = 'rgba(128, 20, 40, 0.4)'; }); document.querySelector('.product-card').addEventListener('mouseleave', () => { cursorOutline.style.width = '40px'; cursorOutline.style.height = '40px'; cursorOutline.style.borderColor = 'rgba(128, 20, 40, 0.3)'; }); // Hide cursor when leaving the window document.addEventListener('mouseleave', () => { cursorDot.style.opacity = '0'; cursorOutline.style.opacity = '0'; }); } // 3D Card Tilt effect const card = document.getElementById('product-card'); card.addEventListener('mousemove', (e) => { if (window.innerWidth <= 600) return; const rect = card.getBoundingClientRect(); const x = e.clientX - rect.left; const y = e.clientY - rect.top; const centerX = rect.width / 2; const centerY = rect.height / 2; const rotateX = (y - centerY) / 20; const rotateY = (centerX - x) / 20; card.style.transform = `rotateX(${rotateX}deg) rotateY(${rotateY}deg)`; }); card.addEventListener('mouseleave', () => { card.style.transform = 'rotateX(0) rotateY(0)'; }); // Color options selection const colorOptions = document.querySelectorAll('.color-option'); colorOptions.forEach(option => { option.addEventListener('click', () => { // Remove selected class from all options colorOptions.forEach(opt => { opt.classList.remove('selected'); }); // Add selected class to clicked option option.classList.add('selected'); // Update price and image based on selected color const color = option.getAttribute('data-color'); const priceElement = document.querySelector('.current-price'); if (color === 'black') { priceElement.textContent = '$249.99'; } else if (color === 'burgundy') { priceElement.textContent = '$259.99'; } else if (color === 'gold') { priceElement.textContent = '$279.99'; } }); }); // Wishlist button toggle const wishlistBtn = document.getElementById('wishlist-btn'); wishlistBtn.addEventListener('click', () => { wishlistBtn.classList.toggle('active'); if (wishlistBtn.classList.contains('active')) { // Add animation for the active state wishlistBtn.style.transform = 'scale(1.1)'; setTimeout(() => { wishlistBtn.style.transform = 'scale(1)'; }, 200); } }); // Add to cart button animation const addToCartBtn = document.getElementById('add-to-cart'); addToCartBtn.addEventListener('click', () => { addToCartBtn.textContent = 'Added ✓'; addToCartBtn.style.background = 'linear-gradient(135deg, #2c8016 0%, #40a020 100%)'; addToCartBtn.style.transform = 'translateY(-2px)'; setTimeout(() => { addToCartBtn.textContent = 'Add to Cart'; addToCartBtn.style.background = 'linear-gradient(135deg, #801428 0%, #c83c00 100%)'; addToCartBtn.style.transform = 'translateY(0)'; }, 2000); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Minimalistic Blog</title> <style> @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,700;1,400&display=swap'); * { margin: 0; padding: 0; box-sizing: border-box; } :root { --primary-font: 'Inter', sans-serif; --secondary-font: 'Playfair Display', serif; --text-primary: #1a1a1a; --text-secondary: #4a4a4a; --text-tertiary: #767676; --accent: #7c83fd; --accent-hover: #646cfd; --background: linear-gradient(135deg, #ffffff 0%, #f5f5f5 100%); } body { font-family: var(--primary-font); color: var(--text-primary); background: var(--background); height: 100%; width: 100%; max-width: 700px; margin: 0 auto; padding: 30px; overflow-x: hidden; line-height: 1.6; } header { margin-bottom: 40px; position: relative; } .logo { font-family: var(--secondary-font); font-size: 1.8rem; font-weight: 700; letter-spacing: -0.5px; margin-bottom: 20px; position: relative; display: inline-block; } .logo::after { content: ""; position: absolute; bottom: -4px; left: 0; width: 0; height: 2px; background-color: var(--accent); transition: width 0.3s ease; } .logo:hover::after { width: 100%; } nav { display: flex; justify-content: space-between; align-items: center; margin-bottom: 30px; } .nav-links { display: flex; gap: 20px; } .nav-links a { color: var(--text-secondary); text-decoration: none; font-size: 0.9rem; font-weight: 500; transition: color 0.2s ease; position: relative; } .nav-links a::after { content: ""; position: absolute; bottom: -4px; left: 0; width: 0; height: 1px; background-color: var(--accent); transition: width 0.3s ease; } .nav-links a:hover { color: var(--accent); } .nav-links a:hover::after { width: 100%; } .menu-toggle { display: none; cursor: pointer; } .line { width: 24px; height: 2px; background-color: var(--text-primary); margin: 5px 0; transition: transform 0.3s, opacity 0.3s; } .search-icon { cursor: pointer; transform: scale(0.9); transition: transform 0.2s ease; } .search-icon:hover { transform: scale(1); color: var(--accent); } .search-form { position: absolute; top: 110%; right: 0; background: white; padding: 15px; border-radius: 6px; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08); opacity: 0; transform: translateY(-10px); pointer-events: none; transition: opacity 0.3s, transform 0.3s; z-index: 100; width: 250px; } .search-form.active { opacity: 1; transform: translateY(0); pointer-events: all; } .search-form input { width: 100%; padding: 10px; border: 1px solid #eee; border-radius: 4px; outline: none; font-family: var(--primary-font); } .search-form input:focus { border-color: var(--accent); } .featured-post { margin-bottom: 50px; position: relative; overflow: hidden; border-radius: 12px; box-shadow: 0 6px 20px rgba(0, 0, 0, 0.06); transition: transform 0.3s ease, box-shadow 0.3s ease; } .featured-post:hover { transform: translateY(-5px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08); } .featured-image { width: 100%; height: 220px; object-fit: cover; transition: transform 0.6s ease; } .featured-post:hover .featured-image { transform: scale(1.03); } .featured-content { padding: 20px; background: rgba(255, 255, 255, 0.95); } .post-meta { color: var(--text-tertiary); font-size: 0.8rem; margin-bottom: 8px; display: flex; align-items: center; gap: 8px; } .post-meta .tag { background: #f0f0f0; padding: 3px 8px; border-radius: 30px; font-weight: 500; color: var(--text-secondary); transition: background 0.2s ease; } .post-meta .tag:hover { background: #e2e2e2; } h1, h2, h3 { font-family: var(--secondary-font); letter-spacing: -0.3px; line-height: 1.3; } h1 { font-size: 1.8rem; margin-bottom: 15px; } h2 { font-size: 1.5rem; margin-bottom: 10px; position: relative; display: inline-block; } h2::after { content: ""; position: absolute; bottom: -5px; left: 0; width: 40px; height: 2px; background-color: var(--accent); transition: width 0.3s ease; } h2:hover::after { width: 100%; } h3 { font-size: 1.2rem; margin-bottom: 8px; } p { color: var(--text-secondary); margin-bottom: 15px; line-height: 1.7; } .excerpt { color: var(--text-secondary); margin-bottom: 15px; } .read-more { display: inline-block; color: var(--accent); font-weight: 500; text-decoration: none; position: relative; transition: color 0.2s ease; } .read-more::after { content: ""; position: absolute; bottom: -2px; left: 0; width: 0; height: 1px; background-color: var(--accent); transition: width 0.3s ease; } .read-more:hover { color: var(--accent-hover); } .read-more:hover::after { width: 100%; } .read-more svg { margin-left: 5px; transition: transform 0.2s ease; } .read-more:hover svg { transform: translateX(3px); } .posts-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 25px; } .post-card { background: white; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); transition: transform 0.3s ease, box-shadow 0.3s ease; } .post-card:hover { transform: translateY(-5px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08); } .post-card-img { height: 140px; width: 100%; object-fit: cover; transition: transform 0.6s ease; } .post-card:hover .post-card-img { transform: scale(1.05); } .post-card-content { padding: 15px; } .newsletter { margin-top: 50px; padding: 30px; background: white; border-radius: 12px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.05); text-align: center; } .newsletter-form { display: flex; gap: 10px; margin-top: 20px; } .newsletter-form input { flex: 1; padding: 12px 15px; border: 1px solid #eee; border-radius: 6px; font-family: var(--primary-font); outline: none; transition: border-color 0.2s ease; } .newsletter-form input:focus { border-color: var(--accent); } .btn { background-color: var(--accent); color: white; font-family: var(--primary-font); font-weight: 500; font-size: 0.9rem; padding: 12px 20px; border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.2s ease, transform 0.2s ease; } .btn:hover { background-color: var(--accent-hover); transform: translateY(-2px); } .btn:active { transform: translateY(0); } footer { margin-top: 50px; text-align: center; color: var(--text-tertiary); font-size: 0.9rem; } .footer-links { display: flex; justify-content: center; gap: 15px; margin-top: 15px; } .footer-links a { color: var(--text-secondary); text-decoration: none; transition: color 0.2s ease; } .footer-links a:hover { color: var(--accent); } /* Animation for blog posts to fade in */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .featured-post, .post-card { animation: fadeIn 0.6s ease forwards; opacity: 0; } .post-card:nth-child(2) { animation-delay: 0.1s; } .post-card:nth-child(3) { animation-delay: 0.2s; } .post-card:nth-child(4) { animation-delay: 0.3s; } .newsletter { animation: fadeIn 0.6s ease forwards; animation-delay: 0.4s; opacity: 0; } /* Responsive styles */ @media (max-width: 600px) { body { padding: 20px; } nav { flex-direction: column; align-items: flex-start; } .nav-links { flex-direction: column; width: 100%; gap: 10px; display: none; } .nav-links.active { display: flex; } .menu-toggle { display: block; position: absolute; right: 0; top: 10px; } .menu-toggle.active .line:nth-child(1) { transform: translateY(7px) rotate(45deg); } .menu-toggle.active .line:nth-child(2) { opacity: 0; } .menu-toggle.active .line:nth-child(3) { transform: translateY(-7px) rotate(-45deg); } .posts-grid { grid-template-columns: 1fr; } .newsletter-form { flex-direction: column; } .search-form { width: 100%; } } /* Dark mode toggle */ .theme-switch { position: fixed; bottom: 20px; right: 20px; width: 50px; height: 25px; background-color: #ddd; border-radius: 25px; cursor: pointer; display: flex; align-items: center; padding: 0 5px; transition: background-color 0.3s ease; z-index: 1000; } .theme-switch-knob { width: 18px; height: 18px; background-color: white; border-radius: 50%; transform: translateX(0); transition: transform 0.3s ease; display: flex; justify-content: center; align-items: center; font-size: 10px; color: #666; } body.dark-mode { --text-primary: #f1f1f1; --text-secondary: #d1d1d1; --text-tertiary: #a8a8a8; --background: linear-gradient(135deg, #222 0%, #1a1a1a 100%); } body.dark-mode .post-card, body.dark-mode .newsletter, body.dark-mode .featured-content, body.dark-mode .search-form { background: #2a2a2a; } body.dark-mode .search-form input, body.dark-mode .newsletter-form input { background: #333; border-color: #444; color: var(--text-primary); } body.dark-mode .post-meta .tag { background: #333; color: #ccc; } body.dark-mode .theme-switch { background-color: #444; } body.dark-mode .theme-switch-knob { transform: translateX(25px); background-color: #f1c40f; color: #444; } </style> </head> <body> <header> <a href="#" class="logo">Minimalist</a> <nav> <div class="menu-toggle"> <div class="line"></div> <div class="line"></div> <div class="line"></div> </div> <div class="nav-links"> <a href="#">Home</a> <a href="#">Essays</a> <a href="#">Design</a> <a href="#">Lifestyle</a> <a href="#">About</a> </div> <div class="search-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="11" cy="11" r="8"></circle> <line x1="21" y1="21" x2="16.65" y2="16.65"></line> </svg> </div> <div class="search-form"> <input type="text" placeholder="Search articles..."> </div> </nav> </header> <main> <div class="featured-post"> <img src="https://images.unsplash.com/photo-1499750310107-5fef28a66643?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1470&q=80" alt="Minimalist workspace with laptop and coffee" class="featured-image"> <div class="featured-content"> <div class="post-meta"> <span class="tag">Design</span> <span>June 12, 2023</span> </div> <h1>The beauty of constraint in digital design</h1> <p class="excerpt">How embracing limitations can lead to more innovative and focused digital experiences that connect more deeply with users.</p> <a href="#" class="read-more">Continue reading <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"> <line x1="5" y1="12" x2="19" y2="12"></line> <polyline points="12 5 19 12 12 19"></polyline> </svg> </a> </div> </div> <h2>Latest Articles</h2> <div class="posts-grid"> <div class="post-card"> <img src="https://images.unsplash.com/photo-1618005182384-a83a8bd57fbe?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1064&q=80" alt="Minimal interior design" class="post-card-img"> <div class="post-card-content"> <div class="post-meta"> <span class="tag">Interiors</span> <span>May 28, 2023</span> </div> <h3>The power of negative space</h3> <p>Why the absence of elements is just as important as their presence in creating balance.</p> <a href="#" class="read-more">Read more</a> </div> </div> <div class="post-card"> <img src="https://images.unsplash.com/photo-1515378791036-0648a3ef77b2?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Writer at desk" class="post-card-img"> <div class="post-card-content"> <div class="post-meta"> <span class="tag">Writing</span> <span>May 15, 2023</span> </div> <h3>Clarity through simplicity</h3> <p>How streamlined prose can create more impact than verbose explanations.</p> <a href="#" class="read-more">Read more</a> </div> </div> <div class="post-card"> <img src="https://images.unsplash.com/photo-1507842217343-583bb7270b66?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1170&q=80" alt="Books on shelf" class="post-card-img"> <div class="post-card-content"> <div class="post-meta"> <span class="tag">Reading</span> <span>May 3, 2023</span> </div> <h3>Five essential books on minimalism</h3> <p>The foundational texts that shaped the modern minimalist movement.</p> <a href="#" class="read-more">Read more</a> </div> </div> <div class="post-card"> <img src="https://images.unsplash.com/photo-1484632105053-8662f3f1e43c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1074&q=80" alt="Minimalist wardrobe" class="post-card-img"> <div class="post-card-content"> <div class="post-meta"> <span class="tag">Lifestyle</span> <span>April 21, 2023</span> </div> <h3>The capsule wardrobe reimagined</h3> <p>Building a thoughtful collection of clothing that transcends seasons and trends.</p> <a href="#" class="read-more">Read more</a> </div> </div> </div> <div class="newsletter"> <h2>Weekly Digest</h2> <p>Join our thoughtfully curated newsletter on minimalism, design, and intentional living. No clutter, just valuable insights delivered directly to your inbox.</p> <form class="newsletter-form"> <input type="email" placeholder="Your email address"> <button type="button" class="btn">Subscribe</button> </form> </div> </main> <footer> <p>© 2023 Minimalist Blog. All rights reserved.</p> <div class="footer-links"> <a href="#">About</a> <a href="#">Contact</a> <a href="#">Privacy</a> <a href="#">Terms</a> </div> </footer> <div class="theme-switch"> <div class="theme-switch-knob"> <span>☀️</span> </div> </div> <script> // Menu toggle for mobile const menuToggle = document.querySelector('.menu-toggle'); const navLinks = document.querySelector('.nav-links'); menuToggle.addEventListener('click', () => { menuToggle.classList.toggle('active'); navLinks.classList.toggle('active'); }); // Search form toggle const searchIcon = document.querySelector('.search-icon'); const searchForm = document.querySelector('.search-form'); searchIcon.addEventListener('click', () => { searchForm.classList.toggle('active'); if (searchForm.classList.contains('active')) { searchForm.querySelector('input').focus(); } }); // Close search form when clicking outside document.addEventListener('click', (e) => { if (!searchIcon.contains(e.target) && !searchForm.contains(e.target)) { searchForm.classList.remove('active'); } }); // Newsletter form handling const newsletterForm = document.querySelector('.newsletter-form'); const emailInput = newsletterForm.querySelector('input'); const subscribeBtn = newsletterForm.querySelector('.btn'); subscribeBtn.addEventListener('click', () => { if (emailInput.value.trim() !== '' && validateEmail(emailInput.value)) { // Success state subscribeBtn.textContent = 'Subscribed!'; subscribeBtn.style.backgroundColor = '#4CAF50'; emailInput.value = ''; // Reset after 3 seconds setTimeout(() => { subscribeBtn.textContent = 'Subscribe'; subscribeBtn.style.backgroundColor = ''; }, 3000); } else { // Show validation message emailInput.style.borderColor = '#ff5252'; emailInput.setAttribute('placeholder', 'Please enter a valid email'); emailInput.value = ''; // Reset the styles after focus emailInput.addEventListener('focus', () => { emailInput.style.borderColor = ''; emailInput.setAttribute('placeholder', 'Your email address'); }, { once: true }); } }); // Simple email validation function validateEmail(email) { const re = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; return re.test(email); } // Dark mode toggle const themeSwitch = document.querySelector('.theme-switch'); const themeSwitchKnob = document.querySelector('.theme-switch-knob'); themeSwitch.addEventListener('click', () => { document.body.classList.toggle('dark-mode'); if (document.body.classList.contains('dark-mode')) { themeSwitchKnob.innerHTML = '<span>🌙</span>'; localStorage.setItem('theme', 'dark'); } else { themeSwitchKnob.innerHTML = '<span>☀️</span>'; localStorage.setItem('theme', 'light'); } }); // Check for saved theme preference if (localStorage.getItem('theme') === 'dark') { document.body.classList.add('dark-mode'); themeSwitchKnob.innerHTML = '<span>🌙</span>'; } // Scroll reveal animation for elements const animateOnScroll = () => { const elements = document.querySelectorAll('.post-card, .newsletter'); elements.forEach(element => { const elementPosition = element.getBoundingClientRect().top; const screenPosition = window.innerHeight / 1.2; if (elementPosition < screenPosition) { element.style.opacity = '1'; } }); }; // Initial check and then listen for scroll window.addEventListener('load', animateOnScroll); window.addEventListener('scroll', animateOnScroll); </script> </body> </html>
<html> <head> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { display: flex; align-items: center; justify-content: center; min-height: 100vh; background-color: #f8f9fa; padding: 20px; } .container { width: 100%; max-width: 650px; text-align: center; padding: 40px; background-color: white; border-radius: 16px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.05); } h1 { font-size: 2.5rem; color: #333; margin-bottom: 20px; line-height: 1.2; } .description { font-size: 1.1rem; color: #6c757d; margin-bottom: 40px; line-height: 1.6; } .button-container { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-bottom: 40px; } .btn { position: relative; overflow: hidden; font-size: 1.2rem; font-weight: 600; padding: 16px 36px; border: none; border-radius: 50px; cursor: pointer; color: white; background: linear-gradient(90deg, #20B2AA, #7FFFD4); transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(32, 178, 170, 0.3); z-index: 1; width: 220px; text-align: center; } .btn::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, #7FFFD4, #20B2AA); opacity: 0; z-index: -1; transition: opacity 0.5s ease; } .btn:hover::before { opacity: 1; } .btn:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(32, 178, 170, 0.5); } .btn:active { transform: translateY(1px); } .btn span { position: relative; z-index: 2; } .btn .ripple { position: absolute; border-radius: 50%; transform: scale(0); animation: ripple 0.8s linear; background-color: rgba(255, 255, 255, 0.3); z-index: 1; } @keyframes ripple { to { transform: scale(4); opacity: 0; } } .color-display { display: flex; justify-content: center; margin-top: 30px; gap: 15px; } .color-box { width: 50px; height: 50px; border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; } .color-box:hover { transform: translateY(-5px); } .color-box:first-child { background-color: #20B2AA; } .color-box:last-child { background-color: #7FFFD4; } .color-label { font-size: 0.7rem; margin-top: 8px; color: #555; } .demo-section { margin-top: 40px; padding: 20px; border-radius: 10px; background-color: #f5f5f5; } .demo-title { font-size: 1.2rem; margin-bottom: 15px; color: #333; } .variable-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 15px; } .variable-btn { padding: 12px 25px; border-radius: 50px; color: white; font-weight: 600; cursor: pointer; position: relative; overflow: hidden; transition: all 0.3s ease; } .default-btn { background: linear-gradient(90deg, #20B2AA, #7FFFD4); } .subtle-btn { background: linear-gradient(90deg, #20B2AA, #5AEFDD); } .bold-btn { background: linear-gradient(90deg, #009688, #7FFFD4); } .variable-btn::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, #7FFFD4, #20B2AA); opacity: 0; z-index: 0; transition: opacity 0.5s ease; } .subtle-btn::before { background: linear-gradient(90deg, #5AEFDD, #20B2AA); } .bold-btn::before { background: linear-gradient(90deg, #7FFFD4, #009688); } .variable-btn:hover::before { opacity: 1; } .variable-btn span { position: relative; z-index: 1; } </style> </head> <body> <div class="container"> <h1>Fluid Gradient Interactions</h1> <p class="description">Experience the seamless teal-to-aqua gradient transition that creates a modern, engaging button interaction. The subtle animation adds delight while maintaining clarity and usability.</p> <div class="button-container"> <button class="btn primary-btn" id="mainButton"> <span>Hover Over Me</span> </button> <button class="btn" id="clickButton"> <span>Click For Ripple</span> </button> </div> <div class="color-display"> <div> <div class="color-box"></div> <div class="color-label">Teal<br>#20B2AA</div> </div> <div> <div class="color-box"></div> <div class="color-label">Aqua<br>#7FFFD4</div> </div> </div> <div class="demo-section"> <div class="demo-title">Gradient Intensity Variations</div> <div class="variable-buttons"> <div class="variable-btn default-btn"><span>Default</span></div> <div class="variable-btn subtle-btn"><span>Subtle</span></div> <div class="variable-btn bold-btn"><span>Bold</span></div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Add event listener for ripple effect const buttons = document.querySelectorAll('.btn'); buttons.forEach(button => { button.addEventListener('click', function(e) { const x = e.clientX - e.target.getBoundingClientRect().left; const y = e.clientY - e.target.getBoundingClientRect().top; const ripple = document.createElement('span'); ripple.classList.add('ripple'); ripple.style.left = `${x}px`; ripple.style.top = `${y}px`; this.appendChild(ripple); setTimeout(() => { ripple.remove(); }, 800); }); }); // Add hover tracking animation const mainButton = document.getElementById('mainButton'); mainButton.addEventListener('mousemove', function(e) { const rect = e.target.getBoundingClientRect(); const x = e.clientX - rect.left; const percentage = x / rect.width; // Adjust gradient slightly based on mouse position const startColor = adjustColor('#20B2AA', percentage * 20); const endColor = adjustColor('#7FFFD4', percentage * 20); this.style.background = `linear-gradient(90deg, ${startColor}, ${endColor})`; }); mainButton.addEventListener('mouseleave', function() { this.style.background = 'linear-gradient(90deg, #20B2AA, #7FFFD4)'; }); // Function to slightly adjust color based on mouse position function adjustColor(hex, percent) { // Convert hex to RGB let r = parseInt(hex.slice(1, 3), 16); let g = parseInt(hex.slice(3, 5), 16); let b = parseInt(hex.slice(5, 7), 16); // Adjust brightness slightly r = Math.min(255, Math.max(0, r + percent)); g = Math.min(255, Math.max(0, g + percent)); b = Math.min(255, Math.max(0, b + percent)); // Convert back to hex return `#${Math.round(r).toString(16).padStart(2, '0')}${Math.round(g).toString(16).padStart(2, '0')}${Math.round(b).toString(16).padStart(2, '0')}`; } }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Nexus AI - Redefining Tomorrow's Tech</title> <style> @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Orbitron:wght@400;500;700&display=swap'); :root { --primary-blue: #00f2fe; --primary-purple: #4a25e1; --secondary-blue: #0ceaff; --secondary-purple: #8a3dff; --dark-bg: #09091b; --darker-bg: #050510; --light-text: #f7f7ff; --gray-text: #a9a9cc; --card-bg: rgba(15, 15, 36, 0.7); --glow-shadow: 0 0 15px rgba(10, 230, 255, 0.3); } * { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: 'Inter', sans-serif; background-color: var(--dark-bg); color: var(--light-text); overflow-x: hidden; min-height: 100vh; display: flex; flex-direction: column; } .container { max-width: 700px; width: 100%; margin: 0 auto; padding: 0 20px; } header { background: linear-gradient(135deg, var(--primary-blue), var(--primary-purple)); padding: 20px 0; position: relative; overflow: hidden; } header::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 50% 50%, rgba(138, 61, 255, 0.2), transparent); pointer-events: none; } .header-content { position: relative; z-index: 1; display: flex; justify-content: space-between; align-items: center; } .logo { font-family: 'Orbitron', sans-serif; font-weight: 700; font-size: 28px; letter-spacing: 1px; text-shadow: 0 0 10px rgba(0, 242, 254, 0.5); transition: all 0.3s ease; } .logo:hover { text-shadow: 0 0 15px rgba(138, 61, 255, 0.7); transform: scale(1.03); } nav ul { display: flex; list-style: none; } nav li { margin-left: 20px; } nav a { color: var(--light-text); text-decoration: none; font-weight: 500; transition: all 0.3s ease; position: relative; padding: 5px 0; } nav a::after { content: ''; position: absolute; width: 0; height: 2px; bottom: 0; left: 0; background: var(--light-text); transition: width 0.3s ease; } nav a:hover::after { width: 100%; } nav a:hover { text-shadow: var(--glow-shadow); } .hero { padding: 60px 0 30px; position: relative; overflow: hidden; } .hero::before { content: ''; position: absolute; top: 0; right: 0; width: 150px; height: 150px; background: radial-gradient(circle, var(--secondary-purple), transparent 70%); opacity: 0.3; border-radius: 50%; filter: blur(30px); animation: float 6s infinite alternate; } .hero::after { content: ''; position: absolute; bottom: -50px; left: 30px; width: 200px; height: 200px; background: radial-gradient(circle, var(--primary-blue), transparent 70%); opacity: 0.2; border-radius: 50%; filter: blur(30px); animation: float 8s infinite alternate-reverse; } @keyframes float { 0% { transform: translate(0, 0); } 100% { transform: translate(20px, -20px); } } .hero-content { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 30px; } .hero-text h1 { font-family: 'Orbitron', sans-serif; font-size: 40px; margin-bottom: 15px; background: linear-gradient(90deg, var(--secondary-blue), var(--secondary-purple)); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: 1px; } .typewriter-text { display: inline-block; overflow: hidden; white-space: nowrap; border-right: 3px solid var(--secondary-purple); animation: typing 3.5s steps(40, end), blink-caret 0.75s step-end infinite; font-size: 18px; margin-bottom: 20px; color: var(--gray-text); } @keyframes typing { from { width: 0 } to { width: 100% } } @keyframes blink-caret { from, to { border-color: transparent } 50% { border-color: var(--secondary-purple) } } .hero-text p { color: var(--gray-text); line-height: 1.6; margin-bottom: 25px; } .cta-button { display: inline-block; background: linear-gradient(90deg, var(--primary-blue), var(--primary-purple)); padding: 12px 25px; border-radius: 30px; color: var(--light-text); text-decoration: none; font-weight: 600; letter-spacing: 0.5px; transition: all 0.3s ease; box-shadow: 0 5px 15px rgba(74, 37, 225, 0.4); position: relative; overflow: hidden; z-index: 1; } .cta-button::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, var(--primary-purple), var(--primary-blue)); opacity: 0; transition: opacity 0.3s ease; z-index: -1; } .cta-button:hover { transform: translateY(-2px); box-shadow: 0 7px 20px rgba(74, 37, 225, 0.5); } .cta-button:hover::before { opacity: 1; } .features { padding: 40px 0; position: relative; z-index: 1; } .section-title { font-family: 'Orbitron', sans-serif; font-size: 28px; margin-bottom: 30px; text-align: center; background: linear-gradient(90deg, var(--secondary-blue), var(--secondary-purple)); -webkit-background-clip: text; background-clip: text; color: transparent; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; } .feature-card { background: var(--card-bg); border-radius: 12px; padding: 25px; position: relative; overflow: hidden; backdrop-filter: blur(5px); border: 1px solid rgba(138, 61, 255, 0.1); transition: all 0.3s ease; } .feature-card::before { content: ''; position: absolute; top: 0; right: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--primary-blue), var(--primary-purple)); transform: scaleX(0); transform-origin: right; transition: transform 0.3s ease; } .feature-card:hover { transform: translateY(-5px); box-shadow: var(--glow-shadow); } .feature-card:hover::before { transform: scaleX(1); transform-origin: left; } .feature-icon { width: 50px; height: 50px; margin-bottom: 15px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, rgba(12, 234, 255, 0.1), rgba(138, 61, 255, 0.1)); border-radius: 10px; } .feature-icon svg { width: 24px; height: 24px; fill: none; stroke: url(#icon-gradient); stroke-width: 2; } .feature-title { font-size: 18px; margin-bottom: 10px; font-weight: 600; } .feature-text { color: var(--gray-text); font-size: 14px; line-height: 1.5; } .metrics { padding: 30px 0; position: relative; } .metrics-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 15px; margin-top: 20px; } .metric-card { background: var(--card-bg); border-radius: 10px; padding: 20px; text-align: center; transition: all 0.3s ease; border: 1px solid rgba(138, 61, 255, 0.1); } .metric-card:hover { transform: translateY(-3px); box-shadow: var(--glow-shadow); } .metric-value { font-size: 28px; font-weight: 700; margin-bottom: 5px; background: linear-gradient(90deg, var(--secondary-blue), var(--secondary-purple)); -webkit-background-clip: text; background-clip: text; color: transparent; } .metric-label { font-size: 14px; color: var(--gray-text); } .testimonials { padding: 40px 0; } .testimonial-slider { overflow: hidden; position: relative; margin: 30px 0; height: 150px; } .testimonial-track { display: flex; transition: transform 0.5s ease; } .testimonial { flex: 0 0 100%; padding: 20px; background: var(--card-bg); border-radius: 12px; margin: 0 10px; border: 1px solid rgba(138, 61, 255, 0.1); opacity: 0; transform: translateY(20px); transition: opacity 0.5s ease, transform 0.5s ease; } .testimonial.active { opacity: 1; transform: translateY(0); } .testimonial-text { font-style: italic; color: var(--gray-text); margin-bottom: 15px; line-height: 1.5; font-size: 15px; } .testimonial-author { display: flex; align-items: center; } .author-avatar { width: 35px; height: 35px; border-radius: 50%; overflow: hidden; margin-right: 10px; background: linear-gradient(135deg, var(--primary-blue), var(--primary-purple)); display: flex; align-items: center; justify-content: center; font-weight: 600; font-size: 14px; } .author-info h4 { font-size: 15px; margin-bottom: 2px; } .author-info p { color: var(--gray-text); font-size: 13px; } .slider-controls { display: flex; justify-content: center; gap: 10px; margin-top: 15px; } .slider-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--card-bg); cursor: pointer; transition: all 0.3s ease; border: 1px solid rgba(138, 61, 255, 0.3); } .slider-dot.active { background: linear-gradient(90deg, var(--primary-blue), var(--primary-purple)); transform: scale(1.2); } .contact { padding: 40px 0; } .contact-form { background: var(--card-bg); border-radius: 12px; padding: 30px; margin-top: 20px; border: 1px solid rgba(138, 61, 255, 0.1); } .form-group { margin-bottom: 20px; } .form-label { display: block; margin-bottom: 8px; font-size: 15px; font-weight: 500; } .form-control { width: 100%; background: rgba(9, 9, 27, 0.5); border: 1px solid rgba(138, 61, 255, 0.2); border-radius: 8px; padding: 12px 15px; color: var(--light-text); font-family: 'Inter', sans-serif; transition: all 0.3s ease; } .form-control:focus { outline: none; border-color: var(--primary-blue); box-shadow: 0 0 0 2px rgba(0, 242, 254, 0.2); } .form-control::placeholder { color: rgba(169, 169, 204, 0.5); } textarea.form-control { min-height: 100px; resize: vertical; } .submit-btn { background: linear-gradient(90deg, var(--primary-blue), var(--primary-purple)); color: var(--light-text); border: none; border-radius: 30px; padding: 12px 25px; font-weight: 600; cursor: pointer; transition: all 0.3s ease; width: 100%; font-family: 'Inter', sans-serif; letter-spacing: 0.5px; position: relative; overflow: hidden; } .submit-btn:hover { transform: translateY(-2px); box-shadow: 0 5px 15px rgba(74, 37, 225, 0.4); } .submit-btn::before { content: ''; position: absolute; top: 0; left: 0; width: 20px; height: 100%; background: rgba(255, 255, 255, 0.3); transform: skewX(-45deg) translateX(-150px); transition: all 0.6s ease; } .submit-btn:hover::before { transform: skewX(-45deg) translateX(250px); } .success-message { display: none; background: rgba(12, 234, 255, 0.1); border: 1px solid var(--primary-blue); padding: 15px; border-radius: 8px; text-align: center; margin-top: 15px; } .bg-particles { position: fixed; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: -1; } .particle { position: absolute; border-radius: 50%; opacity: 0.3; animation: float-particle 15s infinite linear; } @keyframes float-particle { 0% { transform: translate(0, 0); } 25% { transform: translate(10px, 10px); } 50% { transform: translate(0, 20px); } 75% { transform: translate(-10px, 10px); } 100% { transform: translate(0, 0); } } footer { margin-top: auto; padding: 20px 0; text-align: center; color: var(--gray-text); font-size: 14px; position: relative; overflow: hidden; } footer::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 1px; background: linear-gradient(90deg, transparent, var(--primary-blue), var(--primary-purple), transparent); } @media (max-width: 600px) { .hero-text h1 { font-size: 32px; } .features-grid { grid-template-columns: 1fr; } .metrics-grid { grid-template-columns: repeat(2, 1fr); } .logo { font-size: 22px; } nav ul { gap: 10px; } nav li { margin-left: 10px; } .nav-item-text { display: none; } .nav-icon { display: block !important; } } .nav-icon { display: none; font-size: 18px; } /* Data visualization styles */ .data-viz { margin: 30px 0; height: 200px; position: relative; display: flex; align-items: flex-end; justify-content: space-between; padding: 0 10px; } .data-bar { width: 30px; background: linear-gradient(to top, var(--primary-blue), var(--primary-purple)); border-radius: 6px 6px 0 0; position: relative; transition: height 1s cubic-bezier(0.34, 1.56, 0.64, 1); opacity: 0; transform: translateY(50px); box-shadow: 0 0 10px rgba(10, 230, 255, 0.2); } .data-bar.animated { opacity: 1; transform: translateY(0); } .data-label { position: absolute; bottom: -25px; left: 50%; transform: translateX(-50%); white-space: nowrap; font-size: 12px; color: var(--gray-text); } .cursor-glow { position: fixed; width: 150px; height: 150px; border-radius: 50%; background: radial-gradient(circle, rgba(12, 234, 255, 0.15), transparent 70%); pointer-events: none; transform: translate(-50%, -50%); z-index: -1; opacity: 0; transition: opacity 0.3s ease; } /* Futuristic Grid */ .grid-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-size: 30px 30px; background-image: linear-gradient(to right, rgba(138, 61, 255, 0.05) 1px, transparent 1px), linear-gradient(to bottom, rgba(12, 234, 255, 0.05) 1px, transparent 1px); z-index: -1; opacity: 0.4; } </style> </head> <body> <!-- SVG Definitions --> <svg width="0" height="0" style="position: absolute;"> <defs> <linearGradient id="icon-gradient" x1="0%" y1="0%" x2="100%" y2="100%"> <stop offset="0%" stop-color="#00f2fe" /> <stop offset="100%" stop-color="#8a3dff" /> </linearGradient> </defs> </svg> <div class="grid-bg"></div> <div class="cursor-glow"></div> <div class="bg-particles"></div> <header> <div class="container"> <div class="header-content"> <div class="logo">NEXUS.AI</div> <nav> <ul> <li><a href="#features"><span class="nav-item-text">Features</span><span class="nav-icon">✦</span></a></li> <li><a href="#metrics"><span class="nav-item-text">Metrics</span><span class="nav-icon">📊</span></a></li> <li><a href="#contact"><span class="nav-item-text">Connect</span><span class="nav-icon">✉</span></a></li> </ul> </nav> </div> </div> </header> <section class="hero"> <div class="container"> <div class="hero-content"> <div class="hero-text"> <h1>The Future of AI Integration</h1> <div class="typewriter-text">Building intelligent systems that matter</div> <p>Nexus.AI delivers cutting-edge deep learning solutions that transform raw data into actionable business intelligence. We're pioneering the fusion of neural networks and quantum computing to solve tomorrow's challenges today.</p> <a href="#contact" class="cta-button">Schedule a Demo</a> </div> </div> </div> </section> <section id="features" class="features"> <div class="container"> <h2 class="section-title">Core Technologies</h2> <div class="features-grid"> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24"> <path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"></path> </svg> </div> <h3 class="feature-title">Neural Architecture</h3> <p class="feature-text">Custom-built neural networks with 98.7% prediction accuracy optimized for your specific industry requirements.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24"> <circle cx="12" cy="12" r="10"></circle> <path d="M12 8v8M8 12h8"></path> </svg> </div> <h3 class="feature-title">Quantum Processing</h3> <p class="feature-text">Leverage our hybrid quantum algorithms for processing that's 217x faster than traditional computing methods.</p> </div> <div class="feature-card"> <div class="feature-icon"> <svg viewBox="0 0 24 24"> <path d="M22 12h-4l-3 9L9 3l-3 9H2"></path> </svg> </div> <h3 class="feature-title">Adaptive Learning</h3> <p class="feature-text">Systems that evolve with your data, reducing model drift by 86% compared to static AI implementations.</p> </div> </div> </div> </section> <section id="metrics" class="metrics"> <div class="container"> <h2 class="section-title">Performance Metrics</h2> <div class="data-viz"> <div class="data-bar" style="height: 0%;" data-height="65%"> <div class="data-label">Speed</div> </div> <div class="data-bar" style="height: 0%;" data-height="85%"> <div class="data-label">Accuracy</div> </div> <div class="data-bar" style="height: 0%;" data-height="75%"> <div class="data-label">Efficiency</div> </div> <div class="data-bar" style="height: 0%;" data-height="90%"> <div class="data-label">Scalability</div> </div> <div class="data-bar" style="height: 0%;" data-height="70%"> <div class="data-label">Security</div> </div> </div> <div class="metrics-grid"> <div class="metric-card"> <div class="metric-value" data-value="42" data-suffix="%">0%</div> <div class="metric-label">Cost Reduction</div> </div> <div class="metric-card"> <div class="metric-value" data-value="217" data-suffix="x">0x</div> <div class="metric-label">Speed Increase</div> </div> <div class="metric-card"> <div class="metric-value" data-value="99.7" data-suffix="%">0%</div> <div class="metric-label">Uptime</div> </div> </div> </div> </section> <section class="testimonials"> <div class="container"> <h2 class="section-title">Client Successes</h2> <div class="testimonial-slider"> <div class="testimonial-track"> <div class="testimonial active"> <p class="testimonial-text">"Nexus.AI's neural architecture allowed us to process medical imaging 94x faster than our previous solution, enabling real-time diagnostic support for our radiologists."</p> <div class="testimonial-author"> <div class="author-avatar">DR</div> <div class="author-info"> <h4>Dr. Elena Rodriguez</h4> <p>Chief Innovation Officer, MediTech</p> </div> </div> </div> <div class="testimonial"> <p class="testimonial-text">"The quantum processing capabilities have revolutionized our financial forecasting. We're now predicting market movements with 87% accuracy, up from 61% with our legacy systems."</p> <div class="testimonial-author"> <div class="author-avatar">RN</div> <div class="author-info"> <h4>Raj Nayar</h4> <p>Head of Quantitative Analysis, Greenwich Capital</p> </div> </div> </div> <div class="testimonial"> <p class="testimonial-text">"Their adaptive learning models have reduced our manufacturing defects by 78% in just 3 months. The ROI has been exceptional - we've recouped our investment 4x over already."</p> <div class="testimonial-author"> <div class="author-avatar">SM</div> <div class="author-info"> <h4>Sarah Miller</h4> <p>Operations Director, AdvancedTech Manufacturing</p> </div> </div> </div> </div> </div> <div class="slider-controls"> <div class="slider-dot active"></div> <div class="slider-dot"></div> <div class="slider-dot"></div> </div> </div> </section> <section id="contact" class="contact"> <div class="container"> <h2 class="section-title">Connect With Our Team</h2> <div class="contact-form"> <div class="form-group"> <label class="form-label" for="name">Name</label> <input type="text" class="form-control" id="name" placeholder="Your name"> </div> <div class="form-group"> <label class="form-label" for="email">Email</label> <input type="email" class="form-control" id="email" placeholder="[email protected]"> </div> <div class="form-group"> <label class="form-label" for="company">Company</label> <input type="text" class="form-control" id="company" placeholder="Your organization"> </div> <div class="form-group"> <label class="form-label" for="message">Message</label> <textarea class="form-control" id="message" placeholder="Tell us about your AI integration needs"></textarea> </div> <button type="button" class="submit-btn">Request a Consultation</button> <div class="success-message"> Thanks! Our team will contact you within 24 hours. </div> </div> </div> </section> <footer> <div class="container"> <p>© 2023 Nexus.AI — Pioneering the Future of Intelligent Systems</p> </div> </footer> <script> // Create background particles function createParticles() { const container = document.querySelector('.bg-particles'); const particleCount = 15; const colors = ['rgba(0, 242, 254, 0.2)', 'rgba(138, 61, 255, 0.2)']; for (let i = 0; i < particleCount; i++) { const particle = document.createElement('div'); particle.classList.add('particle'); // Random properties const size = Math.random() * 40 + 10; const left = Math.random() * 100; const top = Math.random() * 100; const duration = Math.random() * 30 + 15; const delay = Math.random() * 5; const colorIndex = Math.floor(Math.random() * colors.length); // Apply styles particle.style.width = `${size}px`; particle.style.height = `${size}px`; particle.style.left = `${left}%`; particle.style.top = `${top}%`; particle.style.background = colors[colorIndex]; particle.style.animationDuration = `${duration}s`; particle.style.animationDelay = `${delay}s`; container.appendChild(particle); } } // Initialize the testimonial slider function initTestimonialSlider() { const track = document.querySelector('.testimonial-track'); const testimonials = document.querySelectorAll('.testimonial'); const dots = document.querySelectorAll('.slider-dot'); let currentIndex = 0; // Set initial positions positionTestimonials(); // Position testimonials based on current index function positionTestimonials() { track.style.transform = `translateX(-${currentIndex * 100}%)`; // Update active states testimonials.forEach((testimonial, index) => { if (index === currentIndex) { testimonial.classList.add('active'); } else { testimonial.classList.remove('active'); } }); dots.forEach((dot, index) => { if (index === currentIndex) { dot.classList.add('active'); } else { dot.classList.remove('active'); } }); } // Click event for dots dots.forEach((dot, index) => { dot.addEventListener('click', () => { currentIndex = index; positionTestimonials(); }); }); // Auto rotate setInterval(() => { currentIndex = (currentIndex + 1) % testimonials.length; positionTestimonials(); }, 5000); } // Animate counting for metric values function animateMetricValues() { const metricValues = document.querySelectorAll('.metric-value'); metricValues.forEach(metric => { const targetValue = parseFloat(metric.getAttribute('data-value')); const suffix = metric.getAttribute('data-suffix') || ''; const duration = 2000; // 2 seconds const framesPerSecond = 60; const totalFrames = duration / 1000 * framesPerSecond; let currentFrame = 0; const initialValue = 0; const valueIncrement = (targetValue - initialValue) / totalFrames; const timer = setInterval(() => { currentFrame++; const currentValue = initialValue + (valueIncrement * currentFrame); if (currentFrame === totalFrames) { clearInterval(timer); metric.textContent = targetValue.toLocaleString() + suffix; } else { metric.textContent = Math.floor(currentValue).toLocaleString() + suffix; } }, 1000 / framesPerSecond); }); } // Animate data bars function animateDataBars() { const bars = document.querySelectorAll('.data-bar'); setTimeout(() => { bars.forEach((bar, index) => { setTimeout(() => { const targetHeight = bar.getAttribute('data-height'); bar.style.height = targetHeight; bar.classList.add('animated'); }, index * 200); }); }, 500); } // Form submission function setupFormHandler() { const submitBtn = document.querySelector('.submit-btn'); const form = document.querySelector('.contact-form'); const successMessage = document.querySelector('.success-message'); submitBtn.addEventListener('click', (e) => { e.preventDefault(); // Simple validation const name = document.getElementById('name').value; const email = document.getElementById('email').value; if (name && email) { // In a real implementation, you would send data to a server // For this demo, we'll just show the success message successMessage.style.display = 'block'; // Reset form fields document.getElementById('name').value = ''; document.getElementById('email').value = ''; document.getElementById('company').value = ''; document.getElementById('message').value = ''; // Hide success message after 5 seconds setTimeout(() => { successMessage.style.display = 'none'; }, 5000); } }); } // Cursor glow effect function setupCursorEffect() { const cursor = document.querySelector('.cursor-glow'); document.addEventListener('mousemove', (e) => { cursor.style.opacity = '1'; cursor.style.left = `${e.clientX}px`; cursor.style.top = `${e.clientY}px`; }); document.addEventListener('mouseleave', () => { cursor.style.opacity = '0'; }); } // Smooth scrolling for navigation links function setupSmoothScrolling() { const links = document.querySelectorAll('a[href^="#"]'); links.forEach(link => { link.addEventListener('click', (e) => { e.preventDefault(); const targetId = link.getAttribute('href'); const targetElement = document.querySelector(targetId); if (targetElement) { window.scrollTo({ top: targetElement.offsetTop - 80, behavior: 'smooth' }); } }); }); } // Initialize all functions when DOM is loaded document.addEventListener('DOMContentLoaded', () => { createParticles(); initTestimonialSlider(); setupFormHandler(); setupCursorEffect(); setupSmoothScrolling(); // Observe when elements come into view const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { if (entry.target.id === 'metrics') { animateMetricValues(); animateDataBars(); } } }); }, { threshold:
<html> <head> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } body { background: linear-gradient(135deg, #557153 0%, #7D8F69 50%, #A9B388 100%); color: #fff; overflow-x: hidden; height: 100vh; position: relative; } .container { max-width: 700px; margin: 0 auto; padding: 2rem; height: 100%; overflow-y: auto; overflow-x: hidden; } .header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 2rem; position: relative; } .logo { display: flex; align-items: center; } .logo-icon { width: 40px; height: 40px; margin-right: 10px; background: rgba(255, 255, 255, 0.95); border-radius: 50%; display: flex; justify-content: center; align-items: center; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); position: relative; overflow: hidden; } .logo-icon::before { content: ''; position: absolute; width: 20px; height: 20px; background-color: #557153; border-radius: 50%; animation: pulse 2s infinite; } .logo-text { font-size: 1.5rem; font-weight: 700; letter-spacing: 1px; background: linear-gradient(90deg, #fff, #e0e0e0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .nav-toggle { background: none; border: none; color: white; font-size: 1.5rem; cursor: pointer; transition: transform 0.3s ease; z-index: 100; } .nav-toggle:hover { transform: rotate(90deg); } .nav-menu { position: absolute; top: 0; right: -250px; width: 250px; height: 100vh; background: rgba(85, 113, 83, 0.95); transition: right 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55); z-index: 99; backdrop-filter: blur(10px); padding: 6rem 2rem 2rem; } .nav-menu.active { right: 0; } .nav-item { margin: 1.5rem 0; list-style: none; } .nav-link { color: white; text-decoration: none; font-size: 1.2rem; position: relative; padding: 5px 0; display: inline-block; } .nav-link::after { content: ''; position: absolute; width: 0; height: 2px; bottom: 0; left: 0; background: #fff; transition: width 0.3s ease; } .nav-link:hover::after { width: 100%; } .hero { margin: 2rem 0 4rem; position: relative; } .hero h1 { font-size: 3rem; line-height: 1.2; margin-bottom: 1rem; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2); opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 0.2s; } .hero p { font-size: 1.1rem; line-height: 1.6; margin-bottom: 2rem; opacity: 0.9; max-width: 600px; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 0.4s; } .cta-button { display: inline-block; padding: 12px 24px; background: rgba(255, 255, 255, 0.95); color: #557153; border: none; border-radius: 30px; font-weight: 600; text-decoration: none; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; overflow: hidden; z-index: 1; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s 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: left 0.7s ease; z-index: -1; } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 7px 20px rgba(0, 0, 0, 0.15); } .cta-button:hover::before { left: 100%; } .leaf-particle { position: absolute; width: 15px; height: 15px; background-color: rgba(255, 255, 255, 0.5); border-radius: 30% 70% 70% 30% / 30% 30% 70% 70%; pointer-events: none; z-index: -1; animation: float 10s infinite linear; opacity: 0.6; } .stats-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1.5rem; margin: 3rem 0; } .stat-box { background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(10px); border-radius: 12px; padding: 1.5rem; text-align: center; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer; position: relative; overflow: hidden; opacity: 0; transform: translateY(20px); } .stat-box:nth-child(1) { animation: fadeUp 0.8s forwards 0.8s; } .stat-box:nth-child(2) { animation: fadeUp 0.8s forwards 1s; } .stat-box:nth-child(3) { animation: fadeUp 0.8s forwards 1.2s; } .stat-box::before { content: ''; position: absolute; width: 100%; height: 100%; background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, transparent 100%); top: 0; left: 0; opacity: 0; transition: opacity 0.3s ease; } .stat-box:hover { transform: translateY(-10px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); } .stat-box:hover::before { opacity: 1; } .stat-number { font-size: 2.2rem; font-weight: 700; margin-bottom: 0.5rem; background: linear-gradient(90deg, #fff, #e0e0e0); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .stat-text { font-size: 1rem; opacity: 0.9; } .initiatives-section { margin: 4rem 0; } .section-title { font-size: 2rem; margin-bottom: 2rem; position: relative; display: inline-block; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 1.4s; } .section-title::after { content: ''; position: absolute; width: 60%; height: 3px; background: #fff; bottom: -10px; left: 0; border-radius: 2px; } .initiatives-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 1.6s; } .initiative-card { background: rgba(255, 255, 255, 0.1); border-radius: 12px; overflow: hidden; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease, box-shadow 0.3s ease; cursor: pointer; position: relative; } .initiative-card:hover { transform: translateY(-10px); box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15); } .card-image { width: 100%; height: 150px; background-size: cover; background-position: center; position: relative; } .card-image::before { content: ''; position: absolute; width: 100%; height: 100%; background: linear-gradient(to bottom, transparent 50%, rgba(0, 0, 0, 0.7) 100%); } .image-1 { background-image: url('https://images.unsplash.com/photo-1542601906990-b4d3fb778b09?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2813&q=80'); } .image-2 { background-image: url('https://images.unsplash.com/photo-1532996122724-e3c354a0b15b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2938&q=80'); } .card-content { padding: 1.5rem; } .card-title { font-size: 1.2rem; margin-bottom: 0.5rem; color: #fff; } .card-description { font-size: 0.9rem; line-height: 1.5; color: rgba(255, 255, 255, 0.9); } .pledge-section { background: rgba(0, 0, 0, 0.15); border-radius: 12px; padding: 2.5rem; margin: 3rem 0; position: relative; overflow: hidden; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 1.8s; } .pledge-section::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCI+CjxyZWN0IHdpZHRoPSI1MCIgaGVpZ2h0PSI1MCIgZmlsbD0idHJhbnNwYXJlbnQiPjwvcmVjdD4KPGNpcmNsZSBjeD0iNSIgY3k9IjUiIHI9IjIiIGZpbGw9InJnYmEoMjU1LDI1NSwyNTUsMC4xKSI+PC9jaXJjbGU+Cjwvc3ZnPg=='); opacity: 0.2; z-index: -1; } .pledge-title { font-size: 1.8rem; margin-bottom: 1rem; text-align: center; } .pledge-form { display: flex; flex-direction: column; max-width: 500px; margin: 0 auto; } .form-group { margin-bottom: 1.5rem; position: relative; } .form-label { display: block; margin-bottom: 0.5rem; font-size: 0.9rem; color: rgba(255, 255, 255, 0.9); } .form-input { width: 100%; padding: 0.8rem 1rem; font-size: 1rem; background: rgba(255, 255, 255, 0.9); border: none; border-radius: 8px; color: #557153; transition: box-shadow 0.3s ease; } .form-input:focus { outline: none; box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.3); } .form-input::placeholder { color: #9CB080; } .submit-btn { align-self: center; padding: 12px 30px; background: #557153; color: white; border: none; border-radius: 30px; font-weight: 600; cursor: pointer; transition: background 0.3s ease, transform 0.3s ease; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); } .submit-btn:hover { background: #4A6347; transform: translateY(-3px); } .footer { display: flex; justify-content: space-between; align-items: center; padding: 2rem 0; border-top: 1px solid rgba(255, 255, 255, 0.2); margin-top: 2rem; opacity: 0; transform: translateY(20px); animation: fadeUp 0.8s forwards 2s; } .footer-text { font-size: 0.9rem; color: rgba(255, 255, 255, 0.7); } .social-icons { display: flex; gap: 1rem; } .social-icon { width: 36px; height: 36px; background: rgba(255, 255, 255, 0.1); display: flex; justify-content: center; align-items: center; border-radius: 50%; transition: background 0.3s ease, transform 0.3s ease; cursor: pointer; } .social-icon:hover { background: rgba(255, 255, 255, 0.2); transform: translateY(-3px); } .social-icon i { color: white; font-size: 1rem; } .success-message { position: fixed; top: 20px; left: 50%; transform: translateX(-50%) translateY(-100px); background: #4CAF50; color: white; padding: 15px 25px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2); z-index: 1000; transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55); display: flex; align-items: center; gap: 10px; } .success-message.active { transform: translateX(-50%) translateY(0); } .success-message i { font-size: 1.2rem; } .close-message { background: none; border: none; color: white; margin-left: 10px; cursor: pointer; opacity: 0.8; transition: opacity 0.3s ease; } .close-message:hover { opacity: 1; } .ripple { position: absolute; border-radius: 50%; background: rgba(255, 255, 255, 0.4); transform: scale(0); animation: ripple 0.6s linear; pointer-events: none; } @keyframes ripple { to { transform: scale(4); opacity: 0; } } @keyframes fadeUp { to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } } @keyframes float { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 10% { opacity: 0.8; } 100% { transform: translate(100px, -100px) rotate(360deg); opacity: 0; } } @media (max-width: 768px) { .container { padding: 1.5rem; } .hero h1 { font-size: 2.2rem; } .initiatives-grid { grid-template-columns: 1fr; } .stats-container { grid-template-columns: 1fr; } .pledge-section { padding: 1.5rem; } .footer { flex-direction: column; gap: 1rem; text-align: center; } } </style> <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;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"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> </head> <body> <div class="container"> <header class="header"> <div class="logo"> <div class="logo-icon"> <i class="fas fa-leaf" style="color: #557153; z-index: 2;"></i> </div> <div class="logo-text">EcoRevive</div> </div> <button class="nav-toggle" id="navToggle"> <i class="fas fa-bars"></i> </button> <nav class="nav-menu" id="navMenu"> <ul> <li class="nav-item"><a href="#" class="nav-link">About</a></li> <li class="nav-item"><a href="#" class="nav-link">Initiatives</a></li> <li class="nav-item"><a href="#" class="nav-link">Take Action</a></li> <li class="nav-item"><a href="#" class="nav-link">Resources</a></li> <li class="nav-item"><a href="#" class="nav-link">Contact</a></li> </ul> </nav> </header> <section class="hero"> <h1>Restore Our Earth, <br>One Step at a Time</h1> <p>Join our growing community of eco-warriors committed to making tangible changes through targeted local actions. Together, we can restore biodiversity, reduce waste, and build a sustainable future.</p> <a href="#pledge" class="cta-button">Join the Movement</a> </section> <div class="stats-container"> <div class="stat-box"> <div class="stat-number" id="counter1">0</div> <div class="stat-text">Trees Planted This Year</div> </div> <div class="stat-box"> <div class="stat-number" id="counter2">0</div> <div class="stat-text">Kg Waste Recycled</div> </div> <div class="stat-box"> <div class="stat-number" id="counter3">0</div> <div class="stat-text">Active Volunteers</div> </div> </div> <section class="initiatives-section"> <h2 class="section-title">Our Key Initiatives</h2> <div class="initiatives-grid"> <div class="initiative-card"> <div class="card-image image-1"></div> <div class="card-content"> <h3 class="card-title">Urban Reforestation</h3> <p class="card-description">Transforming concrete jungles into green havens through strategic tree planting in urban centers, creating microclimates that naturally cool our cities.</p> </div> </div> <div class="initiative-card"> <div class="card-image image-2"></div> <div class="card-content"> <h3 class="card-title">Zero-Waste Communities</h3> <p class="card-description">Building neighborhood waste reduction systems and sharing economies that minimize landfill contributions while strengthening community bonds.</p> </div> </div> </div> </section> <section class="pledge-section" id="pledge"> <h2 class="pledge-title">Take the EcoRevive Pledge</h2> <form class="pledge-form" id="pledgeForm"> <div class="form-group"> <label for="name" class="form-label">Your Name</label> <input type="text" id="name" class="form-input" placeholder="e.g., Robin Green" required> </div> <div class="form-group"> <label for="email" class="form-label">Email Address</label> <input type="email" id="email" class="form-input" placeholder="[email protected]" required> </div> <div class="form-group"> <label for="commitment" class="form-label">I pledge to:</label> <select id="commitment" class="form-input" required> <option value="" disabled selected>Select your commitment</option> <option value="plant">Plant 5 native trees this season</option> <option value="reduce">Reduce my household waste by 50%</option> <option value="volunteer">Volunteer 4 hours monthly for local cleanups</option> <option value="educate">Educate 10 people about sustainability</option> </select> </div> <button type="submit" class="submit-btn" id="submitBtn">Submit My Pledge</button> </form> </section> <footer class="footer"> <div class="footer-text">© 2023 EcoRevive. All rights reserved.</div> <div class="social-icons"> <div class="social-icon"><i class="fab fa-instagram"></i></div> <div class="social-icon"><i class="fab fa-twitter"></i></div> <div class="social-icon"><i class="fab fa-facebook-f"></i></div> </div> </footer> </div> <div class="success-message" id="successMessage"> <i class="fas fa-check-circle"></i> <span>Thank you for joining our movement!</span> <button class="close-message" id="closeMessage"><i class="fas fa-times"></i></button> </div> <script> // Menu toggle const navToggle = document.getElementById('navToggle'); const navMenu = document.getElementById('navMenu'); navToggle.addEventListener('click', () => { navMenu.classList.toggle('active'); // Add ripple effect to the toggle button const ripple = document.createElement('span'); ripple.classList.add('ripple'); navToggle.appendChild(ripple); const rect = navToggle.getBoundingClientRect(); const size = Math.max(rect.width, rect.height); ripple.style.width = ripple.style.height = `${size}px`; ripple.style.left = `${event.clientX - rect.left - size / 2}px`; ripple.style.top = `${event.clientY - rect.top - size / 2}px`; setTimeout(() => ripple.remove(), 600); }); // Create leaf particles function createLeafParticles() { const container = document.querySelector('.container'); const colors = ['#557153', '#7D8F69', '#A9B388', '#BAC7A7']; for (let i = 0; i < 15; i++) { const leaf = document.createElement('div'); leaf.classList.add('leaf-particle'); // Random properties const size = Math.random() * 10 + 5; const startPositionX = Math.random() * container.offsetWidth; const startPositionY = Math.random() * container.offsetHeight; const duration = Math.random() * 15 + 10; const delay = Math.random() * 5; const rotationSpeed = Math.random() * 360; const color = colors[Math.floor(Math.random() * colors.length)]; // Apply styles leaf.style.width = `${size}px`; leaf.style.height = `${size}px`; leaf.style.left = `${startPositionX}px`; leaf.style.top = `${startPositionY}px`; leaf.style.backgroundColor = color; leaf.style.animationDuration = `${duration}s`; leaf.style.animationDelay = `${delay}s`; leaf.style.transform = `rotate(${rotationSpeed}deg)`; container.appendChild(leaf); } } createLeafParticles(); // Counter animation function animateCounter(element, target, duration) { let start = 0; const increment = target / (duration / 16); function updateCount() { start += increment; if (start >= target) { element.textContent = target.toLocaleString(); return; } element.textContent = Math.floor(start).toLocaleString(); requestAnimationFrame(updateCount); } updateCount(); } // Intersection Observer for counters const counters = document.querySelectorAll('.stat-number'); const counterValues = [3450, 12680, 547]; // Target values const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const counter = entry.target; const index = Array.from(counters).indexOf(counter); animateCounter(counter, counterValues[index], 2000); observer.unobserve(counter); } }); }, { threshold: 0.5 }); counters.forEach(counter => { observer.observe(counter); }); // Form submission const pledgeForm = document.getElementById('pledgeForm'); const successMessage = document.getElementById('successMessage'); const closeMessage = document.getElementById('closeMessage'); pledgeForm.addEventListener('submit', (e) => { e.preventDefault(); // Add button ripple effect const submitBtn = document.getElementById('submitBtn'); const ripple = document.createElement('span'); ripple.classList.add('ripple'); submitBtn.appendChild(ripple); const rect = submitBtn.getBoundingClientRect(); const size = Math.max(rect.width, rect.height); ripple.style.width = ripple.style.height = `${size}px`; ripple.style.left = `${e.clientX - rect.left - size / 2}px`; ripple.style.top = `${e.clientY - rect.top - size / 2}px`; // Show success message after form submission setTimeout(() => { ripple.remove(); successMessage.classList.add('active'); // Reset form pledgeForm.reset(); // Hide success message after 5 seconds setTimeout(() => { successMessage.classList.remove('active'); }, 5000); }, 600); }); closeMessage.addEventListener('click', () => { successMessage.classList.remove('active'); }); // Add ripple effect to all buttons and clickable elements const buttons = document.querySelectorAll('.cta-button, .social-icon, .nav-link, .submit-btn'); buttons.forEach(button => { button.addEventListener('click', (e) => { const ripple = document.createElement('span'); ripple.classList.add('ripple'); button.appendChild(ripple); const rect = button.getBoundingClientRect(); const size = Math.max(rect.width, rect.height); ripple.style.width = ripple.style.height = `${size}px`; ripple.style.left = `${e.clientX - rect.left - size / 2}px`; ripple.style.top = `${e.clientY - rect.top - size / 2}px`; setTimeout(() => ripple.remove(), 600); }); }); // Initiative cards hover effect const cards = document.querySelectorAll('.initiative-card'); cards.forEach(card => { card.addEventListener('mouseenter', () => { const otherCards = Array.from(cards).filter(c => c !== card); otherCards.forEach(c => { c.style.opacity = '0.7'; c.style.transform = 'scale(0.98)'; }); }); card.addEventListener('mouseleave', () => { cards.forEach(c => { c.style.opacity = '1'; c.style.transform = ''; }); }); }); // Prevent actual form submission and link navigation document.addEventListener('click', (e) => { if (e.target.tagName === 'A' || e.target.closest('a')) { e.preventDefault(); } }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Serene - Health & Wellness Tracker</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif; } :root { --primary-gradient: linear-gradient(135deg, #4ECDC4 0%, #2E8BC0 100%); --secondary-gradient: linear-gradient(135deg, #2E8BC0 0%, #4ECDC4 100%); --accent-color: #1A535C; --text-color: #333; --light-text: #fff; --shadow: 0 8px 30px rgba(0, 0, 0, 0.12); --card-bg: rgba(255, 255, 255, 0.85); --progress-bg: rgba(255, 255, 255, 0.3); } body { background: var(--primary-gradient); color: var(--text-color); min-height: 100vh; display: flex; justify-content: center; align-items: center; padding: 20px; overflow-x: hidden; } .container { width: 100%; max-width: 680px; height: 660px; background: var(--card-bg); backdrop-filter: blur(10px); border-radius: 24px; box-shadow: var(--shadow); padding: 30px; position: relative; overflow: hidden; display: flex; flex-direction: column; } .bg-pattern { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: radial-gradient(circle at 20% 80%, rgba(78, 205, 196, 0.1) 0%, transparent 50%), radial-gradient(circle at 80% 20%, rgba(46, 139, 192, 0.1) 0%, transparent 50%); z-index: -1; } header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; } .logo { font-size: 26px; font-weight: 700; color: var(--accent-color); display: flex; align-items: center; } .logo-icon { margin-right: 10px; background: var(--primary-gradient); border-radius: 10px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: white; } .date { color: var(--accent-color); font-weight: 500; font-size: 14px; } .welcome { margin-bottom: 30px; } .welcome h2 { font-size: 20px; margin-bottom: 10px; color: var(--accent-color); } .welcome p { font-size: 14px; line-height: 1.6; opacity: 0.8; } .stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; margin-bottom: 30px; } .stat-card { background: white; border-radius: 16px; padding: 20px; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; cursor: pointer; position: relative; overflow: hidden; } .stat-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1); } .stat-card:hover .stat-icon { transform: scale(1.1); } .stat-card::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 4px; background: var(--secondary-gradient); transform: scaleX(0); transform-origin: left; transition: transform 0.3s ease; } .stat-card:hover::after { transform: scaleX(1); } .stat-icon { width: 36px; height: 36px; border-radius: 50%; background: var(--primary-gradient); display: flex; justify-content: center; align-items: center; margin-bottom: 12px; transition: transform 0.3s ease; } .stat-icon svg { width: 18px; height: 18px; fill: white; } .stat-number { font-size: 22px; font-weight: 700; margin-bottom: 5px; color: var(--accent-color); } .stat-label { font-size: 13px; opacity: 0.7; } .progress-section { margin-bottom: 30px; } .progress-section h3 { font-size: 16px; margin-bottom: 15px; color: var(--accent-color); display: flex; align-items: center; justify-content: space-between; } .progress-section h3 span { font-size: 13px; opacity: 0.7; font-weight: normal; } .progress-container { position: relative; height: 14px; background: var(--progress-bg); border-radius: 10px; overflow: hidden; margin-bottom: 15px; } .progress-bar { position: absolute; top: 0; left: 0; height: 100%; background: var(--primary-gradient); border-radius: 10px; transition: width 1s cubic-bezier(0.65, 0, 0.35, 1); width: 0; } .today-activities { flex-grow: 1; overflow-y: auto; margin-bottom: 15px; } .activity-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; } .activity-header h3 { font-size: 16px; color: var(--accent-color); } .view-all { font-size: 13px; color: var(--accent-color); text-decoration: none; opacity: 0.8; transition: opacity 0.2s; } .view-all:hover { opacity: 1; } .activity-list { display: flex; flex-direction: column; gap: 12px; } .activity-item { display: flex; align-items: center; padding: 12px 15px; background: white; border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; } .activity-item:hover { transform: translateX(5px); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .activity-icon { width: 36px; height: 36px; border-radius: 10px; background: var(--primary-gradient); display: flex; justify-content: center; align-items: center; margin-right: 15px; } .activity-icon svg { width: 18px; height: 18px; fill: white; } .activity-details { flex-grow: 1; } .activity-name { font-weight: 600; margin-bottom: 3px; color: var(--accent-color); } .activity-time { font-size: 12px; opacity: 0.7; } .activity-status { font-size: 12px; font-weight: 500; padding: 4px 8px; border-radius: 10px; background: rgba(78, 205, 196, 0.15); color: #4ECDC4; } .upcoming { background: rgba(46, 139, 192, 0.15); color: #2E8BC0; } .add-button { position: fixed; bottom: 30px; right: 30px; width: 60px; height: 60px; border-radius: 50%; background: var(--secondary-gradient); color: var(--light-text); border: none; display: flex; justify-content: center; align-items: center; box-shadow: 0 6px 20px rgba(46, 139, 192, 0.4); cursor: pointer; transition: all 0.3s ease; } .add-button:hover { transform: scale(1.1); box-shadow: 0 8px 25px rgba(46, 139, 192, 0.5); } .add-button svg { width: 24px; height: 24px; fill: white; } .bottom-nav { display: flex; justify-content: space-around; padding: 15px 0; background: white; border-radius: 16px; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.05); } .nav-item { display: flex; flex-direction: column; align-items: center; color: #aaa; transition: all 0.3s ease; cursor: pointer; } .nav-item.active { color: var(--accent-color); } .nav-item:hover { color: var(--accent-color); } .nav-icon { margin-bottom: 5px; } .nav-label { font-size: 11px; font-weight: 500; } /* Custom scrollbar */ .today-activities::-webkit-scrollbar { width: 6px; } .today-activities::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.05); border-radius: 10px; } .today-activities::-webkit-scrollbar-thumb { background: rgba(46, 139, 192, 0.3); border-radius: 10px; } .today-activities::-webkit-scrollbar-thumb:hover { background: rgba(46, 139, 192, 0.5); } /* Water wave animation */ .water-animation { position: absolute; bottom: 0; left: 0; width: 100%; height: 20%; background: linear-gradient(180deg, rgba(78, 205, 196, 0) 0%, rgba(78, 205, 196, 0.05) 100%); z-index: -1; transform-origin: 50% 100%; animation: wave 8s infinite linear; } .water-animation::before { content: ''; position: absolute; bottom: 0; left: 0; width: 200%; height: 100%; background: url("data:image/svg+xml,%3Csvg viewBox='0 0 1200 120' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'%3E%3Cpath d='M0 0v46.29c47.79 22.2 103.59 32.17 158 28 70.36-5.37 136.33-33.31 206.8-37.5 73.84-4.36 147.54 16.88 218.2 35.26 69.27 18 138.3 24.88 209.4 13.08 36.15-6 69.85-17.84 104.45-29.34C989.49 25 1113-14.29 1200 52.47V0z' opacity='.25' fill='%232E8BC0'/%3E%3Cpath d='M0 0v15.81c13 21.11 27.64 41.05 47.69 56.24C99.41 111.27 165 111 224.58 91.58c31.15-10.15 60.09-26.07 89.67-39.8 40.92-19 84.73-46 130.83-49.67 36.26-2.85 70.9 9.42 98.6 31.56 31.77 25.39 62.32 62 103.63 73 40.44 10.79 81.35-6.69 119.13-24.28s75.16-39 116.92-43.05c59.73-5.85 113.28 22.88 168.9 38.84 30.2 8.66 59 6.17 87.09-7.5 22.43-10.89 48-26.93 60.65-49.24V0z' opacity='.5' fill='%232E8BC0'/%3E%3Cpath d='M0 0v5.63C149.93 59 314.09 71.32 475.83 42.57c43-7.64 84.23-20.12 127.61-26.46 59-8.63 112.48 12.24 165.56 35.4C827.93 77.22 886 95.24 951.2 90c86.53-7 172.46-45.71 248.8-84.81V0z' fill='%232E8BC0' opacity='.2'/%3E%3C/svg%3E") repeat-x; background-size: 1200px 100%; animation: wave-move 12s infinite linear; } @keyframes wave { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } } @keyframes wave-move { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } /* Tooltip styles */ .tooltip { position: absolute; background: var(--accent-color); color: white; padding: 8px 12px; border-radius: 8px; font-size: 12px; z-index: 10; opacity: 0; transform: translateY(10px); transition: all 0.3s ease; pointer-events: none; white-space: nowrap; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15); } .tooltip::after { content: ''; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: var(--accent-color) transparent transparent transparent; } /* Responsive adjustments */ @media (max-width: 600px) { .stats { grid-template-columns: repeat(3, 1fr); gap: 10px; } .stat-card { padding: 15px; } .stat-number { font-size: 18px; } .stat-label { font-size: 11px; } .activity-item { padding: 10px; } .activity-icon { width: 30px; height: 30px; margin-right: 10px; } .activity-name { font-size: 14px; } .container { padding: 20px; height: 600px; } } </style> </head> <body> <div class="container"> <div class="bg-pattern"></div> <div class="water-animation"></div> <header> <div class="logo"> <div class="logo-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"> <path d="M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z"></path> <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> Serene </div> <div class="date" id="current-date">May 15, 2023</div> </header> <div class="welcome"> <h2>Welcome back, Alex</h2> <p>You're making excellent progress on your wellness goals! Just 1,200 more steps to reach your daily target.</p> </div> <div class="stats"> <div class="stat-card" id="steps-card"> <div class="stat-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M19 5.5c-1.5 0-2.7 1.2-2.7 2.7 0 1.5 1.2 2.7 2.7 2.7 1.5 0 2.7-1.2 2.7-2.7 0-1.5-1.2-2.7-2.7-2.7zm0 8.3c-1.9 0-3.6.8-4.8 2.1.9 1.5 1.5 3.2 1.5 5.1h6.6c.6 0 1.1-.5 1.1-1.1v-1.1c.1-2.7-2-5-4.4-5zM5 5.5C3.5 5.5 2.3 6.7 2.3 8.2c0 1.5 1.2 2.7 2.7 2.7 1.5 0 2.7-1.2 2.7-2.7 0-1.5-1.2-2.7-2.7-2.7zm0 8.3c-2.4 0-4.5 2.3-4.5 5v1.1c0 .6.5 1.1 1.1 1.1h6.6c0-1.9.6-3.6 1.5-5.1-1.2-1.3-2.9-2.1-4.7-2.1zm7-8.3c-1.5 0-2.7 1.2-2.7 2.7 0 1.5 1.2 2.7 2.7 2.7 1.5 0 2.7-1.2 2.7-2.7 0-1.5-1.2-2.7-2.7-2.7zm0 8.3c-2.4 0-4.5 2.3-4.5 5v1.1c0 .6.5 1.1 1.1 1.1h6.6c.6 0 1.1-.5 1.1-1.1v-1.1c.1-2.7-2-5-4.3-5z"/> </svg> </div> <div class="stat-number" id="steps-count">8,800</div> <div class="stat-label">Steps</div> </div> <div class="stat-card" id="water-card"> <div class="stat-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M12 2c-5.33 4.55-8 8.48-8 11.8 0 4.98 3.8 8.2 8 8.2s8-3.22 8-8.2c0-3.32-2.67-7.25-8-11.8zm0 18c-3.35 0-6-2.57-6-6.2 0-2.34 1.95-5.44 6-9.14 4.05 3.7 6 6.79 6 9.14 0 3.63-2.65 6.2-6 6.2zm-4.17-6c.37 0 .67.26.74.62.41 2.22 2.28 2.98 3.64 2.87.43-.02.79.32.79.75 0 .4-.32.73-.72.75-2.13.13-4.62-1.09-5.19-4.12-.08-.45.28-.87.74-.87z"/> </svg> </div> <div class="stat-number" id="water-count">5/8</div> <div class="stat-label">Water (cups)</div> </div> <div class="stat-card" id="sleep-card"> <div class="stat-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M12.34 2.02C6.59 1.82 2 6.42 2 12c0 5.52 4.48 10 10 10 3.71 0 6.93-2.02 8.66-5.02-7.51-.25-12.09-8.43-8.32-14.96z"/> </svg> </div> <div class="stat-number" id="sleep-count">7.5h</div> <div class="stat-label">Sleep</div> </div> </div> <div class="progress-section"> <h3>Daily Goal Progress <span>8,800 / 10,000 steps</span></h3> <div class="progress-container"> <div class="progress-bar" id="steps-progress"></div> </div> </div> <div class="today-activities"> <div class="activity-header"> <h3>Today's Activities</h3> <a href="#" class="view-all">View All</a> </div> <div class="activity-list"> <div class="activity-item"> <div class="activity-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M13.49 5.48c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-3.6 13.9l1-4.4 2.1 2v6h2v-7.5l-2.1-2 .6-3c1.3 1.5 3.3 2.5 5.5 2.5v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1l-5.2 2.2v4.7h2v-3.4l1.8-.7-1.6 8.1-4.9-1-.4 2 7 1.4z"/> </svg> </div> <div class="activity-details"> <div class="activity-name">Morning Yoga</div> <div class="activity-time">7:30 AM - 8:00 AM</div> </div> <div class="activity-status">Completed</div> </div> <div class="activity-item"> <div class="activity-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M20 3H4v10c0 2.21 1.79 4 4 4h6c2.21 0 4-1.79 4-4v-3h2c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z"/> </svg> </div> <div class="activity-details"> <div class="activity-name">Hydration Reminder</div> <div class="activity-time">Every 2 hours</div> </div> <div class="activity-status">Active</div> </div> <div class="activity-item"> <div class="activity-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M20.38 8.57l-1.23 1.85a8 8 0 0 1-.22 7.58H5.07A8 8 0 0 1 15.58 6.85l1.85-1.23A10 10 0 0 0 3.35 19a2 2 0 0 0 1.72 1h13.85a2 2 0 0 0 1.74-1 10 10 0 0 0-.27-10.44zm-9.79 6.84a2 2 0 0 0 2.83 0l5.66-8.49-8.49 5.66a2 2 0 0 0 0 2.83z"/> </svg> </div> <div class="activity-details"> <div class="activity-name">Evening Run</div> <div class="activity-time">6:00 PM - 6:45 PM</div> </div> <div class="activity-status upcoming">Upcoming</div> </div> <div class="activity-item"> <div class="activity-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M12 6c1.11 0 2-.9 2-2 0-1.11-.9-2-2-2s-2 .89-2 2c0 1.1.9 2 2 2zm10 9h-6v1c0 .55-.45 1-1 1h-2c-.55 0-1-.45-1-1v-1H6c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1zm-9.5-6c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V11h3V9zm5 0c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5V11h3V9zm-10-2c0-.83-.67-1.5-1.5-1.5S4.5 6.17 4.5 7V11h3V7z"/> </svg> </div> <div class="activity-details"> <div class="activity-name">Mindfulness Session</div> <div class="activity-time">9:00 PM - 9:15 PM</div> </div> <div class="activity-status upcoming">Upcoming</div> </div> </div> </div> <div class="bottom-nav"> <div class="nav-item active" id="home-nav"> <div class="nav-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="currentColor"> <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/> </svg> </div> <div class="nav-label">Home</div> </div> <div class="nav-item" id="stats-nav"> <div class="nav-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="currentColor"> <path d="M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z"/> </svg> </div> <div class="nav-label">Stats</div> </div> <div class="nav-item" id="profile-nav"> <div class="nav-icon"> <svg xmlns="http://www.w3.org/2000/svg" width="22" height="22" viewBox="0 0 24 24" fill="currentColor"> <path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/> </svg> </div> <div class="nav-label">Profile</div> </div> </div> </div> <button class="add-button" id="add-activity"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/> </svg> </button> <div class="tooltip" id="tooltip"></div> <script> document.addEventListener('DOMContentLoaded', function() { // Set current date const now = new Date(); const options = { month: 'long', day: 'numeric', year: 'numeric' }; document.getElementById('current-date').textContent = now.toLocaleDateString('en-US', options); // Animate progress bar setTimeout(() => { const progressBar = document.getElementById('steps-progress'); progressBar.style.width = '88%'; // 8,800 of 10,000 steps }, 300); // Card hover effects with tooltips const stepsCard = document.getElementById('steps-card'); const waterCard = document.getElementById('water-card'); const sleepCard = document.getElementById('sleep-card'); const tooltip = document.getElementById('tooltip'); function showTooltip(element, text) { const rect = element.getBoundingClientRect(); tooltip.textContent = text; tooltip.style.opacity = '1'; tooltip.style.transform = 'translateY(0)'; tooltip.style.left = rect.left + rect.width / 2 - tooltip.offsetWidth / 2 + 'px'; tooltip.style.top = rect.top - tooltip.offsetHeight - 10 + 'px'; } function hideTooltip() { tooltip.style.opacity = '0'; tooltip.style.transform = 'translateY(10px)'; } stepsCard.addEventListener('mouseenter', () => { showTooltip(stepsCard, 'Goal: 10,000 steps daily'); }); stepsCard.addEventListener('mouseleave', hideTooltip); waterCard.addEventListener('mouseenter', () => { showTooltip(waterCard, 'Goal: 8 cups of water daily'); }); waterCard.addEventListener('mouseleave', hideTooltip); sleepCard.addEventListener('mouseenter', () => { showTooltip(sleepCard, 'Goal: 8 hours of sleep daily'); }); sleepCard.addEventListener('mouseleave', hideTooltip); // Increment stats on click let stepsCount = 8800; let waterCount = 5; let sleepHours = 7.5; stepsCard.addEventListener('click', function() { stepsCount += 100; document.getElementById('steps-count').textContent = (stepsCount).toLocaleString(); const newPercentage = (stepsCount / 10000) * 100; document.getElementById('steps-progress').style.width = `${Math.min(newPercentage, 100)}%`; document.querySelector('.progress-section h3 span').textContent = `${stepsCount.toLocaleString()} / 10,000 steps`; // Animation effect this.style.transform = 'scale(0.95)'; setTimeout(() => { this.style.transform = 'translateY(-5px)'; }, 150); }); waterCard.addEventListener('click', function() { if (waterCount < 8) { waterCount++; document.getElementById('water-count').textContent = `${waterCount}/8`; } // Animation effect this.style.transform = 'scale(0.95)'; setTimeout(() => { this.style.transform = 'translateY(-5px)'; }, 150); }); sleepCard.addEventListener('click', function() { sleepHours = Math.round((sleepHours + 0.1) * 10) / 10; if (sleepHours > 12) sleepHours = 6; document.getElementById('sleep-count').textContent = `${sleepHours}h`; // Animation effect this.style.transform = 'scale(0.95)'; setTimeout(() => { this.style.transform = 'translateY(-5px)'; }, 150); }); // Navigation interactions const navItems = document.querySelectorAll('.nav-item'); navItems.forEach(item => { item.addEventListener('click', function() { navItems.forEach(navItem => navItem.classList.remove('active')); this.classList.add('active'); }); }); // Add activity button animation const addButton = document.getElementById('add-activity'); addButton.addEventListener('click', function() { this.style.transform = 'scale(0.9) rotate(45deg)'; setTimeout(() => { this.style.transform = 'scale(1.1)'; }, 200); setTimeout(() => { this.style.transform = 'scale(1)'; }, 400); // Create new activity animation const activityList = document.querySelector('.activity-list'); const newActivity = document.createElement('div'); newActivity.className = 'activity-item'; newActivity.innerHTML = ` <div class="activity-icon"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> <path d="M12 6c1.11 0 2-.9 2-2 0-1.11-.9-2-2-2s-2 .89-2 2c0 1.1.9 2 2 2zm10 9h-6v1c0 .55-.45 1-1 1h-2c-.55 0-1-.45-1-1v-1H6c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1z"/> </svg>
<html> <head> <title>Neon Spark Gaming Platform</title> <style> :root { --neon-green: #39ff14; --neon-green-dark: #32d812; --dark-bg: #0a0a0a; --mid-bg: #121212; --light-bg: #1e1e1e; --text-primary: #ffffff; --text-secondary: #b3b3b3; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Rajdhani', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background: var(--dark-bg); color: var(--text-primary); height: 100vh; width: 100%; overflow-x: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; } .container { max-width: 700px; width: 100%; height: 700px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: var(--neon-green) var(--dark-bg); position: relative; } .container::-webkit-scrollbar { width: 6px; } .container::-webkit-scrollbar-track { background: var(--dark-bg); } .container::-webkit-scrollbar-thumb { background-color: var(--neon-green); border-radius: 10px; } header { position: sticky; top: 0; z-index: 10; background: linear-gradient(135deg, var(--dark-bg), rgba(10, 10, 10, 0.9)); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 1rem; border-bottom: 1px solid rgba(57, 255, 20, 0.3); display: flex; justify-content: space-between; align-items: center; } .logo { display: flex; align-items: center; gap: 0.5rem; } .logo-text { font-size: 1.5rem; font-weight: 700; background: linear-gradient(to right, #ffffff, var(--neon-green)); -webkit-background-clip: text; background-clip: text; color: transparent; letter-spacing: 1px; } .logo-icon { width: 2rem; height: 2rem; display: flex; align-items: center; justify-content: center; background: var(--dark-bg); border-radius: 8px; border: 1px solid var(--neon-green); box-shadow: 0 0 10px rgba(57, 255, 20, 0.5); } .nav-toggle { background: transparent; border: none; color: var(--neon-green); font-size: 1.5rem; cursor: pointer; } .hero-banner { background: linear-gradient(170deg, var(--dark-bg), var(--mid-bg)); margin-top: 1rem; border-radius: 12px; overflow: hidden; position: relative; padding: 1.5rem; display: flex; flex-direction: column; gap: 1rem; height: 200px; border: 1px solid rgba(57, 255, 20, 0.1); } .hero-banner::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 70% 30%, rgba(57, 255, 20, 0.15), transparent 70%); z-index: 0; } .hero-banner::after { content: ''; position: absolute; bottom: 0; right: 0; width: 150px; height: 150px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='150' viewBox='0 0 150 150'%3E%3Cpath d='M75 10L90 40L120 50L90 60L75 90L60 60L30 50L60 40L75 10Z' fill='none' stroke='%2339ff14' stroke-width='2'/%3E%3C/svg%3E") no-repeat; opacity: 0.3; z-index: 0; } .hero-title { position: relative; z-index: 1; font-size: 2rem; font-weight: 800; letter-spacing: 1px; text-shadow: 0 0 10px rgba(57, 255, 20, 0.5); margin-bottom: 0.5rem; } .hero-title span { color: var(--neon-green); } .hero-description { position: relative; z-index: 1; font-size: 1rem; color: var(--text-secondary); max-width: 80%; } .cta-button { position: relative; z-index: 1; background: linear-gradient(90deg, #39ff14, #32d812); border: none; color: var(--dark-bg); font-weight: bold; padding: 0.8rem 1.5rem; border-radius: 6px; font-size: 1rem; cursor: pointer; margin-top: 1rem; transition: all 0.3s ease; align-self: flex-start; text-transform: uppercase; letter-spacing: 1px; box-shadow: 0 0 20px rgba(57, 255, 20, 0.3); } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 0 30px rgba(57, 255, 20, 0.5); } .cta-button:active { transform: translateY(1px); box-shadow: 0 0 10px rgba(57, 255, 20, 0.3); } .section-title { margin: 2rem 0 1rem; font-size: 1.3rem; color: var(--text-primary); position: relative; display: inline-block; } .section-title::after { content: ''; position: absolute; left: 0; bottom: -5px; width: 40%; height: 3px; background: var(--neon-green); border-radius: 3px; } .games-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 1rem; margin-top: 1rem; } .game-card { background: var(--mid-bg); border-radius: 8px; overflow: hidden; transition: all 0.3s ease; border: 1px solid rgba(57, 255, 20, 0.1); position: relative; cursor: pointer; } .game-card:hover { transform: translateY(-5px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.3); border-color: var(--neon-green); } .game-card:hover .game-img::after { opacity: 0.7; } .game-img { height: 100px; position: relative; overflow: hidden; } .game-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; } .game-card:hover .game-img img { transform: scale(1.1); } .game-img::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(0deg, rgba(57, 255, 20, 0.2), transparent); opacity: 0; transition: opacity 0.3s ease; } .game-info { padding: 0.7rem; } .game-title { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.3rem; } .game-meta { display: flex; justify-content: space-between; font-size: 0.75rem; color: var(--text-secondary); } .game-tag { display: inline-block; background: rgba(57, 255, 20, 0.2); color: var(--neon-green); padding: 0.2rem 0.5rem; border-radius: 4px; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.5px; } .live-streams { display: flex; flex-direction: column; gap: 1rem; margin-top: 1rem; } .stream-card { display: flex; gap: 1rem; background: var(--mid-bg); padding: 1rem; border-radius: 8px; border-left: 3px solid var(--neon-green); transition: all 0.3s ease; cursor: pointer; } .stream-card:hover { transform: translateX(5px); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); background: var(--light-bg); } .stream-thumbnail { width: 80px; height: 80px; border-radius: 6px; overflow: hidden; position: relative; } .stream-thumbnail img { width: 100%; height: 100%; object-fit: cover; } .live-indicator { position: absolute; top: 5px; left: 5px; background: rgba(255, 0, 0, 0.7); color: white; font-size: 0.6rem; padding: 0.2rem 0.4rem; border-radius: 3px; font-weight: bold; text-transform: uppercase; } .stream-info { flex: 1; display: flex; flex-direction: column; justify-content: space-between; } .stream-title { font-size: 1rem; font-weight: 600; } .streamer-name { font-size: 0.8rem; color: var(--neon-green); } .stream-meta { display: flex; align-items: center; gap: 1rem; font-size: 0.8rem; color: var(--text-secondary); } .viewer-count, .game-name { display: flex; align-items: center; gap: 0.3rem; } .upcoming-tournaments { margin-top: 1rem; display: flex; flex-direction: column; gap: 1rem; } .tournament-card { background: var(--mid-bg); border-radius: 8px; padding: 1rem; transition: all 0.3s ease; border: 1px solid rgba(57, 255, 20, 0.1); position: relative; overflow: hidden; cursor: pointer; } .tournament-card:hover { transform: translateY(-3px); border-color: var(--neon-green); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); } .tournament-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.8rem; } .tournament-title { font-size: 1.1rem; font-weight: 600; } .prize-pool { background: rgba(57, 255, 20, 0.15); color: var(--neon-green); padding: 0.3rem 0.6rem; border-radius: 4px; font-size: 0.8rem; font-weight: 600; } .tournament-details { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 0.8rem; } .tournament-detail { display: flex; flex-direction: column; gap: 0.2rem; } .detail-label { font-size: 0.7rem; color: var(--text-secondary); text-transform: uppercase; letter-spacing: 0.5px; } .detail-value { font-size: 0.9rem; font-weight: 500; } .detail-value.highlight { color: var(--neon-green); } .tournament-cta { display: flex; justify-content: flex-end; margin-top: 0.5rem; } .tournament-button { background: transparent; color: var(--neon-green); border: 1px solid var(--neon-green); padding: 0.4rem 0.8rem; border-radius: 4px; font-size: 0.8rem; cursor: pointer; transition: all 0.3s ease; } .tournament-button:hover { background: rgba(57, 255, 20, 0.1); box-shadow: 0 0 10px rgba(57, 255, 20, 0.3); } footer { margin-top: 2rem; padding: 1.5rem 0; text-align: center; border-top: 1px solid rgba(57, 255, 20, 0.1); font-size: 0.8rem; color: var(--text-secondary); } .loading-bar { position: fixed; top: 0; left: 0; height: 3px; background: linear-gradient(to right, var(--neon-green), var(--neon-green-dark)); width: 0%; transition: width 0.3s ease; z-index: 9999; } .notification { position: fixed; top: 20px; right: 20px; background: var(--mid-bg); border-left: 3px solid var(--neon-green); padding: 1rem; border-radius: 6px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3); display: flex; align-items: center; gap: 0.5rem; transform: translateX(120%); transition: transform 0.3s ease; z-index: 100; } .notification.active { transform: translateX(0); } .notification-icon { color: var(--neon-green); font-size: 1.2rem; } .notification-content { font-size: 0.9rem; } .notification-close { margin-left: 0.5rem; cursor: pointer; color: var(--text-secondary); } @media screen and (max-width: 480px) { .games-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); } .hero-title { font-size: 1.8rem; } .hero-description { max-width: 100%; } .stream-card { flex-direction: column; } .stream-thumbnail { width: 100%; height: 120px; } } /* Loader Animation */ .loader-container { display: none; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(10, 10, 10, 0.7); backdrop-filter: blur(5px); z-index: 1000; justify-content: center; align-items: center; } .loader { width: 60px; height: 60px; border-radius: 50%; position: relative; } .loader:before, .loader:after { content: ''; position: absolute; border-radius: 50%; animation: pulse 1.8s ease-in-out infinite; } .loader:before { width: 100%; height: 100%; background: rgba(57, 255, 20, 0.2); animation-delay: 0.1s; } .loader:after { width: 80%; height: 80%; background: rgba(57, 255, 20, 0.4); top: 10%; left: 10%; animation-delay: 0.3s; } @keyframes pulse { 0% { transform: scale(0.6); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 0.5; } 100% { transform: scale(0.6); opacity: 0.8; } } /* Glitch effect for buttons */ .glitch-effect { position: relative; overflow: hidden; } .glitch-effect:hover::before { content: ''; position: absolute; top: 0; left: -100%; width: 50%; height: 100%; background: linear-gradient(90deg, transparent, rgba(57, 255, 20, 0.3), transparent); animation: glitch-anim 1s ease-out; z-index: 2; } @keyframes glitch-anim { 0% { left: -100%; } 100% { left: 100%; } } /* Custom Cursor */ .custom-cursor { position: fixed; width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--neon-green); pointer-events: none; transform: translate(-50%, -50%); transition: width 0.2s, height 0.2s, opacity 0.3s; z-index: 9999; mix-blend-mode: difference; } </style> </head> <body> <div class="loading-bar" id="loadingBar"></div> <div class="custom-cursor" id="customCursor"></div> <div class="notification" id="notification"> <div class="notification-icon">🔥</div> <div class="notification-content">New achievement unlocked: First Blood!</div> <div class="notification-close" id="closeNotification">×</div> </div> <div class="loader-container" id="loaderContainer"> <div class="loader"></div> </div> <div class="container"> <header> <div class="logo"> <div class="logo-icon"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17 10H19C21 10 22 9 22 7V5C22 3 21 2 19 2H17C15 2 14 3 14 5V7C14 9 15 10 17 10Z" stroke="#39FF14" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5 22H7C9 22 10 21 10 19V17C10 15 9 14 7 14H5C3 14 2 15 2 17V19C2 21 3 22 5 22Z" stroke="#39FF14" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M6 10C8.20914 10 10 8.20914 10 6C10 3.79086 8.20914 2 6 2C3.79086 2 2 3.79086 2 6C2 8.20914 3.79086 10 6 10Z" stroke="#39FF14" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M18 22C20.2091 22 22 20.2091 22 18C22 15.7909 20.2091 14 18 14C15.7909 14 14 15.7909 14 18C14 20.2091 15.7909 22 18 22Z" stroke="#39FF14" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> <div class="logo-text">NEON SPARK</div> </div> <button class="nav-toggle" id="navToggle"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M3 7H21" stroke="#39FF14" stroke-width="1.5" stroke-linecap="round"/> <path d="M3 12H21" stroke="#39FF14" stroke-width="1.5" stroke-linecap="round"/> <path d="M3 17H21" stroke="#39FF14" stroke-width="1.5" stroke-linecap="round"/> </svg> </button> </header> <div class="hero-banner"> <h1 class="hero-title">DOMINATE THE <span>ARENA</span></h1> <p class="hero-description">Experience next-gen gaming with ultra-low latency and high-fidelity graphics on our edge-optimized platform.</p> <button class="cta-button glitch-effect" id="ctaButton">LAUNCH GAME</button> </div> <h2 class="section-title">Featured Games</h2> <div class="games-grid"> <div class="game-card" data-game="Cyberpunk Nexus"> <div class="game-img"> <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='100' viewBox='0 0 150 100' fill='none'%3E%3Crect width='150' height='100' fill='%23121212'/%3E%3Cpath d='M75 20L95 50L75 80L55 50L75 20Z' fill='%2339ff14' fill-opacity='0.3'/%3E%3Cpath d='M75 30L90 50L75 70L60 50L75 30Z' stroke='%2339ff14' stroke-width='2'/%3E%3C/svg%3E" alt="Cyberpunk Nexus"> </div> <div class="game-info"> <h3 class="game-title">Cyberpunk Nexus</h3> <div class="game-meta"> <span class="game-players">12.5K players</span> <span class="game-tag">FPS</span> </div> </div> </div> <div class="game-card" data-game="Quantum Breach"> <div class="game-img"> <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='100' viewBox='0 0 150 100' fill='none'%3E%3Crect width='150' height='100' fill='%23121212'/%3E%3Ccircle cx='75' cy='50' r='30' fill='%2339ff14' fill-opacity='0.2'/%3E%3Ccircle cx='75' cy='50' r='20' stroke='%2339ff14' stroke-width='2'/%3E%3Cpath d='M75 30V70M55 50H95' stroke='%2339ff14' stroke-width='2'/%3E%3C/svg%3E" alt="Quantum Breach"> </div> <div class="game-info"> <h3 class="game-title">Quantum Breach</h3> <div class="game-meta"> <span class="game-players">8.7K players</span> <span class="game-tag">Strategy</span> </div> </div> </div> <div class="game-card" data-game="Neon Drift"> <div class="game-img"> <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='100' viewBox='0 0 150 100' fill='none'%3E%3Crect width='150' height='100' fill='%23121212'/%3E%3Cpath d='M30 70C30 70 50 30 75 30C100 30 120 70 120 70' stroke='%2339ff14' stroke-width='3'/%3E%3Ccircle cx='75' cy='50' r='10' fill='%2339ff14' fill-opacity='0.3' stroke='%2339ff14'/%3E%3C/svg%3E" alt="Neon Drift"> </div> <div class="game-info"> <h3 class="game-title">Neon Drift</h3> <div class="game-meta"> <span class="game-players">15.3K players</span> <span class="game-tag">Racing</span> </div> </div> </div> <div class="game-card" data-game="Shadow Protocol"> <div class="game-img"> <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='150' height='100' viewBox='0 0 150 100' fill='none'%3E%3Crect width='150' height='100' fill='%23121212'/%3E%3Cpath d='M45 65L75 35L105 65L75 80L45 65Z' fill='%2339ff14' fill-opacity='0.2' stroke='%2339ff14' stroke-width='2'/%3E%3C/svg%3E" alt="Shadow Protocol"> </div> <div class="game-info"> <h3 class="game-title">Shadow Protocol</h3> <div class="game-meta"> <span class="game-players">9.2K players</span> <span class="game-tag">Stealth</span> </div> </div> </div> </div> <h2 class="section-title">Live Streams</h2> <div class="live-streams"> <div class="stream-card"> <div class="stream-thumbnail"> <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80' fill='none'%3E%3Crect width='80' height='80' fill='%23121212'/%3E%3Cpath d='M20 60L40 20L60 60L40 40L20 60Z' fill='%2339ff14' fill-opacity='0.3' stroke='%2339ff14'/%3E%3C/svg%3E" alt="Stream thumbnail"> <div class="live-indicator">LIVE</div> </div> <div class="stream-info"> <div> <h3 class="stream-title">Pro League Finals: Team Apex vs Radiant</h3> <p class="streamer-name">NeonSparker</p> </div> <div class="stream-meta"> <div class="viewer-count"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 16.5C9 16.5 6.5 14.5 6.5 12C6.5 9.5 9 7.5 12 7.5C15 7.5 17.5 9.5 17.5 12C17.5 14.5 15 16.5 12 16.5Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2 12C2 12 5 5 12 5C19 5 22 12 22 12C22 12 19 19 12 19C5 19 2 12 2 12Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span>24.3K viewers</span> </div> <div class="game-name"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21 7V17C21 20 19.5 22 16 22H8C4.5 22 3 20 3 17V7C3 4 4.5 2 8 2H16C19.5 2 21 4 21 7Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 2V9.99C16 10.54 15.25 10.77 14.91 10.33L12.71 7.58C12.53 7.35 12.24 7.35 12.06 7.58L9.89996 10.31C9.54996 10.75 8.79996 10.52 8.79996 9.97V2H16Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span>Quantum Breach</span> </div> </div> </div> </div> <div class="stream-card"> <div class="stream-thumbnail"> <img src="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80' fill='none'%3E%3Crect width='80' height='80' fill='%23121212'/%3E%3Ccircle cx='40' cy='40' r='20' fill='%2339ff14' fill-opacity='0.2'/%3E%3Ccircle cx='40' cy='40' r='15' stroke='%2339ff14' stroke-width='2'/%3E%3C/svg%3E" alt="Stream thumbnail"> <div class="live-indicator">LIVE</div> </div> <div class="stream-info"> <div> <h3 class="stream-title">Speed Run Challenge: Sub 30-minute Completion</h3> <p class="streamer-name">VelocityX</p> </div> <div class="stream-meta"> <div class="viewer-count"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M12 16.5C9 16.5 6.5 14.5 6.5 12C6.5 9.5 9 7.5 12 7.5C15 7.5 17.5 9.5 17.5 12C17.5 14.5 15 16.5 12 16.5Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M2 12C2 12 5 5 12 5C19 5 22 12 22 12C22 12 19 19 12 19C5 19 2 12 2 12Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span>18.7K viewers</span> </div> <div class="game-name"> <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M21 7V17C21 20 19.5 22 16 22H8C4.5 22 3 20 3 17V7C3 4 4.5 2 8 2H16C19.5 2 21 4 21 7Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 2V9.99C16 10.54 15.25 10.77 14.91 10.33L12.71 7.58C12.53 7.35 12.24 7.35 12.06 7.58L9.89996 10.31C9.54996 10.75 8.79996 10.52 8.79996 9.97V2H16Z" stroke="#b3b3b3" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> </svg> <span>Shadow Protocol</span> </div> </div> </div> </div> </div> <h2 class="section-title">Upcoming Tournaments</h2> <div class="upcoming-tournaments"> <div class="tournament-card"> <div class="tournament-header"> <h3 class="tournament-title">Cyberpunk Nexus Championship</h3> <div class="prize-pool">$50,000</div> </div> <div class="tournament-details"> <div class="tournament-detail"> <div class="detail-label">Start date</div> <div class="detail-value">June 15, 2023</div> </div> <div class="tournament-detail"> <div class="detail-label">Format</div> <div class="detail-value">5v5 Team Deathmatch</div> </div> <div class="tournament-detail"> <div class="detail-label">Status</div> <div class="detail-value highlight">Registration Open</div> </div> </div> <div class="tournament-cta"> <button class="tournament-button">Register Now</button> </div> </div> <div class="tournament-card"> <div class="tournament-header"> <h3 class="tournament-title">Quantum Breach Invitational</h3> <div class="prize-pool">$25,000</div> </div> <div class="tournament-details"> <div class="tournament-detail"> <div class="detail-label">Start date</div> <div class="detail-value">July 5, 2023</div> </div> <div class="tournament-detail"> <div class="detail-label">Format</div> <div class="detail-value">Solo Competition</div> </div> <div class="tournament-detail"> <div class="detail-label">Status</div> <div class="detail-value highlight">Qualifying Rounds</div>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>EduVista Learning Portal</title> <style> * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } :root { --primary-blue: #4a90e2; --secondary-blue: #5dabf0; --primary-green: #5eb89a; --secondary-green: #7ecfb4; --text-dark: #2c3e50; --text-medium: #546e7a; --text-light: #78909c; --white: #ffffff; --highlight: #f9f9f9; --card-shadow: 0 10px 20px rgba(0, 0, 0, 0.05); --container-shadow: 0 15px 35px rgba(50, 50, 93, 0.1), 0 5px 15px rgba(0, 0, 0, 0.07); } body { width: 100%; height: 100vh; overflow-x: hidden; background: linear-gradient(135deg, #f5f7fa 0%, #eef2f7 100%); } .container { width: 100%; max-width: 700px; height: 700px; margin: 0 auto; padding: 0; position: relative; display: flex; flex-direction: column; overflow: hidden; background: linear-gradient(135deg, rgba(74, 144, 226, 0.05) 0%, rgba(94, 184, 154, 0.05) 100%); border-radius: 16px; box-shadow: var(--container-shadow); } .header { display: flex; justify-content: space-between; align-items: center; padding: 20px 30px; background: linear-gradient(90deg, var(--primary-blue) 0%, var(--primary-green) 100%); color: var(--white); border-radius: 16px 16px 0 0; position: relative; z-index: 10; } .logo { display: flex; align-items: center; gap: 12px; } .logo-icon { width: 36px; height: 36px; border-radius: 8px; background: rgba(255, 255, 255, 0.2); display: flex; align-items: center; justify-content: center; } .logo-icon svg { width: 24px; height: 24px; fill: var(--white); } .logo-text { font-size: 1.25rem; font-weight: 600; letter-spacing: 0.5px; } .user-menu { display: flex; align-items: center; gap: 10px; } .user-avatar { width: 38px; height: 38px; border-radius: 50%; background: rgba(255, 255, 255, 0.2); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all 0.3s ease; } .user-avatar:hover { transform: scale(1.05); background: rgba(255, 255, 255, 0.3); } .main-content { flex: 1; display: flex; flex-direction: column; position: relative; overflow-y: auto; padding: 0; height: calc(100% - 80px); } .gradient-split { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1; } .gradient-split::before { content: ''; position: absolute; top: 0; left: 0; width: 50%; height: 100%; background: linear-gradient(135deg, rgba(74, 144, 226, 0.1) 0%, rgba(93, 171, 240, 0.05) 100%); } .gradient-split::after { content: ''; position: absolute; top: 0; right: 0; width: 50%; height: 100%; background: linear-gradient(135deg, rgba(94, 184, 154, 0.05) 0%, rgba(126, 207, 180, 0.1) 100%); } .tabs { display: flex; gap: 5px; padding: 0 30px; background: var(--white); border-bottom: 1px solid rgba(0, 0, 0, 0.05); position: relative; z-index: 2; } .tab { padding: 18px 22px; color: var(--text-medium); font-weight: 500; position: relative; cursor: pointer; transition: all 0.3s ease; } .tab.active { color: var(--primary-blue); } .tab.active::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; background: linear-gradient(90deg, var(--primary-blue) 0%, var(--primary-green) 100%); border-radius: 3px 3px 0 0; } .tab:hover:not(.active) { color: var(--text-dark); background-color: rgba(0, 0, 0, 0.02); } .learning-modules { padding: 25px 30px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; position: relative; z-index: 2; } .module-card { background: var(--white); border-radius: 12px; box-shadow: var(--card-shadow); padding: 22px; transition: all 0.3s ease; cursor: pointer; position: relative; overflow: hidden; display: flex; flex-direction: column; height: 180px; } .module-card::before { content: ''; position: absolute; top: 0; left: 0; width: 5px; height: 0; background: linear-gradient(to bottom, var(--primary-blue), var(--primary-green)); transition: height 0.4s ease; } .module-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08); } .module-card:hover::before { height: 100%; } .module-icon { width: 42px; height: 42px; border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-bottom: 15px; } .module-card:nth-child(1) .module-icon { background: rgba(74, 144, 226, 0.1); color: var(--primary-blue); } .module-card:nth-child(2) .module-icon { background: rgba(94, 184, 154, 0.1); color: var(--primary-green); } .module-card:nth-child(3) .module-icon { background: rgba(126, 182, 220, 0.1); color: #5ca6db; } .module-card:nth-child(4) .module-icon { background: rgba(126, 207, 180, 0.1); color: var(--secondary-green); } .module-title { font-size: 1rem; font-weight: 600; color: var(--text-dark); margin-bottom: 6px; } .module-description { font-size: 0.85rem; color: var(--text-light); line-height: 1.5; margin-bottom: 15px; } .module-progress { margin-top: auto; } .progress-bar { height: 6px; background: #f1f1f1; border-radius: 3px; position: relative; overflow: hidden; } .progress { position: absolute; top: 0; left: 0; height: 100%; border-radius: 3px; transition: width 0.5s ease; } .module-card:nth-child(1) .progress { background: var(--primary-blue); width: 75%; } .module-card:nth-child(2) .progress { background: var(--primary-green); width: 45%; } .module-card:nth-child(3) .progress { background: #5ca6db; width: 60%; } .module-card:nth-child(4) .progress { background: var(--secondary-green); width: 30%; } .progress-text { font-size: 0.8rem; color: var(--text-light); display: flex; justify-content: space-between; margin-top: 8px; } .featured-section { margin-top: 5px; padding: 0 30px 30px; position: relative; z-index: 2; } .section-header { margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center; } .section-title { font-size: 1.1rem; font-weight: 600; color: var(--text-dark); } .view-all { font-size: 0.85rem; color: var(--primary-blue); font-weight: 500; cursor: pointer; transition: all 0.2s ease; } .view-all:hover { color: var(--primary-green); text-decoration: underline; } .featured-course { background: var(--white); border-radius: 12px; box-shadow: var(--card-shadow); overflow: hidden; display: flex; height: 125px; transition: all 0.3s ease; cursor: pointer; } .featured-course:hover { transform: translateY(-3px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08); } .course-image { width: 125px; height: 125px; background: linear-gradient(135deg, var(--primary-blue) 0%, var(--primary-green) 100%); display: flex; align-items: center; justify-content: center; color: var(--white); position: relative; overflow: hidden; } .course-image::before { content: ''; position: absolute; width: 150%; height: 150%; background: rgba(255, 255, 255, 0.1); transform: rotate(45deg); top: -60%; left: -80%; } .course-details { flex: 1; padding: 16px 20px; display: flex; flex-direction: column; } .course-title { font-size: 1rem; font-weight: 600; color: var(--text-dark); margin-bottom: 6px; } .course-instructor { font-size: 0.8rem; color: var(--text-light); margin-bottom: 12px; display: flex; align-items: center; gap: 8px; } .instructor-avatar { width: 20px; height: 20px; border-radius: 50%; background: linear-gradient(135deg, var(--secondary-blue) 0%, var(--secondary-green) 100%); display: flex; align-items: center; justify-content: center; font-size: 0.6rem; color: var(--white); font-weight: 600; } .course-meta { display: flex; align-items: center; gap: 15px; margin-top: auto; } .meta-item { display: flex; align-items: center; gap: 5px; font-size: 0.75rem; color: var(--text-medium); } .meta-icon { width: 16px; height: 16px; display: flex; align-items: center; justify-content: center; } @keyframes gradientShift { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } @media (max-width: 600px) { .learning-modules { grid-template-columns: 1fr; } .header { padding: 15px 20px; } .logo-text { font-size: 1.1rem; } .tabs { padding: 0 20px; } .tab { padding: 15px 15px; font-size: 0.9rem; } .learning-modules, .featured-section { padding-left: 20px; padding-right: 20px; } .module-card { height: auto; min-height: 160px; } .featured-course { flex-direction: column; height: auto; } .course-image { width: 100%; height: 100px; } } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .tabs { animation: fadeIn 0.6s ease-out; } .module-card { animation: fadeIn 0.6s ease-out; animation-fill-mode: both; } .module-card:nth-child(1) { animation-delay: 0.1s; } .module-card:nth-child(2) { animation-delay: 0.2s; } .module-card:nth-child(3) { animation-delay: 0.3s; } .module-card:nth-child(4) { animation-delay: 0.4s; } .featured-section { animation: fadeIn 0.6s ease-out; animation-delay: 0.5s; animation-fill-mode: both; } .shimmer-effect { position: relative; overflow: hidden; } .shimmer-effect::after { content: ''; position: absolute; top: 0; left: -150%; width: 150%; height: 100%; background: linear-gradient( to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0) 100% ); transform: skewX(-20deg); animation: shimmer 3s infinite; } @keyframes shimmer { to { left: 150%; } } /* Custom scrollbar */ .main-content::-webkit-scrollbar { width: 8px; } .main-content::-webkit-scrollbar-track { background: rgba(0, 0, 0, 0.05); border-radius: 4px; } .main-content::-webkit-scrollbar-thumb { background: linear-gradient(to bottom, var(--primary-blue), var(--primary-green)); border-radius: 4px; } .main-content::-webkit-scrollbar-thumb:hover { background: linear-gradient(to bottom, var(--secondary-blue), var(--secondary-green)); } </style> </head> <body> <div class="container"> <header class="header"> <div class="logo"> <div class="logo-icon"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M12 3L1 9L5 11.18V17.18L12 21L19 17.18V11.18L21 10.09V17H23V9L12 3ZM18.82 9L12 12.72L5.18 9L12 5.28L18.82 9ZM17 15.99L12 18.72L7 15.99V12.27L12 15L17 12.27V15.99Z"></path> </svg> </div> <div class="logo-text">EduVista</div> </div> <div class="user-menu"> <div class="user-avatar"> <svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M12 12C14.21 12 16 10.21 16 8C16 5.79 14.21 4 12 4C9.79 4 8 5.79 8 8C8 10.21 9.79 12 12 12ZM12 14C9.33 14 4 15.34 4 18V20H20V18C20 15.34 14.67 14 12 14Z" fill="white"></path> </svg> </div> </div> </header> <div class="main-content"> <div class="gradient-split"></div> <div class="tabs"> <div class="tab active">My Learning</div> <div class="tab">Discover</div> <div class="tab">Bookmarked</div> </div> <div class="learning-modules"> <div class="module-card shimmer-effect"> <div class="module-icon"> <svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"> <path d="M12 3L1 9L12 15L21 10.09V17H23V9M5 13.18V17.18L12 21L19 17.18V13.18L12 16.5L5 13.18Z" fill="currentColor"></path> </svg> </div> <div class="module-title">Introduction to Data Science</div> <div class="module-description">Master fundamental concepts of data analysis, visualization, and modeling.</div> <div class="module-progress"> <div class="progress-bar"> <div class="progress"></div> </div> <div class="progress-text"> <span>Progress</span> <span>75%</span> </div> </div> </div> <div class="module-card shimmer-effect"> <div class="module-icon"> <svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"> <path d="M12,16A3,3 0 0,1 9,13C9,11.88 9.61,10.9 10.5,10.39L20.21,4.77L14.68,14.35C14.18,15.33 13.17,16 12,16M12,3C13.81,3 15.5,3.5 16.97,4.33L14.4,5.8C13.6,5.31 12.81,5 12,5C8.14,5 5,8.14 5,12C5,15.86 8.14,19 12,19C15.86,19 19,15.86 19,12C19,10.93 18.76,9.91 18.31,9L19.82,6.65C20.6,8.2 21,9.96 21,12A9,9 0 0,1 12,21A9,9 0 0,1 3,12A9,9 0 0,1 12,3Z" fill="currentColor"></path> </svg> </div> <div class="module-title">UX/UI Design Principles</div> <div class="module-description">Learn essential design methodologies to create intuitive user experiences.</div> <div class="module-progress"> <div class="progress-bar"> <div class="progress"></div> </div> <div class="progress-text"> <span>Progress</span> <span>45%</span> </div> </div> </div> <div class="module-card shimmer-effect"> <div class="module-icon"> <svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"> <path d="M3,3H9V7H3V3M15,10H21V14H15V10M15,17H21V21H15V17M13,13H7V18H13V13M3,10H9V14H3V10M11,3H21V8H11V3M3,17H9V21H3V17Z" fill="currentColor"></path> </svg> </div> <div class="module-title">Advanced JavaScript</div> <div class="module-description">Dive into modern JavaScript features, async programming, and frameworks.</div> <div class="module-progress"> <div class="progress-bar"> <div class="progress"></div> </div> <div class="progress-text"> <span>Progress</span> <span>60%</span> </div> </div> </div> <div class="module-card shimmer-effect"> <div class="module-icon"> <svg viewBox="0 0 24 24" width="24" height="24" xmlns="http://www.w3.org/2000/svg"> <path d="M19,3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M10,10.5H7.5V13.5H8.5V12H10V13.7C10,14.37 9.5,15 8.7,15H6.8C6,15 5.5,14.38 5.5,13.7V9.8C5.5,9.12 6,8.5 6.8,8.5H8.7C9.5,8.5 10,9.12 10,9.8V10.5M18.5,10.5H17V15H16V10.5H14.5V9.5H18.5V10.5M13,14H11.5V9.5H13V14Z" fill="currentColor"></path> </svg> </div> <div class="module-title">Sustainable Architecture</div> <div class="module-description">Explore eco-friendly building designs and renewable materials.</div> <div class="module-progress"> <div class="progress-bar"> <div class="progress"></div> </div> <div class="progress-text"> <span>Progress</span> <span>30%</span> </div> </div> </div> </div> <div class="featured-section"> <div class="section-header"> <div class="section-title">Recommended For You</div> <div class="view-all">View all</div> </div> <div class="featured-course shimmer-effect"> <div class="course-image"> <svg viewBox="0 0 24 24" width="50" height="50" xmlns="http://www.w3.org/2000/svg"> <path d="M2,3H22C23.05,3 24,3.95 24,5V19C24,20.05 23.05,21 22,21H2C0.95,21 0,20.05 0,19V5C0,3.95 0.95,3 2,3M2,5V19H22V5H2M14,17H6V15H14V17M18,13H6V11H18V13M18,9H6V7H18V9Z" fill="white"></path> </svg> </div> <div class="course-details"> <div class="course-title">Machine Learning Fundamentals</div> <div class="course-instructor"> <div class="instructor-avatar">DR</div> <span>Dr. Rebecca Chen</span> </div> <div class="course-meta"> <div class="meta-item"> <div class="meta-icon"> <svg viewBox="0 0 24 24" width="16" height="16" xmlns="http://www.w3.org/2000/svg"> <path d="M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z" fill="currentColor"></path> </svg> </div> <span>6.5 hours</span> </div> <div class="meta-item"> <div class="meta-icon"> <svg viewBox="0 0 24 24" width="16" height="16" xmlns="http://www.w3.org/2000/svg"> <path d="M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z" fill="currentColor"></path> </svg> </div> <span>4.9 (2.3k reviews)</span> </div> </div> </div> </div> </div> </div> </div> <script> document.addEventListener('DOMContentLoaded', function() { // Tab switching functionality const tabs = document.querySelectorAll('.tab'); tabs.forEach(tab => { tab.addEventListener('click', function() { // Remove active class from all tabs tabs.forEach(t => t.classList.remove('active')); // Add active class to clicked tab this.classList.add('active'); // Add subtle animation for content switch const modules = document.querySelector('.learning-modules'); const featured = document.querySelector('.featured-section'); modules.style.opacity = 0; featured.style.opacity = 0; setTimeout(() => { // Here you would typically load new content based on selected tab // For this demo, we'll just show the same content with animation modules.style.opacity = 1; featured.style.opacity = 1; }, 300); }); }); // Module card hover interaction const moduleCards = document.querySelectorAll('.module-card'); moduleCards.forEach(card => { card.addEventListener('mouseenter', function() { this.querySelector('.module-title').style.color = getComputedStyle(this.querySelector('.module-icon')).color; }); card.addEventListener('mouseleave', function() { this.querySelector('.module-title').style.color = ''; }); // Click animation card.addEventListener('click', function() { this.style.transform = 'scale(0.98)'; setTimeout(() => { this.style.transform = ''; }, 100); }); }); // Featured course interaction const featuredCourse = document.querySelector('.featured-course'); featuredCourse.addEventListener('click', function() { this.style.transform = 'scale(0.98)'; setTimeout(() => { this.style.transform = ''; }, 100); }); // Simulated progress update animation setTimeout(() => { const progressBars = document.querySelectorAll('.progress'); progressBars.forEach(bar => { const currentWidth = bar.style.width; bar.style.width = '0%'; setTimeout(() => { bar.style.width = currentWidth; }, 300); }); }, 500); // User avatar interaction const userAvatar = document.querySelector('.user-avatar'); userAvatar.addEventListener('click', function() { this.classList.add('shimmer-effect'); setTimeout(() => { this.classList.remove('shimmer-effect'); }, 1000); }); }); </script> </body> </html>
<html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Aisha Morgan | Digital Artist & Developer</title> <style> :root { --deep-teal: #00707a; --burnt-orange: #cc5500; --light-beige: #f7f3e9; --dark-slate: #2c3e50; --light-teal: #4ecdc4; --mid-orange: #ff7f50; } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Poppins', sans-serif; } body { background: #111; color: var(--light-beige); overflow-x: hidden; height: 100vh; width: 100%; } .container { width: 100%; height: 100%; overflow-y: auto; scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: var(--light-teal) transparent; } .container::-webkit-scrollbar { width: 6px; } .container::-webkit-scrollbar-thumb { background-color: var(--light-teal); border-radius: 6px; } .gradient-bg { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(135deg, var(--deep-teal) 0%, var(--burnt-orange) 100%); opacity: 0.3; z-index: -1; } .gradient-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 50% 50%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.8) 100%); z-index: -1; } .bg-shapes { position: fixed; top: 0; left: 0; width: 100%; height: 100%; z-index: -1; opacity: 0.2; pointer-events: none; } .navbar { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem; position: fixed; top: 0; width: 100%; z-index: 10; background: rgba(0, 0, 0, 0.2); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); transition: all 0.4s ease; } .navbar.scrolled { padding: 1rem 1.5rem; background: rgba(0, 0, 0, 0.8); } .logo { font-weight: 700; font-size: 1.8rem; background: linear-gradient(to right, var(--light-teal), var(--mid-orange)); -webkit-background-clip: text; background-clip: text; color: transparent; transition: transform 0.3s ease; } .logo:hover { transform: translateY(-2px); } .nav-links { display: flex; gap: 1.5rem; } .nav-links a { color: var(--light-beige); text-decoration: none; position: relative; padding: 0.5rem 0; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 1px; transition: color 0.3s ease; } .nav-links a::after { content: ''; position: absolute; bottom: 0; left: 0; width: 0; height: 2px; background: linear-gradient(to right, var(--light-teal), var(--mid-orange)); transition: width 0.3s ease; } .nav-links a:hover { color: #fff; } .nav-links a:hover::after { width: 100%; } .menu-btn { display: none; background: none; border: none; color: var(--light-beige); font-size: 1.5rem; cursor: pointer; } .hero-section { height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding: 2rem 4rem; position: relative; overflow: hidden; } .hero-content { max-width: 600px; position: relative; z-index: 1; } .greeting { font-size: 1rem; letter-spacing: 2px; margin-bottom: 0.5rem; color: var(--mid-orange); position: relative; display: inline-block; } .greeting::before { content: ''; position: absolute; left: -20px; top: 50%; width: 15px; height: 2px; background: var(--mid-orange); } .hero-title { font-size: 3.5rem; line-height: 1.1; margin-bottom: 1.5rem; font-weight: 800; } .hero-title span { display: block; } .gradient-text { background: linear-gradient(to right, var(--light-teal), var(--mid-orange)); -webkit-background-clip: text; background-clip: text; color: transparent; } .hero-description { font-size: 1.1rem; margin-bottom: 2rem; line-height: 1.6; max-width: 500px; color: rgba(255, 255, 255, 0.8); } .cta-button { background: linear-gradient(to right, var(--deep-teal), var(--burnt-orange)); color: white; padding: 1rem 2rem; border: none; border-radius: 50px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; overflow: hidden; z-index: 1; text-decoration: none; display: inline-flex; align-items: center; gap: 0.5rem; } .cta-button::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to right, var(--burnt-orange), var(--deep-teal)); z-index: -1; transition: opacity 0.3s ease; opacity: 0; } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0, 0, 0, 0.2); } .cta-button:hover::before { opacity: 1; } .portfolio-section { padding: 4rem; position: relative; } .section-title { font-size: 2.5rem; margin-bottom: 1rem; font-weight: 700; } .section-subtitle { font-size: 1rem; color: rgba(255, 255, 255, 0.7); margin-bottom: 3rem; max-width: 600px; } .projects-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.5rem; } .project-card { background: rgba(0, 0, 0, 0.3); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: 10px; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; position: relative; cursor: pointer; } .project-card:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3); } .project-card:hover .project-overlay { opacity: 1; } .project-img { width: 100%; height: 200px; object-fit: cover; transition: transform 0.5s ease; } .project-card:hover .project-img { transform: scale(1.1); } .project-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, transparent 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 1.5rem; opacity: 0; transition: opacity 0.3s ease; } .project-title { font-size: 1.2rem; font-weight: 600; margin-bottom: 0.5rem; } .project-category { font-size: 0.8rem; color: var(--light-teal); margin-bottom: 1rem; } .project-details { color: rgba(255, 255, 255, 0.7); font-size: 0.9rem; margin-bottom: 1rem; } .view-project { font-size: 0.9rem; font-weight: 600; color: var(--mid-orange); display: flex; align-items: center; gap: 0.5rem; } .view-project svg { transition: transform 0.3s ease; } .view-project:hover svg { transform: translateX(5px); } .about-section { padding: 4rem; display: flex; flex-direction: column; position: relative; } .about-content { display: flex; gap: 4rem; align-items: center; } .about-image { flex: 1; position: relative; border-radius: 10px; overflow: hidden; height: 400px; } .about-img-bg { width: 100%; height: 100%; object-fit: cover; filter: grayscale(30%); transition: filter 0.5s ease, transform 0.5s ease; } .about-image:hover .about-img-bg { filter: grayscale(0%); transform: scale(1.05); } .about-image::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(45deg, var(--deep-teal), var(--burnt-orange)); opacity: 0.3; z-index: 1; } .about-text { flex: 1; } .about-heading { font-size: 2rem; margin-bottom: 1.5rem; font-weight: 700; } .about-paragraph { font-size: 1rem; line-height: 1.7; color: rgba(255, 255, 255, 0.8); margin-bottom: 1.5rem; } .skill-tags { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2rem; } .skill-tag { background: rgba(255, 255, 255, 0.1); padding: 0.5rem 1rem; border-radius: 50px; font-size: 0.8rem; transition: all 0.3s ease; } .skill-tag:hover { background: linear-gradient(to right, var(--deep-teal), var(--burnt-orange)); transform: translateY(-3px); } .contact-section { padding: 4rem; position: relative; } .contact-container { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; margin-top: 2rem; } .contact-info { display: flex; flex-direction: column; gap: 1.5rem; } .contact-item { display: flex; align-items: center; gap: 1rem; transition: transform 0.3s ease; } .contact-item:hover { transform: translateX(10px); } .contact-icon { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(to right, var(--deep-teal), var(--burnt-orange)); display: flex; align-items: center; justify-content: center; color: white; } .contact-text { font-size: 1rem; } .contact-text span { display: block; font-size: 0.8rem; color: rgba(255, 255, 255, 0.6); margin-bottom: 0.3rem; } .contact-form { display: flex; flex-direction: column; gap: 1.5rem; } .form-group { position: relative; } .form-input { width: 100%; padding: 1rem; background: rgba(255, 255, 255, 0.1); border: none; border-radius: 5px; color: white; font-size: 1rem; transition: all 0.3s ease; } .form-input:focus { background: rgba(255, 255, 255, 0.15); outline: none; box-shadow: 0 0 0 2px var(--light-teal); } .form-label { position: absolute; top: 1rem; left: 1rem; color: rgba(255, 255, 255, 0.6); transition: all 0.3s ease; pointer-events: none; } .form-input:focus + .form-label, .form-input:not(:placeholder-shown) + .form-label { top: -0.5rem; left: 0.5rem; font-size: 0.8rem; color: var(--light-teal); background: rgba(0, 0, 0, 0.7); padding: 0 0.5rem; border-radius: 3px; } textarea.form-input { min-height: 150px; resize: vertical; } .submit-btn { background: linear-gradient(to right, var(--deep-teal), var(--burnt-orange)); color: white; padding: 1rem; border: none; border-radius: 5px; font-size: 1rem; font-weight: 600; cursor: pointer; transition: all 0.3s ease; position: relative; overflow: hidden; } .submit-btn::before { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to right, var(--burnt-orange), var(--deep-teal)); opacity: 0; transition: opacity 0.3s ease; z-index: 0; } .submit-btn:hover::before { opacity: 1; } .submit-btn span { position: relative; z-index: 1; } .footer { padding: 2rem 4rem; display: flex; justify-content: space-between; align-items: center; border-top: 1px solid rgba(255, 255, 255, 0.1); position: relative; } .footer-logo { font-weight: 700; font-size: 1.5rem; background: linear-gradient(to right, var(--light-teal), var(--mid-orange)); -webkit-background-clip: text; background-clip: text; color: transparent; } .footer-text { color: rgba(255, 255, 255, 0.6); font-size: 0.9rem; } .social-links { display: flex; gap: 1rem; } .social-link { width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); display: flex; align-items: center; justify-content: center; color: white; transition: all 0.3s ease; text-decoration: none; } .social-link:hover { background: linear-gradient(to right, var(--deep-teal), var(--burnt-orange)); transform: translateY(-3px); } .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.9); display: flex; align-items: center; justify-content: center; z-index: 100; opacity: 0; visibility: hidden; transition: all 0.3s ease; } .modal.show { opacity: 1; visibility: visible; } .modal-content { background: rgba(20, 20, 20, 0.9); backdrop-filter: blur(10px); border-radius: 10px; padding: 2rem; width: 90%; max-width: 800px; max-height: 90vh; overflow-y: auto; position: relative; transform: translateY(50px); transition: transform 0.5s ease; } .modal.show .modal-content { transform: translateY(0); } .close-modal { position: absolute; top: 1rem; right: 1rem; background: transparent; border: none; color: white; font-size: 1.5rem; cursor: pointer; z-index: 10; } .project-detail-img { width: 100%; height: 300px; object-fit: cover; border-radius: 5px; margin-bottom: 1.5rem; } .project-detail-title { font-size: 2rem; margin-bottom: 0.5rem; } .project-detail-category { font-size: 1rem; color: var(--light-teal); margin-bottom: 1.5rem; } .project-detail-desc { line-height: 1.7; margin-bottom: 1.5rem; color: rgba(255, 255, 255, 0.8); } .project-detail-link { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--mid-orange); text-decoration: none; font-weight: 600; margin-top: 1rem; transition: all 0.3s ease; } .project-detail-link:hover { color: var(--light-teal); } .project-detail-link svg { transition: transform 0.3s ease; } .project-detail-link:hover svg { transform: translateX(5px); } /* Mobile menu */ .mobile-menu { position: fixed; top: 0; right: 0; width: 70%; max-width: 300px; height: 100vh; background: rgba(0, 0, 0, 0.9); backdrop-filter: blur(10px); z-index: 20; padding: 2rem; transform: translateX(100%); transition: transform 0.5s ease; display: flex; flex-direction: column; } .mobile-menu.show { transform: translateX(0); } .mobile-nav-links { display: flex; flex-direction: column; gap: 2rem; margin-top: 3rem; } .mobile-nav-link { color: white; text-decoration: none; font-size: 1.2rem; position: relative; } .mobile-nav-link::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: linear-gradient(to right, var(--light-teal), var(--mid-orange)); transition: width 0.3s ease; } .mobile-nav-link:hover::after { width: 100%; } .close-menu { position: absolute; top: 1rem; right: 1rem; background: transparent; border: none; color: white; font-size: 1.5rem; cursor: pointer; } .mobile-social-links { display: flex; gap: 1rem; margin-top: auto; padding-bottom: 2rem; } @media (max-width: 768px) { .navbar { padding: 1rem; } .nav-links { display: none; } .menu-btn { display: block; } .hero-section { padding: 2rem; align-items: center; text-align: center; } .hero-title { font-size: 2.5rem; } .portfolio-section, .about-section, .contact-section { padding: 2rem; } .about-content { flex-direction: column; gap: 2rem; } .contact-container { grid-template-columns: 1fr; } .footer { flex-direction: column; gap: 1rem; padding: 2rem; text-align: center; } } @media (max-width: 480px) { .hero-title { font-size: 2rem; } .projects-grid { grid-template-columns: 1fr; } .skill-tags { justify-content: center; } } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } @keyframes float { 0% { transform: translateY(0px); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } @keyframes shimmer { 0% { background-position: -100% 0; } 100% { background-position: 200% 0; } } .hero-content, .section-title, .section-subtitle, .project-card, .about-heading, .about-paragraph, .contact-item, .form-group { animation: fadeIn 1s ease forwards; opacity: 0; } .hero-content { animation-delay: 0.2s; } .section-title { animation-delay: 0.3s; } .section-subtitle { animation-delay: 0.4s; } .project-card:nth-child(1) { animation-delay: 0.5s; } .project-card:nth-child(2) { animation-delay: 0.6s; } .project-card:nth-child(3) { animation-delay: 0.7s; } .project-card:nth-child(4) { animation-delay: 0.8s; } .about-heading { animation-delay: 0.3s; } .about-paragraph { animation-delay: 0.4s; } .contact-item:nth-child(1) { animation-delay: 0.3s; } .contact-item:nth-child(2) { animation-delay: 0.4s; } .contact-item:nth-child(3) { animation-delay: 0.5s; } .form-group:nth-child(1) { animation-delay: 0.4s; } .form-group:nth-child(2) { animation-delay: 0.5s; } .form-group:nth-child(3) { animation-delay: 0.6s; } </style> </head> <body> <div class="container"> <div class="gradient-bg"></div> <div class="gradient-overlay"></div> <div class="bg-shapes"></div> <nav class="navbar"> <div class="logo">Aisha.M</div> <div class="nav-links"> <a href="#home">Home</a> <a href="#portfolio">Portfolio</a> <a href="#about">About</a> <a href="#contact">Contact</a> </div> <button class="menu-btn"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M3 12H21" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M3 6H21" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M3 18H21" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </button> </nav> <div class="mobile-menu"> <button class="close-menu"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M18 6L6 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M6 6L18 18" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </button> <div class="mobile-nav-links"> <a href="#home" class="mobile-nav-link">Home</a> <a href="#portfolio" class="mobile-nav-link">Portfolio</a> <a href="#about" class="mobile-nav-link">About</a> <a href="#contact" class="mobile-nav-link">Contact</a> </div> <div class="mobile-social-links"> <a href="#" class="social-link"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M16 8C17.5913 8 19.1174 8.63214 20.2426 9.75736C21.3679 10.8826 22 12.4087 22 14V21H18V14C18 13.4696 17.7893 12.9609 17.4142 12.5858C17.0391 12.2107 16.5304 12 16 12C15.4696 12 14.9609 12.2107 14.5858 12.5858C14.2107 12.9609 14 13.4696 14 14V21H10V14C10 12.4087 10.6321 10.8826 11.7574 9.75736C12.8826 8.63214 14.4087 8 16 8Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M6 9H2V21H6V9Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M4 6C5.10457 6 6 5.10457 6 4C6 2.89543 5.10457 2 4 2C2.89543 2 2 2.89543 2 4C2 5.10457 2.89543 6 4 6Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </a> <a href="#" class="social-link"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M23 3.00005C22.0424 3.67552 20.9821 4.19216 19.86 4.53005C19.2577 3.83756 18.4573 3.34674 17.567 3.12397C16.6767 2.90121 15.7395 2.95724 14.8821 3.2845C14.0247 3.61176 13.2884 4.19445 12.773 4.95376C12.2575 5.71308 11.9877 6.61238 12 7.53005V8.53005C10.2426 8.57561 8.50127 8.18586 6.93101 7.39549C5.36074 6.60513 4.01032 5.43868 3 4.00005C3 4.00005 -1 13 8 17C5.94053 18.398 3.48716 19.099 1 19C10 24 21 19 21 7.50005C20.9991 7.2215 20.9723 6.94364 20.92 6.67005C21.9406 5.66354 22.6608 4.39276 23 3.00005Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </a> <a href="#" class="social-link"> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M17 2H7C4.23858 2 2 4.23858 2 7V17C2 19.7614 4.23858 22 7 22H17C19.7614 22 22 19.7614 22 17V7C22 4.23858 19.7614 2 17 2Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M16 11.37C16.1234 12.2022 15.9813 13.0522 15.5938 13.799C15.2063 14.5458 14.5931 15.1514 13.8416 15.5297C13.0901 15.9079 12.2384 16.0396 11.4078 15.9059C10.5771 15.7723 9.80976 15.3801 9.21484 14.7852C8.61992 14.1902 8.22773 13.4229 8.09407 12.5922C7.9604 11.7615 8.09207 10.9099 8.47033 10.1584C8.84859 9.40685 9.45419 8.79374 10.201 8.40624C10.9478 8.01874 11.7978 7.87659 12.63 8C13.4789 8.12588 14.2649 8.52146 14.8717 9.1283C15.4785 9.73515 15.8741 10.5211 16 11.37Z" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M17.5 6.5H17.51" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </a> </div> </div> <section id="home" class="hero-section"> <div class="hero-content"> <div class="greeting">Hello, I'm Aisha</div> <h1 class="hero-title"> <span>Creative <span class="gradient-text">Visual Designer</span></span> <span>& UI Developer</span> </h1> <p class="hero-description"> I blend vibrant aesthetics with functional design to craft immersive digital experiences that captivate and engage. Specializing in gradient-rich interfaces and interactive web elements. </p> <a href="#portfolio" class="cta-button"> <span>View My Work</span> <svg width="20" height="20" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 12H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 5L19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </a> </div> </section> <section id="portfolio" class="portfolio-section"> <h2 class="section-title">Featured <span class="gradient-text">Projects</span></h2> <p class="section-subtitle">A curated selection of my works showcasing interactive interfaces with bold gradient aesthetics and thoughtful design principles.</p> <div class="projects-grid"> <div class="project-card" data-id="1"> <img src="https://images.unsplash.com/photo-1656618020911-1c7a937175fd?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1740&q=80" alt="Nebula Music App" class="project-img"> <div class="project-overlay"> <h3 class="project-title">Nebula Music App</h3> <div class="project-category">UI/UX Design</div> <p class="project-details">A streaming platform with gradient-infused interface and immersive visualizations.</p> <div class="view-project"> View Project <svg width="18" height="18" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M5 12H19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 5L19 12L12 19" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/> </svg> </div> </div> </div> <div class="project-card" data-id="2"> <img src="https://images.unsplash.com/photo-1643208589889-0735ad7218f0?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8f