← Back to Home
Are we Recharts yet?
Progress toward a drop-in replacement for Recharts. Same composable API, Canvas rendering for performance.
Overall compatibility
70%27 full2 partial11 missing40 total
| Component | Recharts | Qurve | Status | Notes |
|---|---|---|---|---|
| LineChart | LineChart | LineChart | ✓ Done | Wrapper; compose Line, XAxis, YAxis |
| BarChart | BarChart | BarChart | ✓ Done | Wrapper; compose Bar, XAxis, YAxis |
| AreaChart | AreaChart | AreaChart | ✓ Done | Wrapper; compose Area, XAxis, YAxis |
| ComposedChart | ComposedChart | Chart | ✓ Done | Single Chart; mix Line, Bar, Area, Scatter |
| PieChart | PieChart | Chart + Pie | ✓ Done | Chart with Pie child |
| ScatterChart | ScatterChart | Chart | ✓ Done | Use Chart; compose Scatter, XAxis, YAxis |
| RadarChart | RadarChart | — | — Missing | — |
| RadialBarChart | RadialBarChart | — | — Missing | — |
| FunnelChart | FunnelChart | — | — Missing | — |
| Treemap | Treemap | — | — Missing | — |
| SankeyChart | SankeyChart | — | — Missing | — |
| ResponsiveContainer | ResponsiveContainer | ResponsiveContainer | ✓ Done | — |
| Legend | Legend | Legend | ✓ Done | — |
| Tooltip | Tooltip | Tooltip | ✓ Done | — |
| Cell | Cell | Cell | ✓ Done | Child of Bar/Pie; fill, stroke per segment |
| Label | Label | Pie label | ~ Partial | Pie label prop; no general Label component |
| LabelList | LabelList | — | ~ Partial | Pie has label/labelFormatter |
| Customized | Customized | Customized | ✓ Done | draw prop; custom canvas rendering |
| Area | Area | Area | ✓ Done | — |
| Bar | Bar | Bar | ✓ Done | — |
| Line | Line | Line | ✓ Done | — |
| Scatter | Scatter | Scatter | ✓ Done | — |
| XAxis | XAxis | XAxis | ✓ Done | — |
| YAxis | YAxis | YAxis | ✓ Done | — |
| ZAxis | ZAxis | — | — Missing | — |
| Brush | Brush | Brush | ✓ Done | — |
| CartesianGrid | CartesianGrid | CartesianGrid | ✓ Done | — |
| ReferenceLine | ReferenceLine | ReferenceLine | ✓ Done | x or y, stroke, strokeDasharray |
| ReferenceDot | ReferenceDot | ReferenceDot | ✓ Done | x, y, r, fill, stroke |
| ReferenceArea | ReferenceArea | ReferenceArea | ✓ Done | x1/x2 or y1/y2, fill, fillOpacity |
| ErrorBar | ErrorBar | ErrorBar | ✓ Done | dataKey, errorKey, direction x/y |
| Pie | Pie | Pie | ✓ Done | — |
| Radar | Radar | — | — Missing | — |
| RadialBar | RadialBar | — | — Missing | — |
| PolarGrid | PolarGrid | — | — Missing | — |
| PolarAngleAxis | PolarAngleAxis | — | — Missing | — |
| PolarRadiusAxis | PolarRadiusAxis | — | — Missing | — |
| Sector | Sector | — | ✓ Done | Internal to Pie; canvas drawing |
| Curve | Curve | — | ✓ Done | Internal to Line; drawLinePath in core |
| Dot | Dot | — | ✓ Done | Line dot/activeDot; drawLineDots |
Migration notes
- Chart vs LineChart/BarChart: Qurve uses a single
Chart. ReplaceLineChartwithChartand keep the same children. - dataKey: Same prop name. Works with string or function.
- stroke, fill, strokeWidth: Same props on Line, Bar, Area, Scatter.
- margin: Chart accepts
marginobject. - Animation: Recharts animates by default. Qurve has no built-in animation (Canvas redraws directly).
- ReferenceLine/ReferenceDot/ReferenceArea: Implemented.
- Tooltip content: Use
contentprop (element or function) for custom tooltip UI. - CSS variables: Set
--qurve-chart-bg,--qurve-grid-stroke,--qurve-axis-stroke,--qurve-font-familyon a parent to theme. - ErrorBar: Use as sibling of Line/Bar/Area. Data:
{ x, y, errorY: 2 }orerrorY: [1, 3]for asymmetric. - Customized:
draw={(props) => { ctx, margin, ... }}for custom canvas rendering.