The Font Awesome Icon pack available as Flutter Icons
905
stars
309
commits
Dart
primary language
Mar 9, 2026
updated
The free Font Awesome Icon pack available as set of Flutter Icons - based on font awesome version 7.2.0.
This icon pack includes only the free icons offered by Font Awesome out-of-the-box. If you have purchased the pro icons and want to enable support for them, please see the instructions below.
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". Due to restrictions in dart, icons starting with numbers have those numbers written out.
| 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 |
| 1 | FontAwesomeIcons.solidOne | solid |
View the Flutter app in the example directory to see all the available FontAwesomeIcons.
We supply a configurator tool to assist you with common customizations to this package.
All options are interoperable.
By default, if run without arguments and no icons.json in lib/fonts exists, it updates all icons to the
newest free version of font awesome.
To use your custom version, you must first clone this repository
to a location of your choice and run flutter pub get inside. This installs all dependencies.
The configurator is located in the util folder and can be started by running configurator.bat on Windows, or
./configurator.sh on linux and mac. All following examples use the .sh version, but work same for .bat.
(If on windows, omit the ./ or replace it with .\.)
An overview of available options can be viewed with ./configurator.sh --help.
To use your customized version in an app, go to the app's pubspec.yaml and add a dependency for
font_awesome_flutter: '>= 4.7.0'. Then override the dependency's location:
dependencies:
font_awesome_flutter: '>= 4.7.0'
...
dependency_overrides:
font_awesome_flutter:
path: path/to/your/font_awesome_flutter
...
:exclamation: 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.
.otf files from the otfs directory and icons.json from metadata to
path/to/your/font_awesome_flutter/lib/fonts. Replace existing files.
icon-families.json. If this is the case,
move its contents to path/to/your/font_awesome_flutter/lib/fonts/icons.json.It may be required to run flutter clean in apps who use this version for changes to appear.
One or more styles can be excluded from all generation processes by passing them with the --exclude option:
$ ./configurator.sh --exclude solid
$ ./configurator.sh --exclude solid,brands
See the optimizations and dynamic icon retrieval by name sections for more information as to why it makes sense for your app.
Probably the most requested feature after support for pro icons is the ability to retrieve an icon by their name.
This was previously not possible, because a mapping from name to icon would break all
discussed optimizations. Please bear in mind that this is still the case.
As all icons could theoretically be requested, none can be removed by flutter. It is strongly advised to only use this
option in conjunction with a limited set of styles and with as few of them as possible. You may
need to build your app with the --no-tree-shake-icons flag for it to succeed.
Using the configurator tool, this is now an optional feature. Run the tool with the --dynamic flag to generate...
$ ./configurator.sh --dynamic
...and use the following import to access the map. For normal icons, use
faIconNameMapping with a key of this format: 'style icon-name'.
import 'package:font_awesome_flutter/name_icon_mapping.dart';
...
FaIcon(faIconNameMapping['solid abacus']);
...
To exclude unused styles combine the configurator options:
$ ./configurator.sh --dynamic --exclude solid
A common use case also includes fetching css classes from a server. The utility function getIconFromCss() takes a
string of classes and returns the icon which would be shown by a browser:
getIconFromCss('far custom-class fa-abacus'); // returns the abacus icon in regular style. custom-class is ignored
Duotone support has been discontinued after font awesome changed the way they lay out the icon glyphs inside the font's file. The new way using ligatures is not supported by flutter at the moment.
For more information on why duotone icon support was discontinued, see this comment.
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 to only include the used icons and "solid" and "brands" will stay in their raw, complete form. This issue is being tracked over in the flutter repository.
However, using the configurator, you can easily exclude styles from the package. For more information, see customizing font awesome flutter
Please try:
flutter clean in your app directoryPlease ensure you are using Flutter 1.14.6 beta or newer!
Either give the execute permission to util/configurator.sh with $ chmod +x configurator.sh or run the commands by prepending an sh:
$ sh ./configurator.sh
Dart
99.7%
The Font Awesome Icon pack available as Flutter Icons
905
stars
309
commits
Dart
primary language
Mar 9, 2026
updated
The free Font Awesome Icon pack available as set of Flutter Icons - based on font awesome version 7.2.0.
This icon pack includes only the free icons offered by Font Awesome out-of-the-box. If you have purchased the pro icons and want to enable support for them, please see the instructions below.
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". Due to restrictions in dart, icons starting with numbers have those numbers written out.
| 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 |
| 1 | FontAwesomeIcons.solidOne | solid |
View the Flutter app in the example directory to see all the available FontAwesomeIcons.
We supply a configurator tool to assist you with common customizations to this package.
All options are interoperable.
By default, if run without arguments and no icons.json in lib/fonts exists, it updates all icons to the
newest free version of font awesome.
To use your custom version, you must first clone this repository
to a location of your choice and run flutter pub get inside. This installs all dependencies.
The configurator is located in the util folder and can be started by running configurator.bat on Windows, or
./configurator.sh on linux and mac. All following examples use the .sh version, but work same for .bat.
(If on windows, omit the ./ or replace it with .\.)
An overview of available options can be viewed with ./configurator.sh --help.
To use your customized version in an app, go to the app's pubspec.yaml and add a dependency for
font_awesome_flutter: '>= 4.7.0'. Then override the dependency's location:
dependencies:
font_awesome_flutter: '>= 4.7.0'
...
dependency_overrides:
font_awesome_flutter:
path: path/to/your/font_awesome_flutter
...
:exclamation: 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.
.otf files from the otfs directory and icons.json from metadata to
path/to/your/font_awesome_flutter/lib/fonts. Replace existing files.
icon-families.json. If this is the case,
move its contents to path/to/your/font_awesome_flutter/lib/fonts/icons.json.It may be required to run flutter clean in apps who use this version for changes to appear.
One or more styles can be excluded from all generation processes by passing them with the --exclude option:
$ ./configurator.sh --exclude solid
$ ./configurator.sh --exclude solid,brands
See the optimizations and dynamic icon retrieval by name sections for more information as to why it makes sense for your app.
Probably the most requested feature after support for pro icons is the ability to retrieve an icon by their name.
This was previously not possible, because a mapping from name to icon would break all
discussed optimizations. Please bear in mind that this is still the case.
As all icons could theoretically be requested, none can be removed by flutter. It is strongly advised to only use this
option in conjunction with a limited set of styles and with as few of them as possible. You may
need to build your app with the --no-tree-shake-icons flag for it to succeed.
Using the configurator tool, this is now an optional feature. Run the tool with the --dynamic flag to generate...
$ ./configurator.sh --dynamic
...and use the following import to access the map. For normal icons, use
faIconNameMapping with a key of this format: 'style icon-name'.
import 'package:font_awesome_flutter/name_icon_mapping.dart';
...
FaIcon(faIconNameMapping['solid abacus']);
...
To exclude unused styles combine the configurator options:
$ ./configurator.sh --dynamic --exclude solid
A common use case also includes fetching css classes from a server. The utility function getIconFromCss() takes a
string of classes and returns the icon which would be shown by a browser:
getIconFromCss('far custom-class fa-abacus'); // returns the abacus icon in regular style. custom-class is ignored
Duotone support has been discontinued after font awesome changed the way they lay out the icon glyphs inside the font's file. The new way using ligatures is not supported by flutter at the moment.
For more information on why duotone icon support was discontinued, see this comment.
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 to only include the used icons and "solid" and "brands" will stay in their raw, complete form. This issue is being tracked over in the flutter repository.
However, using the configurator, you can easily exclude styles from the package. For more information, see customizing font awesome flutter
Please try:
flutter clean in your app directoryPlease ensure you are using Flutter 1.14.6 beta or newer!
Either give the execute permission to util/configurator.sh with $ chmod +x configurator.sh or run the commands by prepending an sh:
$ sh ./configurator.sh
Dart
99.7%