Staaarter

Stats + Feature Cards over Media

A full-bleed background photo behind a dark scrim, with a heading and description on top of it, followed by a hero-style row of large stat numbers in one glass panel, and a four-column grid of glass feature cards with icon badges below 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/stats-feature-cards-over-media.json

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

Usage

The file also exports feature83Demo, 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 { Feature83, feature83Demo } from "@/components/blocks/feature/feature83";

export default function Page() {
  return <Feature83 {...feature83Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedSmall label above the heading.
headingstringnoneSection heading, rendered directly over the background photo.
descriptionstringundefinedSupporting copy under the heading.
imageMediaSlotImagenoneFull-bleed background photo behind the whole section.
statsFeature83Stat[]noneLarge stat numbers rendered in a single glass panel row.
itemsFeature83Item[]noneFeature cards below the stat row, each with an icon, title, and description.
classNamestringnoneExtra classes for the outer section element.

Types

interface Feature83Stat {
  label: string;
  value: string;
}

interface Feature83Item {
  icon: LucideIcon;
  title: string;
  description: string;
}

Behavior notes

  • Plain server component, no client-side state.
  • Stat values are static strings supplied via props, not computed or animated on scroll, they render identically on every pass.
  • Card icons are real lucide-react components passed by reference, safe here since this is a server component.