geez_fonts 0.1.0 copy "geez_fonts: ^0.1.0" to clipboard
geez_fonts: ^0.1.0 copied to clipboard

A Flutter package for dynamically loading and using Ethiopic (Ge'ez) fonts from the Geez Archive. Provides 150+ font families with TextStyle and TextTheme support.

geez_fonts #

pub package License: BSD-3-Clause

A Flutter package that enables dynamic loading and usage of Ethiopic (Ge'ez) fonts from the Geez Archive. Provides 150+ font families with full TextStyle and TextTheme support — just like google_fonts, but for Ethiopic typography.

Showcase #

Light Mode Dark Mode

The package dynamically loads and caches professional Ethiopic typography directly from the Geez Archive.

Features #

  • 🔤 150+ Ethiopic font families from the Geez Archive
  • Dynamic loading — fonts are fetched at runtime, no bundling needed
  • 💾 Automatic caching — fonts are cached to disk after first download
  • 🎨 Named static methodsGeezFonts.benaiah(), GeezFonts.adwa(), etc.
  • 📖 TextTheme support — apply any font across your entire theme
  • 🔍 Font lookupGeezFonts.getFont('Adwa') for dynamic font selection
  • ⚙️ Configurable — disable runtime fetching for bundled-only setups

Installation #

dart pub add geez_fonts

Or add to your pubspec.yaml:

dependencies:
  geez_fonts: ^0.1.0

Usage #

Apply a font to a TextStyle #

import 'package:geez_fonts/geez_fonts.dart';

Text(
  'ሰላም ዓለም',
  style: GeezFonts.benaiah(fontSize: 24),
)

Merge with an existing TextStyle #

Text(
  'ሰላም ዓለም',
  style: GeezFonts.adwa(
    textStyle: Theme.of(context).textTheme.headlineMedium,
    color: Colors.amber,
  ),
)

Dynamic font selection #

// Look up a font by name at runtime
final style = GeezFonts.getFont('Brana', fontSize: 18);

Apply a font to an entire TextTheme #

MaterialApp(
  theme: ThemeData(
    textTheme: GeezFonts.benaiahTextTheme(),
  ),
)

Merge with an existing TextTheme #

MaterialApp(
  theme: ThemeData(
    textTheme: GeezFonts.benaiahTextTheme(
      Theme.of(context).textTheme,
    ),
  ),
)

List all available fonts #

final allFonts = GeezFonts.asMap();
print(allFonts.keys.toList()); // ['Benaiah', 'Adwa', 'Brana', ...]

Configuration #

// Disable runtime font fetching (e.g. for offline-only apps)
GeezFonts.config.allowRuntimeFetching = false;

Wait for fonts to load #

// Ensure fonts are loaded before rendering
await GeezFonts.pendingFonts();

Available Fonts #

Browse all available fonts at geezarchive.com. Every font listed there has a corresponding static method on the GeezFonts class — the method name is derived from the font's slug.

How It Works #

  1. When you call GeezFonts.benaiah(), the package returns a TextStyle immediately with the font family set.
  2. In the background, the font file is fetched from the Geez Archive (or loaded from the local cache).
  3. Once loaded, it's registered with Flutter's font engine via FontLoader.
  4. The widget tree rebuilds and the font appears.

Credits #

License #

BSD 3-Clause — see LICENSE for details.

1
likes
160
points
61
downloads
screenshot

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A Flutter package for dynamically loading and using Ethiopic (Ge'ez) fonts from the Geez Archive. Provides 150+ font families with TextStyle and TextTheme support.

Repository (GitHub)
View/report issues

Topics

#fonts #ethiopic #geez #typography

License

BSD-3-Clause (license)

Dependencies

crypto, flutter, http, path, path_provider

More

Packages that depend on geez_fonts