A React component for rendering network graphs as SVG.

npm install @aimabel/react-network-graph-svg
import React from 'react';
import { NetworkGraphSVG, Node, Edge } from '@aimabel/react-network-graph-svg';
const nodes: Node[] = [
{ id: 1, label: 'Node 1', tier: 1 },
{ id: 2, label: 'Node 2', tier: 2 },
{ id: 3, label: 'Node 3', tier: 3 },
];
const edges: Edge[] = [
{ from: 1, to: 2 },
{ from: 2, to: 3 },
];
function App() {
return (
<NetworkGraphSVG
nodes={nodes}
edges={edges}
width={400}
height={400}
/>
);
}
| Prop |
Type |
Required |
Default |
Description |
nodes |
Node[] |
Yes |
- |
Array of nodes to render |
edges |
Edge[] |
Yes |
- |
Array of edges connecting nodes |
width |
number |
No |
400 |
Width of the SVG canvas |
height |
number |
No |
400 |
Height of the SVG canvas |
defaultNode |
object |
No |
See below |
Default styling for nodes |
defaultEdge |
object |
No |
See below |
Default styling for edges |
| Prop |
Type |
Required |
Default |
Description |
id |
number |
Yes |
- |
Unique identifier |
label |
string |
Yes |
- |
Text label to display |
title |
string |
No |
- |
Tooltip text |
shapeType |
'circle' | 'square' |
No |
'circle' |
Shape of the node |
lineColor |
string |
No |
'#000' |
Border color |
lineWidth |
number |
No |
1 |
Border width |
fillColor |
string |
No |
'#fff' |
Fill color |
tier |
number |
No |
3 |
Positioning tier (1=inner, 2=middle, 3=outer) |
onClick |
() => void |
No |
- |
Click handler |
| Prop |
Type |
Required |
Default |
Description |
from |
number |
Yes |
- |
Source node ID |
to |
number |
Yes |
- |
Target node ID |
label |
string |
No |
- |
Edge label |
title |
string |
No |
- |
Tooltip text |
lineColor |
string |
No |
'#000' |
Line color |
lineWidth |
number |
No |
1 |
Line width |
onClick |
() => void |
No |
- |
Click handler |
// Default node styling
defaultNode: {
shapeType: 'circle',
lineColor: '#000',
lineWidth: 1,
fillColor: '#fff',
}
// Default edge styling
defaultEdge: {
lineColor: '#000',
lineWidth: 1,
}
MIT