smart_padding 1.0.0
smart_padding: ^1.0.0 copied to clipboard
A Flutter padding widget with cascading all, horizontal, vertical, and individual sides.
SmartPadding #
A Flutter padding widget with cascading values for all, horizontal,
vertical, and individual sides.
Why SmartPadding? #
Flutter's Padding widget normally requires choosing between constructors
such as EdgeInsets.all, EdgeInsets.symmetric, and EdgeInsets.only.
For example, if you want 16 logical pixels of padding on the left and right and 8 logical pixels on the bottom, you could write:
Padding(
padding: EdgeInsets.symmetric(
horizontal: 16.0,
),
child: Padding(
padding: EdgeInsets.only(
bottom: 8.0,
),
child: child,
),
)
or:
Padding(
padding: EdgeInsets.only(
left: 16.0,
right: 16.0,
bottom: 8.0,
),
child: child,
)
With SmartPadding, the same layout can be expressed as:
SmartPadding(
horizontal: 16.0,
bottom: 8.0,
child: child,
)
Usage #
All sides #
SmartPadding(
all: 16.0,
child: child,
)
Horizontal and vertical #
SmartPadding(
horizontal: 16.0,
vertical: 8.0,
child: child,
)
Individual sides #
const SmartPadding(
left: 16.0,
top: 8.0,
right: 24.0,
bottom: 4.0,
child: child,
)
Cascading values #
Values can be combined. More-specific values override less-specific values.
SmartPadding(
all: 16.0,
horizontal: 24.0,
bottom: 8.0,
child: child,
)
This resolves to:
| Side | Value | Source |
|---|---|---|
| Left | 24.0 | horizontal |
| Right | 24.0 | horizontal |
| Top | 16.0 | all |
| Bottom | 8.0 | bottom |
The resolution order for each side is:
individual side → horizontal/vertical → all → 0.0
A value of 0.0 is explicit and does not fall back to another value.
Installation #
Add smart_padding to your dependencies:
dependencies:
smart_padding: ^1.0.0
Then import it:
import 'package:smart_padding/smart_padding.dart';
Limitations #
SmartPadding currently works with physical sides (left, right, top,
and bottom). Directional start and end values are not currently
supported.
Example #
See the example directory for a complete Flutter application demonstrating SmartPadding.
Issues and contributions #
Bug reports and feature requests are welcome through the project's issue tracker.
License #
SmartPadding is released under the MIT License.