Drawing tools
Brush, highlighter, rectangles, ellipses, lines, arrows, triangles, diamonds, hearts, clouds, texts, images, laser pointer and eraser.
See the tools
A whiteboard in one element or one component. Draw, organize and share ideas with tools, layers, frames, live collaboration and exports.

npm create @fabwcie/free-drawing-plugin.The library works in any page, without framework. React and Vue apps can use its component, which creates the drawer when it is mounted and destroys it when it is unmounted. Install it with Konva, its only peer dependency (also with yarn or pnpm):
npm install @fabwcie/free-drawing konvanpm install @fabwcie/free-drawing-react @fabwcie/free-drawing konvanpm install @fabwcie/free-drawing-vue @fabwcie/free-drawing konvaThen give it an element of your page, or render its component:
import { Drawer } from '@fabwcie/free-drawing';
import '@fabwcie/free-drawing/style.css';
const drawer = new Drawer(document.getElementById('drawer'), {
theme: 'system', // light, dark or the one of the device
language: 'auto', // language of the browser
});
// drawing changed: keep it anywhere as JSON
drawer.on('drawer.change', () => console.log(drawer.getDrawingFile()));import { FreeDrawing } from '@fabwcie/free-drawing-react';
import '@fabwcie/free-drawing/style.css';
export function Board() {
return (
<FreeDrawing
style={{ height: 600 }}
theme="system" // light, dark or the one of the device
language="auto" // language of the browser
// drawing changed: keep it anywhere as JSON
onChange={(drawer) => console.log(drawer.getDrawingFile())}
/>
);
}<script setup lang="ts">
import { FreeDrawing } from '@fabwcie/free-drawing-vue';
import type { Drawer } from '@fabwcie/free-drawing';
import '@fabwcie/free-drawing/style.css';
// drawing changed: keep it anywhere as JSON
const onChange = (drawer: Drawer) => console.log(drawer.getDrawingFile());
</script>
<template>
<FreeDrawing style="height: 600px" theme="system" language="auto" @change="onChange" />
</template>The guide describes every option, the React and Vue pages the props of the components, the features page shows what the drawer can do, the plugins guide shows how to add your own features and the API documents each class and method.
free-drawing is released under the MIT License. Issues and contributions are welcome on GitHub, see how to contribute.