<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Summer Drop Shoulder Collection</title>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;600;900&display=swap" rel="stylesheet">
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
body {
overflow-x: hidden;
background-color: #1a1a1a;
color: white;
}
.container {
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
transition: background 0.8s ease-in-out;
position: relative;
padding: 20px;
}
/* Watermark Background */
.bg-text {
position: absolute;
font-size: 25vw;
font-weight: 900;
opacity: 0.04;
text-transform: uppercase;
pointer-events: none;
white-space: nowrap;
z-index: 1;
}
/* Navigation */
nav {
position: absolute;
top: 20px;
width: 90%;
display: flex;
justify-content: space-between;
align-items: center;
z-index: 10;
}
.logo { font-weight: 800; font-size: 1.5rem; }
.nav-links { display: none; list-style: none; gap: 20px; }
@media (min-width: 1024px) { .nav-links { display: flex; } }
/* Main Product Layout */
.content {
display: flex;
flex-direction: column; /* Mobile first */
align-items: center;
justify-content: center;
width: 100%;
max-width: 1200px;
z-index: 5;
text-align: center;
}
@media (min-width: 1024px) {
.content { flex-direction: row; text-align: left; justify-content: space-between; }
}
/* Text Section */
.text-section { order: 2; margin-top: 20px; }
@media (min-width: 1024px) { .text-section { order: 1; max-width: 450px; margin-top: 0; } }
.text-section h1 {
font-size: 2.5rem;
line-height: 1;
margin-bottom: 15px;
text-transform: uppercase;
}
@media (min-width: 1024px) { .text-section h1 { font-size: 4.5rem; } }
.text-section p { font-size: 0.9rem; opacity: 0.7; margin-bottom: 25px; max-width: 350px; margin-inline: auto; }
@media (min-width: 1024px) { .text-section p { margin-inline: 0; } }
/* Image Section */
.image-container { order: 1; position: relative; }
@media (min-width: 1024px) { .image-container { order: 2; } }
.main-img {
width: 250px;
filter: drop-shadow(0 20px 40px rgba(0,0,0,0.4));
animation: float 4s ease-in-out infinite;
}
@media (min-width: 1024px) { .main-img { width: 480px; } }
@keyframes float {
0%, 100% { transform: translateY(0) rotate(0deg); }
50% { transform: translateY(-20px) rotate(2deg); }
}
/* Bottom Controls & Info */
.bottom-bar {
position: absolute;
bottom: 30px;
width: 90%;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
z-index: 10;
}
.price { font-size: 1.8rem; font-weight: 700; }
.controls { display: flex; gap: 15px; }
.control-btn {
width: 45px;
height: 45px;
border: 1.5px solid rgba(255,255,255,0.4);
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: 0.3s;
background: rgba(255,255,255,0.05);
}
.control-btn:hover { background: white; color: black; border-color: white; }
.buy-btn {
padding: 12px 30px;
background: white;
color: black;
border: none;
font-weight: 600;
border-radius: 30px;
cursor: pointer;
transition: 0.3s;
}
.buy-btn:hover { transform: translateY(-3px); box-shadow: 0 10px 20px rgba(0,0,0,0.2); }
</style>
</head>
<body>
<div class="container" id="bg-wrapper">
<div class="bg-text" id="watermark">FRESH</div>
<nav>
<div class="logo">URBAN GEAR</div>
<ul class="nav-links">
<li>Shop</li>
<li>Summer</li>
<li>Limited</li>
</ul>
<div class="cart-icon">đ (0)</div>
</nav>
<main class="content">
<div class="text-section">
<h1 id="p-name">Acid Wash <br>Oversized</h1>
<p id="p-desc">āĻĒā§āϰāĻŋāĻŽāĻŋāϝāĻŧāĻžāĻŽ āĻāĻāύ āĻāĻŦāĻ āĻ
ā§āϝāĻžāϏāĻŋāĻĄ āĻāϝāĻŧāĻžāĻļ āĻĢāĻŋāύāĻŋāĻļā§ āϤā§āϰāĻŋ āĻāĻŽāĻžāĻĻā§āϰ āĻĄā§āϰāĻĒ āĻļā§āϞā§āĻĄāĻžāϰ āĻāĻŋ-āĻļāĻžāϰā§āĻāĨ¤ āϏā§āĻāĻžāĻāϞāĻŋāĻļ āĻāĻŦāĻ āϰāĻŋāϞā§āϝāĻžāĻā§āϏāĻĄ āĻĢāĻŋāĻāĨ¤</p>
<button class="buy-btn">Add to Cart</button>
</div>
<div class="image-container">
<img src="https://i.ibb.co/3YxYx2v/tshirt-placeholder.png" alt="Product" class="main-img" id="p-img">
</div>
</main>
<div class="bottom-bar">
<div class="price" id="p-price">⧺⧧⧍ā§Ģā§Ļ</div>
<div class="controls">
<div class="control-btn" onclick="changeSlide(-1)">❮</div>
<div class="control-btn" onclick="changeSlide(1)">❯</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.2/gsap.min.js"></script>
<script>
const items = [
{
name: "Acid Wash <br>Oversized",
price: "⧺⧧⧍ā§Ģā§Ļ",
img: "https://shopbasebd.com/public/uploads/shop/products/1772116379_S_1.jpg",
bg: "#1e272e",
tag: "VINTAGE"
},
{
name: "Graphic <br>Drop Shoulder",
price: "⧺⧝⧝ā§Ļ",
img: "https://shopbasebd.com/public/uploads/shop/products/1772116379_S_2.jpg",
bg: "#485460",
tag: "STREET"
},
{
name: "Summer <br>Basic Tee",
price: "ā§ŗā§Žā§Ģā§Ļ",
img: "https://shopbasebd.com/public/uploads/shop/products/1772116208_S_1.jpg",
bg: "#0fbcf9",
tag: "URBAN"
}
];
let index = 0;
function changeSlide(step) {
index += step;
if (index >= items.length) index = 0;
if (index < 0) index = items.length - 1;
const data = items[index];
// Animating background and elements
gsap.to("#bg-wrapper", { backgroundColor: data.bg, duration: 0.8 });
gsap.fromTo("#p-img",
{ y: 50, opacity: 0, scale: 0.8 },
{ y: 0, opacity: 1, scale: 1, duration: 0.6, ease: "back.out(1.7)" }
);
gsap.fromTo("#p-name",
{ x: -30, opacity: 0 },
{ x: 0, opacity: 1, duration: 0.5, delay: 0.2 }
);
document.getElementById("p-img").src = data.img;
document.getElementById("p-name").innerHTML = data.name;
document.getElementById("p-price").innerText = data.price;
document.getElementById("watermark").innerText = data.tag;
}
</script>
</body>
</html>