Launch week πŸ‘‹ β€” code MOTION25 gets 25% off Studio Access

Fine dining Β· Featured

Ocean Epicure

Ocean Epicure is a premium fine dining website template built with Next.js, TypeScript, Tailwind and All-intra video scrub + GSAP. A scroll-scrubbed chef's film opening into a bright editorial story. The Claude Code prompt that builds it is free; the exact tested source code is $79 with a commercial license.

Next.jsTypeScriptTailwind CSSGSAPLenisScroll-scrubbed video
$79
one end product
Live demo β†—
Buy source β€” $79

Specifications

Framework
Next.js Β· TypeScript Β· Tailwind
Motion
All-intra video scrub + GSAP
Category
Hospitality
Use case
Fine dining
Responsive
Desktop β†’ mobile
License
Commercial Β· one end product
Delivery
Instant ZIP download

What the paid download adds

  • The exact deployed code β€” tested, not AI-guessed
  • Config-driven copy, palette & assets
  • Compressed media included
  • Deploy README β€” Vercel or your own VPS
  • Commercial license β€” one end product
  • Free updates to this template

The free Claude Code prompt

Run this with Claude Code to build your own Ocean Epicure variant β€” free. Want the exact, tested code shown in the demo? That’s the $79 download.

# OCEAN EPICURE β€” Free Claude Code Prompt

*From SmartDuke Studio (studio.smartduke.com). The real prompt behind
our fine-dining template. The exact tested build β€” the encoded scrub
film, the craft clips, every section's choreography, all the fixes β€” is
the paid download: https://studio.smartduke.com*

## Before you start

1. **Get one continuous "journey" film** (~10s, 1080p+): a single no-cut
   shot where the chef plates a dish, lifts it and carries it through the
   room to a table. The camera *follows* β€” that walk IS the hero scroll.
2. **Get four short craft clips** (~5s each, close-up): **knife skills**,
   **fire/sear**, **sauce**, **plating**. Same chef, same whites, same
   kitchen, same warm grade so they cross-fade as one world.
3. **Re-encode every film all-intra** so scrubbing lands on any frame:
   `ffmpeg -i in.mp4 -an -c:v libx264 -preset slow -crf 20 -g 1 -pix_fmt yuv420p -movflags +faststart public/vid/out.mp4`
   (`-g 1` β€” every frame a keyframe β€” is what kills scrub judder.)
4. **Stills:** a chef portrait, three ingredient shots (ocean / garden /
   fire), your signature dishes, and one set table at golden hour. Pull a
   hero poster from the film: `ffmpeg -ss 0.2 -i journey.mp4 -frames:v 1 -q:v 3 public/img/hero-poster.jpg`.
5. Node.js β‰₯ 20.9.

## The prompt

> Build a bright, editorial, Awwwards-grade website for a **fictional
> coastal fine-dining restaurant** β€” one continuous scroll story, not the
> usual Home/About/Menu. Warm cream paper (#F4F0E7), warm near-black ink
> (#17130D), ONE oxblood accent (#7C2A16). Display font **Bricolage
> Grotesque** (bold), body **Newsreader** (serif), labels + index numbers
> **Space Mono** β€” all via next/font. Magazine layout: section index
> numbers ([ 01 ]), hairline rules, hanging left rails, generous space.
>
> **Stack:** Next.js App Router + TypeScript + Tailwind v4 + **GSAP**
> (ScrollTrigger + **SplitText**) + **Lenis** (smooth scroll). No 3D β€”
> the motion is the all-intra `<video>` scrub. Put brand, copy, every
> section's arrays and each image/video path in `src/config.ts`; empty
> paths render labelled placeholders.
>
> **0 Β· Loader** β€” an editorial curtain on cream paper: wordmark top-left,
> a GIANT grotesque counter bottom-left driven by REAL progress (read the
> hero `<video>` buffer + poster), an oxblood baseline rule that fills,
> then the whole sheet wipes up (yPercent -101). Min-hold so it never
> flashes, hard cap so it never hangs; lock scroll while up.
>
> **1 Β· Hero β€” the scrubbed film (β‰ˆ360vh pinned).** A full-bleed dark
> `<video>` whose `currentTime` is driven by scroll: ScrollTrigger
> onUpdate sets a target time from progress, a gsap.ticker lerps
> `video.currentTime` toward it (factor ~0.12). GATE it with `if
> (!duration || video.readyState < 2) return;`. The film rests on its
> poster first frame and only seeks on scroll. Editorial title sits
> BOTTOM-LEFT (index tag, a bold two-line grotesque headline word-masked
> up, an italic sub, a mono CTA) and lifts + fades as the film advances.
>
> **Β· Marquee** β€” a running oxblood strip of one-word tags between hero
> and body (CSS keyframe translateX, duplicated content).
>
> **2 Β· Philosophy** β€” a big grotesque statement (one line takes the
> oxblood accent), a serif body paragraph, a mono meta table (Founded /
> Covers / Kitchen), and a portrait that reveals via a top-down clip-path
> wipe + scale.
>
> **3 Β· Ingredients** β€” an editorial index, NOT a slideshow: three
> numbered rows (i / ii / iii) with huge words (Fresh / Seasonal /
> Exceptional), an em-dash name and a line of copy, hairlines between. A
> sticky preview image on the right cross-fades to the hovered row.
>
> **4 Β· The Craft (β‰ˆ400vh pinned).** Left: a mono-numbered list (01–04:
> Knife Skills / Fire / Sauce / Plating) where the active step goes
> oxblood with a growing rule. Right: a bordered media panel that
> cross-fades to the active step's clip (autoplay-loop muted `<video>`,
> or a Frame placeholder). Drive the active index from scroll progress.
>
> **5 Β· Signature Creations** β€” alternating full-bleed editorial spreads,
> one per dish: image one side (clip-path inset reveal + slow zoom on
> scrub), caption the other (mono "01 / SIGNATURE", grotesque name, italic
> note, mono ingredient tags). Flip sides each dish.
>
> **6 Β· The Moment** β€” one full-bleed emotional image (chef serving,
> guests, sunset) with a slow parallax, the payoff line word-masked up
> bottom-left in cream.
>
> **7 Β· The Details** β€” a bordered 4-cell grid (hairline gaps): each cell
> is paper with a mono number + name, and on hover the dish image fades
> in under an ink gradient with the text flipping to cream. Ingredients /
> Cellar / Chef's Table / Private Dining.
>
> **8 Β· Reservation** β€” the close: a full-bleed set-table-at-sunset image
> parallaxing under an ink gradient, a few floating cream particles, a
> huge grotesque invitation and a mono CTA (inverts to oxblood on hover).
>
> **Footer** β€” an oversized grotesque wordmark, hairline columns (hours /
> address / connect), mono micro-labels.
>
> Global: a nav that reads light over the film then flips to ink-on-paper
> past the hero; magnetic buttons (child eases to cursor, springs back);
> `ul-wipe` underline links; `history.scrollRestoration = "manual"`;
> respect prefers-reduced-motion (skip pins/scrubs/parallax).

## Gotchas (we hit all of these)

- The `readyState < 2` gate on the scrub ticker is mandatory β€” seeking
  while the file downloads aborts the fetch every frame and it stalls.
- `-g 1` on the encode is non-negotiable or `currentTime` snaps to the
  nearest keyframe and the scrub judders.
- The loader must read REAL buffer progress with BOTH a min-hold and a
  hard cap β€” a fake timer flashes on fast links or traps slow ones.
- Bricolage Grotesque + Newsreader must load via next/font, and after
  changing any font token `rm -rf .next` (Turbopack caches `@theme` font
  vars and silently falls back to serif otherwise).
- Pinned + cross-fade sections need `invalidateOnRefresh: true` so they
  re-measure on resize / font swap.
- Keep the four craft clips one visual world (same chef, whites, grade)
  or the cross-fades read as four different restaurants.

---

*Paid version: the journey film + 4 craft clips + all stills + every
section's exact choreography + loader + README + license β€” studio.smartduke.com*

Ocean Epicure β€” questions

What is the Ocean Epicure template built with?

Ocean Epicure is a Fine dining website built with Next.js, TypeScript, Tailwind CSS, GSAP, Lenis, Scroll-scrubbed video. The motion is driven by All-intra video scrub + GSAP, with Lenis smooth scrolling and GSAP ScrollTrigger for the scroll choreography.

How much does Ocean Epicure cost?

The free Claude Code prompt that builds a Ocean Epicure variant is $0. The exact, tested source code β€” the same site shown in the demo β€” is $79, delivered as an instant ZIP with a commercial license for one end product.

Can I use Ocean Epicure for a client project?

Yes. The $79 download includes a commercial license to use Ocean Epicure in one end product, including paid client work. Everything is config-driven, so copy, palette and assets re-skin from a single file.

What's the difference between the free prompt and the paid download?

The free prompt gets Claude Code to build you a Ocean Epicure variant β€” genuinely good, but it costs tokens and debugging time and results vary. The paid download is the exact site in the demo: tested, compressed, documented, licensed, with free updates.

Related templates

Part of

Ship Ocean Epicure today.

The free prompt gets you a variant. The $79 download is the exact, tested site β€” deployed in an afternoon.