# Custom canvas widget

**Category:** Widgets  
**Live demo:** https://xenolithengine.github.io/xenolith-graph/examples/canvas-widget/  
**Frameworks shipped:** react

## Description

The simplest custom widget: a click/drag level bar, drawn in WebGL — no DOM. The value flows back to your app via the standard widget callback.

## Source files

  - [react] shared/canvas-widget.json
  - [react] demos/CanvasWidgetDemo.tsx
  - [react] shared/canvas-widget.ts

## How to use this example

Open the live demo at https://xenolithengine.github.io/xenolith-graph/examples/canvas-widget/ to interact with it in the browser. The same source files are
reproduced verbatim in the page so you can copy-paste into your own project. Every example is
self-contained — pick one, copy the files, install `@xenolithengine/graph-editor` + the relevant framework
adapter, and it runs.

## See also

- Full project docs: https://xenolithengine.github.io/xenolith-graph/llms.txt
- All examples (raw): https://xenolithengine.github.io/xenolith-graph/api/graphs.jsonl
- MCP tool catalog: https://xenolithengine.github.io/xenolith-graph/api/mcp-tools.json
- Repository: https://github.com/XenolithEngine/xenolith-graph
