Skip to content

Typhon0/AnimateFX

Repository files navigation

AnimateFX CI Maven Central javadoc JFXCentral License

AnimateFX

A library of ready-to-use animations for JavaFX

Features:

  • Custom animations
  • Custom interpolators
  • Play/Stop animation
  • Play an animation after another
  • More to come

Installation

Gradle (8.x / 7.x)

plugins {
    id 'java'
    id 'java-library'
}

dependencies {
    implementation 'io.github.typhon0:AnimateFX:1.3.1'
}

Maven

<dependency>
  <groupId>io.github.typhon0</groupId>
  <artifactId>AnimateFX</artifactId>
  <version>1.3.1</version>
</dependency>

Snapshots

Gradle

repositories {
    maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}

dependencies {
    implementation 'io.github.typhon0:AnimateFX:1.3.1-SNAPSHOT'
}

Maven

<repositories>
    <repository>
        <id>snapshots</id>
        <name>libs-snapshot</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>io.github.typhon0</groupId>
        <artifactId>AnimateFX</artifactId>
        <version>1.3.1-SNAPSHOT</version>
    </dependency>
</dependencies>

Compatibility & Environment Support

AnimateFX has been modernized for the latest environments:

  • Build System: Built and compiled using Gradle 8.7 under modern JDK 21 environments.
  • Java Compatibility: Compiled targeting Java 11 (LTS). It is 100% backward compatible and fully supported to run on all modern Java/JavaFX versions, including Java 11, 17, 21, and 25+ LTS.
  • Headless Environments: Completely safe to compile and build on headless or JRE-only runtimes (e.g. Docker containers) lacking native display interfaces.

Quick start

Basic animation play

Text text = new Text("AnimateFX");
new Bounce(text).play();

Chained animations (play one after another)

Text text = new Text("AnimateFX");

// When Bounce finishes naturally, BounceIn will play
new Bounce(text).playOnFinished(new BounceIn(text)).play();

Note

Safety Guarantee: Chained animations are fully manual-stop safe. If you call .stop() on the parent animation (e.g. animation.stop()), the chain will halt completely rather than incorrectly launching subsequent animations.

Lazy initialization and Builders

Ready-to-use animations (including visual modifiers like GlowBackground and GlowText) can be safely instantiated using alternate/parameterless constructors and configured lazily using builder-friendly setters before binding a Node:

GlowBackground glow = new GlowBackground(myRegion.getBackground())
    .setColorA(Color.WHITE)
    .setColorB(Color.YELLOW)
    .setColorSteps(20);

// Set the node later in the UI lifecycle
glow.setNode(myRegion);
glow.play();

Contributing

Please see CONTRIBUTING.md for more information.

Credits

Animations are inspired by the awesome Animate.css project.

About

A library of +70 ready-to-use animations for JavaFX

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors

Languages