Boxy is a Flutter package created to overcome the limitations of built-in layout widgets, it provides utilities for flex, custom multi-child layouts, dynamic widget inflation, slivers, and more!
The package is ready for production use, it has excellent documentation, test coverage, and passes strict analysis.
Check out the new wiki! https://boxy.wiki
A common design problem is when you need one or more children of a
Column to have the same cross-axis size
as another child in the list, with boxy this can be achieved trivially using
One of the pains of implementing custom layouts is learning the
RenderObject model and how verbose it is, to make this
process easier we provide an extremely simple container
CustomBoxy that delegates layout, paint, and hit testing.
The most powerful feature of
CustomBoxy is the ability to inflate arbitrary widgets at layout time, this means widgets
can depend on the size of others, something previously impossible without hacky workarounds.
Also check out:
The utils library provides extensions with dozens
of axis-dependant methods on
Offset, and more. These extensions make writing directional
layouts significantly less cumbersome.
The OverflowPadding widget is similar to
Padding but allows the child to overflow when given negative insets.
- This library contains CustomBoxy, a widget that uses a delegate to control the layout of multiple children.
- This library contains the BoxyFlex, BoxyColumn and BoxyRow widgets.
- This library contains the internal logic of CustomBoxy, useful if you want to implement a custom RenderObject that inflates arbitrary widgets at layout time.
- This library contains the guts of CustomBoxy, useful if you want to integrate a custom render protocol.
- This library provides SliverCard and SliverContainer, useful for giving box decorations to lazily built slivers.
- This library contains dozens of utility methods for making Axis-dependant layouts, including slivers, significantly less verbose.