reicons
Reicon icon font for Flutter — 2,600+ precision-crafted, open-source SVG icons in Outline and Filled weights, bundled as a single icon font (.ttf) with generated Dart constants.
| Weight | Icons | Dart class | Example |
|---|---|---|---|
| Outline | 2676 | ReiconIcons |
Icon(ReiconIcons.home) |
| Filled | 2676 | ReiconFilledIcons |
Icon(ReiconFilledIcons.home) |
Install
Add to your pubspec.yaml:
dependencies:
reicons: ^2.0.0
Then run:
flutter pub get
Usage
import 'package:reicons/reicons.dart';
Outline icons (default)
Icon(ReiconIcons.home)
Icon(ReiconIcons.arrowDown2)
Icon(ReiconIcons.settings)
Filled icons
Icon(ReiconFilledIcons.home)
Icon(ReiconFilledIcons.arrowDown2)
Icon(ReiconFilledIcons.settings)
With custom size and color
Icon(
ReiconIcons.star,
size: 32,
color: Colors.amber,
)
In a widget tree
Row(
children: [
Icon(ReiconIcons.heart),
SizedBox(width: 8),
Text("Like"),
IconButton(
icon: Icon(ReiconFilledIcons.heart),
onPressed: () {},
),
],
)
Icon naming conventions
All icon names use camelCase:
| Original (kebab) | Dart constant |
|---|---|
arrow-down2 |
ReiconIcons.arrowDown2 |
align-h-center |
ReiconIcons.alignHCenter |
user-circle |
ReiconIcons.userCircle |
A name starting with a digit would be prefixed with i (3d-box → i3dBox).
A few names appear in two reicon.dev categories with different artwork. The
second one gets its category appended, e.g. arrow-down2 in newicons →
ReiconIcons.arrowDown2Newicons.
Upgrading from 1.x? See MIGRATION.md for every renamed icon.
Finding icons
Browse all icons at reicon.dev/icons. The Dart constant name follows the same kebab→camelCase conversion shown above.
You can also search icons locally by browsing the generated constants — any IDE with
autocomplete will show all options after typing ReiconIcons..
Package structure
reicons/
├── pubspec.yaml
├── LICENSE
├── README.md
├── CHANGELOG.md
├── .pubignore
├── example/
│ ├── pubspec.yaml
│ ├── lib/
│ │ └── main.dart # example Flutter app
│ └── test/
│ └── widget_test.dart
├── lib/
│ ├── fonts/
│ │ └── Reicon.ttf # the icon font (all 5352 glyphs)
│ └── reicons.dart # generated Dart constants
└── tool/
├── __init__.py
├── fetch_icons.py # downloads source data from GitHub
├── icon-data.json # vendored source (9 MB, not published)
├── build_font.py # regenerates .ttf + .dart from JSON
└── check_render.py # compares every glyph with its source SVG
Building from source (maintainers only)
Regular users don't need this. The font and Dart constants are pre-built.
Just add reicons to your pubspec.yaml and run flutter pub get.
If you want to regenerate the font from the latest icon data:
pip install fonttools picosvg skia-pathops
python tool/fetch_icons.py --force
python tool/build_font.py
This produces lib/fonts/Reicon.ttf and lib/reicons.dart.
Before publishing, check that every glyph still renders like its source SVG:
pip install skia-python numpy pillow
python tool/check_render.py
It rasterizes each icon from the SVG and from the font, and exits non-zero
listing any icon whose shapes differ (missing parts, circles drawn as rounded
squares, filled-in holes). Pass --sheet failures.png to get a side-by-side
image of the failing icons. loader is allowlisted because it uses opacity,
which a single-color font cannot represent.
Credits
Reicon Icons
All icons are from reicon.dev — a free, open-source SVG icon library with 2,600+ handcrafted, pixel-perfect icons. Licensed under MIT.
This package
- Font generation pipeline using
picosvg,skia-pathopsandfonttools(Python) - Dart constant binding generated by
tool/build_font.py
Maintainer
This Flutter package is maintained by Azaj.
License
MIT — same as Reicon icons. See LICENSE.