🏹 Draw arrows between DOM elements in React 🖋
npm install react-archer --save or yarn add react-archer
import{ArcherContainer,ArcherElement}from'react-archer';constrootStyle={display: 'flex',justifyContent: 'center'};constrowStyle={margin: '200px 0',display: 'flex',justifyContent: 'space-between',}constboxStyle={padding: '10px',border: '1px solid black',};constApp=()=>{return(<div><ArcherContainerstrokeColor='red'><divstyle={rootStyle}><ArcherElementid="root"relations={[{from: {anchor: 'bottom'},to: {anchor: 'top',id: 'element2'}}]}><divstyle={boxStyle}>Root</div></ArcherElement></div><divstyle={rowStyle}><ArcherElementid="element2"relations={[{from: {anchor: 'right'},to: {anchor: 'left',id: 'element3'},label: <divstyle={{marginTop: '-20px'}}>Arrow 2</div>,}]}><divstyle={boxStyle}>Element 2</div></ArcherElement><ArcherElementid="element3"><divstyle={boxStyle}>Element 3</div></ArcherElement><ArcherElementid="element4"relations={[{from: {anchor: 'left'},to: {anchor: 'right',id: 'root'},label: 'Arrow 3',}]}><divstyle={boxStyle}>Element 4</div></ArcherElement></div></ArcherContainer></div>);}exportdefaultApp;| Name | Type | Description |
|---|---|---|
strokeColor | string | A color string '#ff0000' |
strokeWidth | number | A size in px |
arrowLength | number | A size in px |
arrowThickness | number | A size in px |
children | React.Node |
| Name | Type | Description |
|---|---|---|
id | string | The id that will identify the Archer Element. Should only contain alphanumeric characters and standard characters that you can find in HTML ids. |
strokeColor | string | A color string '#ff0000' |
strokeWidth | number | A size in px |
arrowLength | number | A size in px |
arrowThickness | number | A size in px |
children | React.Node | |
relations | Array<Relation> |
The Relation type has the following shape:
{from: {anchor: 'top'|'bottom'|'left'|'right'},to: {anchor: 'top'|'bottom'|'left'|'right'id: string},label: React.Node}- Automatic anchoring option
- Options to customize the path shape more (straight line, right angle line, smoothed right angle path)
- Add a Code Sandbox
