1.0.1 • Published 5 months ago
daicon v1.0.1
Daicon 🎨
A CLI tool to convert SVG icons into Flutter-compatible icon fonts with Dart class definitions.
Features
- 🎯 Converts SVG icons to TTF font format
- ✨ Generates typed Dart class for your icons
- 🔧 Handles SVG optimization automatically
- 🎨 Supports icon colorization through
color
property - 📦 Creates ready-to-use Flutter font package
Installation
Local Installation
- Clone the repository:
git clone https://github.com/leox255/daicon.git
cd daicon
- Install dependencies:
npm install
- Link the package locally:
npm link
Now you can use daicon
command from anywhere in your terminal.
Usage
- Prepare your SVG icons in a directory
- Run the command:
daicon
- Enter the path to your SVG icons folder when prompted
- The tool will generate a new directory with "-flutter" suffix containing:
- A
.ttf
font file in thefonts
directory - A Dart class file with icon definitions
- A
Using with Flutter
- Copy the generated folder to your Flutter project
- Add the font to your
pubspec.yaml
:
flutter:
fonts:
- family: YourIconsName
fonts:
- asset: fonts/YourIconsName.ttf
- Import the icons in your code:
import 'package:your_package/your_icons_name_icons.dart';
- Use the icons in your widgets:
Icon(YourIconsName.icon_name)
Using with FlutterFlow
- Open your FlutterFlow project
- Navigate to Theme Settings (from navigation menu) > Typography & Icons
- Scroll down to the Custom Icons section
- Click on the + Add Icons button
- Click on the Upload Icon File button
- Select and upload the
.ttf
file from the generatedfonts
directory - Click on the Upload Icon Info button
- Select and upload the generated Dart file (e.g.,
YourIconsName_icons.dart
) - Click Add Icons
- To use a custom icon:
- Add the Icon widget to your design
- In the properties panel, scroll to the Icon section
- Click on the selected icon
- Select the Custom Icons tab
- Choose your icon from the list
Requirements
- Node.js 14.0 or higher
- npm or yarn
- Flutter SDK (for using the generated package)
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
MIT