flutter_gutter 1.0.0 copy "flutter_gutter: ^1.0.0" to clipboard
flutter_gutter: ^1.0.0 copied to clipboard

Get your UI out of the gutter! Ensure all visual gaps between your widgets are consistent, adapted to the axis direction, and respond to screen size.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_gutter/flutter_gutter.dart';

void main() {
  Gap.customWidgetToAxis = (widget) {
    if (widget is Center) {
      return Axis.horizontal;
    }
    return null;
  };
  runApp(const MyApp());
}

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

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      _counter++;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      // Get the margin size from context and pad the page contents by it.
      body: Padding(
        padding: EdgeInsets.all(context.margin),
        child: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              const Text('Button tapped'),
              const GutterSmall(),
              Text(
                _counter.toString(),
                style: Theme.of(context).textTheme.displayMedium,
              ),
              const GutterSmall(),
              const Text('times'),
              const Center(
                child: Gutter(),
              ),
            ],
          ),
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: const Icon(Icons.add),
      ), // This trailing comma makes auto-formatting nicer for build methods.
    );
  }
}
45
likes
140
pub points
85%
popularity

Publisher

verified publishercaseycrogers.dev

Get your UI out of the gutter! Ensure all visual gaps between your widgets are consistent, adapted to the axis direction, and respond to screen size.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (LICENSE)

Dependencies

adaptive_breakpoints, flutter, gap

More

Packages that depend on flutter_gutter