ensemble_icons 1.0.2
ensemble_icons: ^1.0.2 copied to clipboard
A comprehensive Flutter icon package providing access to multiple icon libraries including Material Design, Remix Icons, and Font Awesome.
Ensemble Icons #
A comprehensive Flutter icon package providing access to multiple icon libraries including Material Design, Remix Icons, and Font Awesome. Perfect for Flutter applications that need consistent, high-quality icons across different design systems.
✨ Features #
- Multiple Icon Libraries: Material Design, Remix Icons, and Font Awesome
- Easy Integration: Simple API for using icons in your Flutter apps
- Customizable: Support for custom sizing, colors, and styling
- High Quality: Vector-based icons that scale perfectly
- Ensemble UI Ready: Designed to work seamlessly with Ensemble UI framework
🚀 Quick Start #
Installation #
Add this to your pubspec.yaml:
dependencies:
ensemble_icons: ^1.0.1
Then run:
flutter pub get
Basic Usage #
import 'package:ensemble_icons/ensemble_icons.dart';
// Use Material Design icons
Icon(
icon: MaterialIcons.home,
size: 24.0,
color: Colors.blue,
)
// Use Remix Icons
Icon(
icon: RemixIcons.home,
size: 24.0,
color: Colors.green,
)
// Use Font Awesome icons
Icon(
icon: FontAwesomeIcons.home,
size: 24.0,
color: Colors.orange,
)
🎨 Icon Libraries #
Material Design Icons #
- Version: Latest Flutter SDK version
- Features: Google's Material Design icon set
- Usage:
MaterialIcons.iconName
Remix Icons #
- Version: v4.2.0 (2024-03-13)
- Features: Open-source icon library with 2,000+ icons
- Usage:
RemixIcons.iconName
Font Awesome Icons #
- Version: v6.5.1 (2024-03-11)
- Features: Professional icon toolkit with 1,600+ free icons
- Usage:
FontAwesomeIcons.iconName
🔧 Advanced Usage #
Custom Icon Widget #
class CustomIcon extends StatelessWidget {
final String iconName;
final String library;
final double size;
final Color? color;
const CustomIcon({
Key? key,
required this.iconName,
this.library = 'default',
this.size = 24.0,
this.color,
}) : super(key: key);
@override
Widget build(BuildContext context) {
IconData iconData;
switch (library) {
case 'remix':
iconData = RemixIcons.values.firstWhere(
(icon) => icon.name == iconName,
orElse: () => RemixIcons.question,
);
break;
case 'fontAwesome':
iconData = FontAwesomeIcons.values.firstWhere(
(icon) => icon.name == iconName,
orElse: () => FontAwesomeIcons.question,
);
break;
default:
iconData = MaterialIcons.values.firstWhere(
(icon) => icon.name == iconName,
orElse: () => MaterialIcons.help,
);
}
return Icon(
iconData,
size: size,
color: color,
);
}
}
Ensemble UI Integration #
- Icon:
name: "home"
library: "remix" # default / remix / fontAwesome
size: "24"
color: "#007AFF"
📚 API Reference #
Icon Classes #
| Class | Description | Icons Available |
|---|---|---|
MaterialIcons |
Material Design icons | 1,000+ |
RemixIcons |
Remix icon library | 2,000+ |
FontAwesomeIcons |
Font Awesome icons | 1,600+ |
Common Properties #
| Property | Type | Default | Description |
|---|---|---|---|
size |
double |
24.0 |
Icon size in logical pixels |
color |
Color? |
null |
Icon color (inherits from theme if null) |
semanticLabel |
String? |
null |
Accessibility label for screen readers |
🔄 Updating Icon Libraries #
Remix Icons #
Follow the documentation in the update folder to update to the latest version.
Font Awesome #
Update the font_awesome_flutter dependency in pubspec.yaml to get the latest icons.
Material Icons #
Material icons are automatically updated with Flutter SDK updates.
📱 Platform Support #
- ✅ Android: Full support
- ✅ iOS: Full support
- ✅ Web: Full support
- ✅ Desktop: Full support
🤝 Contributing #
We welcome contributions! Please feel free to:
- Report bugs and issues
- Suggest new features
- Submit pull requests
- Improve documentation
📄 License #
This project is licensed under the MIT License.
🙏 Acknowledgments #
- Part of the Ensemble UI ecosystem
- Built for the Flutter community
Built with ❤️ for the Flutter community