Get Started
From clone to a painted scene. Requires Bun.
git clone https://github.com/nightsumx/limn.git
cd limn
bun install
bun test
# 2142+ tests
bun run dev
# → http://localhost:5190
# left DOM · right limn canvas
import { createRoot } from 'limn/react'
import { createCanvas2DBackend } from 'limn'
const css = `
.row { flex-direction: row; gap: 12px; padding: 16px; }
.card { background: #1a1d27; border-radius: 8px; padding: 12px; }
`
const root = createRoot(createCanvas2DBackend(canvas), css)
root.render(
<div className="row">
<div className="card">Hello limn</div>
<div className="card">Same CSS</div>
</div>,
)
className, style strings/objects, and DOM-style event names
(onClick maps to pointer pipeline).
import { createScene, createCanvas2DBackend } from 'limn'
const scene = createScene(createCanvas2DBackend(canvas))
const row = scene.create('box', {
style: { flexDirection: 'row', gap: 12, padding: 16 },
})
scene.add(row)
bun run build
# dist/ + limn/react + limn/inspect
Next: Lab & parity · React guide.