zeba_academy_text_effects 1.0.0
zeba_academy_text_effects: ^1.0.0 copied to clipboard
Beautiful animated text effects for Flutter including typewriter, wave, rainbow, and scramble animations.
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.