awesome_extensions 1.0.0 awesome_extensions: ^1.0.0 copied to clipboard
An extension to the widget that helps to reduce the boilerplate and adds some helpful methods.
awesome_extensions #
Let get started 💪 #
- Go to
pubspec.yaml
- add a awesome_extensions and replace
[version]
with the latest version:
dependencies:
awesome_extensions: ^[version]
- click the packages get button or flutter pub get
TextStyle Extensions #
.bold() #
Text('Hello World',
style: Theme.of(context).textTheme.caption.bold,
),
// or
Text('Hello World',
style: context.textTheme.caption.bold,
),
// or
Text('Hello World',
style: context.textTheme.headline3,
),
Similar text style extensions are:
mostThick
The most thick - FontWeight.w900extraBold
Extra-bold - FontWeight.w800bold
Bold - FontWeight.bold - FontWeight.w700semiBold
Semi-bold - FontWeight.w600medium
Medium - FontWeight.w500regular
Regular - FontWeight.w400light
Light - FontWeight.w300extraLight
Extra-light - FontWeight.w200thin
Thin, the least thick - FontWeight.w100
SizeBox Extensions #
This extension is reduced more code like:
SizedBox(
height : 20.0
)
you can done in 1 line code
// make space of 20.0 height
20.0.heightBox
// for width
20.0.widthBox
Date Extensions #
// for check two date are same or not
date.isSameDate(otherdate); // its return bool (true/false)
// for check date is today's date
date.isToday // its return bool (true/false)
// for check this date is yesterday's date
date.isYesterday // its return bool (true/false)
Padding Extensions #
for apply padding in widget you doing this:
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("text"),
);
but using padding extension:
Text("text").paddingAll(8.0),
Similar padding extensions are:
paddingAll
Creates insets from offsets from all side.paddingOnly
Creates insets with only the given values non-zero.paddingLTRB
Creates insets from offsets from the left, top, right, and bottom.paddingSymmetric
Creates insets with symmetrical vertical and horizontal offsets.paddingFromWindowPadding
Creates insets that match the given window padding.
Shimmer Effect #
Container(height: 50,width: 50,).applyShimmer();
you can also change color of shimmer using Color baseColor
, Color highlightColor
Context Extensions #
Navigator.push(
context,
MaterialPageRoute(builder: (context) => SecondScreen()),
);
context extension reduced your code:
// for push
context.to(SecondScreen());
// for back
context.back();
// for replace
context.replaceWith(SecondScreen());
For Responsive Layout (MediaQuery) #
// Equivalent to : MediaQuery.of(context).size.height,
// Height of the Screen
context.height
// Width of Screen
context.width