Flutter Icons
Using built-in and custom icons in Flutter apps
⭐ What are Icon Widgets?
Icons are graphical symbols representing actions, objects, or concepts in your app. Flutter includes Material and Cupertino icon sets with thousands of ready-to-use icons for beautiful interfaces.
// Simple icon example
Icon(Icons.favorite, color: Colors.red)
Output:
Icon Features
Color
Customize icon colors
Icon(
Icons.star,
color: Colors.amber,
)
Size
Adjust icon dimensions
Icon(
Icons.home,
size: 48,
)
Material Icons
1000+ built-in icons
Icon(
Icons.shopping_cart,
)
Cupertino Icons
iOS-style icons
Icon(
CupertinoIcons.heart,
)
🔹 Basic Icon Usage
Display icons with different properties:
import 'package:flutter/material.dart';
class IconExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Icons')),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.home, size: 50, color: Colors.blue),
Icon(Icons.favorite, size: 50, color: Colors.red),
Icon(Icons.star, size: 50, color: Colors.amber),
],
),
),
);
}
}
Output:
🔹 Common Material Icons
Frequently used Material Design icons:
// Navigation icons
Icon(Icons.home)
Icon(Icons.menu)
Icon(Icons.arrow_back)
Icon(Icons.search)
// Action icons
Icon(Icons.add)
Icon(Icons.delete)
Icon(Icons.edit)
Icon(Icons.share)
// Communication icons
Icon(Icons.email)
Icon(Icons.phone)
Icon(Icons.message)
Icon(Icons.notifications)
// Media icons
Icon(Icons.play_arrow)
Icon(Icons.pause)
Icon(Icons.volume_up)
Icon(Icons.camera)
Output:
🔹 Cupertino Icons
iOS-style icons for Cupertino design:
import 'package:flutter/cupertino.dart';
Icon(CupertinoIcons.heart)
Icon(CupertinoIcons.home)
Icon(CupertinoIcons.settings)
Icon(CupertinoIcons.search)
Icon(CupertinoIcons.person)
Icon(CupertinoIcons.bell)
Icon(CupertinoIcons.cart)
Icon(CupertinoIcons.share)
Output:
🔹 Icon Button
Make icons interactive with IconButton:
IconButton(
icon: Icon(Icons.favorite_border),
color: Colors.red,
iconSize: 32,
onPressed: () {
print('Favorite pressed');
},
tooltip: 'Add to favorites',
)
// Toggle icon button
bool isFavorite = false;
IconButton(
icon: Icon(
isFavorite ? Icons.favorite : Icons.favorite_border,
),
color: Colors.red,
onPressed: () {
setState(() {
isFavorite = !isFavorite;
});
},
)
Output:
🔹 Icon with Text
Combine icons with text labels:
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Icon(Icons.location_on, color: Colors.red),
SizedBox(width: 8),
Text('New York', style: TextStyle(fontSize: 18)),
],
)
// Using ListTile
ListTile(
leading: Icon(Icons.email, color: Colors.blue),
title: Text('Email'),
subtitle: Text('[email protected]'),
)
Output:
🔹 Custom Icon Colors & Sizes
Customize icon appearance:
// Different sizes
Icon(Icons.star, size: 16) // Small
Icon(Icons.star, size: 24) // Default
Icon(Icons.star, size: 48) // Large
Icon(Icons.star, size: 72) // Extra large
// Different colors
Icon(Icons.circle, color: Colors.red)
Icon(Icons.circle, color: Colors.green)
Icon(Icons.circle, color: Colors.blue)
Icon(Icons.circle, color: Color(0xFF9C27B0))