Staaarter

Value Prop Panel

Value proposition section: an eyebrow kicker over a hairline rule, a two-column heading and paragraph, then a wide 21:9 image panel with a segmented stat card floating over its bottom edge, and a three-column row of icon benefits beneath it.

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 media-slot dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/value-prop-panel.json

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

Usage

The file also exports feature31Demo, 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 { Feature31, feature31Demo } from "@/components/blocks/feature/feature31";

export default function Page() {
  return <Feature31 {...feature31Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringnoneKicker label above the hairline rule.
headingReactNodenoneLeft column heading.
descriptionstringnoneRight column paragraph.
photo{ src: string; alt: string }noneWide panel photo.
statsStatSegment[]noneSegments in the floating stat card, divided by vertical hairlines.
benefitsBenefit[]noneThree-column icon benefit row below the panel.
classNamestringnoneExtra classes for the outer section element.

Types

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

type Benefit = { icon: LucideIcon; title: string; description: string };

Behavior notes

  • Purely presentational: there is no client-side state, this is a plain server component.
  • The stat card overlaps the bottom edge of the image panel using absolute positioning on a wrapper that is a sibling of the aspect-ratio div holding MediaSlot, per this repo's MediaSlot convention.
  • Any number of stat segments works, each is separated by a `divide-x` hairline; the demo uses three.
  • Icons are passed directly as a `LucideIcon` prop per benefit since this is a server component.