prefer_padding_over_container
v0.1.0 Warning Fix Widget Replacement
Flags Container widgets that only use the padding or margin parameter (plus optional key and child). When Container is used solely for spacing, the Padding widget is a lighter, more descriptive alternative.
Why use this rule
Section titled “Why use this rule”Container is a convenience widget that composes many lower-level widgets internally. When you only need padding or margin, using Padding directly avoids the overhead and makes the intent immediately clear. This also keeps the widget tree shallow and easier to read during debugging.
// Container with only margin parameterContainer(margin: EdgeInsets.all(16), child: Text('Hello'));
// Container with only margin, no childContainer(margin: EdgeInsets.symmetric(horizontal: 8));
// Container with only padding parameterContainer(padding: EdgeInsets.all(16), child: Text('Hello'));
// Container with only padding, no childContainer(padding: EdgeInsets.symmetric(vertical: 8));// Use Padding directlyPadding(padding: EdgeInsets.all(16), child: Text('Hello'));
Padding(padding: EdgeInsets.symmetric(horizontal: 8));
Padding(padding: EdgeInsets.all(16), child: Text('Hello'));
Padding(padding: EdgeInsets.symmetric(vertical: 8));Configuration
Section titled “Configuration”This rule is in the opinionated preset, so it is on with
preset: opinionated, or by name:
rules: prefer_padding_over_container: trueTo turn it off again:
rules: prefer_padding_over_container: falseTo keep the rule on but skip certain paths, use per-rule exclude.
Related rules
Section titled “Related rules”prefer_container— Opposing convention. Replace sequences of nested widgets with a single Container.prefer_align_over_container— Use Align instead of Container when only alignment is set.prefer_constrained_box_over_container— Use ConstrainedBox instead of Container when only constraints is set.prefer_transform_over_container— Use Transform instead of Container when only transform is set.