Obra Icons for Flutter
1,047 consistent, beautifully crafted UI icons — usable with the native Icon() widget.
Obra Icons packaged as a Flutter icon font.
Obra Icons is a set of open-source, neutral-style system symbols for designers and
developers. Every icon is crafted on a consistent grid so the whole set shares the
same readability, weight, and pixel precision. This package ships them as a single
TTF font plus type-safe IconData constants — so you use them exactly like Flutter's
built-in Icons, with full support for size, color, and theming.
All icons are free for both personal and commercial use. Browse the full set →
Features
- 1,047 icons spanning UI, files, finance, media, devices, weather, food and more.
- Native
Icon()widget — works withsize,color,IconButton,IconTheme, etc. - Type-safe constants — autocompletion via
ObraIcons.academic_cap. - Dynamic lookup — resolve any icon by its original name with
ObraIcons.byName. - Full catalog — iterate
ObraIcons.allto build pickers and galleries. - Single font asset — no platform channels, no native dependencies.
- MIT licensed.
Installation
Add the dependency in your pubspec.yaml:
dependencies:
obra_icons: ^1.0.0
Then fetch it:
flutter pub get
Import it where you need it:
import 'package:obra_icons/obra_icons.dart';
Usage
Basic
import 'package:flutter/material.dart';
import 'package:obra_icons/obra_icons.dart';
Icon(ObraIcons.academic_cap, size: 24, color: Colors.blue);
In a button
IconButton(
icon: const Icon(ObraIcons.add),
onPressed: () => print('tapped'),
);
Look up an icon by its original name
Names use the original kebab-case keys from icons.obra.studio:
final IconData? icon = ObraIcons.byName['academic-cap'];
Iterate every icon (e.g. for a picker or gallery)
for (final IconData iconData in ObraIcons.all) {
// build a grid tile, etc.
}
API
| Member | Type | Description |
|---|---|---|
ObraIcons.<name> |
IconData |
A const icon, e.g. ObraIcons.academic_cap. |
ObraIcons.byName |
Map<String, IconData> |
Lookup by original kebab-case name, e.g. 'academic-cap'. |
ObraIcons.all |
List<IconData> |
Every icon, for building pickers and galleries. |
ObraIcons.fontFamily |
String |
The font family name ('ObraIcons'). |
ObraIcons.fontPackage |
String |
The owning package ('obra_icons'). |
Note: A few upstream names are Dart reserved words and are prefixed with
icon_in the constant API (e.g.export→ObraIcons.icon_export,function,switch). Their original names remain unchanged inObraIcons.byName.
Example
A searchable, tap-to-copy gallery of the full icon set lives in example/:
cd example
flutter run
Regenerating the font
The font and Dart bindings are generated from the upstream
Obra Icons SVGs. See
tool/README.md for the pipeline (download → expand strokes →
build TTF → emit Dart).
License
Released under the MIT License. Icon artwork © Obra Studio.
