A responsive dessert product list with fully functional shopping cart built with vanilla HTML, CSS, and JavaScript.
This project is a solution to the Frontend Mentor Product List with Cart challenge. The challenge focuses on building a dynamic product listing page with cart functionality and order confirmation flow.
This project also serves as a portfolio demonstration showcasing:
- Frontend Development Skills: Vanilla JavaScript, responsive CSS, and semantic HTML
- UI/UX Implementation: Translating design mockups into functional interfaces
- Problem-Solving: Building interactive cart functionality and state management
- Code Organization: Clean, maintainable code structure and documentation
- Responsive Design: Mobile-first approach with cross-device compatibility
- Product Catalog: Browse through a selection of desserts with responsive images
- Shopping Cart: Add/remove items and adjust quantities
- Order Management:
- Increase/decrease item quantities
- Remove items from cart
- View cart total and item count
- Order Confirmation: Modal popup showing order summary
- Responsive Design: Optimized for mobile, tablet, and desktop
- Interactive States: Hover and focus states for all interactive elements
- HTML5 - Semantic markup
- CSS3 - Custom styling with responsive design
- JavaScript - Vanilla JS for interactivity
- Bootstrap 5 - CSS framework for responsive layout
- Google Fonts - Red Hat Text typography
- A modern web browser
- Basic web server (optional, for local development)
- Clone or download the project files
- Open
index.htmlin your web browser
├── index.html # Main HTML file
├── style.css # Custom CSS styles
├── script.js # JavaScript functionality
├── desserts.js # Product data
├── images/ # Product images and icons
│ ├── favicon-32x32.png
│ ├── icon-*.svg # UI icons
│ └── image-*.jpg # Product images (mobile/tablet/desktop)
└── README.md
- Responsive Images: Product images adapt to different screen sizes
- Mobile-First: Optimized for mobile devices with progressive enhancement
- Accessibility: Keyboard navigation and focus management
- Modern UI: Clean, modern interface with smooth interactions
- ✅ Add items to cart
- ✅ Remove items from cart
- ✅ Increase/decrease quantities
- ✅ Cart total calculation
- ✅ Order confirmation modal
- ✅ "Start New Order" functionality
- ✅ Responsive design
- ✅ Hover/focus states
- Browse Products: View dessert catalog with images and prices
- Add to Cart: Click "Add to Cart" button on any product
- Manage Cart: Adjust quantities or remove items
- Checkout: Click "Confirm Order" to see order summary
- Reset: Use "Start New Order" to clear cart and start over
- Dynamic Product Loading: Products are loaded from
desserts.jsdata file - State Management: Cart state is managed in JavaScript with local storage persistence
- Responsive Images: Uses different image sizes for optimal loading
- Add product search/filtering
- Implement user accounts and order history
- Add payment processing integration
- Include product reviews and ratings
- Add wishlist functionality
- Enhance keyboard navigation for better accessibility
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
This project is for educational purposes as part of the Frontend Mentor challenge.
- GitHub - @gumballoon
- Frontend Mentor - @gumballoon
- CSS Battle - @gumballoon
- Frontend Mentor for the design and challenge
- Design assets and requirements provided by Frontend Mentor
- Bootstrap team for the CSS framework
- Google Fonts for typography
Frontend Mentor Challenge: Product List with Cart