flutter_sketchy_text 1.0.0
flutter_sketchy_text: ^1.0.0 copied to clipboard
Library to create sketchy text. with highlight, underline, strikethrough, circle and rectangle.
Flutter Sketchy Text π¨βοΈ #
Flutter Sketchy Text is a package that lets you add human-like, hand-drawn text animations to your Flutter apps. With effects like highlighting, underlining, circling, and more, you can create dynamic and visually engaging text displays that feel organic and lively.
Live Example:
Here's a live example showcasing the implementation of this package.
πΈ Example Preview #
β¨ Features #
- Sketchy Effects β Highlight, Underline, Strikethrough, Circle, Rectangle, and Cross animations.
- Smooth Hand-Drawn Look β Mimics natural writing with animated strokes.
- Customizable β Control animation speed, color, and delays.
- Lightweight & Easy to Use β Simple API for integration into any Flutter project.
Getting started #
TODO: List prerequisites and provide or point to information on how to start using the package.
π¦ Installation #
Add the package to your pubspec.yaml:
flutter_sketchy_text: latest_version
Run the command:
flutter pub get
Add the package to your pubspec.yaml:
flutter_sketchy_text: latest_version
π Usage #
1οΈβ£ Create a Sketchy Paragraph
Define your text and specify which words to animate:
SketchyModel paragraphModel = SketchyModel(
paragraph: """
## π Introduction
In a world full of possibilities, creativity is the key to unlocking new ideas.
Whether you're working on a **highlighted project**, exploring **underlined concepts**,
experimenting with **circled techniques**, testing **strikethrough effects**,
or tackling **rectangled challenges**, the journey is as important as the destination.
## β Why It Matters
Remember, every **challenge** is an opportunity to grow and learn.
Embrace the process, and let your imagination guide you!
## π Repeated Words Demo
Working on another **highlighted project** can reinforce ideas.
Some **underlined concepts** are worth revisiting.
Even **circled techniques** can evolve over time.
Sometimes, **strikethrough effects** help remove clutter.
Finally, tackling **rectangled challenges** again builds mastery.
""",
highlightSentances: [
/// **π Simple Example (Default Settings)**
/// Highlights "Introduction" with default animation & color.
SketchySentance(text: "Introduction"),
/// **π¨ Highlight Effect (Custom Color + Tap Action)**
/// Click to open the Flutter Sketchy Text package on pub.dev.
SketchySentance(
text: "highlighted project",
sketchyColor: Colors.brown.withValues(alpha: 0.4), // Optional: Default varies.
sketchyType: SketchyType.highlight, // Required: Defines the animation type.
onTap: () => _launchInBrowser(Uri.parse(
'https://pub.dev/packages/flutter_sketchy_text')), // Optional: Adds interactivity.
),
/// **ποΈ Underline Effect**
/// Click to log a message in debug console.
SketchySentance(
text: 'underlined concepts',
sketchyType: SketchyType.underline,
onTap: () => debugPrint('Underlined text clicked!'),
),
/// **β Circle Effect**
/// Click to log a message in debug console.
SketchySentance(
text: 'circled techniques',
sketchyType: SketchyType.circle,
onTap: () => debugPrint('Circled text clicked!'),
),
/// **βοΈ Strikethrough Effect**
/// Click to log a message in debug console.
SketchySentance(
text: 'strikethrough effects',
sketchyType: SketchyType.strikethrough,
onTap: () => debugPrint('Strikethrough text clicked!'),
),
/// **π¦ Rectangle Effect**
/// Click to log a message in debug console.
SketchySentance(
text: 'rectangled challenges',
sketchyType: SketchyType.rectangle,
onTap: () => debugPrint('Rectangled text clicked!'),
),
/// **π¦ Rectangle Effect (Another Example)**
/// Highlights "Matters" with a rectangle effect.
SketchySentance(
text: 'Matters',
sketchyType: SketchyType.rectangle,
onTap: () => debugPrint('Matters clicked!'),
),
],
);
2οΈβ£ Display the Animated Text
Use SketchyParagraph to render the animated text inside your widget tree:
import 'package:flutter/material.dart';
import 'package:flutter_sketchy_text/sketchy_paragraph.dart';
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Flutter Sketchy Text")),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: SketchyParagraph(
paragraph: paragraphModel.paragraph,
highlights: paragraphModel.highlightSentances,
),
),
),
);
}
}
βοΈ Customization #
Each sketchy effect can be customized using the SketchySentance properties:
SketchySentance(
text: 'Flutter is awesome!',
sketchyColor: Colors.purple.withValues(alpha: 0.4), // Custom color
sketchyType: SketchyType.circle, // Choose an effect
startDelay: const Duration(seconds: 3), // Delay before animation starts
duration: const Duration(milliseconds: 500), // Speed of the animation
onTap: () => debugPrint('Flutter is awesome! tapped'), // Action when tapped
),
π€ Contributing #
Want to improve Flutter Sketchy Text? Contributions are welcome!
Steps to Contribute:
- Fork the Repo β Click the βForkβ button on GitHub
- Clone Your Fork β git clone https://github.com/Wahab-Khan/flutter_sketchy_text.git
- Create a Branch β git checkout -b my-feature
- Make Your Changes β Improve animations, fix bugs, or optimize code
- Push Your Changes β git push origin my-feature
- Create a Pull Request β Submit your PR for review
π License #
This project is licensed under the MIT License.
π‘ Enjoy using Flutter Sketchy Text? Give it a β on GitHub! π