🙋‍♂️ I'm an Icon Too!

An extended Icon for those that are not actually square. Plus shadows support!

Screenshot preview of Icon Example appScreenshot preview of Icon Example app

... 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, Color color, List<Shadow> shadows, TextDirection textDirection, String semanticLabel})
  • Note: trueSize parameter is a Size and not a double.

  • Builds an Icon-akin widget set inside a SizedBox constrained by trueSize, with given icon data.

  • Optionally pass color or shadows.

    • ✨ As a bonus, each IconToo supports the shadows parameter from TextStyle, passed as List<Shadow> and rendered under an IconToo.

    • This is a neat little additional feature, as traditionally an icon shadow might be achieved with something like this.

    • See Shadow for more information.

  • Replete with proper Semantics and debug Propertys.

❓ Example usage with an 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 Example app

See some example usage of the Icon package for Flutter included here.

Libraries

icon
🙋‍♂️ I'm an Icon Too! [...]