Staaarter

Medical Services Grid

Service cards displaying medical specialties with appointment durations, feature lists, and booking CTAs. Perfect for hospitals, clinics, and healthcare provider websites.

By Staaarter Team
Health
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button, badge dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/medical-services-grid.json

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

Usage

The file also exports health6Demo, 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 { Health6, health6Demo } from "@/components/blocks/health/health6";

export default function Page() {
  return <Health6 {...health6Demo} />;
}

Props

PropTypeDefaultDescription
badgestringundefinedSmall label above the heading; only rendered when set.
headingReactNodenoneSection heading.
descriptionstringundefinedSection intro text below the heading.
servicesMedicalServiceItem[]noneOne card per medical service.
classNamestringnoneExtra classes for the outer section element.

Types

type MedicalServiceItem = {
  title: string;
  description: string;
  duration: string;
  features: string[];
  ctaLabel?: string;
  href?: string;
};

Behavior notes

  • Each card's icon is picked from a fixed six-icon set by array position (cycling via modulo for a services array longer than six), not passed in as prop data.
  • A service's feature list only renders when its features array is non-empty.
  • Each card's booking button becomes a real link via Button's render prop only when href is set; otherwise it renders as a plain, inert button, matching the rest of this repo's static CTAs.
  • badge and description above the grid only render when set.