Core Module
Entrances
30 entrance animations for elements coming into view. Compose with utilities to control duration, delay, easing, and distance. Click any card to replay.
gleam-entrances.css
30 effects
CSS variables
<!-- CSS class -->
<div class="gleam entrance-fade-up">...</div>
<!-- data-gleam attribute (zero-config) -->
<div data-gleam="fade-up" data-gleam-scroll>...</div>
<!-- JS API -->
gleam.animate('.cards', 'rise', { delay: 200, duration: 700 });
Fades
entrance-fade-in
entrance-fade-up
entrance-fade-down
entrance-fade-left
entrance-fade-right
Slides
entrance-slide-up
entrance-slide-down
entrance-slide-left
entrance-slide-right
Zoom & Pop
entrance-zoom-in
entrance-pop-in
entrance-pop-in-soft
Premium
entrance-rise
Glass-like, barely perceptible
entrance-spring-up
Assertive spring overshoot
Blur
entrance-blur-in
entrance-blur-up
entrance-blur-down
Bounce
entrance-bounce-in
entrance-bounce-in-up
entrance-bounce-in-down
entrance-bounce-in-left
entrance-bounce-in-right
Flips
entrance-flip-in-x
entrance-flip-in-y
entrance-unfold-up
entrance-unfold-down
Clip Reveals
entrance-reveal-up
entrance-reveal-down
entrance-reveal-left
entrance-reveal-right
entrance-roll-in-left
entrance-roll-in-right
CSS Variable Reference
/* Timing */
.my-element {
--duration: 700ms;
--delay: 200ms;
--ease: var(--ease-spring);
}
/* Or use utility classes */
<div class="gleam entrance-rise
util-duration-700
util-delay-200
util-ease-spring">
/* Motion */
.my-element {
--distance: 40px;
--scale-start: 0.85;
--blur-start: 16px;
}
/* Easing options */
--ease-out /* soft land */
--ease-spring/* bouncy */
--ease-bounce/* dramatic */
--ease-snap /* fast snap */
Stagger Demo
// JS API — stagger 6 elements, 90ms between each
gleam.stagger('.items', 'fade-up', { interval: 90 });
<!-- data-gleam — stagger direct children -->
<div data-gleam="fade-up" data-gleam-scroll
data-gleam-stagger="90">
<div>...</div>
<div>...</div>
</div>