move.gl
Version:
Motion and Animation Library for Stylescape.
1,113 lines (1,084 loc) • 65.7 kB
HTML
<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="description"
content="Motion and Animation Library — CSS animations, transitions, keyframes, and interactive motion effects." />
<meta name="theme-color" content="#ffffff" media="(prefers-color-scheme: light)" />
<meta name="theme-color" content="#000000" media="(prefers-color-scheme: dark)" />
<title>move.gl</title>
<!-- Library CSS -->
<link rel="stylesheet" href="/css/move.gl.css" />
<!-- Documentation CSS -->
<link rel="stylesheet" href="/css/move.gl.docs.css" />
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link
href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap"
rel="stylesheet">
</head>
<body class="">
<div class="nav-wrapper">
<nav class="nav">
<div class="nav__inner">
<a href="index.html" class="nav__logo">
<span class="nav__logo-text">move.gl</span>
<span class="nav__version">v0.0.1</span>
</a>
<div class="nav__right">
<button type="button" class="theme-toggle" data-toggle="theme" title="Toggle dark mode" aria-label="Toggle dark mode">
<svg class="theme-icon theme-icon--light" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
<path
d="M8 12a4 4 0 100-8 4 4 0 000 8zM8 0a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0V.75A.75.75 0 018 0zm0 13a.75.75 0 01.75.75v1.5a.75.75 0 01-1.5 0v-1.5A.75.75 0 018 13zm7-5a.75.75 0 00-.75-.75h-1.5a.75.75 0 000 1.5h1.5A.75.75 0 0015 8zM3 8a.75.75 0 00-.75-.75H.75a.75.75 0 000 1.5h1.5A.75.75 0 003 8zm9.536-4.536a.75.75 0 00-1.06 0l-1.061 1.06a.75.75 0 001.06 1.061l1.061-1.06a.75.75 0 000-1.061zm-9.072 9.072a.75.75 0 00-1.06 0l-1.061 1.06a.75.75 0 101.06 1.061l1.061-1.06a.75.75 0 000-1.061zm9.072 0a.75.75 0 00-1.06 1.06l1.06 1.061a.75.75 0 101.061-1.06l-1.06-1.061zm-9.072-9.072a.75.75 0 00-1.06 1.06l1.06 1.061a.75.75 0 001.061-1.06l-1.06-1.061z" />
</svg>
<svg class="theme-icon theme-icon--dark" width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
<path d="M6.2 1A6.98 6.98 0 008 7a6.98 6.98 0 00-1.8 6A7 7 0 116.2 1z" />
</svg>
</button>
<div class="nav__dropdown" id="nav-dropdown">
<button type="button" class="nav__dropdown-toggle" aria-expanded="false" aria-haspopup="true">
<span>Docs</span>
<svg width="10" height="6" viewBox="0 0 10 6" fill="none" stroke="currentColor"
stroke-width="1.5">
<path d="M1 1l4 4 4-4" />
</svg>
</button>
<div class="nav__dropdown-menu" role="menu">
<div class="nav__dropdown-section">
<span class="nav__dropdown-label">Learn</span>
<a href="getting-started.html" role="menuitem">Getting Started</a>
<a href="core-concepts.html" role="menuitem">Core Concepts</a>
</div>
<div class="nav__dropdown-section">
<span class="nav__dropdown-label">Overview</span>
<a href="test_overview.html" role="menuitem">All Animations</a>
</div>
<div class="nav__dropdown-section">
<span class="nav__dropdown-label">Animations</span>
<a href="test_fade.html" role="menuitem">Fade</a>
<a href="test_slide.html" role="menuitem">Slide</a>
<a href="test_bounce.html" role="menuitem">Bounce</a>
<a href="test_zoom.html" role="menuitem">Zoom</a>
<a href="test_flip.html" role="menuitem">Flip</a>
<a href="test_scale.html" role="menuitem">Scale</a>
<a href="test_spin.html" role="menuitem">Spin & Rotate</a>
<a href="test_pulse.html" role="menuitem">Pulse</a>
<a href="test_shake.html" role="menuitem">Shake & Wobble</a>
<a href="test_attention.html" role="menuitem">Attention</a>
<a href="test_special.html" role="menuitem">Special Effects</a>
</div>
<div class="nav__dropdown-section">
<span class="nav__dropdown-label">Effects</span>
<a href="test_loaders.html" role="menuitem">Loaders</a>
<a href="test_transitions.html" role="menuitem">Transitions</a>
<a href="test_transforms.html" role="menuitem">Transforms</a>
<a href="test_effects.html" role="menuitem">Filter Effects</a>
<a href="test_keyframes.html" role="menuitem">Keyframes</a>
<a href="test_mouse.html" role="menuitem">Mouse Interactions</a>
</div>
<div class="nav__dropdown-section">
<span class="nav__dropdown-label">TypeScript Demos</span>
<a href="demo_draggable.html" role="menuitem">Draggable</a>
<a href="demo_gesture.html" role="menuitem">Gesture Handler</a>
<a href="demo_keyboard.html" role="menuitem">Virtual Keyboard</a>
<a href="demo_screensaver.html" role="menuitem">Screensaver</a>
<a href="demo_video_overlay.html" role="menuitem">Video Overlay</a>
</div>
</div>
</div>
<a href="https://github.com/stylescape/move.gl" class="nav__github" target="_blank"
title="View on GitHub">
<svg width="18" height="18" viewBox="0 0 16 16" fill="currentColor">
<path
d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z" />
</svg>
</a>
</div>
</div>
</nav>
</div>
<main class="main">
<div class="container"><section class="section">
<h1 class="section-title">🔄 Loaders</h1>
<p class="section-description">
A comprehensive collection of CSS loading animations. All loaders use greyscale colors for visibility
on any background. Each card shows the loader preview and the HTML code needed to implement it.
</p>
<h2 class="demo-section-title">🌀 Spinners</h2>
<p class="demo-section-desc">Classic rotating spinner animations</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--spinner"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">spinner</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--spinner"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--spinner-dots"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">spinner-dots</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--spinner-dots"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--ring"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">ring</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--ring"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--dual-ring"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">dual-ring</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--dual-ring"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--windmill"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">windmill</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--windmill"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--chase"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">chase</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--chase"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">⭕ Circles</h2>
<p class="demo-section-desc">Circular loading animations with various effects</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-spinner"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-spinner</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-spinner"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-pulse"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-pulse</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-pulse"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-ripple"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-ripple</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-ripple"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-clip"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-clip</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-clip"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-clip-dual"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-clip-dual</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-clip-dual"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-dual"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-dual</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-dual"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-triple"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-triple</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-triple"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-nested"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-nested</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-nested"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-dot"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-dot</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-dot"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-notch"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-notch</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-notch"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--circle-orbit"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">circle-orbit</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--circle-orbit"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">⚫ Dots</h2>
<p class="demo-section-desc">Animated dot patterns and effects</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--dots"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">dots</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--dots"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--dots-bounce"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">dots-bounce</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--dots-bounce"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--dots-fade"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">dots-fade</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--dots-fade"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--dots-grow"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">dots-grow</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--dots-grow"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--dots-wave"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">dots-wave</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--dots-wave"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--ellipsis"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">ellipsis</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--ellipsis"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">🫧 Bubbles</h2>
<p class="demo-section-desc">Bubble and sphere animations</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-expand"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-expand</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-expand"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-rotate"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-rotate</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-rotate"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-flip"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-flip</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-flip"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-collision"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-collision</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-collision"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-dots-bounce"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-dots-bounce</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-dots-bounce"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-dots-flash"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-dots-flash</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-dots-flash"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-dots-pulse"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-dots-pulse</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-dots-pulse"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bubble-dots-rotate"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bubble-dots-rotate</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bubble-dots-rotate"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">📊 Bars</h2>
<p class="demo-section-desc">Bar and equalizer animations</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bars"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bars</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bars"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-wave"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-wave</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-wave"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-pulse"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-pulse</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-pulse"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-bounce"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-bounce</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-bounce"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-equalizer"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-equalizer</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-equalizer"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-expand"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-expand</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-expand"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-shrink"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-shrink</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-shrink"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-flash"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-flash</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-flash"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-reveal"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-reveal</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-reveal"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-matrix"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-matrix</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-matrix"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bar-sound-wave"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bar-sound-wave</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bar-sound-wave"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--wave-bar"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">wave-bar</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--wave-bar"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">📈 Progress</h2>
<p class="demo-section-desc">Progress bars and indicators</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-indeterminate"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-indeterminate</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-indeterminate"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-circle"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-circle</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-circle"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-dots"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-dots</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-dots"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-fill"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-fill</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-fill"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-gradient"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-gradient</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-gradient"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-pulse"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-pulse</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-pulse"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-segments"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-segments</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-segments"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-split"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-split</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-split"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-stripe"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-stripe</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-stripe"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--progress-stripe-fill"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">progress-stripe-fill</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--progress-stripe-fill"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">🟦 Rectangles</h2>
<p class="demo-section-desc">Square and rectangle based animations</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--square"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">square</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--square"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--cube"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">cube</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--cube"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-alternate"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-alternate</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-alternate"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-diamond"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-diamond</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-diamond"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-dual"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-dual</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-dual"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-expand"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-expand</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-expand"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-fill"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-fill</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-fill"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-flip"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-flip</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-flip"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-morph"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-morph</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-morph"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-nested"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-nested</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-nested"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-shrink"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-shrink</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-shrink"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-stepped"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-stepped</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-stepped"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--rect-walk"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">rect-walk</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--rect-walk"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--folding"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">folding</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--folding"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--flip-card"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">flip-card</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--flip-card"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">💫 Pulse & Ripple</h2>
<p class="demo-section-desc">Pulsating and ripple effect animations</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--pulse"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">pulse</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--pulse"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--ripple"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">ripple</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--ripple"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bounce"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bounce</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bounce"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--bouncing-ball"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">bouncing-ball</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--bouncing-ball"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--heartbeat"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">heartbeat</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--heartbeat"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--gradient"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">gradient</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--gradient"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--morph"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">morph</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--morph"></div></code>
</div>
</div>
</div>
<h2 class="demo-section-title">📝 Text</h2>
<p class="demo-section-desc">Text-based loading animations</p>
<div class="demo-grid-fixed">
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--typing"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">typing</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--typing"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-typing" data-text="Loading"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-typing</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-typing" data-text="Loading"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-dots" data-text="Loading"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-dots</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-dots" data-text="Loading"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-bounce" data-text="LOADING"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-bounce</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-bounce" data-text="LOADING"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-fade" data-text="Loading"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-fade</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-fade" data-text="Loading"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-fill" data-text="LOAD"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-fill</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-fill" data-text="LOAD"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-gradient" data-text="Loading"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-gradient</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-gradient" data-text="Loading"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-percentage"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-percentage</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-percentage"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-pulse" data-text="Loading"></div>
</div>
<div class="demo-card-fixed__info">
<h4 class="demo-card-fixed__title">text-pulse</h4>
</div>
<div class="demo-card-fixed__code">
<code><div class="loader loader--text-pulse" data-text="Loading"></div></code>
</div>
</div>
<div class="demo-card-fixed">
<div class="demo-card-fixed__preview">
<div class="loader loader--text-shake" data-text="Loading"></div>
</div>
<div class="demo-card-fixed__info">
<h4 clas