morphing_text 1.0.1 morphing_text: ^1.0.1 copied to clipboard
Text animations inspired by https://github.com/lexrus/LTMorphingLabel
Morphing Text #
It is a collection of text animations inspired by LTMorphingLabel.
Animations #
ScaleMorphingText #
ScaleMorphingText(
texts: text,
loopForever: true,
onComplete: () {},
textStyle: TextStyle(fontSize: 40.0),
),
EvaporateMorphingText #
EvaporateMorphingText(
texts: text,
loopForever: true,
onComplete: () {},
yDisplacement: 1.2, // To factor of y-displacement
textStyle: TextStyle(fontSize: 40.0),
),
All Parameters #
Type | Parameter | Description | Default |
---|---|---|---|
List<String> |
texts | List of String which will show the text |
- |
TextStyle |
textStyle | Styling of texts | DefaultTextStyle |
Duration |
speed | Define the speed of changing of each text | 500 milliseconds |
Duration |
pause | Define the pause between each transition | 1500 milliseconds |
bool |
loopForever | When true animations will repeat indefinitely |
false |
int |
loopCount | Number of time animation will repeat itself | 1 |
void |
onComplete | When loopCount is completed it is called |
- |
Curve |
fadeInCurve | Curve which controls opacity from 0 to 1 | Curves.easeInExpo |
Curve |
fadeOutCurve | Curve which controls opacity from 1 to 0 | Curves.easeOut |
Curve |
progressCurve | Curve which controls movement of text and scale changes | Curves.easeIn |
Changing Curves is purely experimental, select proper curves as per your need or leave them at default
Making custom animations #
- To make custom animations extend your class with
MorphingText
class CustomFooMorphingText extends MorphingText {
...
}
- Override
incomingText
andoutgoingText
methods to animate entry of next and exit of previous text respectively and passtext
,textStyle
andprogress
to super.
class CustomFooMorphingText extends MorphingText {
CustomFooMorphingText(
String text,
TextStyle textStyle,
double progress,
) : super(text, textStyle, progress);
@override
TextProperties morphingText(TextProperties textProperties) {
// Optional to change the motion of moving text
}
@override
TextProperties incomingText(TextProperties textProperties) {
// Write you logic for next text
}
@override
TextProperties outgoingText(TextProperties textProperties) {
// Write you logic for leaving text
}
}
- Pass your custom animation to
CustomMorphingText
in build method.
CustomMorphingText(
morphingText: CustomFooMorphingText(
texts[index],
DefaultTextStyle.of(context).style.merge(widget.textStyle),
_progress.value,
),
);
- For example you can see implementation of
CustomScaleMorphingText
on github
Want to Contribute? #
A help is always welcomed, check our CONTRIBUTING.md