GithubHelp home page GithubHelp logo

ykankaya / react-archer Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pierpo/react-archer

0.0 1.0 0.0 447 KB

๐Ÿน Draw arrows between DOM elements in React ๐Ÿ–‹

License: MIT License

JavaScript 98.81% CSS 0.27% HTML 0.92%

react-archer's Introduction

react-archer

CircleCI

๐Ÿน Draw arrows between DOM elements in React ๐Ÿ–‹

Installation

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

Example

Example

import {ย ArcherContainer, ArcherElement } from 'react-archer';

const rootStyle = { display: 'flex', justifyContent: 'center' };
const rowStyle = { margin: '200px 0', display: 'flex', justifyContent: 'space-between', }
const boxStyle = { padding: '10px', border: '1px solid black', };

const App = () => {
  return (
    <div>

      <ArcherContainer strokeColor='red' >
        <div style={rootStyle}>
          <ArcherElement
            id="root"
            relations={[{
              from: { anchor: 'bottom' },
              to: { anchor: 'top', id: 'element2' }
            }]}
          >
            <div style={boxStyle}>Root</div>
          </ArcherElement>
        </div>

        <div style={rowStyle}>
          <ArcherElement
            id="element2"
            relations={[{
              from: { anchor: 'right'},
              to: { anchor: 'left', id: 'element3' }
            }]}
          >
            <div style={boxStyle}>Element 2</div>
          </ArcherElement>

          <ArcherElement id="element3">
            <div style={boxStyle}>Element 3</div>
          </ArcherElement>

          <ArcherElement
            id="element4"
            relations={[{
              from: { anchor: 'left'},
              to: { anchor: 'right', id: 'root' }
            }]}
          >
            <div style={boxStyle}>Element 4</div>
          </ArcherElement>
        </div>
      </ArcherContainer>

    </div>
  );
}

export default App;

API

ArcherContainer

strokeColor: PropTypes.string

A color string '#ff0000'

strokeWidth: PropTypes.number

A size in px

arrowLength: PropTypes.number

A size in px

arrowThickness: PropTypes.number

A size in px

style: PropTypes.object

className: PropTypes.string

children: PropTypes.node

ArcherElement

id: PropTypes.string

style: PropTypes.object

className: PropTypes.string

relations: PropTypes.arrayOf(relation)

The relation object has the following shape:

{
  from: {
    anchor: PropTypes.oneOf([ 'top', 'bottom', 'left', 'right' ])
  },
  to: {
    anchor: PropTypes.oneOf([ 'top', 'bottom', 'left', 'right' ])
    id: PropTypes.string
  }
}

TODO

  • Automatic anchoring option
  • Options to customize the path shape more (straight line, right angle line, smoothed right angle path)
  • Individual customization of arrows (change color of a single arrow for example)
  • Add a Code Sandbox
  • Add flow

react-archer's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.