Motion & Animation Library

move.gl

A comprehensive CSS animation and motion library for creating fluid, performant, and accessible motion experiences.

Features

Keyframe Animations

Pre-built keyframe animations for fade, slide, bounce, zoom, flip, and more. Ready to use out of the box.

Transitions

Smooth state transitions with customizable timing functions and durations.

Transforms

2D and 3D transform utilities for rotation, scaling, skewing, and translation.

Loaders

Animated loading indicators: spinners, dots, bars, and custom patterns.

Accessibility

Respects prefers-reduced-motion for users who prefer minimal animations.

Performance

GPU-accelerated animations using transform and opacity for 60fps smoothness.

Quick Start

// Install via npm npm install move.gl // Import in your SCSS @use "move.gl" as *; // Use animation mixins .element { @include fade-in; } .card { @include slide-up($duration: 0.5s); } // Or use utility classes directly <div class="animate-fade-in">...</div> <div class="animate-bounce">...</div>
Full Installation Guide →

Animation Showcase

View All Animations →

Fade

Smooth opacity transitions

View Demo →

Slide

Directional sliding animations

View Demo →

Bounce

Playful bouncing effects

View Demo →

Zoom

Scale-based animations

View Demo →

Flip

3D rotation effects

View Demo →

Spin & Rotate

Continuous rotation

View Demo →

Pulse

Scale pulsing effects

View Demo →

Shake & Wobble

Attention-grabbing shakes

View Demo →

Attention

Tada, pop, flash & more

View Demo →

Special Effects

Elastic, lightspeed, hinge

View Demo →

Scale

Scale entrance & exit

View Demo →

Loaders

Loading indicators

View Demo →

Documentation

Accessibility First

move.gl automatically respects the prefers-reduced-motion media query. Users who prefer reduced motion will see static or minimal animations instead.

// Built-in reduced motion support @media (prefers-reduced-motion: reduce) { .animate-* { animation: none; transition: none; } } // Or use the accessibility mixin .element { @include motion-safe { @include fade-in; } }