React charting library with 10+ chart types: area, bar, line, pie, scatter, treemap, and more.
npm install @gravity-ui/uikit @gravity-ui/charts@gravity-ui/uikit is a required peer dependency — it provides the theming and styles the charts rely on.
Import the @gravity-ui/uikit styles once in your entry point, wrap your app in ThemeProvider, and render a Chart inside a container with an explicit height:
import {ThemeProvider} from '@gravity-ui/uikit';
import {Chart} from '@gravity-ui/charts';
import '@gravity-ui/uikit/styles/fonts.css';
import '@gravity-ui/uikit/styles/styles.css';
const data = {
series: {
data: [
{
type: 'line',
name: 'Temperature',
data: [
{x: 0, y: 10},
{x: 1, y: 25},
{x: 2, y: 18},
{x: 3, y: 30},
],
},
],
},
};
export default function App() {
return (
<ThemeProvider theme="light">
<div style={{height: 300}}>
<Chart data={data} />
</div>
</ThemeProvider>
);
}Chart adapts to its parent's size, so the wrapping element must have a height.
Distributed under the MIT License. See LICENSE for details.
A declarative React charting library for Gravity UI apps — render line, area, bar, pie, scatter, treemap, and other charts from a single data config, themed to match the rest of the app.
- Standard business charts:
line,area,bar-x/bar-y,pie,scatter,treemap,waterfall,sankey,radar,heatmap,funnel,x-range. - Visualizations that must follow Gravity UI theming (light/dark) and share tokens with a
@gravity-ui/uikitapp. - Rendering a chart from declarative data rather than drawing imperatively.
- Projects still on
@gravity-ui/chartkit— that is the older adapter-based wrapper (YAGR/Highcharts/D3); this package is the modern standalone renderer and is not a drop-in replacement. - Plain tabular data — use
@gravity-ui/table. - Non-React or server-only rendering —
Chartrenders React SVG and needs the DOM.
- The component is
Chart, notChartKit. Import{Chart}from@gravity-ui/charts;ChartKitbelongs to the separate legacy@gravity-ui/chartkitpackage. - The data prop is
data, shaped{series: {data: [...]}}. Each entry inseries.datais one series with its owntypeanddataarray — there is no top-level array of series. - Nothing renders without a sized container.
Chartfills its parent, so give the wrapper an explicit height. - Requires uikit setup. Wrap in
ThemeProviderand import@gravity-ui/uikit/styles/styles.css;@gravity-ui/uikitis a required peer dependency.