How can I help you?
Appearance in React Sankey Chart component
19 Mar 202624 minutes to read
The Sankey Chart provides comprehensive customization options to control visual appearance, dimensions, responsiveness, colors, borders, and themes. These appearance settings enable you to create diagrams that match your application’s design system and user experience requirements.
This guide covers dimension configuration, responsive sizing, backgrounds, borders, margins, and theme selection.
Dimensions
Control the size of the Sankey Chart using the width and height properties. You can specify dimensions in pixels (px) or percentages (%) to create fixed or responsive layouts.
Width and Height Properties
| Property | Type | Default | Description |
|---|---|---|---|
| width | string | null | Width of the chart as a CSS value (e.g., ‘700px’ or ‘100%’). |
| height | string | null | Height of the chart as a CSS value (e.g., ‘420px’ or ‘100%’). |
import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="800px"
height="600px"
margin={{ left: 40, right: 40, top: 40, bottom: 40 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="800px"
height="600px"
margin={{ left: 40, right: 40, top: 40, bottom: 40 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));Responsive Sizing
Use percentage-based dimensions for responsive layouts that adapt to container sizes. This is recommended for applications that need to work across different device sizes and screen orientations:
import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
import { Browser } from '@syncfusion/ej2-base';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height={Browser.isDevice ? '600px' : '450px'}
margin={{ left: Browser.isDevice ? 10 : 40, right: Browser.isDevice ? 10 : 40, top: 20, bottom: 20 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
import { Browser } from '@syncfusion/ej2-base';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height={Browser.isDevice ? '600px' : '450px'}
margin={{ left: Browser.isDevice ? 10 : 40, right: Browser.isDevice ? 10 : 40, top: 20, bottom: 20 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));Background Customization
Customize the background of the Sankey Chart with solid colors or background images to match your application’s theme or create specific visual effects.
Background Properties
| Property | Type | Default | Description |
|---|---|---|---|
| background | string | null | Background color of the chart (CSS color value). |
| backgroundImage | string | null | Background image URL. |
import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
background="#f0f0f0"
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend,
SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
background="#f0f0f0"
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));Border Customization
Customize the border of the Sankey Chart container.
Border Properties
| Property | Type | Default | Description |
|---|---|---|---|
| border.color | string | ’’ | Border color. Accepts values in hex or RGBA as valid CSS color strings. |
| border.width | number | 1 | Border width in pixels. |
| border.dashArray | string | ’’ | Sets the length of dashes in the stroke of border. |
import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
border={{ color: '#333', width: 2 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
border={{ color: '#333', width: 2 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));Margin Customization
Control the spacing around the chart content using margins.
Margin Properties
| Property | Type | Default | Description |
|---|---|---|---|
| margin.left | number | 10 | Left margin in pixels. |
| margin.right | number | 10 | Right margin in pixels. |
| margin.top | number | 10 | Top margin in pixels. |
| margin.bottom | number | 10 | Bottom margin in pixels. |
import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
margin={{ left: 50, right: 50, top: 50, bottom: 50 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
margin={{ left: 50, right: 50, top: 50, bottom: 50 }}
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));Theme
The Sankey Chart provides multiple built-in themes to customize the visual appearance. Apply a theme using the theme property.
Theme Configuration
import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
theme="Tailwind"
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));import * as React from "react";
import * as ReactDOM from "react-dom";
import {
SankeyComponent, Inject, SankeyTooltip, SankeyLegend, SankeyExport,
SankeyNodeDirective,
SankeyNodesCollectionDirective,
SankeyLinkDirective,
SankeyLinksCollectionDirective
} from '@syncfusion/ej2-react-charts';
function App() {
return (
<div className="control-pane">
<div className="control-section" id="sankey-container">
<SankeyComponent
width="90%"
height="450px"
theme="Tailwind"
>
<SankeyNodesCollectionDirective>
<SankeyNodeDirective id="Agricultural Waste" />
<SankeyNodeDirective id="Biomass Residues" />
<SankeyNodeDirective id="Bio-conversion" />
<SankeyNodeDirective id="Liquid Biofuel" />
<SankeyNodeDirective id="Electricity" />
<SankeyNodeDirective id="Heat" />
</SankeyNodesCollectionDirective>
<SankeyLinksCollectionDirective>
<SankeyLinkDirective sourceId="Agricultural Waste" targetId="Bio-conversion" value={84.152} />
<SankeyLinkDirective sourceId="Biomass Residues" targetId="Bio-conversion" value={24.152} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Liquid Biofuel" value={10.597} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Electricity" value={36.862} />
<SankeyLinkDirective sourceId="Bio-conversion" targetId="Heat" value={60.845} />
</SankeyLinksCollectionDirective>
<Inject services={[SankeyTooltip, SankeyLegend, SankeyExport]} />
</SankeyComponent>
</div>
</div>
);
}
export default App;
ReactDOM.render(<App />, document.getElementById('sankey'));