test1 / index.html
Hamidoudp's picture
Crée un site e-commerce moderne pour une boutique de vêtements du nom de la marque LA BANANE PARIS . Design minimaliste avec palette de couleurs pastel (NOIR, JAUNE, blanc). Inclus : header avec navigation sticky, hero section avec image de fond et CTA, grille de produits avec photos, prix et boutons d'ajout au panier, système de personnalisation (taille, niveau de sucre, toppings), panier latéral qui s'ouvre en slide, formulaire de commande, et footer avec horaires et réseaux sociaux. - Initial Deployment
e4982a2 verified
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>LA BANANE PARIS - Vêtements élégants et minimalistes</title>
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
.hero-image {
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('https://images.unsplash.com/photo-1483985988355-763728e1935b?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80');
background-size: cover;
background-position: center;
height: 80vh;
}
.cart-slide {
transform: translateX(100%);
transition: transform 0.3s ease-in-out;
}
.cart-slide.open {
transform: translateX(0);
}
.product-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}
.product-card {
transition: all 0.3s ease;
}
.customization-option {
border: 1px solid #e5e7eb;
transition: all 0.2s ease;
}
.customization-option:hover, .customization-option.selected {
border-color: #facc15;
background-color: rgba(250, 204, 21, 0.1);
}
.sticky-header {
position: sticky;
top: 0;
z-index: 50;
backdrop-filter: blur(10px);
background-color: rgba(0, 0, 0, 0.8);
}
</style>
</head>
<body class="bg-white text-gray-900 font-sans">
<!-- Header Sticky -->
<header class="sticky-header py-4 px-6 shadow-md">
<div class="container mx-auto flex justify-between items-center">
<div class="flex items-center space-x-2">
<span class="text-yellow-400 text-2xl"><i class="fas fa-banana"></i></span>
<h1 class="text-2xl font-bold text-white">LA BANANE <span class="text-yellow-400">PARIS</span></h1>
</div>
<nav class="hidden md:flex space-x-8">
<a href="#" class="text-white hover:text-yellow-400 transition">Nouveautés</a>
<a href="#" class="text-white hover:text-yellow-400 transition">Vêtements</a>
<a href="#" class="text-white hover:text-yellow-400 transition">Accessoires</a>
<a href="#" class="text-white hover:text-yellow-400 transition">Collections</a>
<a href="#" class="text-white hover:text-yellow-400 transition">À propos</a>
</nav>
<div class="flex items-center space-x-4">
<button class="text-white hover:text-yellow-400 transition">
<i class="fas fa-search text-xl"></i>
</button>
<button class="text-white hover:text-yellow-400 transition">
<i class="fas fa-user text-xl"></i>
</button>
<button id="cart-button" class="text-white hover:text-yellow-400 transition relative">
<i class="fas fa-shopping-bag text-xl"></i>
<span id="cart-count" class="absolute -top-2 -right-2 bg-yellow-400 text-black rounded-full w-5 h-5 flex items-center justify-center text-xs font-bold">0</span>
</button>
<button class="md:hidden text-white">
<i class="fas fa-bars text-xl"></i>
</button>
</div>
</div>
</header>
<!-- Hero Section -->
<section class="hero-image flex items-center justify-center text-center text-white">
<div class="px-6">
<h2 class="text-4xl md:text-6xl font-bold mb-6">ÉLÉGANCE <span class="text-yellow-400">MINIMALISTE</span></h2>
<p class="text-xl mb-8 max-w-2xl mx-auto">Découvrez notre nouvelle collection printemps-été, où le noir rencontre le jaune dans une harmonie parfaite.</p>
<button class="bg-yellow-400 hover:bg-yellow-500 text-black font-bold py-3 px-8 rounded-full transition duration-300 transform hover:scale-105">
Découvrir la collection
</button>
</div>
</section>
<!-- Featured Products -->
<section class="py-16 px-6">
<div class="container mx-auto">
<h2 class="text-3xl font-bold text-center mb-12">NOS <span class="text-yellow-400">PRODUITS</span> PHARES</h2>
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
<!-- Product 1 -->
<div class="product-card bg-white rounded-lg overflow-hidden shadow-md">
<div class="relative">
<img src="https://images.unsplash.com/photo-1551232864-3f0890e580d9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=687&q=80" alt="T-shirt LA BANANE" class="w-full h-64 object-cover">
<div class="absolute top-2 right-2 bg-yellow-400 text-black px-2 py-1 rounded-full text-xs font-bold">NOUVEAU</div>
</div>
<div class="p-4">
<h3 class="font-bold text-xl mb-2">T-shirt Signature</h3>
<p class="text-gray-600 mb-4">T-shirt en coton bio avec logo brodé</p>
<div class="flex justify-between items-center">
<span class="font-bold text-lg">49€</span>
<button class="add-to-cart bg-black text-white hover:bg-yellow-400 hover:text-black px-4 py-2 rounded-full transition" data-product="T-shirt Signature" data-price="49">
Ajouter au panier
</button>
</div>
</div>
</div>
<!-- Product 2 -->
<div class="product-card bg-white rounded-lg overflow-hidden shadow-md">
<div class="relative">
<img src="https://images.unsplash.com/photo-1591047139829-d91aecb6caea?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=736&q=80" alt="Veste LA BANANE" class="w-full h-64 object-cover">
</div>
<div class="p-4">
<h3 class="font-bold text-xl mb-2">Veste Oversized</h3>
<p class="text-gray-600 mb-4">Veste en coton recyclé, coupe oversize</p>
<div class="flex justify-between items-center">
<span class="font-bold text-lg">129€</span>
<button class="add-to-cart bg-black text-white hover:bg-yellow-400 hover:text-black px-4 py-2 rounded-full transition" data-product="Veste Oversized" data-price="129">
Ajouter au panier
</button>
</div>
</div>
</div>
<!-- Product 3 -->
<div class="product-card bg-white rounded-lg overflow-hidden shadow-md">
<div class="relative">
<img src="https://images.unsplash.com/photo-1595341595379-cf2a0a123b8c?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=687&q=80" alt="Pantalon LA BANANE" class="w-full h-64 object-cover">
<div class="absolute top-2 right-2 bg-black text-yellow-400 px-2 py-1 rounded-full text-xs font-bold">LIMITÉ</div>
</div>
<div class="p-4">
<h3 class="font-bold text-xl mb-2">Pantalon Cargo</h3>
<p class="text-gray-600 mb-4">Pantalon technique avec multiples poches</p>
<div class="flex justify-between items-center">
<span class="font-bold text-lg">89€</span>
<button class="add-to-cart bg-black text-white hover:bg-yellow-400 hover:text-black px-4 py-2 rounded-full transition" data-product="Pantalon Cargo" data-price="89">
Ajouter au panier
</button>
</div>
</div>
</div>
</div>
<div class="text-center mt-12">
<button class="border-2 border-black hover:bg-black hover:text-white px-8 py-3 rounded-full font-bold transition">
Voir toute la collection
</button>
</div>
</div>
</section>
<!-- Product Customization Modal -->
<div id="customization-modal" class="fixed inset-0 bg-black bg-opacity-50 z-50 hidden flex items-center justify-center p-4">
<div class="bg-white rounded-lg max-w-2xl w-full max-h-[90vh] overflow-y-auto">
<div class="p-6">
<div class="flex justify-between items-center mb-6">
<h3 class="text-2xl font-bold" id="modal-product-name">Personnaliser votre produit</h3>
<button id="close-modal" class="text-gray-500 hover:text-black">
<i class="fas fa-times text-xl"></i>
</button>
</div>
<div class="grid md:grid-cols-2 gap-8">
<div>
<img id="modal-product-image" src="https://images.unsplash.com/photo-1551232864-3f0890e580d9?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=687&q=80" alt="Produit" class="w-full rounded-lg">
</div>
<div>
<div class="mb-6">
<h4 class="font-bold mb-3">Taille</h4>
<div class="grid grid-cols-4 gap-2">
<button class="customization-option py-2 rounded text-center">XS</button>
<button class="customization-option py-2 rounded text-center">S</button>
<button class="customization-option py-2 rounded text-center selected">M</button>
<button class="customization-option py-2 rounded text-center">L</button>
<button class="customization-option py-2 rounded text-center">XL</button>
<button class="customization-option py-2 rounded text-center">XXL</button>
</div>
</div>
<div class="mb-6">
<h4 class="font-bold mb-3">Couleur</h4>
<div class="flex space-x-4">
<button class="w-8 h-8 rounded-full bg-black border-2 border-yellow-400"></button>
<button class="w-8 h-8 rounded-full bg-yellow-400 border-2 border-transparent"></button>
<button class="w-8 h-8 rounded-full bg-white border-2 border-gray-300"></button>
</div>
</div>
<div class="mb-6">
<h4 class="font-bold mb-3">Quantité</h4>
<div class="flex items-center border rounded-full w-32">
<button class="quantity-minus px-4 py-2 text-xl">-</button>
<span class="quantity-number flex-1 text-center">1</span>
<button class="quantity-plus px-4 py-2 text-xl">+</button>
</div>
</div>
<div class="flex justify-between items-center mb-6">
<span class="font-bold text-xl" id="modal-product-price">49€</span>
<button id="add-to-cart-final" class="bg-yellow-400 hover:bg-yellow-500 text-black font-bold py-3 px-6 rounded-full transition">
Ajouter au panier
</button>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Shopping Cart Sidebar -->
<div id="cart-sidebar" class="cart-slide fixed top-0 right-0 w-full md:w-1/3 h-full bg-white shadow-xl z-50 overflow-y-auto">
<div class="p-6">
<div class="flex justify-between items-center mb-8">
<h3 class="text-2xl font-bold">Votre panier</h3>
<button id="close-cart" class="text-gray-500 hover:text-black">
<i class="fas fa-times text-xl"></i>
</button>
</div>
<div id="cart-items" class="mb-8">
<!-- Cart items will be added here dynamically -->
<div class="text-center py-12 text-gray-500">
<i class="fas fa-shopping-bag text-4xl mb-4"></i>
<p>Votre panier est vide</p>
</div>
</div>
<div class="border-t pt-4">
<div class="flex justify-between mb-2">
<span>Sous-total</span>
<span id="cart-subtotal">0€</span>
</div>
<div class="flex justify-between mb-4">
<span>Livraison</span>
<span>Calculé à l'étape suivante</span>
</div>
<div class="flex justify-between font-bold text-lg">
<span>Total</span>
<span id="cart-total">0€</span>
</div>
</div>
<button id="checkout-button" class="w-full bg-black text-white py-3 rounded-full font-bold mt-6 hover:bg-yellow-400 hover:text-black transition hidden">
Passer la commande
</button>
<button class="w-full border border-black py-3 rounded-full font-bold mt-4 hover:bg-gray-100 transition">
Continuer vos achats
</button>
</div>
</div>
<!-- Newsletter Section -->
<section class="bg-gray-100 py-12 px-6">
<div class="container mx-auto max-w-4xl text-center">
<h2 class="text-3xl font-bold mb-4">Restez connectés</h2>
<p class="mb-8 max-w-2xl mx-auto">Abonnez-vous à notre newsletter pour recevoir en exclusivité nos nouveautés, offres spéciales et invitations à des événements privés.</p>
<form class="flex flex-col sm:flex-row gap-4 max-w-lg mx-auto">
<input type="email" placeholder="Votre email" class="flex-grow px-4 py-3 rounded-full border focus:outline-none focus:ring-2 focus:ring-yellow-400">
<button type="submit" class="bg-black text-white px-6 py-3 rounded-full font-bold hover:bg-yellow-400 hover:text-black transition">
S'abonner
</button>
</form>
</div>
</section>
<!-- Footer -->
<footer class="bg-black text-white py-12 px-6">
<div class="container mx-auto">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<div class="flex items-center space-x-2 mb-4">
<span class="text-yellow-400 text-2xl"><i class="fas fa-banana"></i></span>
<h3 class="text-xl font-bold">LA BANANE <span class="text-yellow-400">PARIS</span></h3>
</div>
<p class="text-gray-400">L'élégance minimaliste depuis 2015. Des vêtements conçus pour durer, dans le respect de l'environnement.</p>
</div>
<div>
<h4 class="font-bold text-lg mb-4">Boutique</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">Nouveautés</a></li>
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">Vêtements</a></li>
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">Accessoires</a></li>
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">Collections</a></li>
</ul>
</div>
<div>
<h4 class="font-bold text-lg mb-4">Informations</h4>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">À propos</a></li>
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">Contact</a></li>
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">Livraison & Retours</a></li>
<li><a href="#" class="text-gray-400 hover:text-yellow-400 transition">FAQ</a></li>
</ul>
</div>
<div>
<h4 class="font-bold text-lg mb-4">Contact</h4>
<div class="space-y-2 text-gray-400">
<p class="flex items-center">
<i class="fas fa-map-marker-alt mr-2 text-yellow-400"></i>
12 Rue de la Banane, 75001 Paris
</p>
<p class="flex items-center">
<i class="fas fa-phone mr-2 text-yellow-400"></i>
+33 1 23 45 67 89
</p>
<p class="flex items-center">
<i class="fas fa-envelope mr-2 text-yellow-400"></i>
contact@labananeparis.com
</p>
</div>
<h4 class="font-bold text-lg mt-6 mb-2">Horaires</h4>
<p class="text-gray-400">Lundi - Samedi: 10h - 20h</p>
<p class="text-gray-400">Dimanche: 11h - 18h</p>
<div class="flex space-x-4 mt-4">
<a href="#" class="text-gray-400 hover:text-yellow-400 transition"><i class="fab fa-instagram text-xl"></i></a>
<a href="#" class="text-gray-400 hover:text-yellow-400 transition"><i class="fab fa-facebook text-xl"></i></a>
<a href="#" class="text-gray-400 hover:text-yellow-400 transition"><i class="fab fa-twitter text-xl"></i></a>
<a href="#" class="text-gray-400 hover:text-yellow-400 transition"><i class="fab fa-pinterest text-xl"></i></a>
</div>
</div>
</div>
<div class="border-t border-gray-800 mt-12 pt-8 text-center text-gray-500">
<p>&copy; 2023 LA BANANE PARIS. Tous droits réservés.</p>
</div>
</div>
</footer>
<script>
// Cart functionality
let cart = [];
// DOM Elements
const cartButton = document.getElementById('cart-button');
const closeCart = document.getElementById('close-cart');
const cartSidebar = document.getElementById('cart-sidebar');
const cartItemsContainer = document.getElementById('cart-items');
const cartCount = document.getElementById('cart-count');
const cartSubtotal = document.getElementById('cart-subtotal');
const cartTotal = document.getElementById('cart-total');
const checkoutButton = document.getElementById('checkout-button');
const addToCartButtons = document.querySelectorAll('.add-to-cart');
const customizationModal = document.getElementById('customization-modal');
const closeModal = document.getElementById('close-modal');
const modalProductName = document.getElementById('modal-product-name');
const modalProductPrice = document.getElementById('modal-product-price');
const addToCartFinal = document.getElementById('add-to-cart-final');
const quantityNumber = document.querySelector('.quantity-number');
const quantityPlus = document.querySelector('.quantity-plus');
const quantityMinus = document.querySelector('.quantity-minus');
// Toggle cart sidebar
cartButton.addEventListener('click', () => {
cartSidebar.classList.add('open');
document.body.style.overflow = 'hidden';
});
closeCart.addEventListener('click', () => {
cartSidebar.classList.remove('open');
document.body.style.overflow = 'auto';
});
// Close cart when clicking outside
document.addEventListener('click', (e) => {
if (!cartSidebar.contains(e.target) && e.target !== cartButton) {
cartSidebar.classList.remove('open');
document.body.style.overflow = 'auto';
}
});
// Toggle customization modal
addToCartButtons.forEach(button => {
button.addEventListener('click', (e) => {
const product = e.target.getAttribute('data-product');
const price = e.target.getAttribute('data-price');
modalProductName.textContent = `Personnaliser votre ${product}`;
modalProductPrice.textContent = `${price}€`;
customizationModal.classList.remove('hidden');
document.body.style.overflow = 'hidden';
});
});
closeModal.addEventListener('click', () => {
customizationModal.classList.add('hidden');
document.body.style.overflow = 'auto';
});
// Quantity controls
quantityPlus.addEventListener('click', () => {
let quantity = parseInt(quantityNumber.textContent);
quantityNumber.textContent = quantity + 1;
});
quantityMinus.addEventListener('click', () => {
let quantity = parseInt(quantityNumber.textContent);
if (quantity > 1) {
quantityNumber.textContent = quantity - 1;
}
});
// Customization options selection
const customizationOptions = document.querySelectorAll('.customization-option');
customizationOptions.forEach(option => {
option.addEventListener('click', () => {
// Remove selected class from siblings
option.parentNode.querySelectorAll('.customization-option').forEach(el => {
el.classList.remove('selected');
});
// Add selected class to clicked option
option.classList.add('selected');
});
});
// Add to cart final
addToCartFinal.addEventListener('click', () => {
const productName = modalProductName.textContent.replace('Personnaliser votre ', '');
const price = parseInt(modalProductPrice.textContent.replace('€', ''));
const quantity = parseInt(quantityNumber.textContent);
// Add to cart
const existingItem = cart.find(item => item.name === productName);
if (existingItem) {
existingItem.quantity += quantity;
} else {
cart.push({
name: productName,
price: price,
quantity: quantity
});
}
// Update UI
updateCartUI();
// Close modal
customizationModal.classList.add('hidden');
document.body.style.overflow = 'auto';
// Open cart
cartSidebar.classList.add('open');
});
// Update cart UI
function updateCartUI() {
// Update cart count
const totalItems = cart.reduce((total, item) => total + item.quantity, 0);
cartCount.textContent = totalItems;
// Update cart items
if (cart.length === 0) {
cartItemsContainer.innerHTML = `
<div class="text-center py-12 text-gray-500">
<i class="fas fa-shopping-bag text-4xl mb-4"></i>
<p>Votre panier est vide</p>
</div>
`;
checkoutButton.classList.add('hidden');
} else {
cartItemsContainer.innerHTML = '';
cart.forEach(item => {
const cartItem = document.createElement('div');
cartItem.className = 'flex items-center py-4 border-b';
cartItem.innerHTML = `
<div class="w-20 h-20 bg-gray-100 rounded mr-4"></div>
<div class="flex-grow">
<h4 class="font-bold">${item.name}</h4>
<p class="text-gray-600">${item.price}€ × ${item.quantity}</p>
</div>
<div class="font-bold">${item.price * item.quantity}€</div>
`;
cartItemsContainer.appendChild(cartItem);
});
checkoutButton.classList.remove('hidden');
}
// Update subtotal and total
const subtotal = cart.reduce((total, item) => total + (item.price * item.quantity), 0);
cartSubtotal.textContent = `${subtotal}€`;
cartTotal.textContent = `${subtotal}€`;
}
// Checkout button
checkoutButton.addEventListener('click', () => {
alert('Redirection vers la page de paiement');
});
</script>
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Hamidoudp/test1" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
</html>