Elegance Clothing Store 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>Elegance - Premium Clothing Store</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> <link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600;700&family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet"> </head> <body> <!-- Header --> <header id="header"> <div class="container"> <div class="header-container"> <a href="#" class="logo">Eleg<span>ance</span></a> <div class="mobile-toggle"> <i class="fas fa-bars"></i> </div> <ul class="nav-menu"> <li><a href="#home">Home</a></li> <li><a href="#categories">Categories</a></li> <li><a href="#products">Products</a></li> <li><a href="#offer">Special Offer</a></li> <li><a href="#contact">Contact</a></li> </ul> <div class="header-icons"> <div class="search-icon"> <i class="fas fa-search"></i> </div> <div class="cart-icon"> <i class="fas fa-shopping-bag"></i> </div> <div class="user-icon"> <i class="fas fa-user"></i> </div> </div> </div> </div> </header> <!-- Hero Section --> <section class="hero" id="home"> <div class="container"> <div class="hero-content"> <h1>Elevate Your Style with Elegance</h1> <p>Discover the latest fashion trends and premium quality clothing for every occasion. From casual wear to formal attire, we have everything you need to express your unique style.</p> <div class="hero-buttons"> <a href="#products" class="btn">Shop Now</a> <a href="#categories" class="btn btn-outline">Explore Collections</a> </div> </div> </div> </section> <!-- Featured Categories --> <section class="section categories" id="categories"> <div class="container"> <div class="section-title"> <h2>Featured Categories</h2> <p>Browse through our carefully curated collections to find the perfect outfit for any occasion</p> </div> <div class="categories-container"> <div class="category-card"> <div class="category-img"> <img src="https://images.unsplash.com/photo-1544441893-675973e31985?ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8MTR8fENsb3RoaW5nfGVufDB8fDB8fHww&auto=format&fit=crop&q=60&w=500" alt="Men's Fashion"> </div> <div class="category-content"> <h3>Men's Fashion</h3> <a href="#" class="btn btn-outline">Explore</a> </div> </div> <div class="category-card"> <div class="category-img"> <img src="https://images.unsplash.com/photo-1483985988355-763728e1935b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Women's Fashion"> </div> <div class="category-content"> <h3>Women's Fashion</h3> <a href="#" class="btn btn-outline">Explore</a> </div> </div> <div class="category-card"> <div class="category-img"> <img src="https://images.unsplash.com/photo-1505022610485-0249ba5b3675?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Accessories"> </div> <div class="category-content"> <h3>Accessories</h3> <a href="#" class="btn btn-outline">Explore</a> </div> </div> <div class="category-card"> <div class="category-img"> <img src="https://images.unsplash.com/photo-1552374196-1ab2a1c593e8?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2057&q=80" alt="Footwear"> </div> <div class="category-content"> <h3>Footwear</h3> <a href="#" class="btn btn-outline">Explore</a> </div> </div> </div> </div> </section> <!-- Featured Products --> <section class="section products" id="products"> <div class="container"> <div class="section-title"> <h2>Featured Products</h2> <p>Check out our best-selling items that are loved by customers worldwide</p> </div> <div class="products-slider"> <div class="products-container" id="products-container"> <!-- Product cards will be added dynamically with JavaScript --> </div> <div class="slider-controls"> <div class="slider-btn prev-btn"> <i class="fas fa-chevron-left"></i> </div> <div class="slider-btn next-btn"> <i class="fas fa-chevron-right"></i> </div> </div> </div> </div> </section> <!-- Special Offer --> <section class="section special-offer" id="offer"> <div class="container"> <div class="offer-content"> <h2>Summer Sale</h2> <p>Get up to 50% off on all summer collections. Limited time offer!</p> <div class="countdown"> <div class="countdown-item"> <div class="countdown-number" id="days">00</div> <div class="countdown-label">Days</div> </div> <div class="countdown-item"> <div class="countdown-number" id="hours">00</div> <div class="countdown-label">Hours</div> </div> <div class="countdown-item"> <div class="countdown-number" id="minutes">00</div> <div class="countdown-label">Minutes</div> </div> <div class="countdown-item"> <div class="countdown-number" id="seconds">00</div> <div class="countdown-label">Seconds</div> </div> </div> <a href="#" class="btn pulse">Shop The Sale</a> </div> </div> </section> <!-- Testimonials --> <section class="section testimonials" id="testimonials"> <div class="container"> <div class="section-title"> <h2>What Our Customers Say</h2> <p>Don't just take our word for it - hear from our satisfied customers</p> </div> <div class="testimonials-slider"> <div class="testimonials-container" id="testimonials-container"> <!-- Testimonial cards will be added dynamically with JavaScript --> </div> <div class="slider-controls"> <div class="slider-btn prev-testimonial"> <i class="fas fa-chevron-left"></i> </div> <div class="slider-btn next-testimonial"> <i class="fas fa-chevron-right"></i> </div> </div> </div> </div> </section> <!-- Blog Section --> <section class="section blog" id="blog"> <div class="container"> <div class="section-title"> <h2>Fashion Blog</h2> <p>Stay updated with the latest fashion trends and styling tips</p> </div> <div class="blog-container"> <div class="blog-card"> <div class="blog-img"> <img src="https://images.unsplash.com/photo-1469334031218-e382a71b716b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Summer Fashion Trends"> </div> <div class="blog-content"> <div class="blog-meta"> <span><i class="far fa-calendar"></i> June 15, 2023</span> <span><i class="far fa-comment"></i> 24 Comments</span> </div> <h3>Top Summer Fashion Trends for 2023</h3> <p>Discover the must-have summer styles that will keep you looking fresh and fashionable all season long.</p> <a href="#" class="btn btn-outline">Read More</a> </div> </div> <div class="blog-card"> <div class="blog-img"> <img src="https://images.unsplash.com/photo-1515886657613-9f3515b0c78f?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2042&q=80" alt="Accessorizing Tips"> </div> <div class="blog-content"> <div class="blog-meta"> <span><i class="far fa-calendar"></i> June 10, 2023</span> <span><i class="far fa-comment"></i> 18 Comments</span> </div> <h3>How to Accessorize Your Outfits Like a Pro</h3> <p>Learn the art of accessorizing to elevate your everyday outfits and make a statement.</p> <a href="#" class="btn btn-outline">Read More</a> </div> </div> <div class="blog-card"> <div class="blog-img"> <img src="https://images.unsplash.com/photo-1558769132-cb1aea458c5e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1974&q=80" alt="Sustainable Fashion"> </div> <div class="blog-content"> <div class="blog-meta"> <span><i class="far fa-calendar"></i> June 5, 2023</span> <span><i class="far fa-comment"></i> 32 Comments</span> </div> <h3>The Rise of Sustainable Fashion</h3> <p>Explore how the fashion industry is embracing sustainability and how you can make eco-friendly choices.</p> <a href="#" class="btn btn-outline">Read More</a> </div> </div> </div> </div> </section> <!-- Newsletter --> <section class="section newsletter"> <div class="container"> <div class="newsletter-content"> <h2>Subscribe to Our Newsletter</h2> <p>Be the first to know about new arrivals, exclusive offers, and fashion tips</p> <form class="newsletter-form"> <input type="email" placeholder="Your email address" required> <button type="submit">Subscribe</button> </form> </div> </div> </section> <!-- Footer --> <footer> <div class="container"> <div class="footer-container"> <div class="footer-col"> <h3>Elegance</h3> <p>Your premier destination for stylish and high-quality clothing. We're committed to bringing you the latest fashion trends with exceptional customer service.</p> <div class="social-links"> <a href="#"><i class="fab fa-facebook-f"></i></a> <a href="#"><i class="fab fa-twitter"></i></a> <a href="#"><i class="fab fa-instagram"></i></a> <a href="#"><i class="fab fa-pinterest"></i></a> </div> </div> <div class="footer-col"> <h3>Quick Links</h3> <ul> <li><a href="#home">Home</a></li> <li><a href="#categories">Categories</a></li> <li><a href="#products">Products</a></li> <li><a href="#offer">Special Offers</a></li> <li><a href="#blog">Blog</a></li> </ul> </div> <div class="footer-col"> <h3>Customer Service</h3> <ul> <li><a href="#">Contact Us</a></li> <li><a href="#">Shipping Policy</a></li> <li><a href="#">Return & Refund</a></li> <li><a href="#">FAQs</a></li> <li><a href="#">Size Guide</a></li> </ul> </div> <div class="footer-col"> <h3>Contact Info</h3> <ul> <li><i class="fas fa-map-marker-alt"></i> 123 Fashion Street, New York, NY</li> <li><i class="fas fa-phone"></i> +1 234 567 8900</li> <li><i class="fas fa-envelope"></i> info@elegance.com</li> <li><i class="fas fa-clock"></i> Mon-Sat: 9AM - 8PM</li> </ul> </div> </div> <div class="footer-bottom"> <p>© 2023 Elegance. All Rights Reserved.</p> </div> </div> </footer> </body> </html>
CSS
/* CSS Reset and Variables */ :root { --primary: #2c3e50; --secondary: #e74c3c; --accent: #f39c12; --light: #ecf0f1; --dark: #2c3e50; --text: #333333; --text-light: #777777; --white: #ffffff; --shadow: 0 5px 15px rgba(0, 0, 0, 0.1); --transition: all 0.3s ease; } * { margin: 0; padding: 0; box-sizing: border-box; } html { scroll-behavior: smooth; } body { font-family: 'Poppins', sans-serif; line-height: 1.6; color: var(--text); overflow-x: hidden; background-color: var(--white); } h1, h2, h3, h4, h5 { font-family: 'Playfair Display', serif; font-weight: 600; line-height: 1.2; margin-bottom: 1rem; } a { text-decoration: none; color: inherit; } ul { list-style: none; } img { max-width: 100%; height: auto; } .container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; } .btn { display: inline-block; padding: 12px 30px; background-color: var(--secondary); color: var(--white); border: none; border-radius: 4px; font-weight: 500; cursor: pointer; transition: var(--transition); text-transform: uppercase; letter-spacing: 1px; font-size: 14px; } .btn:hover { background-color: var(--primary); transform: translateY(-3px); box-shadow: var(--shadow); } .btn-outline { background-color: transparent; border: 2px solid var(--secondary); color: var(--secondary); } .btn-outline:hover { background-color: var(--secondary); color: var(--white); } .section { padding: 80px 0; } .section-title { text-align: center; margin-bottom: 50px; position: relative; } .section-title h2 { font-size: 36px; color: var(--primary); display: inline-block; position: relative; } .section-title h2::after { content: ''; position: absolute; width: 70px; height: 3px; background-color: var(--secondary); bottom: -10px; left: 50%; transform: translateX(-50%); } .section-title p { color: var(--text-light); max-width: 600px; margin: 15px auto 0; } /* Header Styles */ header { position: fixed; top: 0; left: 0; width: 100%; z-index: 1000; background-color: var(--white); box-shadow: var(--shadow); transition: var(--transition); } header.scrolled { padding: 10px 0; } .header-container { display: flex; justify-content: space-between; align-items: center; padding: 20px 0; } .logo { font-family: 'Playfair Display', serif; font-size: 28px; font-weight: 700; color: var(--primary); } .logo span { color: var(--secondary); } .nav-menu { display: flex; } .nav-menu li { margin-left: 30px; } .nav-menu a { font-weight: 500; position: relative; transition: var(--transition); } .nav-menu a::after { content: ''; position: absolute; width: 0; height: 2px; background-color: var(--secondary); bottom: -5px; left: 0; transition: var(--transition); } .nav-menu a:hover { color: var(--secondary); } .nav-menu a:hover::after { width: 100%; } .header-icons { display: flex; align-items: center; } .header-icons div { margin-left: 20px; cursor: pointer; font-size: 18px; transition: var(--transition); } .header-icons div:hover { color: var(--secondary); } .mobile-toggle { display: none; font-size: 24px; cursor: pointer; } /* Hero Section */ .hero { height: 100vh; background: linear-gradient(rgba(0, 0, 0, 0.6), rgba(0, 0, 0, 0.6)), url('https://images.unsplash.com/photo-1523381294911-8d3cead13475?ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8N3x8Q2xvdGhpbmd8ZW58MHx8MHx8fDA%3D&auto=format&fit=crop&q=60&w=500') no-repeat center center/cover; display: flex; align-items: center; color: var(--white); text-align: center; } .hero-content { max-width: 800px; margin: 0 auto; animation: fadeInUp 1s ease; } .hero h1 { font-size: 60px; margin-bottom: 20px; animation: fadeInUp 1s ease 0.2s both; } .hero p { font-size: 18px; margin-bottom: 30px; animation: fadeInUp 1s ease 0.4s both; } .hero-buttons { display: flex; justify-content: center; gap: 15px; animation: fadeInUp 1s ease 0.6s both; } /* Featured Categories */ .categories { background-color: var(--light); } .categories-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 30px; } .category-card { background-color: var(--white); border-radius: 8px; overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); position: relative; } .category-card:hover { transform: translateY(-10px); } .category-img { height: 250px; overflow: hidden; } .category-img img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .category-card:hover .category-img img { transform: scale(1.1); } .category-content { padding: 20px; text-align: center; } .category-content h3 { font-size: 22px; margin-bottom: 10px; } /* Featured Products */ .products-slider { position: relative; overflow: hidden; padding: 20px 0; } .products-container { display: flex; transition: transform 0.5s ease; } .product-card { min-width: 280px; margin: 0 15px; background-color: var(--white); border-radius: 8px; overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); } .product-card:hover { transform: translateY(-10px); } .product-img { height: 300px; overflow: hidden; position: relative; } .product-img img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .product-card:hover .product-img img { transform: scale(1.1); } .product-badge { position: absolute; top: 15px; left: 15px; background-color: var(--secondary); color: var(--white); padding: 5px 10px; border-radius: 4px; font-size: 12px; font-weight: 500; } .product-content { padding: 20px; } .product-content h3 { font-size: 18px; margin-bottom: 10px; } .product-price { display: flex; align-items: center; margin-bottom: 15px; } .current-price { font-size: 18px; font-weight: 600; color: var(--secondary); margin-right: 10px; } .original-price { font-size: 14px; color: var(--text-light); text-decoration: line-through; } .product-rating { color: var(--accent); margin-bottom: 15px; } .slider-controls { display: flex; justify-content: center; margin-top: 30px; } .slider-btn { width: 40px; height: 40px; border-radius: 50%; background-color: var(--light); display: flex; align-items: center; justify-content: center; margin: 0 10px; cursor: pointer; transition: var(--transition); } .slider-btn:hover { background-color: var(--secondary); color: var(--white); } /* Special Offer */ .special-offer { background: linear-gradient(rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0.7)), url('https://images.unsplash.com/photo-1558769132-cb1aea458c5e?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1974&q=80') no-repeat center center/cover; color: var(--white); text-align: center; } .offer-content { max-width: 800px; margin: 0 auto; } .offer-content h2 { font-size: 48px; margin-bottom: 20px; } .offer-content p { font-size: 18px; margin-bottom: 30px; } .countdown { display: flex; justify-content: center; gap: 20px; margin-bottom: 30px; } .countdown-item { background-color: rgba(255, 255, 255, 0.2); padding: 15px; border-radius: 8px; min-width: 80px; } .countdown-number { font-size: 36px; font-weight: 700; margin-bottom: 5px; } .countdown-label { font-size: 14px; text-transform: uppercase; } /* Testimonials */ .testimonials { background-color: var(--light); } .testimonials-slider { position: relative; overflow: hidden; } .testimonials-container { display: flex; transition: transform 0.5s ease; } .testimonial-card { min-width: 100%; padding: 0 20px; text-align: center; } .testimonial-content { background-color: var(--white); padding: 40px; border-radius: 8px; box-shadow: var(--shadow); margin-bottom: 30px; position: relative; } .testimonial-content::after { content: ''; position: absolute; bottom: -15px; left: 50%; transform: translateX(-50%); border-width: 15px 15px 0; border-style: solid; border-color: var(--white) transparent transparent; } .testimonial-text { font-style: italic; margin-bottom: 20px; } .testimonial-author { display: flex; align-items: center; justify-content: center; } .author-img { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; margin-right: 15px; } .author-img img { width: 100%; height: 100%; object-fit: cover; } .author-info h4 { margin-bottom: 5px; } .author-info p { color: var(--text-light); font-size: 14px; } /* Blog Section */ .blog-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; } .blog-card { background-color: var(--white); border-radius: 8px; overflow: hidden; box-shadow: var(--shadow); transition: var(--transition); } .blog-card:hover { transform: translateY(-10px); } .blog-img { height: 200px; overflow: hidden; } .blog-img img { width: 100%; height: 100%; object-fit: cover; transition: var(--transition); } .blog-card:hover .blog-img img { transform: scale(1.1); } .blog-content { padding: 20px; } .blog-meta { display: flex; margin-bottom: 10px; font-size: 14px; color: var(--text-light); } .blog-meta span { margin-right: 15px; } .blog-meta i { margin-right: 5px; } .blog-content h3 { font-size: 20px; margin-bottom: 10px; } .blog-content p { margin-bottom: 15px; color: var(--text-light); } /* Newsletter */ .newsletter { background-color: var(--primary); color: var(--white); text-align: center; } .newsletter-content { max-width: 600px; margin: 0 auto; } .newsletter h2 { font-size: 36px; margin-bottom: 15px; } .newsletter p { margin-bottom: 30px; } .newsletter-form { display: flex; max-width: 500px; margin: 0 auto; } .newsletter-form input { flex: 1; padding: 15px; border: none; border-radius: 4px 0 0 4px; font-family: 'Poppins', sans-serif; } .newsletter-form button { background-color: var(--secondary); color: var(--white); border: none; padding: 0 25px; border-radius: 0 4px 4px 0; cursor: pointer; transition: var(--transition); } .newsletter-form button:hover { background-color: var(--accent); } /* Footer */ footer { background-color: var(--dark); color: var(--white); padding: 80px 0 20px; } .footer-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; margin-bottom: 50px; } .footer-col h3 { font-size: 20px; margin-bottom: 25px; position: relative; } .footer-col h3::after { content: ''; position: absolute; width: 40px; height: 2px; background-color: var(--secondary); bottom: -10px; left: 0; } .footer-col ul li { margin-bottom: 15px; } .footer-col ul li a { transition: var(--transition); } .footer-col ul li a:hover { color: var(--secondary); padding-left: 5px; } .social-links { display: flex; gap: 15px; margin-top: 20px; } .social-links a { width: 40px; height: 40px; border-radius: 50%; background-color: rgba(255, 255, 255, 0.1); display: flex; align-items: center; justify-content: center; transition: var(--transition); } .social-links a:hover { background-color: var(--secondary); transform: translateY(-5px); } .footer-bottom { text-align: center; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.1); } /* Animations */ @keyframes fadeInUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } @keyframes pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } } .pulse { animation: pulse 2s infinite; } /* Responsive Styles */ @media (max-width: 992px) { .hero h1 { font-size: 48px; } .offer-content h2 { font-size: 36px; } .section-title h2 { font-size: 32px; } } @media (max-width: 768px) { .mobile-toggle { display: block; } .nav-menu { position: fixed; top: 80px; left: -100%; width: 100%; height: calc(100vh - 80px); background-color: var(--white); flex-direction: column; align-items: center; justify-content: flex-start; padding-top: 50px; transition: var(--transition); } .nav-menu.active { left: 0; } .nav-menu li { margin: 15px 0; } .hero h1 { font-size: 36px; } .hero-buttons { flex-direction: column; align-items: center; } .hero-buttons .btn { width: 100%; max-width: 250px; margin-bottom: 10px; } .countdown { flex-wrap: wrap; } .newsletter-form { flex-direction: column; } .newsletter-form input { border-radius: 4px; margin-bottom: 10px; } .newsletter-form button { border-radius: 4px; padding: 15px; } } @media (max-width: 576px) { .section { padding: 60px 0; } .hero h1 { font-size: 32px; } .hero p { font-size: 16px; } .section-title h2 { font-size: 28px; } .offer-content h2 { font-size: 28px; } .countdown-item { min-width: 60px; } .countdown-number { font-size: 24px; } }
JavaScript
// Mobile Menu Toggle const mobileToggle = document.querySelector('.mobile-toggle'); const navMenu = document.querySelector('.nav-menu'); mobileToggle.addEventListener('click', () => { navMenu.classList.toggle('active'); mobileToggle.querySelector('i').classList.toggle('fa-bars'); mobileToggle.querySelector('i').classList.toggle('fa-times'); }); // Header Scroll Effect window.addEventListener('scroll', () => { const header = document.getElementById('header'); if (window.scrollY > 100) { header.classList.add('scrolled'); } else { header.classList.remove('scrolled'); } }); // Product Data const products = [ { id: 1, name: "Classic White Shirt", price: 49.99, originalPrice: 69.99, image: "https://plus.unsplash.com/premium_photo-1678218594563-9fe0d16c6838?ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8MXx8Q2xhc3NpYyUyMFdoaXRlJTIwU2hpcnR8ZW58MHx8MHx8fDA%3D&auto=format&fit=crop&q=60&w=500", badge: "Sale", rating: 4.5 }, { id: 2, name: "Denim Jacket", price: 79.99, originalPrice: 99.99, image: "https://images.unsplash.com/photo-1551028719-00167b16eac5?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1035&q=80", badge: "New", rating: 4.8 }, { id: 3, name: "Floral Summer Dress", price: 59.99, originalPrice: 79.99, image: "https://images.unsplash.com/photo-1515372039744-b8f02a3ae446?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=988&q=80", badge: "Popular", rating: 4.7 }, { id: 4, name: "Slim Fit Chinos", price: 44.99, originalPrice: 59.99, image: "https://images.unsplash.com/photo-1542272604-787c3835535d?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1026&q=80", badge: "Sale", rating: 4.3 }, { id: 5, name: "Leather Crossbody Bag", price: 89.99, originalPrice: 119.99, image: "https://images.unsplash.com/photo-1584917865442-de89df76afd3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1035&q=80", badge: "Bestseller", rating: 4.9 }, { id: 6, name: "Casual Sneakers", price: 64.99, originalPrice: 84.99, image: "https://images.unsplash.com/photo-1549298916-b41d501d3772?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1112&q=80", badge: "New", rating: 4.6 } ]; // Testimonial Data const testimonials = [ { id: 1, text: "I absolutely love shopping at Elegance! The quality of their clothing is exceptional and the customer service is outstanding. I always receive compliments on my outfits from here.", name: "Sarah Johnson", role: "Fashion Blogger", image: "https://randomuser.me/api/portraits/women/32.jpg" }, { id: 2, text: "As a busy professional, I don't have much time for shopping. Elegance makes it so easy with their well-curated collections and accurate sizing. My entire work wardrobe is from here!", name: "Michael Chen", role: "Marketing Director", image: "https://randomuser.me/api/portraits/men/54.jpg" }, { id: 3, text: "The summer collection at Elegance is absolutely stunning! I purchased three dresses and each one fits perfectly. The fabric quality is impressive and the styles are so fashionable.", name: "Emily Rodriguez", role: "Graphic Designer", image: "https://randomuser.me/api/portraits/women/68.jpg" } ]; // Initialize Products Slider const productsContainer = document.getElementById('products-container'); const prevBtn = document.querySelector('.prev-btn'); const nextBtn = document.querySelector('.next-btn'); let currentProductIndex = 0; const productsPerView = getProductsPerView(); function getProductsPerView() { if (window.innerWidth < 768) return 1; if (window.innerWidth < 992) return 2; return 3; } function renderProducts() { productsContainer.innerHTML = ''; products.forEach(product => { const productCard = document.createElement('div'); productCard.className = 'product-card'; productCard.innerHTML = ` <div class="product-img"> <img src="${product.image}" alt="${product.name}"> <span class="product-badge">${product.badge}</span> </div> <div class="product-content"> <h3>${product.name}</h3> <div class="product-price"> <span class="current-price">$${product.price}</span> <span class="original-price">$${product.originalPrice}</span> </div> <div class="product-rating"> ${generateStars(product.rating)} </div> <a href="#" class="btn">Add to Cart</a> </div> `; productsContainer.appendChild(productCard); }); } function generateStars(rating) { let stars = ''; const fullStars = Math.floor(rating); const hasHalfStar = rating % 1 !== 0; for (let i = 0; i < fullStars; i++) { stars += '<i class="fas fa-star"></i>'; } if (hasHalfStar) { stars += '<i class="fas fa-star-half-alt"></i>'; } const emptyStars = 5 - Math.ceil(rating); for (let i = 0; i < emptyStars; i++) { stars += '<i class="far fa-star"></i>'; } return stars; } function updateProductsSlider() { const productWidth = document.querySelector('.product-card').offsetWidth + 30; productsContainer.style.transform = `translateX(-${currentProductIndex * productWidth}px)`; } nextBtn.addEventListener('click', () => { const maxIndex = products.length - productsPerView; if (currentProductIndex < maxIndex) { currentProductIndex++; updateProductsSlider(); } }); prevBtn.addEventListener('click', () => { if (currentProductIndex > 0) { currentProductIndex--; updateProductsSlider(); } }); // Initialize Testimonials Slider const testimonialsContainer = document.getElementById('testimonials-container'); const prevTestimonialBtn = document.querySelector('.prev-testimonial'); const nextTestimonialBtn = document.querySelector('.next-testimonial'); let currentTestimonialIndex = 0; function renderTestimonials() { testimonialsContainer.innerHTML = ''; testimonials.forEach(testimonial => { const testimonialCard = document.createElement('div'); testimonialCard.className = 'testimonial-card'; testimonialCard.innerHTML = ` <div class="testimonial-content"> <p class="testimonial-text">"${testimonial.text}"</p> <div class="testimonial-author"> <div class="author-img"> <img src="${testimonial.image}" alt="${testimonial.name}"> </div> <div class="author-info"> <h4>${testimonial.name}</h4> <p>${testimonial.role}</p> </div> </div> </div> `; testimonialsContainer.appendChild(testimonialCard); }); } function updateTestimonialsSlider() { testimonialsContainer.style.transform = `translateX(-${currentTestimonialIndex * 100}%)`; } nextTestimonialBtn.addEventListener('click', () => { if (currentTestimonialIndex < testimonials.length - 1) { currentTestimonialIndex++; updateTestimonialsSlider(); } }); prevTestimonialBtn.addEventListener('click', () => { if (currentTestimonialIndex > 0) { currentTestimonialIndex--; updateTestimonialsSlider(); } }); // Countdown Timer function updateCountdown() { const countdownDate = new Date(); countdownDate.setDate(countdownDate.getDate() + 7); // Set to 7 days from now const now = new Date().getTime(); const distance = countdownDate - now; const days = Math.floor(distance / (1000 * 60 * 60 * 24)); const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); const seconds = Math.floor((distance % (1000 * 60)) / 1000); document.getElementById('days').textContent = days.toString().padStart(2, '0'); document.getElementById('hours').textContent = hours.toString().padStart(2, '0'); document.getElementById('minutes').textContent = minutes.toString().padStart(2, '0'); document.getElementById('seconds').textContent = seconds.toString().padStart(2, '0'); if (distance < 0) { clearInterval(countdownTimer); document.querySelector('.countdown').innerHTML = '<h3>Sale Ended!</h3>'; } } const countdownTimer = setInterval(updateCountdown, 1000); // Initialize on load window.addEventListener('load', () => { renderProducts(); renderTestimonials(); updateCountdown(); }); // Handle window resize window.addEventListener('resize', () => { const newProductsPerView = getProductsPerView(); if (newProductsPerView !== productsPerView) { currentProductIndex = 0; updateProductsSlider(); } }); // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); if (targetId === '#') return; const targetElement = document.querySelector(targetId); if (targetElement) { window.scrollTo({ top: targetElement.offsetTop - 100, behavior: 'smooth' }); // Close mobile menu if open if (navMenu.classList.contains('active')) { navMenu.classList.remove('active'); mobileToggle.querySelector('i').classList.add('fa-bars'); mobileToggle.querySelector('i').classList.remove('fa-times'); } } }); });
Output Preview
Desktop
Mobile
Fullscreen