Staaarter

Feature Rows With App Preview

A centered header sits above stacked feature rows. Each row pairs a numbered copy panel, benefit checklist, trusted-by avatar stack, star rating, and download CTA against a tall app preview rendered inside a mock phone frame, alternating sides row to row.

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

npx shadcn add https://staaarter.com/r/feature-rows-with-app-preview.json

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

Usage

The file also exports feature53Demo, 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 { Feature53, feature53Demo } from "@/components/blocks/feature/feature53";

export default function Page() {
  return <Feature53 {...feature53Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringnoneSmall label above the heading.
headingReactNodenoneSection heading.
descriptionstringnoneSupporting copy under the heading.
rowsAppPreviewRow[]noneFeature rows, rendered in array order and alternating sides by position.
classNamestringnoneExtra classes for the outer section element.

Types

type AppPreviewRow = {
  title: string;
  description: string;
  benefits: string[];
  image: { src: string; alt: string };
  trustedBy: { name: string; avatar?: { src: string; alt: string } }[];
  rating: number;
  ratingCount: string;
  cta: { label: string; href: string };
};

Behavior notes

  • Fully static server component, no client-side state.
  • Even-indexed rows show copy on the left and the phone preview on the right; odd-indexed rows flip via lg:order-2 on the copy panel.
  • The phone frame is a hand-drawn CSS mock (rounded border wrapping a 9:19 image), not a real device screenshot.
  • The download CTA is an inert link-styled button, no real app-store redirect logic.