Home

Awesome

react-sketchpad

Sketch pad created with canvas

Why I built this?

  1. to learn
  2. to learn
  3. to learn
  4. just have fun? :D

Example:

Draw little frog

Draw react logo with aniamted pencil

There was websocket used in this gifs, which is not part of example. To make it work with syncing just run this little websocket server

import Server from 'socket.io';
const io = new Server().attach(12346);

io.on('connection', (socket) => {
    socket.on('addItem', (data) => {
        console.log(data);
        socket.broadcast.emit('addItem', data);
    });
});

API:

AttributeTypeDefault ValueDescription
widthnumber500width of canvas in pixels
heightnumber500height of the canvas in pixels
itemsarray-array of items to draw in canvas
animatebooltruefew tools, for example pencil, can be animated when drawn
canvasClassNamestring.canvascss class of canvas
colorstring#000primary drawing color
fillColorstring""color used for filling items like circle or rectangle, empty string is no filling
sizenumber5size of the item
toolstringTOOL_PENCILcurrently used tool from the map
toolsMapobjectobject mapkeys are tool names, values are tool functions, by default Pencil, Line, Circle and Rectangle tools are available
onItemStartfunc-function to be executed on item start, most of the time first argument is item
onEveryItemChangefunc-function to be executed on item change, most of the time first argument is item, other arguments describe changes
onDebouncedItemChangefunc-function to be executed in interval on item change, most of the time first argument is item, other arguments describe batched changes
onCompleteItemfunc-function to be executed on item end, most of the time first argument is item
debounceTimenumber1000how often onDebouncedItemChange will be called