ethiopic_typography library
Drop-in bilingual (English/Amharic) Flutter theming with the Manrope + Noto Sans Ethiopic font pairing.
Latin text renders in Manrope; Ge'ez script automatically falls back to Noto Sans Ethiopic — no per-widget font handling required. Both families are bundled with this package as variable fonts (SIL Open Font License 1.1), so the pairing works fully offline with no runtime font fetching.
import 'package:ethiopic_typography/ethiopic_typography.dart';
MaterialApp(
theme: ethioAppTheme(seedColor: Colors.green),
darkTheme: ethioDarkAppTheme(seedColor: Colors.green),
themeMode: ThemeMode.system,
home: const Text('Welcome — እንኳን ደህና መጡ'),
);
Classes
- EthioFonts
- Low-level font helpers that combine Manrope (Latin) with Noto Sans Ethiopic (Ge'ez script) into a single TextStyle with automatic per-glyph fallback.
- EthioTextTheme
- Builds bilingual TextThemes using the fixed Manrope + Noto Sans Ethiopic pairing.
- EthioTextWeights
- Optional per-role weight overrides for an EthioTextTheme. Any field left null keeps the Material default weight for that role.
Functions
-
ethioAppTheme(
{Color seedColor = const Color(0xFF117A3D), Brightness brightness = Brightness.light, double textScale = 1.0, EthioTextWeights weights = const EthioTextWeights(), ColorScheme? colorScheme}) → ThemeData - One-call bilingual ThemeData builders using the fixed Manrope + Noto Sans Ethiopic pairing.
-
ethioDarkAppTheme(
{Color seedColor = const Color(0xFF117A3D), double textScale = 1.0, EthioTextWeights weights = const EthioTextWeights(), ColorScheme? colorScheme}) → ThemeData -
Convenience for a dark bilingual theme; equivalent to calling
ethioAppTheme with
brightness: Brightness.dark.