Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jacket Masters

Interactive Cinematic Puffer Jacket Product Experience

Jacket Masters is a premium, single-page fashion product experience built around an animated puffer-jacket carousel. It is meant to feel like a cinematic campaign, not a conventional e-commerce slider.

A single jacket sits in the center of the stage. A smaller preview of the next color waits in the corner. Clicking that preview — or using the arrows or keyboard — flies the upcoming jacket into the hero, fades the current one out, and retints the entire page to match the new color.


Project description

The page is a five-color collection site. Only two jackets are on stage at any moment:

  • the active jacket in the center
  • the upcoming jacket as a compact preview

When the user advances:

  1. The preview jacket transitions into the center.
  2. The previous jacket exits.
  3. The campaign background, glow, and type colors change to the new product theme.
  4. Edition, headline, description, name, and price update.
  5. The following color becomes the new corner preview.

The carousel loops, so after Brown the next preview is Red again.


Design concept

The visual direction is a minimalist fashion campaign with an editorial composition:

  • one oversized product hero
  • generous negative space around type and controls
  • rounded pill navigation, circular size buttons, and soft glass controls
  • a clear typographic hierarchy (Playfair Display wordmark, DM Sans UI)
  • cinematic color transitions tied to the active jacket
  • interactive product storytelling rather than a catalog grid

The live experience uses dark, color-matched cinematic gradients (scarlet, cobalt, forest, black, chocolate) rather than a light storefront palette. Soft shadows, blurred orbs, and a floating next-jacket preview keep the stage feeling like a campaign still.

The hero composition was inspired by a fashion/product design reference on Pinterest. That pin was used as visual inspiration only. The markup, CSS, JavaScript, interaction system, product art, and project structure were built specifically for Jacket Masters. The original designer’s code, assets, and implementation were not copied.


Features

Interactive product carousel

Five jacket variants:

Edition Color Price
01 / 05 Red $149
02 / 05 Blue $159
03 / 05 Green $169
04 / 05 Black $179
05 / 05 Brown $169

Only the active jacket and the upcoming preview are rendered on the visual stage.

Cinematic product transition

Advancing forward plays a short “flight” animation: the next jacket lifts from the preview, scales into the hero, and the current hero fades out. Background, halo, and ink colors interpolate to the new theme.

Dynamic theme

Each product defines its own themeStart, themeEnd, halo, tint, ink, and muted values. Changing the active index writes those onto CSS custom properties.

Dynamic product information

The following update with the active jacket:

  • color name
  • edition label
  • headline
  • description
  • price
  • hero image and preview image
  • quick-add label

Carousel navigation

  • previous / next circular arrows
  • click the upcoming jacket preview (forward + flight)
  • ArrowLeft / ArrowRight on the keyboard
  • Escape closes the mobile menu and the quick-add panel

Infinite loop

activeIndex wraps with modulo arithmetic, so the collection is a continuous loop.

Size selection

Sizes 36, 38, and 40. The selected size is reflected in the quick-add panel.

Quick add

Clicking the hero jacket opens a glass “Quick add” sheet. Adding increments the bag badge.

Responsive layout

  • Desktop (1100px+): cinematic overlay — story left, jacket center, price and sizes right
  • Tablet: flowing CSS grid, hamburger navigation
  • Phone: single column, jacket first, then story, buy panel, and footer
  • Short landscape: compact two-column campaign

Micro-interactions

Hover and focus states on the CTA, arrows, size pills, preview, social icons, and cart/heart buttons. Touch devices skip hover transforms and keep preview labels visible.


Technology stack

This is a static site. There is no React, Vite, Tailwind, Framer Motion, or npm package graph.

Technology Role
HTML Single-page structure: header, hero stage, story, purchase panel, preview, quick-add, mobile menu
CSS Campaign layout, themes via custom properties, breakpoints, transitions
Vanilla JavaScript Product data, carousel state, theme updates, flight animation, menu, quick-add
Web Animations API The preview-to-hero flight (Element.animate)
Google Fonts DM Sans (UI) and a subsetted Playfair Display wordmark
WebP Five product images with alpha

Architecture

jacket-masters/
├── index.html      Page structure and inline SVG icons
├── styles.css      Theme tokens, desktop overlay, responsive grids
├── app.js          Product catalog and interaction logic
├── favicon.svg     JM mark
├── assets/
│   ├── puffer-red.webp
│   ├── puffer-blue.webp
│   ├── puffer-green.webp
│   ├── puffer-black.webp
│   └── puffer-brown.webp
├── README.md
└── .gitignore

There are no framework components. The important regions in the markup are:

Region Class / id Role
Header .topbar Brand, nav pill / hamburger, bag and saved icons
Campaign frame .campaign Full-bleed themed stage
Controls .hero-controls Previous / next
Story .product-story Edition, headline, copy, CTA
Stage .product-stage / #hero-product Active jacket
Purchase .product-purchase Name, price, sizes
Preview #next-preview Upcoming jacket
Quick add #quick-add Add-to-bag sheet
Socials .socials Footer links

Product state

products[]
     ↓
activeIndex
     ↓
at(index)        → active product
at(index + 1)    → next preview
     ↓
setTheme() + render()
     ↓
CSS custom properties + DOM text/images
     ↓
createFlight()   → animated UI

The page never mounts five hero products. Only the current jacket and the upcoming preview participate in the visual stage. That is a defining design decision: less DOM, a clearer focal point, and a transition that can fly one object into the other.


Animation workflow

User clicks next / preview / ArrowRight
        ↓
Guard if a transition is already running
        ↓
Read current hero box and preview box
        ↓
Clone the upcoming image and animate it toward the hero
        ↓
Fade the current hero out
        ↓
Swap activeIndex, rewrite theme tokens, rewrite copy and images
        ↓
Fade the new hero in
        ↓
Set the following jacket as the corner preview
        ↓
Unlock input

The intent is a product-to-product transformation, not a hard image swap.


AI-assisted development

The project was designed, implemented, audited, and published through an AI-assisted workflow with Grok (xAI).

Concept
  ↓
Visual reference analysis
  ↓
Cinematic static-page implementation
  ↓
Interactive carousel and theme system
  ↓
Responsive layout (desktop / tablet / phone / landscape)
  ↓
Visual refinement
  ↓
Security / privacy audit
  ↓
Asset optimization (WebP, unused source images removed)
  ↓
Runtime verification
  ↓
GitHub publication

Product photography/art is stored as optimized WebP files in assets/. The interaction, layout, and theme system are handwritten HTML, CSS, and JavaScript — not a generated React app.


Development workflow

There is no package.json and no install step.

git clone https://github.com/buildwahab/jacket-masters.git
cd jacket-masters
python3 -m http.server 8080

Open http://127.0.0.1:8080.

Any other static server works (npx serve, Caddy, Nginx). Opening index.html as a file:// URL can work for layout, but a local server is recommended so image preloading stays reliable.

Production

The repository is the production site. Deploy the tracked files as static assets (GitHub Pages, Netlify, Cloudflare Pages, or any static host).

There is no npm run build or npm run preview.


Requirements

  • A current desktop or mobile browser (Chrome, Firefox, Safari, Edge)
  • A static file server for local preview
  • No Node.js version pin
  • No npm / pnpm / yarn requirement
  • No environment variables

The site does not call third-party APIs.


Performance

Work that was actually done before publication:

  • Removed unused generation source PNGs and an unused white jacket
  • Converted the five live jackets from PNG (~4.5 MB) to WebP q90 with alpha (~0.46 MB)
  • Kept 1448×1086 resolution for a ~790px hero on 2× displays
  • Moved fonts from a CSS @import to preconnect + <link> stylesheets
  • Subsetted Playfair Display to the wordmark characters
  • Added width / height and fetchpriority="high" on the hero image
  • Preload all five product images in JavaScript so the carousel stays instant
  • Dropped unused product fields and leftover CSS filter variables

Tracked repository size after cleanup: about 0.5 MB.


Security

The project was audited before publication. The working tree was checked for:

  • API keys, tokens, passwords, and credentials
  • .env files and environment secrets
  • personal information and local machine paths
  • unnecessary private or generated files

None were found. The repository has no secrets to rotate. If environment variables are added later, keep real values in a local .env (already listed in .gitignore) and commit only an .env.example with names.


Design reference

The visual direction of the hero experience was inspired by this fashion product pin:

https://in.pinterest.com/pin/26106872838423465/

The implementation, interaction system, code, product art, and project structure were developed specifically for Jacket Masters. The Pinterest reference is inspiration only.


Preview

Open the site locally with the development command above.

A hosted demo URL is not configured yet.


Future improvements

Not built today — possible next steps:

  • dedicated product detail pages
  • a real shopping cart and checkout
  • wishlist persistence
  • backend or CMS-backed product data
  • additional categories beyond the five puffers
  • richer mobile transition choreography
  • optional WebGL / 3D turntable if the campaign needs it

License

No license has been specified. All rights reserved unless the owner adds one.


Credits

Project: Jacket Masters
GitHub: buildwahab
Development: AI-assisted with Grok (xAI)

About

Interactive cinematic puffer jacket product experience

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages