Funnel Chart

A production-ready funnel chart for visualizing conversion pipelines and stage-by-stage drop-off. Three variants — tapered, straight, and horizontal chevron — for any dashboard layout.

Tapered, Straight & Horizontal
Conversion Rate Badges
Stagger Animation
Hover Tooltip
Responsive
TypeScript
Keyboard Accessible
Reduced Motion

E-commerce Conversion Funnel

Classic conversion funnel from visitors to purchase — try all three variants and toggle conversion rate badges

Loading…
Variant:

Installation

Get started with the FunnelChart component in just a few steps.

Quick Install
bash
npx mario-charts@latest add funnel-chart
Zero Lock-in Philosophy
The component is fully yours to own, modify, and customize.

Examples

Different use cases and configurations for the FunnelChart component.

Sales Pipeline — Horizontal Variant

Stage-by-stage pipeline as diminishing horizontal bars — labels on the left, bars extending right

Loading…

SaaS Onboarding Flow

6-stage onboarding funnel with conversion rate badges between each step

Loading…

Loading State

Error State

Chart Error
Failed to load data

Empty State

No Data
There's no data to display

API Reference

Complete TypeScript interface with all available props and configurations.

PropTypeDefaultDescription
datarequired
readonly T[]Array of data objects for each funnel stage
labelrequired
keyof TKey for stage label text
valuerequired
keyof TKey for numeric stage value
colors
readonly string[]DEFAULT_COLORSArray of colors, one per stage (cycles if fewer than stages)
variant
'tapered' | 'straight' | 'horizontal''tapered'Tapered shrinks by value ratio; straight uses uniform width; horizontal renders left-to-right chevrons
showValues
booleantrueShow numeric values inside stages
showPercentages
booleantrueShow % of total inside stages
showConversionRates
booleanfalseShow conversion rate badge between each stage
height
number400Height of the chart in pixels
loading
booleanfalseShow loading skeleton state
error
string | nullnullError message to display
animation
booleantrueEnable stagger entrance animation
onClick
(item: T, index: number) => voidCallback when a stage is clicked
className
stringAdditional CSS classes for the container