Skip to main content
vibld

Template

Berry Milk

A direct-to-consumer launch page for a flavored milk: one splash shot, a giant soft word and flavor tags that work as filters.

Strawberry milk product launch · Website · Small business site · single page: hero and one section

A mock-up of the homepage, drawn from this design’s layout, palette and typefaces. A build follows the full prompt below.

Add app screens

Pick up to 6 screens, such as a dashboard, settings or an empty state. Each is built in this design’s own palette and typefaces, with its states and guardrails.

Account setup
Add edit
Analytics
Appearance
Calendar
Chat
Checklist
Checkout
Confirmation
Dashboard
Delete account
Details
Discovery questions
Empty state
Flowchart
Import export
Inbox
Integrations
Invite team
Loading
Login
Onboarding
Plans
Playground
Product tour
Referral
Search
Settings
Share
Sign up
Success
Table
Team members
Text editor
Upgrade
Usage
Verification
Welcome

Start from this templateRead the build prompt

Typefaces

Jomhuria is tall and soft, so a giant word sits behind the bottle like a poster; Varela Round matches the rounded, friendly packaging.

  • JomhuriaHeadings: the giant soft display word behind the bottle
  • Varela RoundBody: tags, subcopy and the buy pill

Who it is for

  • Shoppers buying online
  • Cafes ordering wholesale
  • Fans of the brand

Layout

  1. Peach page with the splash blurred into rose behind
  2. Tiny nav on top
  3. Giant soft word centered behind the bottle and splash
  4. Flavor tags under it (Strawberry, Banana, Matcha) and a buy pill
  5. One supporting section: the three flavors as bottles on colored grounds with prices

Palette

Sweet, fresh, bouncy without being childish.

  • rose#c8606a
  • peach milk#ffe2d2
  • white#ffffff
  • berry ink#4a1820

Every checked pair, measured again

SampleWhereRatioNeeds
Aabody text on the page11.83:14.5:1
Aatext on cards and chips14.56:14.5:1
Aasecondary text on muted surfaces4.90:14.5:1
Aasecondary text on the page5.89:14.5:1
Aalabel on the primary action11.83:14.5:1
Aalabel on secondary surfaces14.56:14.5:1
Aalabel on the accent5.34:14.5:1
Aaerror label4.55:14.5:1
primary action against the page11.83:13:1

As vibld’s tokens

The palette on the 15+ color tokens vibld styles a project with, each text color on the fill it is read on. Marked tokens are solved from the palette, because no swatch held that role at 4.5:1.

  • background
  • card
  • muted *
  • primary
  • secondary
  • accent *
  • destructive *

Type scale

Display
Jomhuria, the giant soft display word behind the bottle
Body
Varela Round, tags, subcopy and the buy pill

Spacing and imagery

Rose hero at 100svh; giant word centered behind the bottle; tags in a row under it with 8px gaps.

A strawberry milk bottle with a frozen splash of milk arcing around it and fresh strawberries, rose studio backdrop. No text on the bottle and none in the frame; space behind for a giant word.

Components

  • Flavor tags as filter pills
  • Buy pill
  • Flavor cards
  • Blurred hero echo background

Interactions

  • The splash freezes in place as the page scrolls past it
  • Tags pop in one after another on load
  • Choosing a tag swaps the hero tint to that flavor

Data

  • Content{headline, subcopy, cta, section items}

Build prompt

The baseline every prompt in the catalog assumes, then this design’s own ten sections, from goal to guardrails.

The baseline
### How to use these prompts
Each Cinematic Hero prompt describes one page: a full-bleed hero built around a single generated image, and one supporting section in the same style. The rules below apply to every one of them.

### Cinematic Hero principles
- One full-bleed hero per page. The image is the subject, not decoration.
- An oversized display headline of two to four words that runs past an edge or overlaps the subject. It is live text, never part of the image.
- A tiny nav: a wordmark and three or four small links, one pill-shaped primary action, and at most one quiet secondary action.
- The hero image returns as the page background, blurred 40 to 80px and darkened, so the hero sits in a card with 24 to 32px corners.
- A tight palette: two or three colors taken from the image and one accent, used mostly on the primary action.
- A distinct display face with a quiet body face. Small labels get wide tracking.
- Small glass or chip details (a stat, a tag, an avatar row, a counter), never a wall of features.
- One signature motion and a staggered text reveal. prefers-reduced-motion turns every loop off and shows still frames.
- On phones the headline keeps its bleed at a clamp() size, the subject stays in frame, a video becomes its poster, and chips stack under the action.

### Engineering baseline
- TypeScript strict mode, small typed components, and one source of truth for design tokens (CSS variables consumed by Tailwind).
- All copy lives in one typed content file, so the owner can edit words without touching layout.
- Every form validates on the client, says what went wrong in plain words beside the field, and never claims success it has not had.
- No secrets in the bundle and no third-party scripts beyond Google Fonts.
### Goal
Build **Berry Milk**: A direct-to-consumer launch page for a flavored milk: one splash shot, a giant soft word and flavor tags that work as filters. It is one cinematic hero and one supporting section, in the Cinematic Hero series.

### Stack
React + TypeScript + Vite and Tailwind CSS. Motion in CSS and the Web Animations API. No backend: the page is static, and any form keeps its result on the page until the owner connects an endpoint.

### Pages & layout
1. Peach page with the splash blurred into rose behind.
2. Tiny nav on top.
3. Giant soft word centered behind the bottle and splash.
4. Flavor tags under it (Strawberry, Banana, Matcha) and a buy pill.
5. One supporting section: the three flavors as bottles on colored grounds with prices.

Copy to start from, all in `content.ts`: headline "Berry", subcopy "Real strawberries, whole milk, nothing else.", primary action "Buy a crate". On phones the headline keeps its bleed at a clamp() size, the subject stays in frame, and chips stack under the action.

### Design system
Mood: Sweet, fresh, bouncy without being childish.

Palette: rose `#c8606a`, peach milk `#ffe2d2`, white `#ffffff`, berry ink `#4a1820`. Tokens: background `#ffe2d2`, foreground `#4a1820`, primary `#4a1820` with `#ffe2d2` labels, cards `#ffffff`.

Type: Jomhuria for the giant soft display word behind the bottle; Varela Round for tags, subcopy and the buy pill. Load both from https://fonts.googleapis.com/css2?family=Jomhuria&family=Varela+Round&display=swap. Small labels in Varela Round with 0.12em tracking.

Corners: 28px on the hero card, 16px on cards, pills fully round. Spacing: Rose hero at 100svh; giant word centered behind the bottle; tags in a row under it with 8px gaps.

Hero image: A strawberry milk bottle with a frozen splash of milk arcing around it and fresh strawberries, rose studio backdrop. No text on the bottle and none in the frame; space behind for a giant word. The series made this image for the design: https://vibld.com/img/cinematic/berry-milk.webp, 2688 by 1535, alt text "A strawberry milk bottle wrapped in a frozen splash of milk, strawberries at its base, on rose pink". Use it by that absolute URL, with `srcset="https://vibld.com/img/cinematic/berry-milk-800.webp 800w, https://vibld.com/img/cinematic/berry-milk-1600.webp 1600w, https://vibld.com/img/cinematic/berry-milk.webp 2688w"`, unless the person has uploaded a hero image of their own, which then takes its place. Never a placeholder photo or a stock image of people.

### Components & interactions
- Flavor tags as filter pills
- Buy pill
- Flavor cards
- Blurred hero echo background

Motion:
- The splash freezes in place as the page scrolls past it
- Tags pop in one after another on load
- Choosing a tag swaps the hero tint to that flavor

The signature motion is: A splash that freezes on scroll. Keep it to that one; everything else is a 150 to 300ms state change. With prefers-reduced-motion, loops stop, videos show their poster and reveals are instant.

### Data & state
All copy and the supporting section's items live in one typed `content.ts`. Inputs validate as the visitor types and report a result inline; nothing is sent anywhere until the owner connects a form endpoint.

### Accessibility
WCAG 2.2 AA. The headline is real text, not part of the image, and the image has alt text describing it. Every control has a visible focus ring and a 44px target. Verified contrast: body text on the page #4a1820 on #ffe2d2 11.82:1; text on cards and chips #4a1820 on #ffffff 14.55:1; secondary text on muted surfaces #774b4d on #edcec0 4.89:1; secondary text on the page #774b4d on #ffe2d2 5.88:1; label on the primary action #ffe2d2 on #4a1820 11.82:1; label on secondary surfaces #4a1820 on #ffffff 14.55:1; label on the accent #000000 on #c8606a 5.33:1; error label #ffffff on #d93a3a 4.54:1; primary action against the page #4a1820 on #ffe2d2 11.82:1.

### Security
No third-party scripts other than Google Fonts. Forms carry a hidden honeypot field and cap input length.

### Performance & SEO
Serve the hero image as AVIF or WebP with its width and height, `fetchpriority="high"` and no lazy loading; the blurred echo reuses the same file with a CSS filter. Preconnect to Google Fonts. Title and meta description come from `content.ts`. Largest contentful paint under 2.5s on a mid-range phone.

### Guardrails
- Avoid: Flat product cutouts on white, cartoon fruit.
- One accent color, one primary action, at most four nav links.
- No carousel or slider in the hero, no mega menu, no emoji or clip-art icons, no hard offset shadows.
- No purple-to-blue gradient and no stock photos of people at desks.
- The brand is invented. Use no real company's name, logo or trademark.

Open the builderAll templatesThis palette on its own