Quote-Led Provenance HeroPRO

A hero that gives the display heading over to a customer sentence, credits the speaker beneath it, and evidences the quote with a hairline provenance table before the product line, actions, and a tile floating the figure behind the claim.

Hero167: Quote-Led Provenance Hero

A hero that gives the display heading over to a customer sentence, credits the speaker beneath it, and evidences the quote with a hairline provenance table before the product line, actions and a tile floating the figure behind the claim.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/hero167?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/hero167?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/hero167.tsx, the stats16 trend piece it floats on the tile (installed to components/beste/piece/stats16.tsx), and the badge23 and button21 components it uses for the eyebrow and the actions.

Quick start

The installed file exports hero167Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.

tsx
import { Hero167, hero167Demo } from "@/components/beste/block/hero167";

export default function Page() {
  return <Hero167 {...hero167Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Hero167 } from "@/components/beste/block/hero167";
import { Stats16 } from "@/components/beste/piece/stats16";

export default function Page() {
  return (
    <Hero167
      badge={{ label: "In her words, not ours" }}
      quote="We stopped ringing round to fill cancellations. That is the whole thing."
      speaker={{
        name: "Elena Rourke",
        role: "Practice lead, Bramble Health",
        avatar: { src: "/people/elena.jpg", alt: "Portrait of Elena Rourke" },
      }}
      provenance={[
        { label: "Said on", value: "12 May 2026, unprompted" },
        { label: "Practice", value: "Four sites, thirteen rooms" },
        { label: "Paid to say it", value: "No" },
      ]}
      description="Scheduling, records, and billing sit on one surface, and the waiting list fills its own cancellations."
      buttons={[
        { label: "Read her whole account", href: "/customers/bramble" },
        { label: "Book a demo", href: "/demo", tone: "outline" },
      ]}
      note="We publish the ones who were unhappy too, with the same amount of space."
      media={
        <Stats16
          label="Cancellations refilled"
          value="84%"
          delta="46 pts"
          direction="up"
          caption="at Bramble Health, since March"
          bars={[22, 31, 38, 52, 61, 70, 78, 88]}
        />
      }
      image={{ src: "/clinic/reception.jpg", alt: "A clinician in a bright clinic" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the quote, rendered through Badge23
quotestringCustomer sentence, rendered as the page h1 inside typographic quotes
speakerSpeakerAvatar, name and role credited under the quote
provenanceProvenanceRow[][]Label and value pairs evidencing the quote
descriptionstringProduct paragraph under the second hairline
buttonsActionLink[][]Actions under the paragraph, in source order
notestringSmall closing line under the actions
mediaReactNodeLive asset on the tile, stats16 in the demo
image{ src: string; alt: string }Backdrop behind the media tile
classNamestringExtra classes for the outer section
ts
type ButtonTone = "primary" | "neutral" | "outline";

type ActionLink = {
  label: string;
  href: string;
  tone?: ButtonTone;
};

type Speaker = {
  name: string;
  role: string;
  avatar: { src: string; alt: string };
};

type ProvenanceRow = {
  label: string;
  value: string;
};

Behavior notes

More Hero blocks

View all Hero
PRO

hero139

Rotating Quote Hero

Full-bleed monochrome hero with a giant display heading over a static image, paired with a card that auto-cycles through testimonials and click-to-select dots.

PRO

hero38

Split Hero with Testimonial Card

Two-column hero with prominent testimonial quote card featuring author avatar and company info. Perfect for building trust and social proof.

PRO

hero154

Poster Hero With Proof Card

Poster-style hero where a wide cinematic image carries a soft proof card overlapping its lower corner on desktop, naming a project, what was delivered and one measured outcome.

PRO

hero123

Trust Hero with Logos

Trust hero with a heading, description and CTA beside a tall portrait image, over a grayscale logo marquee.

PRO

hero160

Inverted Reliability Hero

A hero built as one dark panel: a light display heading, two actions, and a hairline table of service commitments beside a bordered image column that floats a live uptime strip.

PRO

hero159

Photo Collage Hero

A centered hero with an eyebrow, light display heading, and two actions above a staggered three-photo collage whose raised middle tile floats a live booking confirmation.