File Details
3.5.7
- R
- Mar 7, 2026
- 1.64 MB
- 81
- 12.0.1+5
- Retail + 2
File Name
LibAnimate-3.5.7.zip
Supported Versions
- 12.0.1
- 12.0.0
- 11.2.7
- 5.5.3
- 5.5.2
- 2.5.5
# LibAnimate
## [3.5.7](https://github.com/DragonAddons/LibAnimate/tree/3.5.7) (2026-03-07)
[Full Changelog](https://github.com/DragonAddons/LibAnimate/compare/3.5.6...3.5.7) [Previous Releases](https://github.com/DragonAddons/LibAnimate/releases)
- fix: only animate properties defined by keyframes (#58)
## Summary
Animations that don't define scale or translate keyframes (e.g.
`fadeIn`/`fadeOut`) no longer override the frame's existing scale or
position. This fixes visible "jumping" when frames have a
user-configured scale other than 1.0.
## Problem
`ApplyToFrame` unconditionally called `SetScale(sc)`,
`ClearAllPoints()+SetPoint()`, and `SetAlpha(al)` every animation tick.
For animations without scale keyframes, `sc` defaulted to 1.0 via
`PROPERTY_DEFAULTS`, forcing the frame to scale 1.0 regardless of its
configured scale. On animation completion, `onFinished` callbacks would
restore the correct scale - causing a visible snap.
Same issue with translate: alpha-only animations unnecessarily
repositioned the frame every tick.
## Changes
- **Keyframe introspection**: `Animate()` now scans keyframes to
determine which properties the animation defines (`hasScale`,
`hasTranslate`)
- **Conditional application**: `ApplyToFrame` only sets translate/scale
when the animation defines those properties
- **Relative scale**: Scale is now applied as `sc * originalScale`
instead of absolute `sc`. A keyframe `scale=0.3` means "30% of
original", `scale=1.0` means "back to original"
- **Conditional restore**: `Stop()` only restores properties that were
animated
- Alpha remains always animated for backward compatibility (slide
animations rely on default alpha=1.0)
## Backward Compatibility
| Animation type | hasScale | hasTranslate | Behavior |
|---|---|---|---|
| fadeIn/fadeOut | false | false | Only alpha. Scale and position
untouched. |
| slideInRight/moveUp | false | true | Position + alpha. Scale
untouched. |
| zoomIn/bounceIn | true | false | Scale (relative) + alpha. Position
untouched. |
| zoomInLeft/backInRight | true | true | All three properties animated.
|
No breaking changes for existing consumers.

