Segmented Total BreakdownFREE

A results section that leads on one oversized total, splits it across a segmented accent bar, then legends each segment on a hairline row aligning its value, share, and what it covers.

Stats68: Segmented Total Breakdown

A results section that leads on one oversized total, splits it across a segmented accent bar, then legends each segment on a hairline row aligning its value, share and what it covers.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/stats68"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/stats68"

This installs the block to components/beste/block/stats68.tsx plus the badge23 and button21 components it uses for the eyebrow and the action.

Quick start

The installed file exports stats68Demo alongside the block: the exact props behind the preview above. Spread it to get a working breakdown in one line.

tsx
import { Stats68, stats68Demo } from "@/components/beste/block/stats68";

export default function BreakdownPage() {
  return <Stats68 {...stats68Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Stats68 } from "@/components/beste/block/stats68";

export default function BreakdownPage() {
  return (
    <Stats68
      badge={{ label: "Where the hours go" }}
      heading="Ninety-six clinical hours, split four ways"
      description="One week at a four-site group, counted from the rota."
      totalValue="96"
      totalLabel="clinical hours booked last week"
      segments={[
        {
          label: "Consultations",
          value: "40 hrs",
          percent: 42,
          description: "First appointments and the longer reviews that follow a referral.",
        },
        {
          label: "Admin held in clinical rooms",
          value: "11 hrs",
          percent: 11,
          description: "Time a room was blocked for paperwork. Down from 23 hours.",
        },
      ]}
      footnote="Percentages are rounded to the nearest whole number."
      button={{ label: "See your own breakdown", href: "/reports" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the hairline rule, rendered through Badge23
headingstringSection heading in the left column of the header
descriptionstringSupporting paragraph, right-aligned from md up
totalValuestringThe headline total, set at display scale
totalLabelstringWhat the total counts
segmentsSegment[][]The split, each with its share of the bar
footnotestringRounding note beside the action
button{ label: string; href: string }Outline action
classNamestringExtra classes for the outer section
ts
type Segment = {
  label: string;
  value: string;
  percent: number;
  description: string;
};

Behavior notes

More Stats blocks

View all Stats
PRO

stats67

Before And After Pairs

A results section stacking each measure on its own hairline row, moving a muted starting figure to an accented result across an arrow, with a soft closing panel that floats a live comparison card.

PRO

stats9

Image with Stacked Stats

Split layout with a tall image on the left and vertically stacked stats with descriptions on the right, separated by horizontal borders.

PRO

stats52

Mortgage Breakdown Stats

Monthly mortgage payment breakdown with visual proportion bars showing principal, interest, taxes, and insurance.

FREE

stats66

Outcome Metric Rows

A results section that stacks each metric on its own hairline row, pairing an oversized figure with a short label, a sentence of context, and an optional year-over-year delta.

PRO

stats70

Annual Report Readings

An annual results section pairing an image tile that floats a live breakdown chart with a light interpretation of it, then four hairline readings that each name their own source, closing on a method panel.

PRO

stats57

Stats Band

Four-up oversized stats band with dividers under a section header.