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.