Create Full Stack Ecommerce Store Website With HTML CSS JavaScript & NodeJs - AI Vibe Coding
SANDRO. Build Prompt
Full specification for building the SANDRO. streetwear e-commerce website
# Prompt: Build a "SANDRO." Streetwear E-Commerce Website
## Project Overview
Build a single-page streetwear fashion e-commerce website called "SANDRO." using pure HTML, CSS, and vanilla JavaScript (no frameworks, no libraries, no build tools). The brand identity is bold, urban streetwear with a black, yellow (#FEC00F), and warm cream (#FCF8EC) color scheme. The site should feel premium, modern, and magazine-like.
---
## Project Structure
shopping-store/
├── index.html
├── css/style.css
├── js/main.js
└── images/
├── hero_model.png, experiences_model.png, banner_bg.png
├── hoodie_product.png, sweatshirt_product.png, product-3.jpg
├── product-four.png, mint_green_tshirt.png, black_denim_jacket.png
├── color_block_windbreaker.png, white_minimalist_hoodie.png
├── olive_cargo_pants.png, mustard_chunky_sweater.png
├── black_bomber_jacket.png, retro_graphic_sweatshirt.png
├── product-1.jpg, product-2.jpg, product-4.jpg, product-5.jpg
---
## Design System
Color Palette:
--bg-color: #fcf8ec | --dark-color: #1a1a1a | --yellow-color: #fec00f
--yellow-hover: #e0aa0d | --grey-bg: #e2e4e9 | --white: #ffffff
Typography (Google Fonts):
"Bebas Neue" → headings/logo | "Anton" → hero/display | "Inter" → body/nav
Icons: Remix Icons v4.5.0 via CDN
https://cdn.jsdelivr.net/npm/remixicon@4.5.0/fonts/remixicon.css
---
## Section 1: Sticky Header
Floating rounded dark navbar — position: fixed, top: 10px, margin: 0 40px, border-radius: 12px
- Logo "SANDRO." (Bebas Neue, 2.5rem, white)
- Nav: Home | New Arrival | Shop | Sale | Accessories
- Right: search icon, yellow cart circle (45px, #fec00f) with count badge, hamburger (mobile)
---
## Section 2: Hero
Two-column flexbox, min-height: 85vh, padding: 100px 40px 0
Left:
- 3 stacked avatar circles + "+2k" yellow circle
- Title (Anton 5.5rem): EXPRESS YOURSELF / TO YOUR FULLEST
"EXPRESS" → background: #fec00f, padding: 5px 15px, border-radius: 4px
- CTA: "Check it Out ↗" — border: 2px solid #fec00f, fills yellow on hover
Right:
- background: #e2e4e9, border-radius: 30px, height: 80vh
- Hero model image, mix-blend-mode: multiply
Marquee (overlaying hero, bottom: 10%):
- background: #1a1a1a, color: #fec00f, rotate(-3deg), width: 110%, left: -5%
- "* BEST SELLING COLLECTION * BEST BACK PACK * DENIM JACKETS * SUMMER COLLECTION * SLIM FIT JOGGERS *"
- translateX(0) → translateX(-50%), 20s linear infinite
---
## Section 3: New Release Products Grid
CSS Grid — auto-fit, minmax(250px, 1fr), gap: 30px
12 cards each with: grey image wrapper (border-radius: 16px), slide-up ADD TO CART bar on hover
Products:
1. hoodie_product.png — US$49.00 — Vibrant Yellow Streetwear Hoodie [+ 3 color swatches]
2. sweatshirt_product.png — US$89.00 — Stylish Orange Streetwear Jacket [+ 3 color swatches]
3. product-3.jpg — US$89.00 — Maroon Oversized T-Shirt
4. product-four.png — US$89.00 — Beige Cargo Joggers
5. mint_green_tshirt.png — US$35.00 — Mint Green Oversized T-Shirt
6. black_denim_jacket.png — US$75.00 — Black Distressed Denim Jacket
7. color_block_windbreaker.png — US$65.00 — Neon Color-Block Windbreaker
8. white_minimalist_hoodie.png — US$55.00 — White Minimalist Cotton Hoodie
9. olive_cargo_pants.png — US$45.00 — Olive Slim-Fit Cargo Pants
10. mustard_chunky_sweater.png — US$60.00 — Mustard Chunky Knit Sweater
11. black_bomber_jacket.png — US$85.00 — Sleek Black Bomber Jacket
12. retro_graphic_sweatshirt.png — US$50.00 — Retro 90s Graphic Sweatshirt
---
## Section 4: Experiences Section
Two-column flexbox, padding: 80px 0, gap: 50px
Left: Bebas Neue 5rem heading: "NEW KINDS OF GREAT EXPERIENCES." + yellow underline bar
Right (relative):
- experiences_model.png, border-radius: 20px, width: 80%, margin-left: auto
- "EXPLORE MORE" dark circle badge (100px, #1a1a1a bg, #fec00f text, rotate 15deg, top-right)
- Floating white product card (150px, hoodie image, bottom-right)
- Description overlay (semi-transparent cream, width: 300px, left side, vertically centered):
"We all have a story to tell, born from adventures, new encounters and experiences.
We inspire to venture locally and open our minds to new ways of interacting with the world."
---
## Section 5: Best Product Collections
Bebas Neue 4rem centered heading:
"STEP UP YOUR STYLE GAME WITH OUR BEST PRODUCT COLLECTIONS"
3-column grid, gap: 20px, margin-top: 60px:
Card 1 (400px, #e2e4e9, border-radius: 20px):
- Full hero model image
- Vertical "ZERO-9" outlined text (rotated -90deg, -webkit-text-stroke: 1px #1a1a1a)
- White pill button "EXPLORE #0079 ↗" at bottom center
Card 2 (same, translateY(-40px)):
- Sweatshirt product image
- Vertical "2021" in yellow (rotated 90deg)
Card 3 (split vertically):
- Top: grey rounded card with product-5.jpg
- Bottom (120px): #1a1a1a bg, 3 avatar circles + 80px yellow "Explore More" badge (Bebas Neue)
---
## Section 6: Hand-in-Hand Banner
Full-width, height: 60vh, centered overlay content
- banner_bg.png, object-fit: cover, brightness(0.6)
- Bebas Neue 6rem white heading: "HAND-IN-HAND / WITH APPAREL / COMPANIES."
- Yellow play circle (80px, #fec00f, ri-play-fill icon), scale(1.1) on hover
---
## Section 7: Instagram Footer
Centered, padding: 80px 20px
Title (Bebas Neue 3rem): "FOLLOW US ON INSTAGRAM @SANDRO" (@SANDRO in #fec00f)
5-image collage (flex row, height: 300px, gap: 10px):
- Images 1,2,4,5: 150px × 200px, border-radius: 12px
rotate(-5deg) Y(20px) / rotate(5deg) Y(-10px) / rotate(-3deg) Y(10px) / rotate(5deg) Y(-20px)
- Center (product-5.jpg): 250px × 300px, scale(1.1), z-index: 5, Instagram icon centered on top
---
## Slide-in Cart Panel
position: fixed, right: -100% → right: 0 on class "open-cart"
background: #1a1a1a, max-width: 450px, height: 100vh, z-index: 1001
Transition: right 0.5s cubic-bezier(0.8, 0, 0.2, 1)
Header: "YOUR CART" (Anton 2rem, #fec00f) + close button
Items: scrollable list — image (80px), name, price×qty (yellow), +/- buttons, red delete btn
Footer: total (Anton 1.5rem) + full-width yellow checkout button (turns white on hover)
---
## JavaScript
Cart (localStorage persistence):
- addToCart(productCard) — extract .product-name, .product-price, .product-image from DOM
- removeItem(name) | changeQuantity(name, delta) — remove if qty reaches 0
- updateCartDisplay() — re-render list, recalculate total + badge (#cart-count, #total-price)
- updateLocalStorage() — JSON.stringify(cartItems) to localStorage
- window.onload — restore from localStorage
Flying animation on ADD TO CART:
- Clone product image, getBoundingClientRect() for start position
- Transition to cart icon position, 2s cubic-bezier(0.19,1,0.22,1), scale→0.5, opacity→0
- Remove from DOM after 1.2s
onclick on each ADD TO CART bar: addToCart(this.parentElement.parentElement)
Cart toggle: add/remove class "open-cart" on cart panel
Mobile menu: toggle "nav-active" on .main-nav — vertical dropdown, bouncy cubic-bezier entrance
---
## Responsive
Tablet (≤1024px): hero stacks vertically, single-column collections, nav gap 15px
Mobile (≤768px): hamburger menu, hero title 3.5rem, section titles 2.5rem, cart panel 100% width
Page title: "SANDRO. | Express Yourself To Your Fullest"
lang="en" + viewport meta tag | image paths: images/filename.ext
Comments