cafe-coffee is a public, single-page cafe website. Its purpose is to present a neighbourhood specialty cafe to prospective visitors by doing two things in one continuous scroll experience:
The audience is design-curious urban coffee drinkers and casual drop-ins who arrive on the public site, scroll through the animated brew sequence, absorb the cafe's atmosphere, and decide the cafe is worth visiting. The site is anonymous and public; there is no account, no ordering flow, and no transactional capability in scope.
cafe-coffee is delivered as a single public web page (the Landing page) with no authentication and no application-owned identity. A visitor arrives anonymously, and the entire experience is a scroll-driven narrative:
Actors. The only active human actor is the Cafe Visitor (anonymous, public). No system, provider, or external service performs a persona-facing capability; all behavior is first-party presentation on the Landing page.
Narrow exclusions. The coffee-process showcase is confined to the hero section; the rest of the site conveys the cafe's vibe. There is no online ordering, no reservation system, no menu-management, no user accounts, and no e-commerce in the current scope.
The product is a presentation-only public website. Delivery is first-party custom UI owned by the application, served anonymously with no access gate. The visitor's only interaction is scrolling, hovering, and reading; the only commitment the site asks for is the decision to visit the cafe, expressed through the "Visit us" call-to-action and the hours/visit information block.
Current horizon: the Landing page with its hero coffee-process animation and vibe sections, exactly as described above.
Future horizon: none stated by the user. No ordering, booking, loyalty, or account features are accepted for any horizon and none are introduced here.
Because the site is anonymous and stateless, no identity establishment, verification, or session continuity is required or inferred. The "Visit us" action is a navigational/attention cue within the page, not a transactional commitment that would require identity.
Not applicable — no reference directive declares a content_source.
The single public page. Anonymous access, no identity required. It is a vertically scrolling, full-bleed colour-field composition.
Information and state
Primary actions
Supporting actions
Domain entities
Component responsibilities
States
prefers-reduced-motion, the pour renders as a static finished stream, all process rows appear in place, and the marquee provides a usable static arrangement (wrapped or horizontally scrollable so each item can be brought fully into view).FR-1 — Hero coffee-process showcase with motion/scroll animation (explicit) As a Cafe Visitor, I should see the coffee process showcased in the hero section through motion or scroll animation, so that I understand how the coffee is made as an engaging, choreographed sequence.
FR-2 — Remaining sections showcase the cafe's vibe (explicit) As a Cafe Visitor, I should see the remaining sections of the site convey the cafe's vibe, so that I get a feel for the cafe's atmosphere and character.
FR-3 — Coffee-process showcase confined to the hero (explicit constraint) As a Cafe Visitor, I should encounter the coffee-process showcase only in the hero section, with the rest of the site devoted to the cafe's vibe, so that the page has a clear narrative structure.
FR-4 — Scroll-linked pour and step-label progression (explicit, from creative direction) As a Cafe Visitor, I should see the coffee stream grow downward as I scroll and a droplet separate at the lip, with the step label advancing, so that scrolling feels like participating in the pour.
FR-5 — Process rows swell open on scroll (explicit, from creative direction) As a Cafe Visitor, I should see each of the five process rows swell open on scroll with its crema image growing together, so that each step is revealed as a tactile moment.
FR-6 — Chant marquee with hover pause (explicit, from creative direction) As a Cafe Visitor, I should see a slow horizontal marquee of the cafe's chant ("SLOW POUR · WARM ROOM · GOOD PEOPLE ·") that pauses on hover, so that the cafe's character is felt rhythmically.
FR-7 — Visit block with hours and call-to-action (explicit, from creative direction) As a Cafe Visitor, I should see a visit block on a full-bleed pink field with cream type, hours/visit information, and a lime capsule CTA, so that I know when and how to visit.
FR-8 — Readable text and controls at every viewport (explicit constraint) As a Cafe Visitor, I should see all headlines, labels, numbers, card text, and controls stay entirely inside the viewport and their container at 375px, 768px, and 1280px, so that nothing readable is cropped or covered.
clamp() with a mobile floor of 44px for the hero headline) to fit; imagery and decoration may bleed or overlap but never cover readable text or controls.FR-9 — Reduced-motion usable static arrangement (explicit constraint) As a Cafe Visitor who prefers reduced motion, I should get a usable static arrangement — the pour as a finished stream, rows in place, and marquee items reachable — so that the site remains fully usable without animation.
prefers-reduced-motion yields static pour, in-place rows, and wrapped or horizontally scrollable marquee items.Product context. A design-curious urban coffee drinker or casual drop-in who has landed on the cafe's public website, likely from a search, a link, or word of mouth. They are anonymous — no account, no login — and are evaluating the cafe on feel as much as on facts.
Primary goal. Decide whether the cafe is worth visiting, by understanding how the coffee is made and getting a genuine sense of the room's atmosphere.
Distinct accepted responsibilities.
Relevant inputs or decisions. The visitor's inputs are scroll position and hover; their decision is whether the cafe is worth visiting. They make no commitment that requires identity.
Interactions with other accepted participants. None — the Cafe Visitor is the sole active human actor; there is no counterparty, recipient, or beneficiary whose state changes.
Observable success. The visitor scrolls the full page, the pour completes to a finished stream, the step label reaches "05 CUP", all sections are readable at their viewport, and they leave with a clear sense of the cafe's vibe and when to visit.
What makes this role different. The visitor is a pure audience: they consume a choreographed narrative and form an impression. They do not transact, register, or manage anything, so their success is measured by comprehension and atmosphere rather than by a completed operation.
Muse and headline. Karim Rashid — Sensual pop minimalism, poured hot. Coffee as a glossy, pleasurable ritual, not a monastic one.
Mode. Light mode only.
Colour tokens (exact hex by role)
#FFF4EA#FFE3D2#241016#F53D7A#C6F24E#8A6A6FProportions. Roughly 55% cream, 25% pink, 12% peach, 5% ink, 3% lime. No gradients on text. No blue anywhere.
Typography
clamp(44px, 9vw, 132px) / section h2 clamp(32px, 5vw, 64px) / h3 24px / body 17px / label 12px. Mobile hero headline floor 44px so "POUR" stacks whole; desktop ceiling 132px spanning the viewport.Shape language. Capsules and blobs everywhere: pill buttons, fully rounded cards (radius 28–48px), curved section boundaries that swell between pink and cream fields, glossy highlight arcs on the 3D cup and bean. Hard edges are forbidden except the thin lime process rule. Shapes overlap deliberately — the pour stream crosses a curved section seam.
Layout. Full-bleed colour fields stacked as a liquid column. Hero is a two-zone composition: oversized stacked display type on the left two-thirds over a cream field, a glossy pink 3D cup and pour on the right bleeding off the top edge. Below: a vertically scrolling five-step process sequence of wide capsule rows with lime step numbers; then an asymmetric vibe gallery of curved photo tiles at varied sizes; then a marquee of the cafe's daily chant; then hours/visit block on a solid pink field with cream type. Single column at 375px, two-zone split at 768px, full asymmetric grid at 1280px. All text and controls stay inside the container at every breakpoint.
Imagery style. Glossy 3D renders of a pink ceramic cup, a crema surface, an espresso puck, and a single bean, on cream or pink grounds with soft contact shadows; macro latte-art swirls treated as abstract curves; warm documentary photos of the room (window light, terrazzo counter, hands on a portafilter) cropped into curved capsules. No stock smiling-people hero, no flat clip-art.
Avoid. Blue–indigo accents or any #0057FF/#2563EB-family colour; Inter, Roboto, Poppins, Arial or system-ui type; centred headline + subtext + blue button hero or gradient-blob backdrop; grid of identical hover-lift cards; sharp-cornered rectangles or hairline-bordered panels; stock photography of people smiling at laptops; flat 2D bean icons used as decoration; autoplaying video that cannot be paused or reduced. The generic indigo/blue-on-white SaaS template is forbidden.
"The Pour That Answers the Scroll."
The first screen is not a centred SaaS hero: it is a left-weighted editorial stack of enormous Unbounded display type — "SLOW / POUR" — set at clamp(44px, 9vw, 132px) in espresso ink on cream, with the word "POUR" set in bubblegum pink and a thin lime rule running from the baseline out to the viewport edge. The right third is dominated by a glossy pink 3D cup rendered in CSS 3D perspective, cropped by the top edge, with a cream-and-pink coffee stream that grows downward as the visitor scrolls, a droplet separating at the lip. A small uppercase Quicksand label "01 — BEAN TO CUP" sits above the headline; a single pink capsule "Visit us" button sits beneath the type, fully inside the container at 375px. No subtext paragraph, no gradient blob.
The signature gesture is the scroll-scrubbed pour: the coffee stream's height and droplet position are tied to hero scroll progress, and the step label above the headline ticks 01 BEAN → 02 GRIND → 03 BLOOM → 04 POUR → 05 CUP as it moves. The 3D cup overlaps the type's negative space rather than the letters, so readable text stays whole while the imagery carries the gesture. This concept recomposes only accepted content and controls — the headline, step label, cup, stream, and "Visit us" capsule — and introduces no new behaviour or destination.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: dimensional_css
Landing Hero Motion Brief
clamp() with its mobile size) to fit; no other element covers any part of them. Imagery, decoration, and motion may be cropped, bled, rotated, overlapped, or cut as the direction asks, as long as they cover no readable text or control. Rationale: the direction's bold overlaps must never compromise legibility.prefers-reduced-motion, provide a usable static arrangement (wrap items into rows or allow horizontal scrolling so each item can be brought fully into view). A scrollable row need not show every item fully at once, including in reduced-motion mode; overflow-x: auto/scroll with items that fit when brought into view is valid. Rationale: motion is the product's core gesture and must remain accessible.prefers-reduced-motion, the pour renders as a static finished stream and all rows appear in place. Rationale: accessibility of the signature animation.#241016 on cream #FFF4EA at ~14:1 contrast for all body text. Rationale: legibility of the warm palette.#0057FF/#2563EB-family colour anywhere. Rationale: brand identity constraint.prefers-reduced-motion media queries.clamp() type scale.(These are the minimal items needed for the accepted scope; no source-specified technology was provided, so this is a labeled default.) [Default — not specified by user]
prefers-reduced-motion state in which the pour is static, rows are in place, and marquee items are reachable.
BEANStep 01 of 5: BEAN
Walk in and watch the pour: hours and how to find the room are in the visit block below.
The ritual, step by step
Single-origin beans, rested and weighed before anything else begins.
Ground fresh to order so the dose meets water at its brightest.
A short rest while the bed swells and releases its first sweetness.
A slow, steady spiral — the part of the ritual you can watch.
Served warm in a pink ceramic cup, ready at the counter.
Inside cafe-coffee
SLOW POUR · WARM ROOM · GOOD PEOPLE ·
No booking needed · just walk in

BEANStep 01 of 5: BEAN
Walk in and watch the pour: hours and how to find the room are in the visit block below.
The ritual, step by step
Single-origin beans, rested and weighed before anything else begins.
Ground fresh to order so the dose meets water at its brightest.
A short rest while the bed swells and releases its first sweetness.
A slow, steady spiral — the part of the ritual you can watch.
Served warm in a pink ceramic cup, ready at the counter.
Inside cafe-coffee
SLOW POUR · WARM ROOM · GOOD PEOPLE ·
No booking needed · just walk in
No comments yet. Be the first!