Back to Mantine

Funnel Chart

apps/mantine.dev/src/pages/charts/funnel-chart.mdx

9.4.22.6 KB
Original Source

import { FunnelChartDemos } from '@docs/demos'; import { Layout } from '@/layout'; import { MDX_DATA } from '@/mdx';

export default Layout(MDX_DATA.FunnelChart);

Usage

FunnelChart is based on the FunnelChart recharts component:

<Demo data={FunnelChartDemos.usage} />

Legend

To display the legend, set the withLegend prop. The legend displays the name and color of each segment. Hover over a legend item to highlight the corresponding segment:

<Demo data={FunnelChartDemos.legend} />

You can pass props down to the recharts Legend component with the legendProps prop. For example, set legendProps={{ verticalAlign: 'top' }} to display the legend above the chart.

Segments labels

Set the withLabels prop to display labels next to each segment. Use the labelPosition prop to control the position of labels relative to the corresponding segment.

<Demo data={FunnelChartDemos.withLabels} />

Size and thickness

Set the size prop to control the width and height of the chart. You can override this behavior by setting the h style prop.

<Demo data={FunnelChartDemos.size} />

Segment color

You can reference colors from theme the same way as in other components, for example, blue, red.5, orange.7, etc. Any valid CSS color value is also accepted.

<Demo data={FunnelChartDemos.color} />

Tooltip data source

By default, the tooltip displays data for all segments when hovered over any segment. To display data only for the hovered segment, set tooltipDataSource="segment":

<Demo data={FunnelChartDemos.tooltipDataSource} />

Without tooltip

To remove the tooltip, set withTooltip={false}:

<Demo data={FunnelChartDemos.noTooltip} />

Segments stroke

Use the strokeWidth prop to control the width of the stroke around each segment:

<Demo data={FunnelChartDemos.strokeWidth} />

To change the color of the stroke, use the strokeColor prop. You can reference colors from the theme the same way as in other components, for example, blue, red.5, orange.7, etc. Any valid CSS color value is also accepted.

tsx
import { FunnelChart } from '@mantine/charts';

function Demo() {
  return <FunnelChart data={[]} strokeColor="red.5" />;
}

By default, the segments stroke color is the same as the background color of the body element (--mantine-color-body CSS variable). If you want to change it depending on the color scheme, define a CSS variable and pass it to the strokeColor prop:

<Demo data={FunnelChartDemos.strokeColor} />