Care Overview Dashboard
A clinical overview with an eyebrow over a hairline rule, a two-column heading, and a bordered dashboard panel that composes a journeys stat, a retention ring (static SVG progress ring), and a slim status strip, closing with a big-number outcomes row. Perfect for clinics and care platforms summarizing programme performance.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/care-overview-dashboard.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/health/health2.tsx instead.
Usage
The file also exports health2Demo, 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 { Health2, health2Demo } from "@/components/blocks/health/health2"; export default function Page() { return <Health2 {...health2Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eyebrow | string | none | Small uppercase label above the hairline rule; the rule only renders when eyebrow is set. |
| heading | ReactNode | none | Left column of the two-column heading row. |
| description | string | undefined | Right column of the two-column heading row. |
| journeysLabel | string | "Active care journeys" | Label above the big journeys number. |
| journeysValue | string | none | The big journeys stat, e.g. "1,248". |
| journeysHelpText | string | undefined | Small helper line under the journeys stat. |
| retentionValue | number | none | 0-100 percentage driving the static SVG retention ring's fill. |
| retentionLabel | string | "12-month retention" | Label under the retention percentage. |
| statusLabel | string | "All care journeys reporting normally" | Text next to the decorative status dot. |
| statusBadgeLabel | string | "Live" | Badge label at the end of the status strip. |
| outcomes | OutcomeStat[] | none | Big-number outcomes row at the bottom of the panel. |
| className | string | none | Extra classes for the outer section element. |
Types
type OutcomeStat = { label: string; value: string };
Behavior notes
- The eyebrow and the hairline rule beneath it render together or not at all, based only on eyebrow being set.
- retentionValue is clamped to 0-100 before it drives both the displayed percentage and the ring's strokeDashoffset, so an out-of-range prop can't overshoot the ring.
- The status strip's dot and "Live" badge are decorative placeholders standing in for a real-time status feed; no data is actually live or polled.
- The ring is a static SVG (two stacked <circle> elements with a fixed strokeDasharray/strokeDashoffset) computed from retentionValue at render time, not animated or updated after mount.
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.
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.
Wellness Hero Section
Split-layout hero with large typography, serene imagery, and a floating testimonial card.