Easy Gap

Pub

En | Ru

Add gaps between widgets in Flutter easily and flexibly - via extension methods or constructors.

Installation

dependencies:
  easy_gap: ^1.1.0
import 'package:easy_gap/easy_gap.dart';

Usage

SpacedList Constructor

Alternative syntax using constructors:

ListView(
  children: SpacedList(
    spacing: 16,
    children: [...],
  ),
)

CustomScrollView(
  slivers: SpacedList.slivers(
    spacing: 20,
    slivers: [...],
  ),
)

Extension Methods

Add .gap() or .sliverGap() to any widget list:

ListView(
  children: [
    Text('Item 1'),
    Text('Item 2'),
    Text('Item 3'),
  ].gap(16),
)

CustomScrollView(
  slivers: [
    SliverList(...),
    SliverGrid(...),
  ].sliverGap(20),
)

API

Extension Methods

List<Widget> gap(
  double spacing,              // Required: Gap size in pixels
  {
    double? crossAxisExtent,   // Optional: Gap size along cross axis (e.g., full width in Column)
    Color? color,              // Optional: Fill color for debugging gaps
  }
)
List<Widget> sliverGap(
  double spacing,              // Required: Gap size in pixels
  {
    Color? color,              // Optional: Fill color for debugging gaps
  }
)

SpacedList Constructors

SpacedList({
  required double spacing,        // Required: Gap size in pixels
  required List<Widget> children, // Required: List of widgets
  double? crossAxisExtent,        // Optional: Gap size along cross axis
  Color? color,                   // Optional: Fill color for debugging gaps
})
SpacedList.slivers({
  required double spacing,        // Required: Gap size in pixels
  required List<Widget> slivers,  // Required: List of slivers
  Color? color,                   // Optional: Fill color for debugging gaps
})

Example

Check out the example app for a complete demo showcasing all features.

Changelog

See the Changelog for recent updates.

Contributing

Contributions are welcome!

License

MIT License - see LICENSE for details.