Staaarter

Feature & Testimonial Hybrid

Feature and testimonial hybrid section: an optional eyebrow and heading sit above a two-column layout pairing a customer quote card on a muted background with a 2x2 grid of icon-led feature highlights.

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

npx shadcn add https://staaarter.com/r/feature-testimonial-hybrid.json

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

Usage

The file also exports feature34Demo, 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 { Feature34, feature34Demo } from "@/components/blocks/feature/feature34";

export default function Page() {
  return <Feature34 {...feature34Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedKicker label above the heading; omitted entirely when unset.
headingReactNodeundefinedSection heading; omitted entirely when unset.
quoteQuoteBlocknoneTestimonial quote, author, role, and optional avatar shown on the muted card.
highlightsFeatureHighlight[]noneIcon feature highlights rendered in a 2x2 grid.
classNamestringnoneExtra classes for the outer section element.

Types

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

type QuoteBlock = {
  quote: string;
  author: string;
  role: string;
  avatar?: { src: string; alt: string };
};

Behavior notes

  • Purely presentational: there is no client-side state, this is a plain server component.
  • The header block (eyebrow + heading) only renders when at least one of the two is set.
  • The quote's avatar falls back to initials built from the first letter of up to two space-separated words in the author's name when no avatar image is supplied.
  • The highlight grid is a fixed `sm:grid-cols-2`, producing a 2x2 layout for exactly four items as in the brief; more items simply add rows.