Funnel Chart
Visualize sequential stages in a process and the drop-off between each stage. Perfect for conversion funnels, sales pipelines, and user journeys.
Installation
dotnet add package Lumeo.Charts
One-time app setup (AddLumeo(), CSS & JS) is covered in the
installation guide.
Usage
@using Lumeo <FunnelChart />
| Name | Value |
|---|---|
| Visitors | 100 |
| Sign-ups | 58 |
| Trials | 34 |
| Qualified | 18 |
| Customers | 7 |
Classic marketing funnel tracking visitors through sign-up, trial, qualification, and paid conversion. Each stage label shows the raw count.
| Name | Value |
|---|---|
| Leads | 240 |
| Qualified | 156 |
| Proposal | 89 |
| Negotiation | 45 |
| Closed Won | 22 |
B2B sales pipeline from initial leads through proposal, negotiation, and closed-won. Legend hidden to keep the widget compact.
| Name | Value |
|---|---|
| Visitors | 100 |
| Sign-ups | 58 |
| Trials | 34 |
| Qualified | 18 |
| Customers | 7 |
Same conversion funnel with data labels enabled so the exact count is always readable without hovering.
| Name | Value |
|---|---|
| Installed | 5000 |
| Activated | 3200 |
| Feature Used | 1850 |
| Retained | 980 |
| Advocates | 310 |
User onboarding journey styled with a warm amber-to-rose gradient palette and toolbox export button.
| Name | Value |
|---|---|
| Visitors | 100 |
| Sign-ups | 58 |
| Trials | 34 |
| Qualified | 18 |
| Customers | 7 |
Shape-aware skeleton with reserved space for legend and axes — no layout shift when real data arrives.
API Reference
FunnelChart
| Property | Type | Default | Description |
|---|---|---|---|
| Data | List<FunnelData> | [] | Funnel stages with Name and Value. |
| Sort | string | "descending" | Sort order: "descending", "ascending", or "none". |
| ShowLegend | bool | true | Shows or hides the chart legend. |
| Colors | List<string>? | null | Custom color palette. |
| IsLoading | bool | false | When true, renders a shape-matched loading skeleton in place of the chart. Bind to your async fetch state. |
| ShowLoadingSkeleton | bool | true | Set to false to opt out of the skeleton (chart area stays empty while IsLoading is true). |
| SkeletonKind | ChartSkeletonKind | (chart default) | Override the skeleton silhouette (Bars, Line, Area, Pie, Scatter, Grid, Generic). |
| SkeletonStyle | ChartSkeletonStyle | Phantom | Phantom renders the real chart with placeholder data and morphs to real data via ECharts animation. Silhouette falls back to the legacy SVG skeleton overlay. |
| ShowLoadingLabel | bool | true | Shows a small "Loading…" pill in the top-right corner whenever IsLoading is true. Layered on top of any SkeletonStyle. Set to false for bare visuals. (rc.18) |
| LoadingText | string? | "Loading…" | Label rendered next to the spinner inside the loading pill. Set to empty to show the spinner alone. (rc.18) |
| ShowTooltip | bool | true | Shows the per-step tooltip on hover with stage name and value. |
| Width | string | "100%" | CSS width applied to the chart container. |
| Height | string | "350px" | CSS height applied to the chart container. |
| Theme | string? | null | Overrides the ECharts theme; null follows the app's light/dark mode. |
| PhantomCycleMs | int | 1400 | Phantom-mode refresh interval in milliseconds. Lower = faster data cycling while loading. |
| ShowDataLabels | bool | false | Renders the stage name and/or value inside each funnel segment. |
| LabelPosition | string | "inside" | Position of segment data labels (e.g. inside, left, right). |
| LabelFormat | string? | null | ECharts format string applied to funnel segment labels. |
| DataZoom | bool | false | Enables zoom/pan controls on the funnel chart. |
| Toolbox | bool | false | Shows the toolbox with save-as-image, restore, and view controls. |
| ColorPalette | List<string>? | null | Overrides the chart's base color palette across funnel segments. |
| AnimationDuration | int? | null | Override entry animation duration (ms); null uses the ECharts default. |
| AnimationEasing | string? | null | ECharts easing function name applied to entry animations. |