All Work
DESSERT CAFE / RO

Chocoloco.

A premium dessert cafe in Bucharest, two locations, Floreasca and Old Town. The third build of this brand's site, and the first with a menu structure that matches how the cafe actually organizes its desserts.

Web DesignMotionNext.js
Role
Design + Build
Timeline
2026-04-30 to 05-01, derived from file history
Live URL
chocoloco-v3.vercel.app ↗
Chocoloco homepage

01 / THE REQUEST

Third build,first one that fit.

Chocoloco's menu spans crepes, ice cream, drinks and seasonal items across two Bucharest locations, and earlier attempts at the site flattened that into a single list. v3 needed a structure that actually matched how the menu is organized in the cafe.

02 / THE PROBLEM

Not every sectionhas sub-categories.

Some menu sections are flat lists of items, others split into sub-categories of their own. A menu component built for one shape breaks on the other: either flat sections get a pointless empty category tab, or nested sections lose their sub-structure and dump every item into one list.

03 / THE CHALLENGE

A menu thatbranches, or doesn't.

The menu data model is a nested taxonomy, not a flat list: each top-level section can optionally carry its own categories map. The menu page checks which shape a section has before rendering, falling back to a flat items array when there's no sub-category to branch into. Two independent pieces of state, the active section and the active category within it, drive the view, and the category resets whenever the section changes.

The visual polish layer, chocolate drip overlays, a liquid blob background, candy sparkle and pistachio dust effects, is built as small, independent Framer Motion components sharing one custom ease curve, rather than one large animation system.

04 / THE SOLUTION

What gotbuilt.

Shape-aware menu rendering

Sections with sub-categories branch into a category tab set; flat sections render directly. No dead UI either way.

Reusable motion primitives

A shared ease curve drives a small library of dessert-themed Framer Motion effect components.

Two-location structure

Floreasca and Old Town presented as a real dual-location cafe, not a single generic storefront.

05 / THE RESULT

v3,live.

BUILT WITH

Next.js 15.5React 19TailwindGSAPFramer MotionThree.js

Menu structure that actually fits?

Next project

passvault