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/wellness-hero-section.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/health/health7.tsx instead.
Usage
The file also exports health7Demo, 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 { Health7, health7Demo } from "@/components/blocks/health/health7"; export default function Page() { return <Health7 {...health7Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eyebrow | string | undefined | Small uppercase label above the heading; only rendered when set. |
| heading | ReactNode | none | Large hero heading. |
| description | string | undefined | Intro paragraph below the heading. |
| image | { src: string; alt: string } | undefined | Hero photo; renders MediaSlot's placeholder when omitted. |
| testimonial | Testimonial | none | Quote shown in the floating card over the image. |
| buttons | ButtonItem[] | [] | CTA buttons below the description. |
| className | string | none | Extra classes for the outer section element. |
Types
type ButtonItem = { label: string; href?: string; variant?: "default" | "secondary" | "outline" | "ghost" | "link" | "destructive"; }; type Testimonial = { quote: string; name: string; role: string; avatar?: { src: string; alt: string }; };
Behavior notes
- image defaults to undefined, which renders MediaSlot's built-in placeholder rather than a photo; pass a real { src, alt } pair to show serene wellness imagery.
- The floating testimonial card's avatar falls back to initials (via AvatarFallback/initialsFromName) whenever testimonial.avatar is omitted.
- buttons defaults to an empty array; each button becomes a real link via Button's render prop only when href is set, otherwise it renders as a plain, inert button.
- eyebrow only renders when set, and only affects the heading's top margin when present.
More Health Blocks
View all →Care Programme Cards
Three hairline programme cards pairing a light programme name with a muted duration line, a short explanation, and a checked feature list.
Care Overview Dashboard
Clinical overview with an eyebrow over a hairline rule, a two-column heading, and a bordered dashboard panel with a stat, a retention ring, a status strip, and an outcomes row.
Daily Health Check-in
Two-column layout with feature highlights and a daily summary card showing heart rate, activity, and recovery metrics.
Health Statistics Display
Large-format statistics grid showcasing key metrics like member counts, satisfaction rates, and years of service.
Wellness Editorial Section
Long-form content section with rich text, bullet point highlights, and call-to-action buttons.
Medical Services Grid
Service cards displaying medical specialties with appointment durations, feature lists, and booking CTAs.