Staaarter

Why-Choose Media Proof

A centered eyebrow and heading sit above a wide image card carrying a corner label badge and a frosted-glass overlay band at the bottom that pairs a customer testimonial with a headline stat, followed by a three-up row of icon-led reasons to choose the product.

By Staaarter Team
Feature
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge, media-slot dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/why-choose-media-proof.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/feature/feature51.tsx instead.

Usage

The file also exports feature51Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.

import { Feature51, feature51Demo } from "@/components/blocks/feature/feature51";

export default function Page() {
  return <Feature51 {...feature51Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringnoneSmall label above the heading.
headingReactNodenoneSection heading.
descriptionstringnoneSupporting copy under the heading.
image{ src: string; alt: string }noneWide image behind the overlay band.
cornerLabelstringnoneOptional badge pinned to the top-left corner of the image.
testimonialMediaProofTestimonialnoneQuote and attribution shown in the overlay band.
statMediaProofStatnoneHeadline stat shown alongside the testimonial in the overlay band.
reasonsMediaProofReason[]noneThree-up row of icon-led reasons under the image.
classNamestringnoneExtra classes for the outer section element.

Types

type MediaProofTestimonial = { quote: string; author: string; role?: string };
type MediaProofStat = { value: string; label: string };
type MediaProofReason = { icon: LucideIcon; title: string; description: string };

Behavior notes

  • Fully static server component, no client-side state.
  • The overlay band uses a deliberate dark, glass-effect treatment (black/40 with backdrop-blur) over the image regardless of light/dark theme, since it sits on top of an arbitrary photo rather than the page background.
  • Each reason's icon comes from a per-item icon prop, valid here since this is a server component (no client-boundary restriction on passing component references).