The Font Awesome Icon pack available as set of Flutter Icons.
Based on Font Awesome 5.15.1. Includes all free icons:
- Regular
- Solid
- Brands
In the dependencies:
section of your pubspec.yaml
, add the following line:
dependencies:
font_awesome_flutter: <latest_version>
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class MyWidget extends StatelessWidget {
Widget build(BuildContext context) {
return IconButton(
// Use the FaIcon Widget + FontAwesomeIcons class for the IconData
icon: FaIcon(FontAwesomeIcons.gamepad),
onPressed: () { print("Pressed"); }
);
}
}
Icon names equal those on the official website, but are written in lower camel case. If more than one icon style is available for an icon, the style name is used as prefix, except for "regular".
Icon name | Code | Style |
---|---|---|
angle-double-up | FontAwesomeIcons.angleDoubleUp |
solid (this icon does not have other free styles) |
arrow-alt-circle-up | FontAwesomeIcons.arrowAltCircleUp |
regular |
arrow-alt-circle-up | FontAwesomeIcons.solidArrowAltCircleUp |
solid |
View the Flutter app in the example
directory to see all the available FontAwesomeIcons
.
Please use the FaIcon
widget provided by the library instead of the Icon
widget provided by Flutter. The Icon
widget assumes all icons are square, but
many Font Awesome Icons are not.
This package has been written in a way so that it only uses the minimum amount of ressources required.
All links (eg. FontAwesomeIcons.abacus
) to unused icons will be removed automatically, which means only required icon
definitions are loaded into ram.
Flutter 1.22 added icon tree shaking. This means unused icon "images" will be removed as well. However, this only applies to styles of which at least one icon has been used. Assuming only icons of style "regular" are being used, "regular" will be minified and "solid" and "brands" will stay in their raw, complete form. This issue is being tracked over in the flutter repository. While it is open, a workaround is to create an icon of each style and put it in an invisible container.
If you're not seeing any icons at all, sometimes it means that Flutter has a cached version of the app on device and hasn't pushed the new fonts. I've run into that as well a few times...
Please try:
- Stopping the app
- Running
flutter clean
in your app directory - Deleting the app from your simulator / emulator / device
- Rebuild & Deploy the app.
Most likely, the fonts were not correctly added to the FontManifest.json
.
Note: older versions of Flutter did not properly package non-Material fonts
in the FontManifest.json
during the build step, but that issue has been
resolved and this shouldn't be much of a problem these days.
Please ensure you are using Flutter 1.14.6 beta
or newer!
This library only packages the free Font Awesome icon fonts. If you own the pro icon fonts and want to use them with Flutter, please follow these instructions.
❗ By importing pro icons you acknowledge that it is your obligation to keep these files private. This includes not uploading your package to a public github repository or other public file sharing services.
- Download this package's newest release, extract the folder, move it to a location of your choice and go to that directory
- Remove
#
s frompubspec.yaml
at the indicated position - run
flutter packages get
- Download your font awesome pro icons (web version)
- Move all
.ttf
files from thewebfonts
directory to/path/to/your/font_awesome_flutter/lib/fonts
(replace existing fonts)- Note: Please make sure all
.ttf
files (and the followingicons.json
) are of the same version to avoid missing icons!
- Note: Please make sure all
- Move
icons.json
frommetadata
to/path/to/your/font_awesome_flutter
- From there run
./tool/update.sh
on linux or.\tool\update.bat
on windows- Note for windows users: Please run the script in cmd or powershell only. Flutter is known to have problems with third-party shells.
- Add version
>= 4.7.0
to your project's dependencies, Override it with the path to your local installation:
dependencies:
font_awesome_flutter: '>= 4.7.0'
...
dependency_overrides:
font_awesome_flutter:
path: /path/to/your/font_awesome_flutter
...
Duotone icons require special treatment. Instead of FaIcon
a special class
FaDuotoneIcon
needs to be used. It allows to set the primary and secondary colors
for the icon. If primary and / or secondary color are not defined, they will default
to the standard IconTheme
color. Please be aware that only duotone style icons
can be passed to this class. FaDuotoneIcon
is only available if at least one duotone
icon is available.
FaDuotoneIcon(
FontAwesomeIcons.duotoneAbacus,
primaryColor: Colors.black.withOpacity(.4),
secondaryColor: Colors.black,
);