Skip to content

v0.8 • UI • 10kb gzipped • MIT

DrawLite

A whiteboard primitive: strokes, shapes and undo, with the collaboration layer left to you.

★ 6.4kGitHub
↓ 17.9k / week● MIT● TS 5.0+
drawlite-preview.png
Abstract preview graphic for DrawLite

// why drawlite

A primitive, not a product

DrawLite handles input, rendering and history. Persistence and collaboration stay in your hands, where your architecture already lives.

● 5ms render● 60fps● 0 deps

// stack

Pointer-native

One pointer path covers mouse, touch and stylus, including pressure where the hardware reports it.

DrawLite started as a single file in a client project and stayed small on purpose. It does one job, it does it in 10kb gzipped, and it has no runtime dependencies.

Getting started

Install it, import it, call it:

npm i drawlite-js

DrawLite handles input, rendering and history. Persistence and collaboration stay in your hands, where your architecture already lives.

What it does not do

It does not manage your state, style your components or ship a plugin system. Those are your decisions, and keeping them out is what keeps the bundle honest.

  • Branching history
  • Pressure and tilt
  • MIT licensed, commercially friendly

Features

Branching history

Undo and redo across branches, so exploring an idea never destroys the previous one.

Pressure and tilt

Stylus input is read properly rather than flattened to a fixed stroke width.

Styling stays yours

DrawLite sets no colours and no spacing. Every visual decision belongs to your design system.

Dark mode ready

Reads from CSS custom properties, so a theme switch needs no JavaScript at all.

Container aware

Adapts to the box it is given rather than the viewport, so it works in a sidebar.

Accessibility audited

Tested against screen readers on three platforms, with the findings published in the repository.

Get DrawLite v0.8

11 files • .min.js 10kb • .zip 72kb • sha384 verified

Changelog

v0.8 May 12 2026 • latest
  • Branching undo history
  • Stylus pressure and tilt support
  • Stroke smoothing is now optional
v0.7.2 Apr 7 2026
  • Safari 16 compatibility fixes
  • Bundle size reduced by eleven percent
v0.7.1 Jan 6 2026
  • Improved error messages for invalid options
  • Added twenty regression tests
View full archive →

// related

Related products

Jul 28 • v2.5

PulseGrid

Headless data table with sorting and virtual scroll that stays smooth at a hundred thousand rows.

View →
Jul 06 • v1.4

ToastKit

Accessible toast notifications in two kilobytes, with a queue that never talks over itself.

View →
Jun 25 • v2.1

DialogJS

Focus-trapped dialogs built on the native element, with the edge cases already handled.

View →

Ship the interface today.

MIT licensed. Commercial friendly. Five-minute setup.