Class Beat


public class Beat extends Animation
A looping animation that scales an element up and back, creating a heartbeat effect.

By default, the element scales to 1.25x at the midpoint and returns to normal size. The scale factor can be customized with setScale(float).

Usage:


 // Default beat animation
 icon.animate(new Beat());

 // Beat with larger scale
 icon.animate(new Beat().setScale(1.5f));
 
Since:
2026
Version:
1.0
Author:
Marvin P. Warble Jr.
See Also:
  • Constructor Details

    • Beat

      public Beat()
      Constructs a Beat animation with default scale (1.25) and speed 1 (1000ms).
  • Method Details

    • setScale

      public Beat setScale(float scale)
      Sets the maximum scale factor for the beat effect.
      Parameters:
      scale - the scale factor at the peak of the beat (e.g., 1.25 for 125%)
      Returns:
      this Beat for method chaining
    • getScale

      public float getScale()
      Returns the maximum scale factor.
      Returns:
      the scale factor
    • getKeyFramesId

      public String getKeyFramesId()
      Returns the unique ID for this animation's keyframes style element.

      This ID is used to deduplicate keyframe injection into the page head. Subclasses with configurable keyframes (e.g., Beat with a custom scale) should return a unique ID per configuration to avoid collisions.

      Specified by:
      getKeyFramesId in class Animation
      Returns:
      the keyframes style element ID
    • createKeyFrames

      public KeyFrames createKeyFrames()
      Creates the @keyframes definition for this animation.
      Specified by:
      createKeyFrames in class Animation
      Returns:
      a KeyFrames object defining the animation sequence
    • getDefaultTimingFunction

      protected AnimationTimingFunction getDefaultTimingFunction()
      Returns the default timing function for this animation.

      Each animation subclass provides its own default timing function. For custom cubic-bezier or steps timing, override Animation.getTimingFunctionValue() instead.

      Specified by:
      getDefaultTimingFunction in class Animation
      Returns:
      the default timing function, or null if Animation.getTimingFunctionValue() provides a custom value