noto_3d_emoji 1.0.1
noto_3d_emoji: ^1.0.1 copied to clipboard
Google Noto 3D Emoji for Flutter. Downloads and caches the latest Noto Color Emoji font from a custom server.
noto_3d_emoji #
Google Noto 3D Color Emoji for Flutter.
Downloads and caches the latest Noto Color Emoji font from your own server, then renders emoji in your app with the 3D look.

Usage #
import 'package:noto_3d_emoji/noto_3d_emoji.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await NotoEmoji.initialize(
url: 'https://your-server.com/NotoColorEmoji_vector.ttf',
onProgress: (received, total) {
print('$received / $total');
},
);
runApp(const MyApp());
}
Then use EmojiText anywhere:
EmojiText('Hello 🌍! This 🔥 is amazing 🎉')

How it works #
- The TTF file is downloaded once from your server and cached locally.
NotoEmoji.initialize()registers the font with Flutter's font system.EmojiTextusesfontFamilyFallbackso only emoji glyphs use the 3D font, while regular text keeps your app's default look.

API #
NotoEmoji.initialize() #
Downloads and registers the font. Must be called before using EmojiText.
| Parameter | Type | Description |
|---|---|---|
url |
String |
URL to the .ttf file |
fontFamily |
String |
Font family name (default: NotoEmoji3D) |
onProgress |
(int,int)? |
Download progress callback |
cacheDirProvider |
String? Function()? |
Custom cache directory |
NotoEmoji.clearCache() #
Deletes the cached font file. Next initialize() call will re-download.
EmojiText #
A drop-in replacement for Text with emoji font fallback.

EmojiTextRich #
A drop-in replacement for Text.rich with emoji font fallback.

Platform support #
| Platform | COLR font support |
|---|---|
| Android 13+ | Full color |
| Android 8–12 | Limited (may render outline) |
| Web (Chrome 98+, Firefox 107+, Safari 15.4+) | Full color |
| Linux | Full color (with modern freetype) |
| macOS / iOS | ⚠️ No COLR support — emoji render as outlines |
License #
Code: MIT
Font: SIL Open Font License 1.1 (Google Noto Emoji)