Charts

Funnel Chart

Build funnel charts for conversion and drop-off visualization

Funnel charts display data as stacked trapezoids that narrow progressively, ideal for conversion funnels.

Simple Funnel Chart

A basic funnel chart with colored segments using <Cell>.

Funnel Chart with Labels

Place <LabelList> as a child inside <Funnel>. Labels appear after the entrance animation completes.

Rectangle Last Shape

Set lastShapeType="rectangle" so the last segment keeps its width instead of narrowing to a point.

Reversed Funnel

Set :reversed="true" to flip the funnel — narrowest at the top, widest at the bottom.

Funnel Chart with Legend

Add <Legend> alongside <Funnel> to show a legend keyed by data names.

FunnelChart props

PropTypeDefaultDescription
widthnumberChart width
heightnumberChart height

Funnel props

PropTypeDefaultDescription
dataKeystring | number | FunctionrequiredKey from data for values
dataArrayFunnel data array
nameKeystring'name'Key for segment names
lastShapeType'triangle' | 'rectangle''triangle'Shape of last segment
reversedbooleanfalseFlip funnel orientation
fillstring'#808080'Default fill color
strokestring'#fff'Stroke color
widthnumber | stringCustom funnel width
hidebooleanfalseHide the funnel
isAnimationActivebooleantrueEnable entrance animation
transitionAnimationOptions{ duration: 0.8, ease: 'easeOut' }Animation timing config (motion-v)
onAnimationStart() => voidCallback when animation starts
onAnimationEnd() => voidCallback when animation ends
legendTypestring'rect'Legend icon type
tooltipTypestringTooltip type
classNamestringAdditional CSS class

Slots

SlotPropsDescription
#shapeFunnelTrapezoidItem & { animationProgress }Custom trapezoid rendering. animationProgress goes from 0 to 1; use v-if="props.animationProgress >= 1" to show labels only after animation.
default<Cell> for per-segment colors, <LabelList> for labels
Copyright © 2026