BoilerPrompt
v0

v0 prompt for a testimonial section

A v0 prompt for a testimonial wall: a masonry grid of attributed quote cards with one featured pull-quote, where carousel behavior exists only as the mobile fallback. Varied card heights and outcome-driven quotes are what make the wall read as real proof instead of decoration. Style, palette, typography, and motion swap in from the customizer.

Last updated

Prompt
Generate a testimonial wall section for the {{product}} landing page in v0 — a TestimonialsSection React component (Tailwind + shadcn/ui) that drops in after the features section. Despite what people search for, this is not a rotating carousel on desktop: build a static masonry-style wall of quote cards that {{audience}} can scan in one pass, and reserve carousel behavior for small screens only.

Anatomy:
1. Header: kicker, then an h2 that claims a specific result customers get from {{product}} — no subhead.
2. One featured pull-quote spanning the full content width: the strongest single sentence you can write for {{product}}, set larger, with name, role, and company beneath it.
3. The wall: eight quote cards in a 3-column masonry layout (CSS columns or grid) with visibly varied card heights — write two short, four medium, and two long quotes. Every card carries quote, avatar placeholder, name, role, and company; attribution is non-negotiable, no anonymous cards.
4. Logos strip: a single muted row of five or six company marks under the wall, behind a showLogos prop so it can be toggled off.
5. Close with an inline text link reading "{{cta}}", aligned right beneath the wall.

Write the quotes as outcomes with numbers where possible ("cut onboarding from 3 weeks to 4 days"), voiced for {{audience}}. Ban the phrases "amazing", "game-changer", and "love this tool".

Visual direction:
{{style}}

Palette: {{palette}}
Typography: {{type}}
Motion: {{motion}}

Spacing and responsive: py-24 section padding, 1.5rem card gutters, a 3rem gap separating the featured quote from the wall. Below md, collapse the wall into a swipeable single-column carousel — scroll-snap, one card per viewport, dot indicators — while the featured quote stays static above it.

Check the result: the masonry shows clearly different card heights; every quote has name, role, and company; exactly one featured pull-quote exists; at mobile width the wall becomes a snap-scrolling carousel; the logos strip disappears when showLogos is false.

Customize it

Runs in your browser. Nothing you type here is sent anywhere.

Your customized prompt
Generate a testimonial wall section for the a project management SaaS landing page in v0 — a TestimonialsSection React component (Tailwind + shadcn/ui) that drops in after the features section. Despite what people search for, this is not a rotating carousel on desktop: build a static masonry-style wall of quote cards that engineering managers at startups can scan in one pass, and reserve carousel behavior for small screens only.

Anatomy:
1. Header: kicker, then an h2 that claims a specific result customers get from a project management SaaS — no subhead.
2. One featured pull-quote spanning the full content width: the strongest single sentence you can write for a project management SaaS, set larger, with name, role, and company beneath it.
3. The wall: eight quote cards in a 3-column masonry layout (CSS columns or grid) with visibly varied card heights — write two short, four medium, and two long quotes. Every card carries quote, avatar placeholder, name, role, and company; attribution is non-negotiable, no anonymous cards.
4. Logos strip: a single muted row of five or six company marks under the wall, behind a showLogos prop so it can be toggled off.
5. Close with an inline text link reading "start a free trial", aligned right beneath the wall.

Write the quotes as outcomes with numbers where possible ("cut onboarding from 3 weeks to 4 days"), voiced for engineering managers at startups. Ban the phrases "amazing", "game-changer", and "love this tool".

Visual direction:
Minimal dark style. Near-black canvas (#0A0A0B) with one elevated surface tone (#141416) for cards — never more than two surface steps. Hairline borders (1px, white at 8% opacity) instead of shadows; if a shadow is unavoidable use 0 1px 2px rgba(0,0,0,0.4) and nothing softer. Text in exactly three steps: white at 92% for headings, 60% for body, 40% for captions. Generous negative space — section padding at least 120px on desktop, 64px on mobile. The accent color appears only on interactive elements and one hero highlight, nowhere else.

Palette: a strict neutral ramp (white, #F5F5F5, #E5E5E5, #737373, #171717) carries the entire interface; pick one accent and use it only for primary CTAs, active states, and a single hero highlight. If the accent appears more than five times per viewport it stops being an accent. Keep semantic colors (success, error) desaturated so the accent stays in charge.
Typography: one geometric sans (a Futura/Poppins-class face) at three weights maximum (400/500/700). Scale: 64-88px hero, 32px section heads, 18px lede, 16px body, 13px caps labels with 0.08em tracking. Tight headline leading (1.05-1.1), relaxed body (1.6). Let the geometry carry the personality — no italics; weight and size do all hierarchy.
Motion: none. Zero scroll animations, zero entrance effects — the page is fully composed the instant it paints. Spend the motion budget on input feedback instead: 120-150ms ease-out color and transform transitions on hover and press states only. Hold this constraint absolutely; it is a statement, not an omission.

Spacing and responsive: py-24 section padding, 1.5rem card gutters, a 3rem gap separating the featured quote from the wall. Below md, collapse the wall into a swipeable single-column carousel — scroll-snap, one card per viewport, dot indicators — while the featured quote stays static above it.

Check the result: the masonry shows clearly different card heights; every quote has name, role, and company; exactly one featured pull-quote exists; at mobile width the wall becomes a snap-scrolling carousel; the logos strip disappears when showLogos is false.

Same task in other tools

Questions about this prompt

Why a wall instead of an actual carousel on desktop?

Carousels hide most of your proof behind clicks nobody makes; a wall shows eight quotes in one scroll. The prompt keeps carousel mechanics only where they earn their place — small screens, where horizontal swiping is a native gesture.

What goes in the quotes if I don't have testimonials yet?

Let v0 generate placeholders in the outcome-plus-number shape the prompt enforces, then swap in real ones as they arrive — the card structure doesn't change. Don't ship invented quotes under real-looking names; treat them strictly as layout stand-ins.

How do I turn the logos strip off?

The prompt puts it behind a showLogos prop, so pass false where the section is used. If v0 hardcoded the strip instead, follow up asking for the prop — adjusting one prop is faster than regenerating the section.

Part of the v0 landing-page cluster — start from the main v0 landing page prompt.

Related prompts