Modern Video Camera Template
Preview
Edit
Download
Run
Download Options
HTML File
Download as .html file
CSS File
Download as .css file
JavaScript File
Download as .js file
Combined HTML
All code in one HTML file
Project ZIP
All files in a ZIP archive
Cancel
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>LUXCAM | Future of Videography</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.css"> </head> <body> <!-- Header --> <header> <a href="#" class="logo"><i class="fas fa-camera"></i> LUXCAM</a> <nav class="nav-links"> <a href="#home">Home</a> <a href="#features">Features</a> <a href="#products">Products</a> <a href="#testimonials">Reviews</a> <a href="#contact">Contact</a> </nav> <a href="#" class="cta-button">Shop Now</a> <div class="mobile-menu"> <i class="fas fa-bars"></i> </div> </header> <!-- Hero Section --> <section class="hero" id="home"> <div class="hero-content"> <h1 class="velvet-caption">Capture Your World in <span>4K Brilliance</span></h1> <p>Discover our premium collection of professional video cameras and accessories designed for filmmakers, content creators, and photography enthusiasts.</p> <div class="hero-buttons"> <a href="#" class="cta-button">Explore Collection</a> <a href="#" class="secondary-button">Learn More</a> </div> </div> <div class="hero-image"> <img src="https://images.unsplash.com/photo-1516035069371-29a1b244cc32?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Professional Camera"> </div> </section> <!-- Features Section --> <section class="section" id="features"> <div class="section-title"> <h2>Why Choose LUXCAM</h2> <p>We provide the best video equipment with cutting-edge technology and exceptional customer service.</p> </div> <div class="features-grid"> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-film"></i> </div> <h3>4K Resolution</h3> <p>Crystal clear 4K video recording with advanced image stabilization for professional-quality footage.</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-lightbulb"></i> </div> <h3>Low Light Mastery</h3> <p>Exceptional performance in low-light conditions with our advanced sensor technology.</p> </div> <div class="feature-card"> <div class="feature-icon"> <i class="fas fa-headset"></i> </div> <h3>24/7 Support</h3> <p>Round-the-clock customer support to assist you with any questions or technical issues.</p> </div> </div> </section> <!-- Products Section --> <section class="section" id="products"> <div class="section-title"> <h2>Featured Products</h2> <p>Explore our curated selection of professional video cameras and accessories.</p> </div> <div class="products-container"> <div class="swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <div class="product-card"> <div class="product-image"> <span class="product-badge">BESTSELLER</span> <img src="https://images.unsplash.com/photo-1512790182412-b19e6d62bc39?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Cinema Camera"> </div> <div class="product-info"> <h3>LUXCAM CinePro X</h3> <p>Professional cinema camera with full-frame sensor and 6K resolution.</p> <div class="product-price"> <span class="price">$3,499</span> <button class="add-to-cart"> <i class="fas fa-shopping-cart"></i> </button> </div> </div> </div> </div> <div class="swiper-slide"> <div class="product-card"> <div class="product-image"> <img src="https://images.unsplash.com/photo-1593642632823-8f785ba67e45?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Mirrorless Camera"> </div> <div class="product-info"> <h3>LUXCAM Mirrorless V2</h3> <p>Compact mirrorless camera with 4K video and advanced autofocus.</p> <div class="product-price"> <span class="price">$1,799</span> <button class="add-to-cart"> <i class="fas fa-shopping-cart"></i> </button> </div> </div> </div> </div> <div class="swiper-slide"> <div class="product-card"> <div class="product-image"> <span class="product-badge">NEW</span> <img src="https://images.unsplash.com/photo-1607462109225-6bd64a3a4230?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="Action Camera"> </div> <div class="product-info"> <h3>LUXCAM Action 4K</h3> <p>Rugged action camera with waterproof design and 4K/60fps recording.</p> <div class="product-price"> <span class="price">$399</span> <button class="add-to-cart"> <i class="fas fa-shopping-cart"></i> </button> </div> </div> </div> </div> <div class="swiper-slide"> <div class="product-card"> <div class="product-image"> <img src="https://images.unsplash.com/photo-1510127034890-ba27508e9f1c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=800&q=80" alt="DSLR Camera"> </div> <div class="product-info"> <h3>LUXCAM DSLR Pro</h3> <p>Professional DSLR with 4K video and 30MP still image capability.</p> <div class="product-price"> <span class="price">$2,299</span> <button class="add-to-cart"> <i class="fas fa-shopping-cart"></i> </button> </div> </div> </div> </div> </div> <div class="swiper-pagination"></div> </div> </div> </section> <!-- Stats Section --> <section class="section"> <div class="stats-section"> <div class="stats-grid"> <div class="stat-item"> <div class="stat-number">10,000+</div> <div class="stat-label">Happy Customers</div> </div> <div class="stat-item"> <div class="stat-number">500+</div> <div class="stat-label">Professional Models</div> </div> <div class="stat-item"> <div class="stat-number">24/7</div> <div class="stat-label">Customer Support</div> </div> <div class="stat-item"> <div class="stat-number">5-Year</div> <div class="stat-label">Warranty</div> </div> </div> </div> </section> <!-- Testimonials Section --> <section class="section" id="testimonials"> <div class="section-title"> <h2>What Our Customers Say</h2> <p>Hear from professionals who trust our equipment for their creative work.</p> </div> <div class="testimonials-container"> <div class="swiper"> <div class="swiper-wrapper"> <div class="swiper-slide"> <div class="testimonial-card"> <div class="testimonial-content"> The LUXCAM CinePro X has transformed my filmmaking workflow. The dynamic range and color science are unmatched at this price point. </div> <div class="testimonial-author"> <div class="author-avatar"> <img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Alex Johnson"> </div> <div class="author-info"> <h4>Alex Johnson</h4> <p>Director & Cinematographer</p> </div> </div> </div> </div> <div class="swiper-slide"> <div class="testimonial-card"> <div class="testimonial-content"> As a travel vlogger, I need equipment that's both powerful and portable. The LUXCAM Mirrorless V2 is the perfect balance of both. </div> <div class="testimonial-author"> <div class="author-avatar"> <img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Sarah Miller"> </div> <div class="author-info"> <h4>Sarah Miller</h4> <p>Travel Content Creator</p> </div> </div> </div> </div> <div class="swiper-slide"> <div class="testimonial-card"> <div class="testimonial-content"> The customer service at LUXCAM is exceptional. When I had questions about settings for a low-light shoot, their team walked me through everything. </div> <div class="testimonial-author"> <div class="author-avatar"> <img src="https://randomuser.me/api/portraits/men/75.jpg" alt="Michael Chen"> </div> <div class="author-info"> <h4>Michael Chen</h4> <p>Wedding Videographer</p> </div> </div> </div> </div> </div> <div class="swiper-pagination"></div> </div> </div> </section> <!-- Newsletter Section --> <section class="section"> <div class="newsletter-section"> <div class="newsletter-content"> <h2>Stay Updated</h2> <p>Subscribe to our newsletter for the latest product releases, exclusive deals, and photography tips.</p> <form class="newsletter-form"> <input type="email" class="newsletter-input" placeholder="Your email address" required> <button type="submit" class="newsletter-button">Subscribe</button> </form> </div> </div> </section> <!-- Footer --> <footer id="contact"> <div class="footer-grid"> <div class="footer-about"> <a href="#" class="footer-logo">LUXCAM</a> <p>Empowering creators with professional video equipment since 2010. Our mission is to provide the tools that bring your vision to life.</p> <div class="social-links"> <a href="#" class="social-link"><i class="fab fa-facebook-f"></i></a> <a href="#" class="social-link"><i class="fab fa-twitter"></i></a> <a href="#" class="social-link"><i class="fab fa-instagram"></i></a> <a href="#" class="social-link"><i class="fab fa-youtube"></i></a> </div> </div> <div class="footer-links"> <h3>Quick Links</h3> <ul> <li><a href="#home">Home</a></li> <li><a href="#features">Features</a></li> <li><a href="#products">Products</a></li> <li><a href="#testimonials">Testimonials</a></li> <li><a href="#contact">Contact</a></li> </ul> </div> <div class="footer-links"> <h3>Products</h3> <ul> <li><a href="#">Cinema Cameras</a></li> <li><a href="#">Mirrorless Cameras</a></li> <li><a href="#">DSLR Cameras</a></li> <li><a href="#">Action Cameras</a></li> <li><a href="#">Accessories</a></li> </ul> </div> <div class="footer-contact"> <h3>Contact Us</h3> <p><i class="fas fa-map-marker-alt"></i> 123 Camera Street, Los Angeles, CA</p> <p><i class="fas fa-phone"></i> +1 (555) 123-4567</p> <p><i class="fas fa-envelope"></i> info@luxcam.com</p> <p><i class="fas fa-clock"></i> Mon-Fri: 9AM - 6PM</p> </div> </div> <div class="copyright"> © 2023 LUXCAM. All Rights Reserved. </div> </footer> <script src="https://cdn.jsdelivr.net/npm/swiper@9/swiper-bundle.min.js"></script> </body> </html>
CSS
:root { --primary-color: #FFD700; --primary-dark: #FFA500; --primary-light: #FFFACD; --dark-color: #121212; --light-color: #f8f8f8; --glass-color: rgba(255, 255, 255, 0.1); --transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; } body { background: linear-gradient(135deg, #121212 0%, #1a1a1a 100%); color: var(--light-color); overflow-x: hidden; } /* Header */ header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; padding: 20px 5%; display: flex; justify-content: space-between; align-items: center; backdrop-filter: blur(10px); background: var(--glass-color); border-bottom: 1px solid rgba(255, 255, 255, 0.1); } .logo { font-size: 28px; font-weight: 700; color: var(--primary-color); text-decoration: none; display: flex; align-items: center; } .logo i { margin-right: 10px; } .nav-links { display: flex; gap: 30px; } .nav-links a { color: var(--light-color); text-decoration: none; font-weight: 500; position: relative; transition: var(--transition); } .nav-links a:hover { color: var(--primary-color); } .nav-links a::after { content: ''; position: absolute; bottom: -5px; left: 0; width: 0; height: 2px; background: var(--primary-color); transition: var(--transition); } .nav-links a:hover::after { width: 100%; } .cta-button { background: var(--primary-color); color: var(--dark-color); padding: 10px 25px; border-radius: 30px; font-weight: 600; text-decoration: none; transition: var(--transition); border: none; cursor: pointer; } .cta-button:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(255, 215, 0, 0.3); } .mobile-menu { display: none; font-size: 24px; cursor: pointer; } /* Hero Section */ .hero { height: 100vh; display: flex; align-items: center; padding: 0 5%; position: relative; overflow: hidden; } .hero-content { max-width: 600px; z-index: 2; } .hero h1 { font-size: 4rem; margin-bottom: 20px; line-height: 1.2; background: linear-gradient(to right, var(--primary-color), var(--primary-dark)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; opacity: 0; transform: translateY(50px); animation: slideUp 1s forwards 0.3s; } .hero p { font-size: 1.2rem; margin-bottom: 30px; opacity: 0.8; opacity: 0; transform: translateY(50px); animation: slideUp 1s forwards 0.6s; } .hero-buttons { display: flex; gap: 20px; opacity: 0; transform: translateY(50px); animation: slideUp 1s forwards 0.9s; } .hero-buttons .cta-button { padding: 15px 30px; } .secondary-button { background: transparent; color: var(--light-color); border: 1px solid var(--light-color); padding: 15px 30px; border-radius: 30px; font-weight: 600; text-decoration: none; transition: var(--transition); } .secondary-button:hover { background: var(--light-color); color: var(--dark-color); transform: translateY(-3px); } .hero-image { position: absolute; right: 5%; width: 50%; max-width: 700px; opacity: 0; animation: fadeIn 1.5s forwards 1.2s; } .hero-image img { width: 100%; height: auto; filter: drop-shadow(0 20px 30px rgba(0, 0, 0, 0.5)); } /* Features Section */ .section { padding: 100px 5%; } .section-title { text-align: center; margin-bottom: 60px; position: relative; } .section-title h2 { font-size: 2.5rem; margin-bottom: 20px; background: linear-gradient(to right, var(--primary-color), var(--primary-dark)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; } .section-title p { max-width: 700px; margin: 0 auto; opacity: 0.8; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; } .feature-card { background: var(--glass-color); backdrop-filter: blur(10px); border-radius: 20px; padding: 40px 30px; text-align: center; transition: var(--transition); border: 1px solid rgba(255, 255, 255, 0.1); opacity: 0; transform: translateY(50px); } .feature-card.visible { opacity: 1; transform: translateY(0); transition: var(--transition); } .feature-card:nth-child(1) { transition-delay: 0.1s; } .feature-card:nth-child(2) { transition-delay: 0.3s; } .feature-card:nth-child(3) { transition-delay: 0.5s; } .feature-icon { font-size: 3rem; margin-bottom: 20px; color: var(--primary-color); } .feature-card h3 { font-size: 1.5rem; margin-bottom: 15px; } .feature-card p { opacity: 0.8; } .feature-card:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3); border-color: var(--primary-color); } /* Products Section */ .products-container { position: relative; padding: 50px 0; } .swiper { width: 100%; padding: 50px 0; } .product-card { background: var(--glass-color); backdrop-filter: blur(10px); border-radius: 20px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); transition: var(--transition); opacity: 0; transform: scale(0.9); } .product-card.visible { opacity: 1; transform: scale(1); } .product-image { height: 300px; display: flex; align-items: center; justify-content: center; background: linear-gradient(145deg, #1a1a1a 0%, #121212 100%); position: relative; overflow: hidden; } .product-image img { max-height: 80%; max-width: 80%; object-fit: contain; transition: var(--transition); } .product-card:hover .product-image img { transform: scale(1.05); } .product-badge { position: absolute; top: 20px; right: 20px; background: var(--primary-color); color: var(--dark-color); padding: 5px 15px; border-radius: 30px; font-weight: 600; font-size: 0.8rem; } .product-info { padding: 25px; } .product-info h3 { font-size: 1.3rem; margin-bottom: 10px; } .product-info p { opacity: 0.7; margin-bottom: 15px; font-size: 0.9rem; } .product-price { display: flex; justify-content: space-between; align-items: center; margin-top: 20px; } .price { font-size: 1.5rem; font-weight: 700; color: var(--primary-color); } .add-to-cart { background: var(--primary-color); color: var(--dark-color); border: none; width: 40px; height: 40px; border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: var(--transition); } .add-to-cart:hover { transform: scale(1.1) rotate(15deg); box-shadow: 0 5px 15px rgba(255, 215, 0, 0.3); } /* Stats Section */ .stats-section { background: linear-gradient(135deg, rgba(255, 215, 0, 0.1) 0%, rgba(255, 165, 0, 0.1) 100%); padding: 80px 5%; border-radius: 30px; margin: 50px auto; max-width: 1200px; } .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 30px; text-align: center; } .stat-item { opacity: 0; transform: translateY(50px); } .stat-item.visible { opacity: 1; transform: translateY(0); transition: var(--transition); } .stat-item:nth-child(1) { transition-delay: 0.1s; } .stat-item:nth-child(2) { transition-delay: 0.3s; } .stat-item:nth-child(3) { transition-delay: 0.5s; } .stat-item:nth-child(4) { transition-delay: 0.7s; } .stat-number { font-size: 3rem; font-weight: 700; margin-bottom: 10px; color: var(--primary-color); } .stat-label { font-size: 1.1rem; opacity: 0.8; } /* Testimonials Section */ .testimonials-container { position: relative; padding: 50px 0; } .testimonial-card { background: var(--glass-color); backdrop-filter: blur(10px); border-radius: 20px; padding: 40px; border: 1px solid rgba(255, 255, 255, 0.1); margin: 0 20px; transition: var(--transition); } .testimonial-content { margin-bottom: 30px; font-style: italic; font-size: 1.1rem; line-height: 1.6; position: relative; } .testimonial-content::before { content: '"'; font-size: 5rem; position: absolute; top: -30px; left: -20px; opacity: 0.1; line-height: 1; } .testimonial-author { display: flex; align-items: center; } .author-avatar { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; margin-right: 20px; border: 2px solid var(--primary-color); } .author-avatar img { width: 100%; height: 100%; object-fit: cover; } .author-info h4 { font-size: 1.2rem; margin-bottom: 5px; } .author-info p { opacity: 0.7; font-size: 0.9rem; } .swiper-pagination-bullet { background: var(--light-color); opacity: 0.5; width: 12px; height: 12px; transition: var(--transition); } .swiper-pagination-bullet-active { background: var(--primary-color); opacity: 1; transform: scale(1.2); } /* Newsletter Section */ .newsletter-section { background: linear-gradient(135deg, rgba(255, 215, 0, 0.05) 0%, rgba(255, 165, 0, 0.05) 100%); padding: 80px 5%; border-radius: 30px; margin: 50px auto; max-width: 1200px; text-align: center; position: relative; overflow: hidden; } .newsletter-section::before { content: ''; position: absolute; top: -50%; left: -50%; width: 200%; height: 200%; background: radial-gradient(circle, rgba(255, 215, 0, 0.05) 0%, transparent 70%); animation: rotate 20s linear infinite; z-index: -1; } .newsletter-content { max-width: 700px; margin: 0 auto; position: relative; z-index: 2; } .newsletter-form { display: flex; max-width: 500px; margin: 30px auto 0; position: relative; } .newsletter-input { flex: 1; padding: 15px 25px; border-radius: 50px; border: none; background: rgba(255, 255, 255, 0.1); backdrop-filter: blur(5px); color: var(--light-color); font-size: 1rem; outline: none; border: 1px solid rgba(255, 255, 255, 0.1); transition: var(--transition); } .newsletter-input:focus { border-color: var(--primary-color); box-shadow: 0 0 20px rgba(255, 215, 0, 0.2); } .newsletter-button { position: absolute; right: 5px; top: 5px; bottom: 5px; background: var(--primary-color); color: var(--dark-color); border: none; border-radius: 50px; padding: 0 25px; font-weight: 600; cursor: pointer; transition: var(--transition); } .newsletter-button:hover { background: var(--primary-dark); } /* Footer */ footer { background: linear-gradient(to bottom, rgba(18, 18, 18, 0) 0%, rgba(18, 18, 18, 1) 100%); padding: 100px 5% 30px; } .footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; margin-bottom: 50px; } .footer-logo { font-size: 24px; font-weight: 700; color: var(--primary-color); margin-bottom: 20px; display: inline-block; } .footer-about p { opacity: 0.7; margin-bottom: 20px; line-height: 1.6; } .social-links { display: flex; gap: 15px; } .social-link { width: 40px; height: 40px; border-radius: 50%; background: rgba(255, 255, 255, 0.1); display: flex; align-items: center; justify-content: center; transition: var(--transition); } .social-link:hover { background: var(--primary-color); color: var(--dark-color); transform: translateY(-3px); } .footer-links h3 { font-size: 1.2rem; margin-bottom: 20px; position: relative; padding-bottom: 10px; } .footer-links h3::after { content: ''; position: absolute; bottom: 0; left: 0; width: 40px; height: 2px; background: var(--primary-color); } .footer-links ul { list-style: none; } .footer-links li { margin-bottom: 10px; } .footer-links a { color: var(--light-color); text-decoration: none; opacity: 0.7; transition: var(--transition); position: relative; } .footer-links a:hover { opacity: 1; color: var(--primary-color); padding-left: 10px; } .footer-links a::before { content: '→'; position: absolute; left: -15px; opacity: 0; transition: var(--transition); } .footer-links a:hover::before { left: -10px; opacity: 1; } .footer-contact p { display: flex; align-items: center; margin-bottom: 15px; opacity: 0.7; } .footer-contact i { margin-right: 10px; color: var(--primary-color); } .copyright { text-align: center; padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, 0.1); opacity: 0.7; font-size: 0.9rem; } /* Animations */ @keyframes slideUp { from { opacity: 0; transform: translateY(50px); } to { opacity: 1; transform: translateY(0); } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes rotate { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } /* Velvet Caption Reveal */ .velvet-caption { position: relative; display: inline-block; overflow: hidden; } .velvet-caption::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: var(--primary-color); transform: translateX(-100%); transition: transform 1s cubic-bezier(0.19, 1, 0.22, 1); mix-blend-mode: multiply; } .velvet-caption.reveal::after { transform: translateX(100%); } /* Responsive Styles */ @media (max-width: 1200px) { .hero h1 { font-size: 3.5rem; } } @media (max-width: 992px) { .hero { flex-direction: column; justify-content: center; text-align: center; padding-top: 100px; } .hero-content { max-width: 100%; margin-bottom: 50px; } .hero-buttons { justify-content: center; } .hero-image { position: relative; right: auto; width: 80%; margin: 0 auto; } .nav-links { display: none; } .mobile-menu { display: block; } } @media (max-width: 768px) { .hero h1 { font-size: 2.8rem; } .section-title h2 { font-size: 2rem; } .newsletter-form { flex-direction: column; gap: 15px; } .newsletter-button { position: relative; right: auto; top: auto; bottom: auto; width: 100%; padding: 15px; } .newsletter-input { width: 100%; } } @media (max-width: 576px) { .hero h1 { font-size: 2.2rem; } .hero-buttons { flex-direction: column; gap: 15px; } .feature-card { padding: 30px 20px; } .stats-grid { grid-template-columns: 1fr 1fr; } .testimonial-card { padding: 30px 20px; } }
JavaScript
// Initialize Swiper for products const productSwiper = new Swiper('.products-container .swiper', { slidesPerView: 1, spaceBetween: 20, pagination: { el: '.products-container .swiper-pagination', clickable: true, }, breakpoints: { 640: { slidesPerView: 2, }, 992: { slidesPerView: 3, }, 1200: { slidesPerView: 4, } } }); // Initialize Swiper for testimonials const testimonialSwiper = new Swiper('.testimonials-container .swiper', { effect: 'coverflow', grabCursor: true, centeredSlides: true, slidesPerView: 'auto', coverflowEffect: { rotate: 0, stretch: 0, depth: 100, modifier: 2, slideShadows: true, }, pagination: { el: '.testimonials-container .swiper-pagination', clickable: true, }, }); // Intersection Observer for animations const observerOptions = { threshold: 0.1 }; const observer = new IntersectionObserver((entries) => { entries.forEach(entry => { if (entry.isIntersecting) { entry.target.classList.add('visible'); if (entry.target.classList.contains('velvet-caption')) { entry.target.classList.add('reveal'); } } }); }, observerOptions); document.querySelectorAll('.feature-card, .stat-item, .product-card').forEach(el => { observer.observe(el); }); // Velvet caption reveal document.querySelectorAll('.velvet-caption').forEach(el => { observer.observe(el); }); // Mobile menu toggle const mobileMenu = document.querySelector('.mobile-menu'); const navLinks = document.querySelector('.nav-links'); mobileMenu.addEventListener('click', () => { navLinks.style.display = navLinks.style.display === 'flex' ? 'none' : 'flex'; }); // Responsive adjustment for nav links window.addEventListener('resize', () => { if (window.innerWidth > 992) { navLinks.style.display = 'flex'; } else { navLinks.style.display = 'none'; } });
Output Preview
Desktop
Mobile
Fullscreen