Studio project · Fashion / Ready-to-Wear
CORA
Life is too short for beige — so the hard part was not the colour, it was building a storefront that could carry twenty-two products, four routes and a real cart without the colour becoming noise.

- 22Products from one data file
- 4Routes, shop to product detail
- PersistentCart held across every route
Overview
The brief
An invented Lisbon ready-to-wear label, built as a working storefront rather than a lookbook: a shop with real filtering, product pages with variants, a persistent cart and an editorial layer sitting over the top of it. The brief we set ourselves was a fashion site where the commerce is as finished as the art direction.
The work

02Six moodsThe archive section — six ways to wear the season, laid out as an editorial grid rather than a category list. 
03The signaturesThe product rail, each piece carrying its fabric and cut as a label above the name, and its shade as a named colour token rather than a hex value. 
04The shopTwenty-two products behind real filtering, with the cart held in client state so it survives every route change.
How it was built
The detail
Next.js App Router over four routes, with twenty-two products in one data file that the shop grid, the product pages, the colour swatches and the cart all derive from. Cart state is held in Zustand and persists across routes. The mega-menu opens three columns on intent rather than hover-jitter, the lookbook rails are Embla with wheel gestures so a trackpad swipes them sideways, and GSAP drives the archive and signature reveals over a Lenis scroll. Colour is treated as data — each product carries its shade as a named token, so the swatches, the filters and the editorial captions all name the same tangerine.