react-blueprint-svg
Version:
Pannable, zoomable SVG with menu of displaying options inspired by maker.js.
89 lines (58 loc) • 2.41 kB
Markdown
> Pannable, zoomable SVG with menu of displaying options inspired by [maker.js](https://maker.js.org).
[](https://www.npmjs.com/package/react-blueprint-svg) [](https://standardjs.com)
<img alt="Example Illustration" src="/Screenshots/recording.gif?raw=true" width="75%">
[](https://bersaelor.github.io/react-blueprint-svg/)
```bash
npm install --save react-blueprint-svg
```
or
```bash
yarn add react-blueprint-svg
```
```tsx
import React from 'react'
import Blueprint from 'react-blueprint-svg'
function App() {
let smile = new SmileModel();
return <div className="container">
<Blueprint model={smile} />
</div>
}
```
You can also add children elements to the header of the blueprint area, to give it a title or a headline with a link to download your CNC file:
```tsx
const filename = "output.dxf"
const file = makerjs.exporter.toDXF(model)
<Blueprint model={model}>
<h3><a href={file}>{filename}</a></h3>
</Blueprint>
```
The model property may either be `makerjs.IModel` object or `*.svg` data supplied as a string. When putting in a plain string, advanced display options like path names and flow are disabled, as those rely on `makerjs` to convert the model into annotated `<svg>`.
```tsx
var model = {
models: {
ring1: new makerjs.models.Ring(40, 100),
bc1: new makerjs.models.BoltCircle(90, 4, 10),
bc2: new makerjs.models.BoltCircle(55, 7, 6, 30)
}
}
return <Blueprint model={model} /> // no automatic sizing or path flow annotation
```
Output:
<img alt="Example Bolts" src="/Screenshots/bolts.jpg?raw=true">
```tsx
let svg = '<svg height="100" width="100"><circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" />'
return <Blueprint model={svg} /> // no automatic sizing or path flow annotation
```
Output:
<img alt="SVG Example" src="/Screenshots/circle.jpg?raw=true">
* multitouch support for Zooming & Panning, and therefore also React Native support
Post an [issue](https://github.com/Bersaelor/react-blueprint-svg/issues) or contact me on [twitter](https://twitter.com/bersaelor).
MIT © [Bersaelor](https://github.com/Bersaelor)