Responsive Product Card Html Css Codepen -
<div class="products-grid">
<div class="product-card">
<img src="https://via.placeholder.com/300x200" alt="Product">
<h3>Classic White Sneakers</h3>
<p class="price">$49.99</p>
<button>Add to Cart</button>
</div>
<!-- Repeat cards -->
</div>
Sometimes, on ultra-wide screens or mobile viewports, a horizontal scroll on row is more UX-friendly for related products.
.horizontal-scroll display: flex; overflow-x: auto; gap: 1rem; scroll-snap-type: x mandatory; padding: 1rem;.horizontal-scroll .card flex: 0 0 280px; /* Fixed width for scroll */ scroll-snap-align: start;
/* Hide scrollbar for cleaner look (Webkit) */ .horizontal-scroll::-webkit-scrollbar display: none;
Building a responsive product card HTML CSS CodePen demo is no longer a mystery. You have three distinct strategies:
The best CodePen examples combine visual polish (gradients, shadows, hover states) with structural integrity (flex/grid). As a final exercise, take the Grid example above and modify the minmax(280px, 1fr) value to minmax(200px, 1fr) to see how more columns appear on desktop.
Now, open CodePen, paste the final block, and start resizing your browser window. You’ve just mastered the art of the responsive product card. Happy coding!
Creating a Responsive Product Card with HTML, CSS, and CodePen
In today's digital age, e-commerce has become an essential part of our lives. With the rise of online shopping, businesses are constantly looking for ways to showcase their products in an attractive and user-friendly manner. A well-designed product card is crucial in capturing the attention of potential customers and driving sales. In this article, we will explore how to create a responsive product card using HTML, CSS, and CodePen.
What is a Product Card?
A product card is a visual representation of a product that provides essential information such as product name, description, price, and images. It is typically used in e-commerce websites and applications to showcase products in a concise and appealing way. A product card should be visually appealing, easy to navigate, and optimized for various devices and screen sizes.
Why is Responsiveness Important?
With the majority of online shoppers using mobile devices, it's essential to ensure that your product card is responsive and adapts to different screen sizes and devices. A responsive product card will provide a seamless user experience, regardless of whether the user is accessing it on a desktop, tablet, or mobile phone. This is where CSS and media queries come into play.
HTML Structure for a Product Card
To create a basic product card, we need to define its HTML structure. Here's an example:
<div class="product-card">
<div class="product-image">
<img src="product-image.jpg" alt="Product Image">
</div>
<div class="product-info">
<h2>Product Name</h2>
<p>Product Description</p>
<span>$19.99</span>
</div>
<button>Add to Cart</button>
</div>
CSS Styling for a Responsive Product Card
To make our product card responsive, we'll use CSS and media queries. We'll also utilize CodePen's built-in features to streamline our development process. responsive product card html css codepen
.product-card
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
border: 1px solid #ddd;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
.product-image
width: 100%;
height: 200px;
margin-bottom: 20px;
.product-image img
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 10px 10px 0 0;
.product-info
text-align: center;
.product-info h2
font-size: 18px;
margin-bottom: 10px;
.product-info p
font-size: 14px;
margin-bottom: 20px;
.product-info span
font-size: 18px;
font-weight: bold;
color: #333;
button
background-color: #4CAF50;
color: #fff;
border: none;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
button:hover
background-color: #3e8e41;
/* Media Queries */
@media (max-width: 768px)
.product-card
flex-direction: row;
align-items: center;
.product-image
width: 30%;
height: 150px;
.product-info
width: 70%;
text-align: left;
@media (max-width: 480px)
.product-card
flex-direction: column;
.product-image
width: 100%;
height: 200px;
.product-info
text-align: center;
CodePen Example
To see the code in action, let's create a new pen on CodePen. We can use the following settings:
Here's the complete code:
<!-- index.html -->
<div class="product-card">
<div class="product-image">
<img src="product-image.jpg" alt="Product Image">
</div>
<div class="product-info">
<h2>Product Name</h2>
<p>Product Description</p>
<span>$19.99</span>
</div>
<button>Add to Cart</button>
</div>
/* style.css */
.product-card
display: flex;
flex-direction: column;
align-items: center;
padding: 20px;
border: 1px solid #ddd;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
.product-image
width: 100%;
height: 200px;
margin-bottom: 20px;
.product-image img
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 10px 10px 0 0;
.product-info
text-align: center;
.product-info h2
font-size: 18px;
margin-bottom: 10px;
.product-info p
font-size: 14px;
margin-bottom: 20px;
.product-info span
font-size: 18px;
font-weight: bold;
color: #333;
button
background-color: #4CAF50;
color: #fff;
border: none;
padding: 10px 20px;
font-size: 16px;
cursor: pointer;
button:hover
background-color: #3e8e41;
/* Media Queries */
@media (max-width: 768px)
.product-card
flex-direction: row;
align-items: center;
.product-image
width: 30%;
height: 150px;
.product-info
width: 70%;
text-align: left;
@media (max-width: 480px)
.product-card
flex-direction: column;
.product-image
width: 100%;
height: 200px;
.product-info
text-align: center;
Conclusion
In this article, we created a responsive product card using HTML, CSS, and CodePen. We defined the HTML structure, added CSS styles, and used media queries to make the product card adapt to different screen sizes and devices. By using CodePen, we can easily test and iterate on our design.
Tips and Variations
By following these tips and techniques, you can create a responsive product card that showcases your products in a visually appealing and user-friendly manner. Happy coding!
An innovative feature for a responsive product card on CodePen is the "Dynamic Detail Flip with Auto-Scaling". This feature combines a 3D rotation effect with fluid typography to ensure the card remains functional and attractive across all devices. Feature Concept: Interactive 3D "Peek" Card
Instead of a simple flat card, this feature uses CSS 3D transforms to create a "peek" effect. On desktop hover (or mobile tap), the card flips or slides to reveal secondary information like stock status, size guides, or customer reviews without leaving the grid. Key Technical Elements
3D Flip Animation: Uses transform: rotateY(180deg) and backface-visibility: hidden to reveal detailed specs on the reverse side.
Fluid Typography: Implements the clamp() function (e.g., font-size: clamp(1rem, 2.5vw, 1.5rem)) so product titles scale perfectly from mobile to large monitors without needing dozens of media queries.
CSS Grid "Auto-Fit": Utilizes grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) for a layout that automatically adds or removes columns based on screen width.
Glassmorphism Hover: A subtle backdrop-filter: blur() effect on the detail side to maintain a modern, premium feel. Visual Inspiration 41 Product Card Designs: Creative Examples To Use 33 CSS Product Cards FreeFrontend 11 Product Cards Design CSS ForFrontend Top 20 Card designs Codepen with HTML CSS Creative Examples of CSS Flip Cards in Action Slider Revolution
Building a 3D Card Flip Animation with CSS Houdini — SitePoint Create a Stunning 3D Card Flip Animation with HTML and CSS Coding Artist 35+ CSS Flip Cards Examples CodeWithRandom 33 CSS Product Cards FreeFrontend Responsive product card design HTML CSS DivinectorWeb Ecommerce Product Card Design — CodeHim Top 20 Card designs Codepen with HTML CSS 35 Best CSS Card Flip Animations 2026
To create a responsive product card using HTML and CSS, you can use modern layout techniques like Flexbox or CSS Grid to ensure the card adapts to different screen sizes. Essential Code Components
HTML Structure: Typically includes a container div, an image area, product details (title, description, price), and action buttons like "Add to Cart". CSS Layout: Sometimes, on ultra-wide screens or mobile viewports, a
Image Handling: Use width: 100% on images to keep them contained within the card.
Media Queries: Use @media rules to change card widths or stack elements vertically for mobile users. High-Quality CodePen Examples
You can find and fork these templates on CodePen to experiment with the code directly.
Minimalist Responsive Card: A clean, centered layout using Montserrat fonts and soft box shadows.
E-Commerce Layout: A full-featured card with a product name, price, rating stars, and interactive "Add to Cart" buttons.
Modern UI Design: A sleek design focused on visual presentation and user interface.
Animated Hover Effects: Features scaling transitions and dynamic shadows when users hover over the product. Implementation Tips A Beginners Guide on How to Use CodePen - BootstrapDash
Creating a responsive product card using HTML and CSS is a staple project for web developers. A solid implementation ensures that product information is clear and interactive across all screen sizes, from mobile phones to high-resolution desktops. Core Review: Essential Components & Best Practices
A high-quality product card on CodePen should balance aesthetic appeal with technical robustness. Reviewers and developers typically look for the following criteria: HTML CSS Product Card Design
Here are several modern product card layouts and hover effects to guide your design: 39 Best CSS Card Design Templates 2026 - uiCookies 33 CSS Product Cards FreeFrontend Creating E-commerce Product Card using HTML CSS . learning Robo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">
<title>✨ Responsive Product Cards | Modern CSS Grid Showcase</title>
<!-- Poppins & Inter hybrid for modern typography (optional but fresh) -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,300;14..32,400;14..32,500;14..32,600;14..32,700&family=Poppins:wght@500;600;700&display=swap" rel="stylesheet">
<!-- Font Awesome 6 (free icons) for micro-interactions and cart/star icons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<style>
*
margin: 0;
padding: 0;
box-sizing: border-box;
body
background: linear-gradient(145deg, #f4f7fc 0%, #eef2f5 100%);
font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
padding: 2rem 1.5rem;
color: #1e2a3e;
/* blog-like container with max width and soft shadow */
.blog-container
max-width: 1400px;
margin: 0 auto;
background: rgba(255, 255, 255, 0.6);
backdrop-filter: blur(0px);
border-radius: 3rem;
padding: 2rem 1.8rem;
box-shadow: 0 20px 35px -12px rgba(0, 0, 0, 0.08);
/* header / intro section (blog style) */
.blog-header
text-align: center;
margin-bottom: 3rem;
.blog-header h1
font-family: 'Poppins', sans-serif;
font-size: 2.4rem;
font-weight: 700;
background: linear-gradient(135deg, #1F2B3C, #2C3E50);
background-clip: text;
-webkit-background-clip: text;
color: transparent;
letter-spacing: -0.02em;
margin-bottom: 0.5rem;
.blog-header .badge
display: inline-block;
background: rgba(0, 110, 230, 0.12);
backdrop-filter: blur(4px);
padding: 0.3rem 1rem;
border-radius: 60px;
font-size: 0.85rem;
font-weight: 500;
color: #0066cc;
margin-bottom: 1rem;
letter-spacing: 0.3px;
.blog-header p
max-width: 620px;
margin: 0 auto;
color: #3a546d;
font-weight: 400;
font-size: 1.05rem;
line-height: 1.4;
/* ========= RESPONSIVE PRODUCT GRID ========= */
.products-grid
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 2rem;
margin: 2rem 0 1rem;
/* ----- MODERN PRODUCT CARD (glassmorphism + smooth hover) ----- */
.product-card
background: #ffffff;
border-radius: 1.8rem;
overflow: hidden;
transition: all 0.35s cubic-bezier(0.2, 0, 0, 1);
box-shadow: 0 10px 20px -5px rgba(0, 0, 0, 0.05), 0 0 0 1px rgba(0, 0, 0, 0.02);
display: flex;
flex-direction: column;
position: relative;
backdrop-filter: blur(0px);
.product-card:hover
transform: translateY(-8px);
box-shadow: 0 28px 32px -18px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(0, 110, 230, 0.1);
/* image wrapper with aspect ratio + subtle gradient overlay */
.card-img
position: relative;
background: #f8fafc;
padding-top: 100%; /* 1:1 square — modern look, but responsive cropping */
overflow: hidden;
.card-img img
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
display: block;
.product-card:hover .card-img img
transform: scale(1.03);
/* discount badge (optional flair) */
.discount-badge
position: absolute;
top: 14px;
left: 14px;
background: #ff3b5c;
color: white;
font-size: 0.7rem;
font-weight: 700;
padding: 0.25rem 0.75rem;
border-radius: 40px;
z-index: 2;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
letter-spacing: 0.3px;
backdrop-filter: blur(2px);
/* quick action favorite (heart icon) */
.fav-icon
position: absolute;
top: 14px;
right: 16px;
background: rgba(255,255,255,0.85);
backdrop-filter: blur(5px);
width: 34px;
height: 34px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #2c3e50;
font-size: 1.1rem;
cursor: pointer;
transition: all 0.2s;
z-index: 2;
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
.fav-icon:hover
background: white;
color: #ff4d6d;
transform: scale(1.05);
/* card content */
.card-content
padding: 1.25rem 1.2rem 1.5rem;
flex: 1;
display: flex;
flex-direction: column;
.product-category
font-size: 0.7rem;
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 600;
color: #5e7c9c;
margin-bottom: 0.5rem;
.product-title
font-family: 'Poppins', sans-serif;
font-weight: 600;
font-size: 1.25rem;
line-height: 1.35;
margin-bottom: 0.5rem;
color: #0f1e2e;
transition: color 0.2s;
.rating
display: flex;
align-items: center;
gap: 6px;
margin-bottom: 0.9rem;
.stars
color: #f5b042;
font-size: 0.8rem;
letter-spacing: 2px;
.review-count
font-size: 0.7rem;
color: #6c86a3;
font-weight: 500;
.price-wrapper
display: flex;
align-items: baseline;
gap: 0.6rem;
flex-wrap: wrap;
margin-bottom: 1.2rem;
.current-price
font-size: 1.6rem;
font-weight: 700;
color: #1e2f3f;
letter-spacing: -0.3px;
.old-price
font-size: 0.9rem;
color: #9aaebf;
text-decoration: line-through;
font-weight: 500;
.installments
font-size: 0.7rem;
color: #2c7a47;
background: #e9f4ec;
display: inline-block;
padding: 0.2rem 0.5rem;
border-radius: 40px;
font-weight: 600;
/* button */
.add-to-cart
background: #11181f;
border: none;
border-radius: 2rem;
padding: 0.8rem 0;
font-weight: 600;
font-size: 0.9rem;
font-family: 'Inter', sans-serif;
color: white;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
cursor: pointer;
transition: all 0.25s ease;
margin-top: auto;
width: 100%;
box-shadow: 0 1px 2px rgba(0,0,0,0.05);
.add-to-cart i
font-size: 1rem;
transition: transform 0.2s;
.add-to-cart:hover
background: #2c3e50;
transform: scale(0.98);
gap: 14px;
.add-to-cart:hover i
transform: translateX(3px);
/* small responsive touches */
@media (max-width: 640px)
body
padding: 1rem;
.blog-container
padding: 1.2rem;
.blog-header h1
font-size: 1.9rem;
.products-grid
gap: 1.3rem;
.card-content
padding: 1rem;
.current-price
font-size: 1.4rem;
/* card-specific micro-animations */
@media (prefers-reduced-motion: no-preference)
.product-card
transition: transform 0.25s, box-shadow 0.3s;
/* footer demo note */
.demo-note
margin-top: 3rem;
text-align: center;
font-size: 0.8rem;
color: #5f7f9e;
border-top: 1px solid rgba(0,0,0,0.05);
padding-top: 2rem;
display: flex;
justify-content: center;
gap: 1rem;
flex-wrap: wrap;
.demo-note span i
margin-right: 4px;
button
background: none;
border: none;
/* utility */
.text-accent
color: #0066cc;
</style>
</head>
<body>
<div class="blog-container">
<div class="blog-header">
<div class="badge">
<i class="fas fa-mobile-alt"></i> Fully responsive · CodePen ready
</div>
<h1>✨ Responsive Product Cards<br>Modern HTML + CSS Grid</h1>
<p>Fluid grid, glass-morphism vibes, interactive hover states, and perfect scaling from mobile to 4K. Built with pure CSS & semantic HTML.</p>
</div>
<!-- product grid - 6 products, showcasing responsiveness and dynamic behavior -->
<div class="products-grid">
<!-- CARD 1 - Classic Sneaker -->
<div class="product-card">
<div class="card-img">
<img src="https://images.unsplash.com/photo-1542291026-7eec264c27ff?w=500&auto=format" alt="Nike Air Max sneaker" loading="lazy">
<div class="discount-badge">-20%</div>
<div class="fav-icon" aria-label="Add to wishlist"><i class="far fa-heart"></i></div>
</div>
<div class="card-content">
<div class="product-category">Footwear</div>
<h3 class="product-title">Urban Runner X2</h3>
<div class="rating">
<div class="stars"><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></div>
<span class="review-count">(142 reviews)</span>
</div>
<div class="price-wrapper">
<span class="current-price">$79.99</span>
<span class="old-price">$99.99</span>
<span class="installments">or 4x $19.99</span>
</div>
<button class="add-to-cart"><i class="fas fa-shopping-cart"></i> Add to cart</button>
</div>
</div>
<!-- CARD 2 - Minimal Backpack -->
<div class="product-card">
<div class="card-img">
<img src="https://images.unsplash.com/photo-1553062407-98eeb64c6a62?w=500&auto=format" alt="Modern backpack" loading="lazy">
<div class="fav-icon" aria-label="Add to wishlist"><i class="far fa-heart"></i></div>
</div>
<div class="card-content">
<div class="product-category">Accessories</div>
<h3 class="product-title">Apex Backpack 22L</h3>
<div class="rating">
<div class="stars"><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="far fa-star"></i></div>
<span class="review-count">(89 reviews)</span>
</div>
<div class="price-wrapper">
<span class="current-price">$64.50</span>
<span class="old-price">$79.00</span>
<span class="installments">free shipping</span>
</div>
<button class="add-to-cart"><i class="fas fa-shopping-cart"></i> Add to cart</button>
</div>
</div>
<!-- CARD 3 - Smart Watch -->
<div class="product-card">
<div class="card-img">
<img src="https://images.unsplash.com/photo-1579586337278-3befd40fd17a?w=500&auto=format" alt="Smartwatch" loading="lazy">
<div class="discount-badge">-15%</div>
<div class="fav-icon" aria-label="Add to wishlist"><i class="far fa-heart"></i></div>
</div>
<div class="card-content">
<div class="product-category">Electronics</div>
<h3 class="product-title">Chrono Smart 4</h3>
<div class="rating">
<div class="stars"><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"></i></div>
<span class="review-count">(214 reviews)</span>
</div>
<div class="price-wrapper">
<span class="current-price">$189.00</span>
<span class="old-price">$219.00</span>
<span class="installments">1 yr warranty</span>
</div>
<button class="add-to-cart"><i class="fas fa-shopping-cart"></i> Add to cart</button>
</div>
</div>
<!-- CARD 4 - Wireless Headphones -->
<div class="product-card">
<div class="card-img">
<img src="https://images.unsplash.com/photo-1505740420928-5e560c06d30e?w=500&auto=format" alt="Premium headphones" loading="lazy">
<div class="fav-icon" aria-label="Add to wishlist"><i class="far fa-heart"></i></div>
</div>
<div class="card-content">
<div class="product-category">Audio</div>
<h3 class="product-title">SonicPro ANC</h3>
<div class="rating">
<div class="stars"><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></div>
<span class="review-count">(357 reviews)</span>
</div>
<div class="price-wrapper">
<span class="current-price">$149.99</span>
<span class="old-price">$199.99</span>
<span class="installments">+ free case</span>
</div>
<button class="add-to-cart"><i class="fas fa-shopping-cart"></i> Add to cart</button>
</div>
</div>
<!-- CARD 5 - Ceramic Plant Pot (eco) -->
<div class="product-card">
<div class="card-img">
<img src="https://images.unsplash.com/photo-1485955900006-10f4d324d411?w=500&auto=format" alt="Handmade ceramic pot" loading="lazy">
<div class="fav-icon" aria-label="Add to wishlist"><i class="far fa-heart"></i></div>
</div>
<div class="card-content">
<div class="product-category">Home & Living</div>
<h3 class="product-title">Terra Cotta Planter</h3>
<div class="rating">
<div class="stars"><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="far fa-star"></i></div>
<span class="review-count">(64 reviews)</span>
</div>
<div class="price-wrapper">
<span class="current-price">$28.90</span>
<span class="old-price">$39.00</span>
<span class="installments">eco-friendly</span>
</div>
<button class="add-to-cart"><i class="fas fa-shopping-cart"></i> Add to cart</button>
</div>
</div>
<!-- CARD 6 - Sunglasses (summer) -->
<div class="product-card">
<div class="card-img">
<img src="https://images.unsplash.com/photo-1572635196237-14b3f281503f?w=500&auto=format" alt="Polarized sunglasses" loading="lazy">
<div class="discount-badge">-30%</div>
<div class="fav-icon" aria-label="Add to wishlist"><i class="far fa-heart"></i></div>
</div>
<div class="card-content">
<div class="product-category">Eyewear</div>
<h3 class="product-title">Aviator Polarized</h3>
<div class="rating">
<div class="stars"><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"></i></div>
<span class="review-count">(103 reviews)</span>
</div>
<div class="price-wrapper">
<span class="current-price">$49.99</span>
<span class="old-price">$69.99</span>
<span class="installments">UV400 protection</span>
</div>
<button class="add-to-cart"><i class="fas fa-shopping-cart"></i> Add to cart</button>
</div>
</div>
</div>
<div class="demo-note">
<span><i class="fas fa-expand-alt"></i> Fully responsive grid (auto-fill, minmax 280px)</span>
<span><i class="fas fa-mouse-pointer"></i> Hover animations + interactive cart feel</span>
<span><i class="fab fa-codepen"></i> Pure HTML/CSS — copy to CodePen instantly</span>
</div>
</div>
<!-- tiny interactive micro-demo for heart toggling (optional JS just to show dynamic taste but not necessary for card styling)
BUT to improve UX: simple heart toggle without affecting pure css demo, giving interactive polish -->
<script>
(function()
// add interactive heart toggling for all favorite icons - improves user experience but doesn't break responsiveness
const favIcons = document.querySelectorAll('.fav-icon');
favIcons.forEach(icon =>
icon.addEventListener('click', function(e)
e.preventDefault();
e.stopPropagation();
const heartIcon = this.querySelector('i');
if (heartIcon.classList.contains('far'))
heartIcon.classList.remove('far');
heartIcon.classList.add('fas');
heartIcon.style.color = '#ff4d6d';
// optional subtle scale
this.style.transform = 'scale(1.05)';
setTimeout(() => if(this) this.style.transform = ''; , 200);
else
heartIcon.classList.remove('fas');
heartIcon.classList.add('far');
heartIcon.style.color = '#2c3e50';
);
);
// Add to cart button simulated alert (shows demo interactivity but not intrusive)
const cartBtns = document.querySelectorAll('.add-to-cart');
cartBtns.forEach(btn =>
btn.addEventListener('click', (e) => );
);
)();
</script>
</body>
</html>
A responsive product card is a fundamental UI component that adapts its layout to different screen sizes, ensuring a consistent user experience on mobile, tablet, and desktop. Building these on CodePen allows for rapid prototyping with live previews. 1. Structure with Semantic HTML
Start by defining a clear structure in the HTML Panel using semantic tags for better accessibility.
<div class="product-card"> <div class="product-image"> <img src="product.jpg" alt="Description of product"> div> <div class="product-details"> <span class="category">Running Collectionspan> <h2 class="product-title">Nike Air Maxh2> <p class="product-description">Lightweight foam cushioning for all-day comfort.p> <div class="product-footer"> <span class="price">$120.00span> <button class="add-to-cart">Add to Cartbutton> div> div> div> Use code with caution. Copied to clipboard 2. Styling for Layout and Modern Aesthetics
In the CSS Panel, use a combination of Flexbox or CSS Grid to manage the card's internal layout. Responsive Product Cards | HTML & CSS - Codepen.io
Creating a responsive product card for an e-commerce project involves structuring the HTML for semantics and using CSS Flexbox or Grid for adaptability. CodePen is a great platform to experiment with these designs, offering numerous community examples for inspiration. Core Structure (HTML)
A clean product card typically includes a container for the image, a details section for titles and pricing, and a call-to-action button. /* Hide scrollbar for cleaner look (Webkit) */
Container: Use a
.card to hold everything.
Image Box: Wrap the in a dedicated
.imgBx) to control aspect ratios and hover effects.
Content: Group the product name, description, and price together.
Interaction: Include buttons for "Add to Cart" or "Wishlist". Styling & Responsiveness (CSS)
To make the card responsive, focus on flexible widths and layout adjustments for different screen sizes.
Sizing: Set width: min-content; or a fixed max-width (e.g., 300px) so cards don't overflow on small screens.
Visual Polish: Apply border-radius, box-shadow, and hover:scale-105 transitions for a modern, interactive feel.
Media Queries: Use media queries to change the number of columns in your grid (e.g., 1 column for mobile, 3 for desktop). Top Community Examples on CodePen
You can find pre-built templates by searching for responsive card tags. Here are notable examples:
Minimalist Design: A clean, shadow-based Responsive Product Card using Montserrat fonts.
Animated UI: The Responsive & Animated Product Card features interactive color and size selectors using JavaScript.
Tailwind Grid: A Responsive Product Card Grid built with Tailwind CSS, showcasing a multi-column layout.
Bootstrap 5: The E-commerce Product Card v.2 provides a framework-ready solution. Responsive Product Card - CSS Only - CodePen
Here is the complete story, code breakdown, and implementation for creating a responsive product card.