A Flex implementation similar to FlutterFlex, aimed to be simpler, faster, and fixing some limitations.

Warning This package is in development. It's unfinished and changes are inevitable. Expect v1 to be stable.

Parent Widgets

Flex => NFlex.
Row => NRow.
Column => NColumn.

Child Widgets

Expanded => NExpanded.

Helper Widgets

NDirection.

Features over Flex

padding: set padding directly in the Parent Widgets.
gap: set the gap between elements.

Limitations

As expected on v1, Parent Widgets would not provide baseline alignments, and verticalAlignment and textDirection are not available directly on NFlex, but in NDirection.

Differences

Expanded children would get shared space after minium size calculations. On Flutter they don't get a minium size. Add example.

Getting started

run flutter pub get nflex

Usage

NFlex(
  padding: const EdgeInsets.all(10.0),
  direction: Axis.horizontal,
  children: [
    Container(
      color: const Color.fromRGBO(255, 0, 0, 1),
      constraints: const BoxConstraints.tightFor(width: 100, height: 100),
    ),
    Container(
      color: const Color.fromARGB(255, 200, 255, 0),
      constraints: const BoxConstraints.tightFor(width: 80, height: 80),
    ),
  ],
);

Things to do before releasing v1

feature test impl doc
padding
gap
mainAxisAlignment
crossAxisAlignment
axis
NFlexible
NRow
NColumn
NDirection
minium element size
intrinsics
dry layout
examples

Libraries

nflex