Centered Hero with Ratings Social Proof

5-Star Rated

Join thousands of happy customers

Trusted by teams worldwide to streamline their workflows and boost productivity. See why customers love us.

User 1
User 2
User 3
User 4
User 5
4.7

2,847 from verified reviews

Product screenshot
About this block

Centered Hero with Ratings Social ProofPRO

Centered hero with avatar stack, partial star ratings display, and review count above the featured image. Perfect for products with strong user reviews.

Hero45: Centered Hero with Ratings Social Proof

Centered hero built around a review moment: an overlapping avatar stack next to a fractional star rating and review count, sitting between the CTA buttons and a full-width product screenshot below.

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/hero45?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/hero45.tsx and its shadcn/ui dependencies: Badge, Button.

Quick start

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

tsx
import { Hero45, hero45Demo } from "@/components/beste/block/hero45";

export default function Page() {
  return <Hero45 {...hero45Demo} />;
}

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

tsx
import { Hero45 } from "@/components/beste/block/hero45";

export default function Page() {
  return (
    <Hero45
      badge={{ label: "5-Star Rated", variant: "secondary" }}
      heading="Join thousands of happy customers"
      description="Trusted by teams worldwide to streamline their workflows."
      buttons={[
        { label: "Start Free Trial", href: "https://beste.co" },
        { label: "See Reviews", href: "https://beste.co", variant: "outline" },
      ]}
      socialProof={{
        avatars: [
          { src: "https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=100&h=100&fit=crop", alt: "User 1" },
          { src: "https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop", alt: "User 2" },
        ],
        rating: 4.7,
        reviewCount: "2,847",
        label: "from verified reviews",
      }}
      image={{ src: "https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=1200&h=800&fit=crop", alt: "Product screenshot" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }–Pill above the heading
headingstring–Main heading
descriptionstring–Supporting paragraph
buttonsButtonItem[][]CTA buttons; the first one gets a trailing arrow icon
socialProofSocialProof–Avatar stack plus star rating row
image{ src: string; alt: string }–Full-width screenshot rendered below the CTAs
classNamestring–Extra classes for the outer <section>
ts
type ButtonItem = {
  label: string;
  href?: string;
  variant?: "default" | "secondary" | "outline" | "ghost";
};

type SocialProof = {
  avatars: { src: string; alt: string }[];
  rating: number;
  reviewCount: string;
  label: string;
};

Behavior notes

  • The star row supports fractional ratings: it floors rating for full stars, and at the first non-full star it stacks a muted background Star with a foreground filled Star clipped inside an overflow-hidden wrapper whose width is set inline to rating % 1 * 100%, producing a partially filled star rather than rounding up or down.
  • Avatars overlap using -space-x-3 with a border-2 border-background ring on each circle so they read as a stack against any page background.
  • socialProof, buttons, and image are each independently optional; the section still renders with just a heading if every other prop is omitted.
  • The screenshot below the fold is a plain <img> at max-w-4xl, so it scales full-width on mobile and caps out under the heading's text column width on larger screens.

More Hero blocks

View all Hero
PRO

hero78

Centered Hero with Founder Social Proof

PRO

hero79

Split Hero with Avatar Social Proof

PRO

hero72

Browser Screenshot Hero with Notifications

Get Pro access