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
AlignmentGeometryasIconToo.alignmentis available.- But defaults to
Directionality.ofbecause it istrueSized by design
- But defaults to
-
Note:
trueSizeparameter is aSizeand not adouble.
sizeXandsizeYare available forconstconstruction with doubles- But not forwarded to [Icon]
-
Builds an
Icon-akin widget set inside aSizedBoxconstrained bytrueSize, with givenicondata. -
Optionally pass
colororshadows.- ✨ As a bonus, each IconToo supports the
shadowsparameter fromTextStyle, passed asList<Shadow>and rendered under anIconToo.
- ✨ As a bonus, each IconToo supports the
-
Replete with proper
Semanticsand debugPropertys.
❓ 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