Animations
Keyframe animation utilities — 30+ named animations, modifiers (duration, delay, easing, iteration, direction, fill, play-state), hover triggers, attention seekers, loading states, and scroll-triggered animations. Click any demo box to replay.
Base usage
Apply any .lp-animate-{name} class to play the animation. Click to replay.
Fade
Slide
Scale & Zoom
Bounce, Shake & Wobble
Pulse, Heartbeat, Flash & Blink
Spin & Flip
Expressive (swing, jello, tada, rubber-band, float, glow)
Duration modifiers
Combine any animation with .lp-animate-duration-{100..3000} or named .lp-animate-{faster|fast|normal|slow|slower}. Click to replay.
Delay modifiers
Stagger animations with .lp-animate-delay-{100..2000}. Click any to replay the full stagger.
Easing modifiers
Override timing with .lp-animate-{ease|ease-in|ease-out|ease-in-out|linear|bounce-ease|elastic|spring}.
Iteration, direction, fill & play-state
Hover animate triggers
Hover any box — animations play without JS.
Hover transforms
Attention seekers (infinite)
Loading states
Scroll-triggered
Add data-lp-component="animate-on-scroll" to any element with a .lp-scroll-fade-in-* class. Element fades in when it enters the viewport.
CSS Reference
| Class | Description |
|---|---|
.lp-animate-fade-{in|out|in-up|in-down|in-left|in-right} | Fade animations |
.lp-animate-slide-{in|out}-{up|down|left|right} | Slide animations |
.lp-animate-{scale-in|scale-out|scale-up|scale-down|zoom-in|zoom-out} | Scale/zoom |
.lp-animate-{bounce|bounce-in|bounce-out} | Bounce family |
.lp-animate-{shake|shake-horizontal|shake-vertical} | Shake family |
.lp-animate-{pulse|pulse-ring|heartbeat} | Pulse family (infinite) |
.lp-animate-{spin|spin-reverse} | Spin (infinite) |
.lp-animate-{flip-x|flip-y} | 3D flip |
.lp-animate-{swing|wobble|jello|tada|rubber-band|flash|blink|float|glow} | Expressive |
.lp-animate-duration-{100..3000} / .lp-animate-{faster|fast|normal|slow|slower} | Duration override |
.lp-animate-delay-{100..2000} | Animation delay |
.lp-animate-{ease|ease-in|ease-out|ease-in-out|linear|bounce-ease|elastic|spring} | Timing function |
.lp-animate-{once|twice|thrice|infinite} | Iteration count |
.lp-animate-direction-{normal|reverse|alternate|alternate-reverse} | Direction |
.lp-animate-fill-{none|forwards|backwards|both} | Fill mode |
.lp-animate-{running|paused} / .lp-animate-pause-hover | Play state |
.lp-hover-animate-{pulse|bounce|shake|swing|wobble|jello|tada|rubber-band|heartbeat|float} | Hover triggers |
.lp-hover-{scale-up|scale-down|lift} | Hover transforms |
.lp-attention-{pulse|bounce|shake|heartbeat|float|glow|blink} | Attention seekers |
.lp-loading-{spin|pulse|bounce|dots} | Loading indicators |
.lp-scroll-fade-in-{up|down|left|right} + data-lp-component="animate-on-scroll" | Scroll-triggered |