icon_data_parser
A Dart utility package to parse and resolve Flutter Material IconData
information, providing bidirectional lookups between icon names and code points. Useful for Flutter applications that require dynamic icon rendering, inspection, or metadata utilities.
✨ Features
- 🔍 Map
IconData
to its corresponding Material icon name - 🔢 Convert code points to icon names and vice versa
- 📄 Utility extensions for easier runtime access to icon names
- 📚 Custom icon name resolvers for advanced use cases
🚀 Getting Started
📦 Installation
Add this to your pubspec.yaml
:
dependencies:
icon_data_parser: ^latest_version
Then run:
flutter pub get
⚙️ Usage
1. Get Icon Name from IconData
import 'package:flutter/material.dart';
import 'package:icon_data_parser/icon_parser/data_sources/material_icon_name_resolver.dart';
IconData icon = Icons.ac_unit;
String? name = icon.materialIconName; // "ac_unit"
2. Get Icon Name from Code Point
int codePoint = 0xe000;
String? name = codePoint.iconName; // "ten_k"
3. Get Icon Name with Custom Resolver
import 'package:icon_data_parser/icon_parser/i_data_sources/icon_name_resolver.dart';
final resolver = MaterialIconNameResolver();
String? name = resolver.resolveIconName(Icons.abc);
🔄 Extensions
IconData Extension
extension IconDataExtension on IconData {
String? get materialIconName => MaterialIconNameResolver().resolveIconName(this);
}
CodePoint Extension
extension CodePointToIconName on int {
String? get iconName => materialIcons.entries
.firstWhere((entry) => entry.value == this, orElse: () => const MapEntry('', 0)).key
.takeIf((key) => key.isNotEmpty);
}
🎓 Use Cases
- Icon name display or debugging tools
- Dynamic rendering of icon buttons or lists
- Icon search features in design tools or editors
📜 License
MIT License
👨👷 Maintainer
This package is maintained by Shohidul Islam.
🤝 Contributions
Issues and PRs are welcome! Please format code and ensure tests pass before submitting.