Staaarter

Alternating Features

A stack of feature rows that alternate an image and a copy column left-to-right down the page, each copy column paired with a short checklist of concrete claims.

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/alternating-features.json

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

Usage

The file also exports feature58Demo, 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 { Feature58, feature58Demo } from "@/components/blocks/feature/feature58";

export default function Page() {
  return <Feature58 {...feature58Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringnoneSmall label above the heading.
headingReactNodenoneSection heading.
descriptionstringnoneSupporting copy under the heading.
rowsFeatureRow[]noneFeature rows, rendered in array order and alternated left/right by index.
classNamestringnoneExtra classes for the outer section element.

Types

type FeatureRow = {
  title: string;
  description: string;
  checklist: string[];
  image: MediaSlotImage;
};

Behavior notes

  • Fully static server component, no client-side state.
  • Rows at an odd array index swap the image to the right (`lg:order-2`) and the copy to the left, so the layout alternates row over row on large screens; both columns stack full-width on mobile in natural order.