UNPKG

react-radial

Version:

a radial component built with react and resonance

105 lines (93 loc) 2.89 kB
# react-radial By [Mode Lab](https://modelab.is) ## Intro This is a straightforward, customizable radial menu, built with [React](https://facebook.github.io/react/) and [Resonance](https://www.npmjs.com/package/resonance) (a library that allows React and [D3js](https://d3js.org/) to play along nicely). The radial component is built with SVG, and can be ported into a div, canvas, WebGL scene, etc. We use radial menus for 3D interaction often, and decided to build a generic component for future use. The demo file is an interactive environment for defining how you want the radial menu to look. [Check it out here](https://modelab.github.io/react-radial/). <a href="https://modelab.github.io/react-radial/" target="_blank"/> <img width="100%" src="https://github.com/modelab/react-radial/blob/master/demo.gif?raw=true" alt="demo"> </a> ## Getting Started Install the component into your project ``` npm install --save react-radial ``` Load the component into your app ``` import React from 'react'; import { ReactRadial } from 'react-radial'; class Component extends React.Component { render() { return <ReactRadial />; } } ``` Remmeber to click on your canvas/div after loading the page (the radial menu does not load automatically). Please post any issues. <div> <h2>react-radial attributes</h2> <table style=width:100%;font-size:10px;> <thead> <tr> <th>Name</th> <th>Type</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>buttons</td> <td>array</td> <td>["button1",...(5)]</td> <td>an array of strings representing each button's label</td> </tr> <tr> <td>buttonFunctions</td> <td>array</td> <td>[() => console.log('clicked button 1'),...(5)]</td> <td>an array of functions triggered by clicking each button</td> </tr> <tr> <td>duration</td> <td>number (ms)</td> <td>400</td> <td>duration of transition</td> </tr> <tr> <td>delay</td> <td>number (ms)</td> <td>80</td> <td>delay per button in transition</td> </tr> <tr> <td>innerRadius</td> <td>number (px)</td> <td>20</td> <td>donut hole size</td> </tr> <tr> <td>outerRadius</td> <td>number (px)</td> <td>120</td> <td>distance from outside of donut hole to outside of donut</td> </tr> <tr> <td>strokeWidth</td> <td>number</td> <td>2</td> <td>stroke width</td> </tr> <tr> <td>stroke</td> <td>color</td> <td>'rgba(255,255,255,1)'</td> <td>stroke color</td> </tr> <tr> <td>fill</td> <td>color</td> <td>'rgba(0,0,0,.8)'</td> <td>fill color</td> </tr> </tbody> </table> </div>