geometry_kit_widgets 0.1.1 copy "geometry_kit_widgets: ^0.1.1" to clipboard
geometry_kit_widgets: ^0.1.1 copied to clipboard

Flutter widgets for geometry_kit shapes — CustomPainter-backed, styled, themable, and composable. Includes circle, ellipse, rectangle, triangle, polygon, line, and a multi-shape canvas.

example/lib/main.dart

import 'package:flutter/material.dart';

import 'demos/canvas_demo.dart';
import 'demos/circle_demo.dart';
import 'demos/clipping_demo.dart';
import 'demos/coordinate_mapper_demo.dart';
import 'demos/ellipse_demo.dart';
import 'demos/line_demo.dart';
import 'demos/polygon_demo.dart';
import 'demos/properties_demo.dart';
import 'demos/quadrilateral_demo.dart';
import 'demos/rectangle_demo.dart';
import 'demos/style_demo.dart';
import 'demos/transforms_demo.dart';
import 'demos/triangle_demo.dart';

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'geometry_kit_widgets',
      theme: ThemeData(
        colorSchemeSeed: Colors.indigo,
        useMaterial3: true,
      ),
      home: const _Home(),
    );
  }
}

class _Demo {
  final String title;
  final String subtitle;
  final WidgetBuilder builder;
  const _Demo(this.title, this.subtitle, this.builder);
}

final _demos = <_Demo>[
  _Demo('GeoCircle', 'Stroked, filled, dashed circles', (_) => const CircleDemo()),
  _Demo('GeoEllipse', 'Axis-aligned ellipses', (_) => const EllipseDemo()),
  _Demo('GeoRectangle', 'Rectangles with rounded corners', (_) => const RectangleDemo()),
  _Demo('GeoTriangle', 'Triangle from 3 vertices', (_) => const TriangleDemo()),
  _Demo('GeoQuadrilateral', 'Trapezoid / kite / rhombus', (_) => const QuadrilateralDemo()),
  _Demo('GeoPolygon', 'Regular and free-form polygons', (_) => const PolygonDemo()),
  _Demo('GeoLine', 'Line segments + dashes', (_) => const LineDemo()),
  _Demo('GeometryCanvas', 'Multi-shape rendering', (_) => const CanvasDemo()),
  _Demo('ShapeStyleTheme', 'Inherited default style', (_) => const StyleDemo()),
  _Demo('CoordinateMapper', 'Y-up + centered origins', (_) => const CoordinateMapperDemo()),
  _Demo('Clipping & layering', 'clipBehavior + Stack composition', (_) => const ClippingDemo()),
  _Demo('Transforms', 'rotate / scale / translate (interactive)', (_) => const TransformsDemo()),
  _Demo('Properties & contains', 'area / perimeter / centroid / contains', (_) => const PropertiesDemo()),
];

class _Home extends StatelessWidget {
  const _Home();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('geometry_kit_widgets')),
      body: ListView.separated(
        itemCount: _demos.length,
        separatorBuilder: (_, _) => const Divider(height: 0),
        itemBuilder: (context, i) {
          final d = _demos[i];
          return ListTile(
            title: Text(d.title),
            subtitle: Text(d.subtitle),
            trailing: const Icon(Icons.chevron_right),
            onTap: () {
              Navigator.of(context).push(
                MaterialPageRoute(
                  builder: (ctx) => Scaffold(
                    appBar: AppBar(title: Text(d.title)),
                    body: SafeArea(child: d.builder(ctx)),
                  ),
                ),
              );
            },
          );
        },
      ),
    );
  }
}
1
likes
140
points
198
downloads

Documentation

API reference

Publisher

verified publishersamderlust.com

Weekly Downloads

Flutter widgets for geometry_kit shapes — CustomPainter-backed, styled, themable, and composable. Includes circle, ellipse, rectangle, triangle, polygon, line, and a multi-shape canvas.

Repository (GitHub)
View/report issues

Topics

#geometry #widget #custom-painter #shapes #flutter

License

MIT (license)

Dependencies

flutter, geometry_kit

More

Packages that depend on geometry_kit_widgets