Skip to main content

Command Palette

Search for a command to run...

Visual Shape Drawing Tools: Rectangles, Circles & Polygons in Flutter

Updated
4 min read

Building custom UI shapes in Flutter traditionally means writing CustomPainter code by hand — calculating coordinates, tweaking corner radii, and iterating through trial-and-error paint cycles. Flutter Shape Builder eliminates this friction by providing visual, drag-to-draw shape creation tools that generate production-ready Dart code in real time.

In this guide, we explore the three core drawing tools available in Flutter Shape Builder: the Rectangle Tool, the Circle Tool, and the Polygon Tool.


Rectangle Tool

The Rectangle Tool lets you create rectangles and rounded rectangles by simply clicking and dragging on the canvas. It is ideal for building cards, containers, buttons, and any box-based UI element.

Key capabilities

  • Parametric width and height — adjust dimensions precisely in the property inspector

  • Uniform corner radius — set a single border radius value that applies to all four corners

  • Individual corner radii — customize each corner independently for asymmetric rounded shapes

  • Drag-to-create interaction — click on the canvas and drag to define the rectangle dimensions visually

After drawing a rectangle, the property panel gives you full control over position (x, y), size (width, height), rotation, fill color, stroke color, stroke width, and opacity. The generated Dart code uses canvas.drawRRect for rounded rectangles and canvas.drawRect for sharp corners.

Example: Rounded rectangle in Flutter

final rrect = RRect.fromRectAndRadius(
  Rect.fromLTWH(50, 50, 200, 120),
  Radius.circular(16),
);
canvas.drawRRect(rrect, paint);

Circle Tool

The Circle Tool creates perfect circles with a single click-and-drag gesture. It is the fastest way to add circular elements like avatars, icons, status indicators, or decorative shapes to your Flutter layout.

Key capabilities

  • Parametric radius — set the circle radius exactly in the properties panel

  • Fill and stroke styling — apply solid fill colors with HEX + alpha, configure stroke width and color

  • Position control — adjust the center point coordinates for pixel-perfect placement

Circles are rendered internally as SVG arc paths. The generated Flutter code uses canvas.drawOval or arc path commands depending on the export format you choose.


Polygon Tool

The Polygon Tool creates regular polygons with a configurable number of sides — from triangles (3 sides) to icosagons (20 sides). This is perfect for badges, star shapes, hexagonal grids, and decorative geometric patterns.

Key capabilities

  • Dynamic side count — choose anywhere from 3 to 20 sides

  • Click-to-add vertices — alternatively, click individual points to place vertices manually

  • Regular polygon generation — automatically generates evenly-spaced vertices

  • Close path with Enter — press Enter to finalize and close the polygon shape

Example: Triangle in Flutter

final path = Path();
path.moveTo(150, 50);
path.lineTo(250, 200);
path.lineTo(50, 200);
path.close();
canvas.drawPath(path, paint);

Shared features across all tools

No matter which drawing tool you use, Flutter Shape Builder provides a consistent set of features:

  • Transform controls — adjust X, Y position, width, height, rotation, and scale

  • Fill and stroke styling — HEX color picker with alpha channel support

  • Opacity control — fine-tune the transparency of any shape

  • Real-time code preview — see the generated Dart code update instantly as you draw and edit

  • Multiple export formats — export as a full runnable Flutter app, StatelessWidget, CustomPainter class, SVG, or JSON

  • Undo/Redo history — 50-step snapshot-based history for safe experimentation


Why use visual tools instead of writing CustomPainter by hand?

Writing CustomPainter code manually is powerful but slow. Every coordinate change requires a hot-reload cycle. Flutter Shape Builder gives you instant visual feedback — you see exactly what your shape looks like as you build it, and the generated code is always in sync.

This workflow is especially valuable for:

  • Rapid prototyping — try different shape variations in seconds

  • Complex compositions — combine multiple shapes with boolean operations

  • Accurate positioning — use the grid and property inspector for pixel-perfect placement

  • Learning Flutter paths — see how visual shapes translate to Dart code


Start drawing Flutter shapes visually

Open the editor, pick a tool, and start creating. Your Dart code is generated in real time.

Open the Editor →


More from this blog

Om Chauhan - Blog

12 posts

Hi There, I'm a full-time Flutter Developer. I'm not a pro-Blogger I'm just putting my knowledge into blogs so that it can help as many people solve their problems in terms of Developers.