Skip to content

Repository files navigation

react-archer

CircleCI

🏹 Draw arrows between DOM elements in React 🖋

Installation

npm install react-archer --save or yarn add react-archer

Example

Try it out!

Example

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;

API

ArcherContainer

NameTypeDescription
strokeColorstringA color string '#ff0000'
strokeWidthnumberA size in px
arrowLengthnumberA size in px
arrowThicknessnumberA size in px
childrenReact.Node

ArcherElement

NameTypeDescription
idstringThe id that will identify the Archer Element. Should only contain alphanumeric characters and standard characters that you can find in HTML ids.
strokeColorstringA color string '#ff0000'
strokeWidthnumberA size in px
arrowLengthnumberA size in px
arrowThicknessnumberA size in px
childrenReact.Node
relationsArray<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}

TODO

  • Automatic anchoring option
  • Options to customize the path shape more (straight line, right angle line, smoothed right angle path)
  • Add a Code Sandbox

About

🏹 Draw arrows between DOM elements in React 🖋

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages