🛒

E-commerce Product Page

Modern product page with image gallery, pricing, quantity selector, and add to cart functionality.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Premium Headphones | AudioStore</title>
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <nav class="navbar">
    <div class="container">
      <a href="#" class="logo">AudioStore</a>
      <div class="nav-links">
        <a href="#">Shop</a>
        <a href="#">Deals</a>
        <a href="#">Support</a>
        <a href="#"><i class="fas fa-shopping-cart"></i> Cart</a>
      </div>
      <button class="mobile-menu"><i class="fas fa-bars"></i></button>
    </div>
  </nav>
  
  <main class="product-page">
    <div class="container">
      <div class="product-grid">
        <!-- Product Gallery -->
        <div class="product-gallery">
          <div class="main-image" id="mainImage">
            <div class="image-placeholder">🎧</div>
          </div>
          <div class="thumbnail-grid">
            <div class="thumbnail active" data-image="🎧">🎧</div>
            <div class="thumbnail" data-image="🎵">🎵</div>
            <div class="thumbnail" data-image="📦">📦</div>
            <div class="thumbnail" data-image="🔊">🔊</div>
          </div>
        </div>
        
        <!-- Product Info -->
        <div class="product-info">
          <div class="product-brand">Premium Audio</div>
          <h1 class="product-title">Premium Wireless Headphones</h1>
          
          <div class="product-rating">
            <i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star"></i><i class="fas fa-star-half-alt"></i>
            <span>4.8 (2,345 reviews)</span>
          </div>
          
          <div class="product-price">
            <span class="current-price">$199.99</span>
            <span class="original-price">$299.99</span>
            <span class="discount">Save $100</span>
          </div>
          
          <div class="product-description">
            <p>Experience crystal-clear sound with our premium wireless headphones. Features active noise cancellation, 40-hour battery life, and ultra-comfortable design. Perfect for travel, work, or daily commutes.</p>
          </div>
          
          <div class="product-features">
            <h3>Key Features:</h3>
            <ul>
              <li><i class="fas fa-check-circle"></i> Active Noise Cancellation (ANC)</li>
              <li><i class="fas fa-check-circle"></i> 40 Hours Battery Life</li>
              <li><i class="fas fa-check-circle"></i> Bluetooth 5.3 Connectivity</li>
              <li><i class="fas fa-check-circle"></i> Built-in Microphone for Calls</li>
              <li><i class="fas fa-check-circle"></i> Fast Charging (15 min = 8 hours)</li>
            </ul>
          </div>
          
          <div class="product-options">
            <div class="color-options">
              <span>Color:</span>
              <div class="color-btns">
                <button class="color-btn active" data-color="Black" style="background: #1a1a1a;"></button>
                <button class="color-btn" data-color="White" style="background: #f5f5f5;"></button>
                <button class="color-btn" data-color="Silver" style="background: #c0c0c0;"></button>
              </div>
            </div>
          </div>
          
          <div class="quantity-selector">
            <button class="qty-btn" id="decrement">-</button>
            <input type="number" id="quantity" value="1" min="1" max="10">
            <button class="qty-btn" id="increment">+</button>
          </div>
          
          <button class="add-to-cart" id="addToCart">
            <i class="fas fa-shopping-cart"></i> Add to Cart
          </button>
          
          <div class="delivery-info">
            <p><i class="fas fa-truck"></i> Free shipping on orders over $50</p>
            <p><i class="fas fa-undo-alt"></i> 30-day easy returns</p>
            <p><i class="fas fa-shield-alt"></i> 2-year warranty included</p>
          </div>
        </div>
      </div>
    </div>
  </main>
  
  <footer>
    <div class="container">
      <p>© 2025 AudioStore. All rights reserved. Built with <i class="fas fa-heart"></i> by WordTune®</p>
    </div>
  </footer>
  
  <script src="script.js"></script>
</body>
</html>
/* E-commerce Product Page Styles */
:root {
  --primary: #e94560;
  --primary-dark: #c7354e;
  --secondary: #2d6a4f;
  --dark: #1a1a2e;
  --light: #f8f9fa;
  --gray: #6c757d;
  --white: #ffffff;
  --border: #e9ecef;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Inter', sans-serif;
  color: var(--dark);
  line-height: 1.6;
  background: var(--white);
}

.container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* Navigation */
.navbar {
  position: sticky;
  top: 0;
  width: 100%;
  background: var(--white);
  z-index: 1000;
  padding: 1rem 0;
  border-bottom: 1px solid var(--border);
}

.navbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.logo {
  font-size: 1.5rem;
  font-weight: 800;
  text-decoration: none;
  color: var(--dark);
}

.nav-links {
  display: flex;
  gap: 2rem;
  align-items: center;
}

.nav-links a {
  text-decoration: none;
  color: var(--dark);
  font-weight: 500;
  transition: color 0.3s;
}

.nav-links a:hover {
  color: var(--primary);
}

.mobile-menu {
  display: none;
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
}

/* Product Page */
.product-page {
  padding: 3rem 0;
}

.product-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
}

/* Gallery */
.product-gallery {
  position: sticky;
  top: 100px;
}

.main-image {
  background: var(--light);
  border-radius: 24px;
  height: 450px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  border: 1px solid var(--border);
}

.image-placeholder {
  font-size: 8rem;
}

.thumbnail-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
}

.thumbnail {
  background: var(--light);
  border-radius: 12px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  cursor: pointer;
  transition: all 0.3s;
  border: 2px solid transparent;
}

.thumbnail:hover {
  transform: translateY(-3px);
}

.thumbnail.active {
  border-color: var(--primary);
  background: rgba(233,69,96,0.1);
}

/* Product Info */
.product-brand {
  color: var(--primary);
  font-size: 0.9rem;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}

.product-title {
  font-size: 2.2rem;
  margin-bottom: 1rem;
}

.product-rating {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.product-rating i {
  color: #ffc107;
}

.product-rating span {
  color: var(--gray);
  font-size: 0.9rem;
}

.product-price {
  margin-bottom: 1.5rem;
  display: flex;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
}

.current-price {
  font-size: 2rem;
  font-weight: 800;
  color: var(--primary);
}

.original-price {
  font-size: 1.2rem;
  color: var(--gray);
  text-decoration: line-through;
}

.discount {
  background: rgba(233,69,96,0.1);
  color: var(--primary);
  padding: 0.2rem 0.6rem;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 600;
}

.product-description {
  color: var(--gray);
  margin-bottom: 1.5rem;
  line-height: 1.7;
}

.product-features {
  margin-bottom: 1.5rem;
}

.product-features h3 {
  font-size: 1rem;
  margin-bottom: 0.5rem;
}

.product-features ul {
  list-style: none;
}

.product-features li {
  padding: 0.3rem 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.product-features i {
  color: var(--primary);
  width: 20px;
}

/* Color Options */
.product-options {
  margin-bottom: 1.5rem;
}

.color-options {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.color-options span {
  font-weight: 500;
}

.color-btns {
  display: flex;
  gap: 0.5rem;
}

.color-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 2px solid var(--border);
  cursor: pointer;
  transition: all 0.3s;
}

.color-btn.active {
  border-color: var(--primary);
  box-shadow: 0 0 0 2px var(--primary);
}

.color-btn:hover {
  transform: scale(1.05);
}

/* Quantity Selector */
.quantity-selector {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.qty-btn {
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  background: var(--light);
  font-size: 1.2rem;
  cursor: pointer;
  border-radius: 8px;
  transition: all 0.3s;
}

.qty-btn:hover {
  background: var(--primary);
  color: white;
  border-color: var(--primary);
}

#quantity {
  width: 60px;
  height: 40px;
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 1rem;
}

/* Add to Cart */
.add-to-cart {
  width: 100%;
  background: var(--primary);
  color: white;
  border: none;
  padding: 1rem;
  border-radius: 50px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.add-to-cart:hover {
  background: var(--primary-dark);
  transform: translateY(-2px);
}

/* Delivery Info */
.delivery-info {
  background: var(--light);
  padding: 1rem;
  border-radius: 12px;
}

.delivery-info p {
  padding: 0.3rem 0;
  font-size: 0.85rem;
  color: var(--gray);
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.delivery-info i {
  color: var(--primary);
  width: 25px;
}

/* Footer */
footer {
  background: var(--dark);
  color: #888;
  text-align: center;
  padding: 2rem;
  margin-top: 3rem;
}

footer i {
  color: var(--primary);
}

/* Responsive */
@media (max-width: 900px) {
  .product-grid {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .product-gallery {
    position: static;
  }
  .main-image {
    height: 350px;
  }
}

@media (max-width: 768px) {
  .nav-links {
    display: none;
  }
  .mobile-menu {
    display: block;
  }
  .product-title {
    font-size: 1.8rem;
  }
  .current-price {
    font-size: 1.5rem;
  }
}
// E-commerce Product Page JavaScript

// Mobile Menu Toggle
const mobileMenu = document.querySelector('.mobile-menu');
const navLinks = document.querySelector('.nav-links');

if (mobileMenu) {
  mobileMenu.addEventListener('click', () => {
    navLinks.classList.toggle('active');
    mobileMenu.classList.toggle('active');
  });
}

// Image Gallery Thumbnails
const thumbnails = document.querySelectorAll('.thumbnail');
const mainImage = document.querySelector('.main-image .image-placeholder');

thumbnails.forEach(thumb => {
  thumb.addEventListener('click', () => {
    thumbnails.forEach(t => t.classList.remove('active'));
    thumb.classList.add('active');
    const image = thumb.getAttribute('data-image');
    mainImage.textContent = image;
  });
});

// Color Selection
const colorBtns = document.querySelectorAll('.color-btn');

colorBtns.forEach(btn => {
  btn.addEventListener('click', () => {
    colorBtns.forEach(b => b.classList.remove('active'));
    btn.classList.add('active');
    const color = btn.getAttribute('data-color');
    // Update main image or show selected color (optional)
    console.log(`Selected color: ${color}`);
  });
});

// Quantity Selector
const decrementBtn = document.getElementById('decrement');
const incrementBtn = document.getElementById('increment');
const quantityInput = document.getElementById('quantity');

decrementBtn.addEventListener('click', () => {
  let value = parseInt(quantityInput.value);
  if (value > 1) {
    quantityInput.value = value - 1;
  }
});

incrementBtn.addEventListener('click', () => {
  let value = parseInt(quantityInput.value);
  if (value < 10) {
    quantityInput.value = value + 1;
  }
});

quantityInput.addEventListener('change', () => {
  let value = parseInt(quantityInput.value);
  if (isNaN(value) || value < 1) {
    quantityInput.value = 1;
  }
  if (value > 10) {
    quantityInput.value = 10;
  }
});

// Add to Cart
const addToCartBtn = document.getElementById('addToCart');

addToCartBtn.addEventListener('click', () => {
  const quantity = parseInt(quantityInput.value);
  const price = 199.99;
  const total = (price * quantity).toFixed(2);
  
  // Show toast notification
  const toast = document.createElement('div');
  toast.className = 'toast';
  toast.innerHTML = `✅ Added ${quantity} item(s) to cart! Total: $${total}`;
  toast.style.background = '#28a745';
  toast.style.color = 'white';
  toast.style.position = 'fixed';
  toast.style.bottom = '20px';
  toast.style.right = '20px';
  toast.style.padding = '12px 20px';
  toast.style.borderRadius = '8px';
  toast.style.zIndex = '9999';
  document.body.appendChild(toast);
  
  setTimeout(() => toast.classList.add('show'), 10);
  setTimeout(() => toast.remove(), 3000);
});

// Smooth Scroll
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
  anchor.addEventListener('click', function(e) {
    e.preventDefault();
    const target = document.querySelector(this.getAttribute('href'));
    if (target) {
      target.scrollIntoView({ behavior: 'smooth' });
    }
  });
});

console.log('E-commerce product page ready!');
HTML
This e-commerce template includes product gallery, quantity selector, color options, and add to cart.
Live Demo