I love Material icons. I really do. But, somehow, I suddenly felt tired of them. So I took a look around and found a wonderful set of icons by Icons8. And best of all... for free! (See the Good Boy Licence).
Yeah, what a wonderful world and so on, but, writing down all those nasty codes into Dart constants? No way!
And FlutterIcon just came out of the blue! It made all the dirty work for me.
I started to use this library in my projects, and they really seemed nice. So I asked to myself: why not publishing it for others to enjoy? After all, in all this process, I was indeed assisted by many people who decided not keeping the icons for themselves and helping others with a piece of software they had no need to share with me or anyone else.
So, thank you Icons8 and FlutterIcon!
Well, I just noticed Icons8 added some new icons and released package 1.1.0. This Flutter library needed an update therefore.
Please, report any crashes, since compatibility with previous versions has not been tested. Some icons might have changed their names or be no longer available.
The font
From the font to the class
From the class to the package
Imagine a cross-over: Windows10 style and Awesome inspiration. Well, stop dreaming! You got plenty of beautiful icons to choose from for your Android app (not tested in iOS yet, sorry). I'd rather like this set over Material, and I find much easier to find the icon I'm looking for in Icons8 than in the Material Icons page.
Installing
Include line_icons
in your pubspec.yaml
file:
dependencies:
flutter:
sdk: flutter
line_icons: ^1.1.0
If your IDE doesn't do it automatically, type:
flutter packages get
Using
Import the package in your dart
file and use Icon
to get the actual icon widget:
import 'package:line_icons/line_icons.dart';
...
Icon _icon = Icon(LineIcons.code);
...
Sample
import 'package:flutter/material.dart';
import 'package:line_icons/line_icons.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Line Icons Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Text(
'Awesome Line icons is great! Take a look at the floating action button :)',
),
),
floatingActionButton: FloatingActionButton(
onPressed: () => {},
child: Icon(LineIcons.plus),
),
);
}
}
If you're interested on the code (feel free to modify it anyway you want), you can find it here: https://github.com/galonsos/line_icons