A canvas for the things you’re imagining.
Compose beautiful diagramming experiences, right inside your app.
Drag a shape. Resize a corner. Pull from a port to connect.
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 widgetAn idea board today. A custom process designer tomorrow. One composable foundation, shaped around the application you’re building.
Compose cards, ports, text, and geometry into shapes that feel native to your product.
Selection, snapping, rich text, routing, and undo share the same editing foundation.
Bring your own tools and panels. Keep the document, camera, and interactions in one session.
Give your users a place to map an idea without taking over the rest of your application.
Make it your ownfinal session = DrawingSession(
document: document,
configuration: DrawingConfiguration(
grid: DrawingGridConfiguration(
visible: true,
snap: true,
),
canvasPolicy: const InfiniteCanvasPolicy(),
),
);
DrawingCanvas(session: session)
A little text. A few ports. Your own geometry. Give your application a visual language.
Meet the shape grammar CONNECTStraight, elbow, quadratic, or Bézier. Add particles and give a connection some personality.
Explore paths and effects EXPLOREMove it, resize it, rotate it, or write it differently. Shared editing and undo leave room to experiment.
See how editing fits together VIEWPORT & CANVASPan, zoom, or glide into focus. Choose an open canvas or set its boundaries, then find your rhythm with dots, lines, layered grids, and snapping.
Explore your canvas MAKE IT YOURSA focused editor or room to experiment. Choose the tools, bring your own controls, and make diagramming feel like part of your app.
Find your fitStart with a blank canvas. Make it feel like your product.
Find your starting pointIn active development. Read the API and current boundaries, or explore the capability guide.