1.2.1 • Published 12 months ago

@cobaltinc/atelier v1.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
12 months ago

:rocket: Getting started

npm install @cobaltinc/atelier # or yarn add @cobaltinc/atelier
import React from 'react'
import { Atelier } from '@cobaltinc/atelier'

<Atelier />

Demo page: https://cobaltinc.github.io/atelier

Props

PropDescriptionDefault
commandSet the name of registered pluginpen
colorSet the color of the line#000000
lineWidthSet the width of the line2
widthSet the width of the DOM800
heightSet the height of the DOM600
canvasWidthSet the width of the canvas
canvasHeightSet the height of the canvas
enableDrawSet to true or false to enable or disable draw the canvastrue
enablePressureSet to true or false to enable or disable pressure the canvasfalse
pluginsRegister the plugins to use[PenPlugin]
styleAdd inline styles to the root element
classNameAdd className to the root element
onChange(e: AtelierChangeEvent)Fired when an alteration to canvas is commited

Instance Methods

Use ref to call instance methods. See the demo page for an example of this. Prop | Description ---- | ----------- draw(e: DrawingInterface) | Draw programmatically on the canvas clear() | Erase everything on the canvas

🖋️ Default Plugins

import React from 'react'
import {
  Atelier,
  PenPlugin,
  BrushPlugin,
  ErasePlugin,
  HighlighterPlugin,
  LaserPlugin
} from '@cobaltinc/atelier'

<Atelier plugins={[PenPlugin, BrushPlugin, ErasePlugin, HighlighterPlugin, LaserPlugin]} />

🖌️ Custom Plugin

If you want new plugin, you can make easily.

class DashPlugin extends Plugin {
  name: string = 'dash';
  prevX: number;
  prevY: number;

  draw(data: DrawingInterface) {
    super.draw(data);

    const { x, y, state } = data;
    const context = this.canvas?.getContext('2d');
    context.setLineDash([5, 30]);

    const prevX = this.prevX || x;
    const prevY = this.prevY || y;

    if (state === 'draw-started' || state === 'drawing') {
      context.beginPath();
      context.moveTo(prevX, prevY);
      context.lineTo(x, y);
      context.stroke();
      context.closePath();

      Object.assign(this, {
        lastX: x,
        lastY: y,
      });
    }
  }
}

<Atelier command="dash" plugins={[DashPlugin]} />

And the result:

:page_facing_up: License

Atelier is made available under the MIT License.

1.2.0

12 months ago

1.2.1

12 months ago

1.1.8

1 year ago

1.1.7

2 years ago

1.1.6

2 years ago

1.1.5

2 years ago

1.1.4

2 years ago

1.1.3

2 years ago

1.1.2

3 years ago

1.1.1

3 years ago

1.0.0

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago