Staaarter

Indexed Services List

A services section that opens with an eyebrow and heading beside a CTA on one row, then stacks a service card for each offering: a numbered index and a growth stat lined up on the left, a thumbnail image, and a title with description and tag chips.

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

npx shadcn add https://staaarter.com/r/indexed-services-list.json

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

Usage

The file also exports feature50Demo, 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 { Feature50, feature50Demo } from "@/components/blocks/feature/feature50";

export default function Page() {
  return <Feature50 {...feature50Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringnoneSmall label above the heading.
headingReactNodenoneSection heading.
cta{ label: string; href: string }noneOptional link-styled button rendered on the header row.
servicesIndexedServiceItem[]noneService cards, rendered in array order with an auto-numbered index.
classNamestringnoneExtra classes for the outer section element.

Types

type IndexedServiceItem = {
  title: string;
  description: string;
  growthStat: string;
  image: { src: string; alt: string };
  tags: string[];
};

Behavior notes

  • Fully static server component, no client-side state.
  • The index number (01, 02, ...) is derived from array position, not stored data.
  • The header CTA is an inert link-styled button (no destination logic beyond its href).