Skip to content
A DIAGRAM KIT FOR FLUTTER

Give your ideas
a little room to move.

A canvas for the things you’re imagining.
Compose beautiful diagramming experiences, right inside your app.

Opening the live canvas…

Drag a shape. Resize a corner. Pull from a port to connect.

Flutter, through and through.
RIGHT IN YOUR ELEMENT

Feels like Flutter.
Because it is Flutter.

Dart all the way down. A real Flutter canvas, a familiar widget API, and room for the rest of your application.

Meet your new canvas widget
SMALL PIECES. OPEN POSSIBILITIES.

A diagram is just
the beginning.

An idea board today. A custom process designer tomorrow. One composable foundation, shaped around the application you’re building.

ONE KIT. YOUR KIND OF CANVAS.

Pick a starting point.
Take it somewhere new.

Start with a little space.

Give your users a place to map an idea without taking over the rest of your application.

Make it your own
your_canvas.dartFlutter
dart
final session = DrawingSession(
  document: document,
  configuration: DrawingConfiguration(
    grid: DrawingGridConfiguration(
      visible: true,
      snap: true,
    ),
    canvasPolicy: const InfiniteCanvasPolicy(),
  ),
);

DrawingCanvas(session: session)
A minimal canvas. Your application supplies the surrounding controls.
THE FEELING IS IN THE DETAILS

A few things that
just click.

YOURS TO COMPOSE

The canvas is ours.
The experience
is yours.

Define shape types in a registry. Give a DrawingSession your document and canvas configuration. Mount it with DrawingCanvas, then create and edit through the same session.

Explore the object model
your_canvas.dartFlutter
// One session. Your possibilities.
final session = DrawingSession(
  document: document,
  shapeRegistry: yourShapes,
  configuration: DrawingConfiguration(
    grid: DrawingGridConfiguration(
      visible: true,
      snap: true,
    ),
    extensions: yourExtensions,
  ),
);

DrawingCanvas(session: session)
Definitions describe shape types. The session owns editing. The canvas mounts it.

What will you connect?

Start with a blank canvas. Make it feel like your product.

Find your starting point

In active development. Read the API and current boundaries, or explore the capability guide.