UNPKG

move.gl

Version:

Motion and Animation Library for Stylescape.

1,113 lines (1,084 loc) 65.7 kB
<!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>&lt;div class="loader loader--spinner"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--spinner-dots"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--ring"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--dual-ring"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--windmill"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--chase"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-spinner"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-pulse"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-ripple"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-clip"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-clip-dual"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-dual"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-triple"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-nested"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-dot"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-notch"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--circle-orbit"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--dots"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--dots-bounce"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--dots-fade"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--dots-grow"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--dots-wave"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--ellipsis"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-expand"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-rotate"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-flip"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-collision"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-dots-bounce"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-dots-flash"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-dots-pulse"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bubble-dots-rotate"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bars"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-wave"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-pulse"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-bounce"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-equalizer"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-expand"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-shrink"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-flash"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-reveal"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-matrix"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bar-sound-wave"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--wave-bar"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-indeterminate"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-circle"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-dots"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-fill"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-gradient"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-pulse"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-segments"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-split"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-stripe"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--progress-stripe-fill"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--square"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--cube"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-alternate"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-diamond"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-dual"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-expand"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-fill"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-flip"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-morph"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-nested"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-shrink"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-stepped"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--rect-walk"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--folding"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--flip-card"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--pulse"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--ripple"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bounce"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--bouncing-ball"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--heartbeat"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--gradient"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--morph"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--typing"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-typing" data-text="Loading"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-dots" data-text="Loading"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-bounce" data-text="LOADING"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-fade" data-text="Loading"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-fill" data-text="LOAD"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-gradient" data-text="Loading"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-percentage"&gt;&lt;/div&gt;</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>&lt;div class="loader loader--text-pulse" data-text="Loading"&gt;&lt;/div&gt;</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