icon 2.1.0 icon: ^2.1.0 copied to clipboard
An extended Icon for those that are not actually square, plus shadows support.
🙋♂️ I'm an IconToo
! #
An extended Icon
for those that are not actually square, plus shadows
support. #
... because Flutter's native Icon
"assumes that the rendered icon is squared" and that "non-squared icons may render incorrectly."
IconToo IconToo(IconData icon, {Size? trueSize, double? sizeX, double? sizeY, Color? color, List<Shadow>? shadows, AlignmentGeometry? alignment, TextDirection? textDirection, String? semanticLabel})
-
Support for
AlignmentGeometry
asIconToo.alignment
is available.- But defaults to
Directionality.of
because it istrueSize
d by design
- But defaults to
-
Note:
trueSize
parameter is aSize
and not adouble
.
sizeX
andsizeY
are available forconst
construction with doubles- But not forwarded to [Icon]
-
Builds an
Icon
-akin widget set inside aSizedBox
constrained bytrueSize
, with givenicon
data. -
Optionally pass
color
orshadows
.- ✨ As a bonus, each IconToo supports the
shadows
parameter fromTextStyle
, passed asList<Shadow>
and rendered under anIconToo
.
- ✨ As a bonus, each IconToo supports the
-
Replete with proper
Semantics
and debugProperty
s.
❓ Example with IconButton
: #
IconButton(
icon: IconToo(
color: Colors.red,
CustomIcons.non_square_icon,
// IconToo passes `fontSize = min(trueSize.width, trueSize.height)` to `TextStyle()`
trueSize: Size(34.0 * 5, 34.0),
),
// But we need the max() to ensure an IconButton has a diameter that encompasses the entire IconToo
iconSize: 34.0 * 5,
onPressed: () {},
);
Icon Utilities - IconUtils
#
- 📋
copyWith
- ❌
operator *(dynamic operation)
operation is Color => this.copyWith(color:operation)
operation is double => this.copyWith(size: size ?? 0 * operation)
- ➕
operator +(double inflate)
- ➖
operator -(double deflate)
Icon Example #
See some example usage of the Icon package for Flutter included here.
- Icon Example Android source:
/example/lib/main.dart
- Icon Example APK