C I N D E R. The Site

Design Guide · Site 12 of 15

The Making of CINDER

A twelve-seat tasting counter where every course involves fire — and a study in how much a page can withhold. This is the concept, the technique, and the diary behind it, written by the model that built it.

I · Concept & creative direction

The brief: appetite is the KPI. Most food sites shout — white tablecloth photography, four carousels, a hundred adjectives. CINDER does the opposite. The room is nearly black. Nothing moves fast. The photography behaves like a Caravaggio: one warm key light, smoke drifting through it, everything else surrendered to shadow.

The governing rule was darkness discipline: the page spends most of its height in near-black, so that when a dish does appear — lit as if a candle had drifted up to it — your eye has nowhere else to go. Restraint does the selling. The only constant life is a sparse field of embers that stirs when you scroll, like coals disturbed by a poker.

Voice matters as much as light: the copy is written like a maître d' who has seen things — «The book is written in pencil.» «The other seven are cooked in the dark.» Fictional, but never winking at you.

II · Palette & type

Char
#191412 · the room
Void
#0D0A08 · between courses
Bone
#EFE6DA · the place card
Ember
#FF6B35 · the accent
Smoke
#8A817A · the whisper

Prata — display, one weight, carried by scale

Twelve courses.

I II IV VII IX XI

Hanken Grotesk — body, variable 100–900

Light 300 — the menu turns with the woodpile.

Regular 400 — birch weeks are sweeter, oak weeks are patient.

SemiBold 600 — GRAPEVINE WEEKS BITE.

Prata has exactly one weight, which forces the hierarchy to come from scale and space — a constraint that suits a restaurant with one hearth. Course numerals are set as hollow ember strokes so they read as heat, not ink.

III · The signature technique — the candle-approach reveal

Five courses are staged inside one pinned viewport. Each dish sits in the dark until scroll progress carries a virtual candle toward it: a radial light-mask widens over the photograph while a warm grade ramp lifts it from cold underexposure to true color, and the plate settles from 1.16× scale to rest — three channels driven by two custom properties.

/* CSS — the mask and the grade read from --r and --lum */
.course-fig img {
  mask-image: radial-gradient(circle at 50% 46%,
    #000 calc(var(--r, 0) * 0.82%),
    transparent calc(var(--r, 0) * 1.45%));
  filter: brightness(calc(0.18 + var(--lum, 0) * 0.88))
          saturate(calc(0.35 + var(--lum, 0) * 0.72))
          sepia(calc(0.42 - var(--lum, 0) * 0.42));
  transform: scale(calc(1.16 - var(--lum, 0) * 0.16));
}

// JS — one scrubbed timeline, ten beats per course
// the candle approaches: light pool widens, grade warms
tl.to(state, { r: 100, lum: 1, duration: 4.6,
  ease: 'power2.inOut', onUpdate: apply }, base + 0.4)
// the flame breathes while you look
tl.to(state, { r: 116, duration: 2.6, ease: 'none' }, base + 5.0)
// …and drifts on; the plate returns to the dark
tl.to(state, { r: 5, lum: 0.05, duration: 2.0,
  ease: 'power2.in', onUpdate: apply }, base + 7.9)

Between courses the stage falls back to black and the ember field carries the page: a Canvas 2D system of 30–60 particles drawn with additive compositing. It listens to Lenis scroll velocity — flick the wheel and the embers scatter upward like disturbed coals, then settle. With prefers-reduced-motion, the pin, the smoothing and the particles are all removed and the five courses read as a plain, fully-lit editorial sequence.

IV · Asset pipeline

Oyster course photograph
II · oyster
Langoustine course photograph — the series anchor
IV · anchor
Squab course photograph
VII · squab
Wagyu course photograph
IX · wagyu
Birch-ember crème photograph
XI · crème

9 generations · ≈18 credits · models: nano_banana_pro (7), soul_2 (2, one rejected for lettering artifacts).

V · Iteration diary

Pass 1 — structure

The first screenshots caught three real bugs. A scrubbed tween had recorded the hero title at opacity 0 as its start value, so the title vanished if you scrolled back to the top. A scroll shim meant to make programmatic jumps instant recursed invisibly through Lenis and silently swallowed every jump. And the section reveals missed instant scrolls entirely, leaving Fire Notes and the place card blank. All three fixed; the mobile route was also slimmed under the headless capture ceiling (a lazy-loaded portrait was quietly adding 420 px after first measurement).

Pass 2 — craft

Scripted probes verified the reduced-motion fallback (static, fully lit, canvas off), the place-card flow (invalid submit marks the field; a valid one writes «Your name is in the book» and moves focus there), and the keyboard path (skip link, ember focus rings). On phones the course counter collided with the three-word triads and the plates rendered too small — both fixed. The carte learned to ignite: each row's numeral catches fire under the hand.

Pass 3 — the hostile critic

Two fidelities to the brief were restored. The opening image — a single ember drifts up — now happens literally: one bright ember rises alone out of the black before the ambient field wakes, and the title blooms as it passes. And the candle became something you hold: inside the menu, the light pool sways a few pixels toward your cursor, like a flame leaning in a draft. Small life everywhere else — the wordmark's ember dot flickers, «candlelight» is set in warm amber.

C I N D E R.

Designed & built autonomously by Claude Fable 5 (Anthropic) — concept, copy, art direction, photography prompts, code, and QA. One site of fifteen in an exhibition of autonomous web design.