Zeba Academy Text Effects
A collection of beautiful, customizable, and dependency-free animated text effects for Flutter.
zeba_academy_text_effects provides ready-to-use text animations including:
- Typewriter text
- Wave text
- Rainbow gradient text
- Scramble text
Built with pure Flutter and designed to be simple, lightweight, and easy to integrate into any application.
โจ Features
- ๐ฌ Typewriter text animation
- ๐ Wave animation for individual characters
- ๐ Animated rainbow gradient text
- ๐ค Scramble and reveal text animation
- ๐ Optional looping support
- ๐จ Fully customizable styling
- โก Lightweight and dependency-free
- ๐งฉ Null safety support
- ๐ฑ Works across Flutter platforms
- ๐ ๏ธ Built entirely with Flutter SDK widgets
- ๐ฆ No external runtime dependencies
๐ฆ Installation
Add the package to your pubspec.yaml:
dependencies:
zeba_academy_text_effects: ^1.0.0
Then run:
flutter pub get
Import the package:
import 'package:zeba_academy_text_effects/zeba_academy_text_effects.dart';
๐ฌ Typewriter Text
The TypewriterText widget reveals text one character at a time.
Basic Usage
const TypewriterText(
'Welcome to Zeba Academy',
)
Customized Typewriter
TypewriterText(
'Building beautiful Flutter apps',
duration: const Duration(milliseconds: 80),
cursor: '_',
showCursor: true,
style: const TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
),
)
Looping Typewriter
TypewriterText(
'This text keeps typing',
duration: const Duration(milliseconds: 70),
loop: true,
loopDelay: const Duration(seconds: 2),
)
Typewriter Callback
TypewriterText(
'Animation completed',
onComplete: () {
debugPrint('Typewriter animation completed');
},
)
Typewriter Properties
| Property | Type | Default | Description |
|---|---|---|---|
text |
String |
Required | Text to animate |
duration |
Duration |
70 ms | Delay between characters |
startDelay |
Duration |
Zero | Delay before animation starts |
loop |
bool |
false |
Restarts after completion |
loopDelay |
Duration |
1 second | Delay before looping |
cursor |
String |
| |
Cursor displayed during animation |
showCursor |
bool |
true |
Shows or hides cursor |
onComplete |
VoidCallback? |
null |
Completion callback |
style |
TextStyle? |
null |
Text styling |
๐ Wave Text
WaveText animates individual characters vertically to create a continuous wave effect.
Basic Usage
const WaveText(
'WAVE TEXT',
)
Customized Wave
WaveText(
'Flutter Animation',
amplitude: 12,
speed: const Duration(milliseconds: 1200),
spacing: 0.7,
style: const TextStyle(
fontSize: 32,
fontWeight: FontWeight.bold,
),
)
Reverse Wave Direction
WaveText(
'RIGHT TO LEFT',
direction: WaveDirection.rightToLeft,
)
Wave Properties
| Property | Type | Default | Description |
|---|---|---|---|
text |
String |
Required | Text to animate |
amplitude |
double |
8 |
Vertical movement amount |
speed |
Duration |
900 ms | Complete wave cycle duration |
spacing |
double |
0.6 |
Phase difference between characters |
direction |
WaveDirection |
leftToRight |
Wave movement direction |
style |
TextStyle? |
null |
Text styling |
textAlign |
TextAlign? |
null |
Text alignment |
๐ Rainbow Text
RainbowText applies an animated rainbow gradient to text.
Basic Usage
const RainbowText(
'RAINBOW TEXT',
)
Customized Rainbow
RainbowText(
'COLORFUL FLUTTER',
duration: const Duration(seconds: 4),
style: const TextStyle(
fontSize: 36,
fontWeight: FontWeight.bold,
),
)
Custom Colors
RainbowText(
'CUSTOM GRADIENT',
colors: const [
Colors.cyan,
Colors.blue,
Colors.purple,
],
)
Reverse Animation
RainbowText(
'REVERSE RAINBOW',
mode: RainbowAnimationMode.reverse,
)
Rainbow Properties
| Property | Type | Default | Description |
|---|---|---|---|
text |
String |
Required | Text to display |
duration |
Duration |
3 seconds | Animation duration |
colors |
List<Color> |
Rainbow colors | Gradient colors |
mode |
RainbowAnimationMode |
continuous |
Animation mode |
style |
TextStyle? |
null |
Text styling |
textAlign |
TextAlign? |
null |
Text alignment |
๐ค Scramble Text
ScrambleText displays random characters before progressively revealing the final text.
This effect is useful for:
- Tech interfaces
- Cyberpunk designs
- Loading states
- Gaming interfaces
- Developer portfolios
- Digital dashboards
Basic Usage
const ScrambleText(
'HELLO WORLD',
)
Customized Scramble Animation
ScrambleText(
'INITIALIZING SYSTEM',
duration: const Duration(milliseconds: 50),
revealDuration: const Duration(seconds: 2),
style: const TextStyle(
fontSize: 28,
fontWeight: FontWeight.bold,
letterSpacing: 2,
),
)
Custom Scramble Characters
ScrambleText(
'ACCESS GRANTED',
characters: '01',
)
Looping Scramble Animation
ScrambleText(
'SYSTEM ONLINE',
loop: true,
loopDelay: const Duration(seconds: 2),
)
Scramble Completion Callback
ScrambleText(
'ANIMATION COMPLETE',
onComplete: () {
debugPrint('Scramble animation completed');
},
)
Scramble Properties
| Property | Type | Default | Description |
|---|---|---|---|
text |
String |
Required | Final text |
duration |
Duration |
50 ms | Time between scramble frames |
revealDuration |
Duration |
1200 ms | Total reveal duration |
characters |
String |
Alphanumeric | Characters used during scrambling |
mode |
ScrambleMode |
reveal |
Scramble behavior |
loop |
bool |
false |
Restarts animation |
loopDelay |
Duration |
1 second | Delay before restarting |
onComplete |
VoidCallback? |
null |
Completion callback |
style |
TextStyle? |
null |
Text styling |
๐งฉ Complete Example
import 'package:flutter/material.dart';
import 'package:zeba_academy_text_effects/zeba_academy_text_effects.dart';
class TextEffectsExample extends StatelessWidget {
const TextEffectsExample({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Text Effects'),
),
body: ListView(
padding: const EdgeInsets.all(24),
children: [
const TypewriterText(
'Welcome to Zeba Academy',
duration: Duration(milliseconds: 80),
),
const SizedBox(height: 40),
const WaveText(
'WAVE EFFECT',
amplitude: 10,
),
const SizedBox(height: 40),
const RainbowText(
'RAINBOW EFFECT',
),
const SizedBox(height: 40),
const ScrambleText(
'SCRAMBLE EFFECT',
revealDuration: Duration(seconds: 2),
),
],
),
);
}
}
๐ ๏ธ Supported Platforms
This package is designed for Flutter applications running on:
- โ Android
- โ iOS
- โ Web
- โ Windows
- โ macOS
- โ Linux
โก Performance
The package is designed with performance in mind:
- Uses Flutter's built-in animation system
- Avoids external dependencies
- Uses
AnimationControllerfor continuous effects - Properly disposes animation controllers and timers
- Supports Flutter's null safety
- Keeps the public API simple and lightweight
For best performance, avoid rendering a very large number of continuously animated text widgets simultaneously.
๐งช Testing
Run static analysis:
flutter analyze
Run tests:
flutter test
Validate the package before publishing:
flutter pub publish --dry-run
๐ API Overview
Widgets
TypewriterTextWaveTextRainbowTextScrambleText
Enums
WaveDirectionRainbowAnimationModeScrambleMode
๐ค Contributing
Contributions are welcome!
To contribute:
- Fork the repository.
- Create a feature branch.
- Make your changes.
- Add or update tests.
- Run:
flutter analyze
flutter test
- Create a pull request.
Please ensure that your contribution follows the existing code style and maintains compatibility with supported Flutter versions.
๐ License
Copyright ยฉ 2026 Sufyan bin Uzayr.
This project is licensed under the GNU General Public License v3.0 (GPL-3.0).
You are free to:
- Use the software
- Study the source code
- Modify the software
- Share the software
- Distribute modified versions
Any distributed modified version must also be licensed under the GNU GPL v3.0.
See the LICENSE file for the complete license text.
About Me
โจ Iโm Sufyan bin Uzayr, an open-source developer passionate about building and sharing meaningful projects.
You can learn more about me and my work at sufyanism.com or connect with me on LinkedIn.
Your All-in-One Learning Hub!
๐ Explore courses and resources in coding, tech, and development at zeba.academy and code.zeba.academy.
Empower yourself with practical skills through curated tutorials, real-world projects, and hands-on experience. Level up your tech game today! ๐ปโจ
Zeba Academy is a learning platform dedicated to coding, technology, and development.
โก๏ธ Visit our main site: zeba.academy
โก๏ธ Explore hands-on courses and resources at: code.zeba.academy
โก๏ธ Check out our YouTube for more tutorials: zeba.academy
โก๏ธ Follow us on Instagram: zeba.academy
Thank you for visiting! ๐
If this package helps you build something beautiful, consider giving it a โญ on GitHub and sharing it with the Flutter community.