Ballmac UI home

Funnel Chart

New

A funnel as bars that narrow step by step. Between steps it says how many carried on and how many dropped out, flags the biggest drop, and ends with the overall result as a sentence.

v1.0.0Updated Oct 25, 2026Ships with a test
What changed

Visit to purchase, last 30 days

  1. 41.1% carried on, 28,400 dropped outBiggest drop

  2. 20.8% carried on, 15,680 dropped out

  3. 33.6% carried on, 2,735 dropped out

2.9% of everyone who started reached the end (1,385 of 48,200).

Installation

$ pnpm dlx shadcn@latest add @ballmac/funnel-chart

Usage

import { FunnelChart } from "@/components/ballmac/funnel-chart"

The full example is in the Code tab above.

Examples

Three steps

  1. 1Invited200100% of the start
  2. 70% carried on, 60 dropped outBiggest drop

    2Signed up14070% of the start
  3. 90% carried on, 14 dropped out

    3Active12663% of the start

63% of everyone who started reached the end (126 of 200).

API reference

PropTypeDefault
steps*FunnelStep[]—
titlestring—
format(value: number) => string(v) => nf.format(v)
selected

The selected step. Controlled.

string | null—
onSelect(id: string | null) => void—

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
StepsAn ordered list; drop-off and conversion are text, never only bar length
SelectionOptional buttons with pressed state
Biggest dropTagged with the words 'Biggest drop'

Use with AI

steps is [{ id, label, value, hint? }] from first to last. title, format(value). Between steps: '40% carried on, 600 dropped out', and the biggest drop is tagged in words. onSelect(id | null) with selected makes steps toggle buttons. Ends with 'X% of everyone who started reached the end'. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Funnel Chart (@ballmac/funnel-chart) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Checkout, signup or onboarding conversion
  • Any process where people drop out between steps

Not for

  • Steps that can happen in any order; use bar-list
  • Flow with branches; use flow-sankey

Registry JSON: https://ui.ballmac.com/r/funnel-chart.json

Credits

Free to use in personal and commercial projects.

Ballmac UI Pro

Need the whole screen, not one piece?

150 premium blocks (dashboards, settings, calendars, mail, shops, onboarding), a private shadcn registry and Figma tokens. Blocks that show data come with loading, empty and error states built in.

Not ready? Try three Pro blocks free

Leave your email and the blocks appear right here, ready to copy. Yours to use in any project.