# Schematiq Animation System β€” Complete Guide ## 🎭 Overview The Schematiq Animation Library is a **comprehensive collection of motion patterns** built entirely with CSS. No JavaScript dependencies (except for the scroll indicator). All animations use optimized easing curves and GPU-accelerated transforms. **File:** `schematiq-animation-library.html` (Original showcase template) --- ## πŸ“Š Animation Inventory ### **Total Animations: 50+** | Category | Count | Examples | |----------|-------|----------| | Easing Functions | 4 | Linear, Ease Out Expo, Ease Out Back, Spring | | Shape Morphing | 3 | Blob, Squareβ†’Circle, Star | | Loaders | 10 | Spinner, Pulse, Dots, Bars, Ring, Orbit, DNA, Cube, Ripple, Rainbow | | Text Effects | 4 | Typewriter, Glitch, Wave, Gradient Flow | | Hover Effects | 8 | Scale, Lift, Glow, Shine, Fill, Rotate, Border, Flip | | Button Effects | 4 | Pulse, Slide, Ripple, Gradient Shift | | Icon Animations | 5 | Bounce Arrow, Spin Gear, Pulse Heart, Wiggle Bell, Float Cloud | | Background Effects | 3 | Orb Float, Orb Pulse, Particles | | Logo Animations | 4 | Spin, Ring Pulse, Half Rotate, Pupil Look | | Sequential | 3 | Code Reveal, Timeline Appear, Hero Slide Up | --- ## 🎨 Core Easing Functions ### 1. **Linear** ```css animation-timing-function: linear; ``` - **Use for:** Continuous motion (spinners, marquees, clocks) - **Feel:** Mechanical, constant speed ### 2. **Ease Out Expo** ```css --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1); ``` - **Use for:** Slide-ins, fades, most UI transitions - **Feel:** Snappy ending, natural deceleration - **Example:** Hero text slide-up, card hover ### 3. **Ease Out Back** ```css --ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1); ``` - **Use for:** Playful interactions, buttons, modals - **Feel:** Slight bounce at the end - **Example:** Scale hover effect, button press ### 4. **Spring** ```css --spring: cubic-bezier(0.175, 0.885, 0.32, 1.275); ``` - **Use for:** Elastic effects, notifications, badges - **Feel:** Spring-like bounce - **Example:** Badge appearance, alert popup --- ## πŸ”„ Shape Morphing Animations ### **Blob Morph** (8s infinite) ```css @keyframes morph-blob { 0%, 100% { border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%; } 25% { border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%; } 50% { border-radius: 50% 60% 30% 60% / 30% 60% 70% 40%; } 75% { border-radius: 60% 40% 60% 30% / 70% 30% 50% 60%; } } ``` **Use for:** Organic backgrounds, hero sections, loading states ### **Square β†’ Circle** (6s infinite) ```css @keyframes morph-square { 0%, 100% { border-radius: 0; transform: rotate(0deg); } 25% { border-radius: 50% 0 50% 0; transform: rotate(90deg); } 50% { border-radius: 50%; transform: rotate(180deg); } 75% { border-radius: 0 50% 0 50%; transform: rotate(270deg); } } ``` **Use for:** Loading indicators, transitions between states ### **Star Morph** (10s infinite) - Morphs star shape while rotating and scaling - **Use for:** Special effects, featured badges, celebrations --- ## ⏳ Loader Components ### **1. Spinner** (Classic) ```html
``` ```css .loader-spinner { width: 48px; height: 48px; border: 3px solid rgba(255, 255, 255, 0.1); border-top-color: var(--hot-pink); border-radius: 50%; animation: spin 1s linear infinite; } ``` ### **2. Pulse** (Breathing effect) ```html
``` - Scales from 0.8 to 1.2 - Fades opacity 0.5 to 1 - 1.5s cycle ### **3. Dots** (Staggered bounce) ```html
``` - Each dot bounces with 0.2s delay - 1.4s total cycle ### **4. Bars** (Audio wave) ```html
``` - Each bar waves from 16px to 48px height - 0.1s stagger between bars ### **5. Ring** (Dual rotation) ```html
``` - Two half-rings rotating opposite directions - Uses `::before` and `::after` pseudo-elements ### **6. Orbit** (Planet around sun) ```html
``` ### **7. DNA** (Alternating wave) - 5 dots alternating colors (pink/blue) - Wave motion up/down with stagger ### **8. Cube** (3D flip) - Perspective 3D transform - Rotates on X and Y axes - Gradient background ### **9. Ripple** (Expanding circles) ```html
``` - Two circles expand from 0.5 to 1.5 scale - 0.5s stagger, fade out ### **10. Rainbow** (Multi-color spinner) - Same as spinner but 4 colors on each border side --- ## πŸ“ Text Animations ### **1. Typewriter** (4s infinite) ```html
Hello, Schematiq.
``` ```css @keyframes typing { 0%, 100% { width: 0; } 50%, 90% { width: 100%; } } @keyframes blink { 50% { border-color: transparent; } } ``` - Width animates with `steps(20)` for chunky effect - Blinking cursor with `border-right` ### **2. Glitch** (2s infinite) ```html
GLITCH
``` - Uses `::before` and `::after` for offset copies - Pink copy clips top 35% - Blue copy clips bottom 35% - Random transform jitter ### **3. Wave** (1.5s infinite) ```html
S C H
``` - Each letter bounces with 0.1s delay - Gradient text fill - Vertical translateY animation ### **4. Gradient Flow** (3s infinite) ```css .gradient-text { background: linear-gradient(90deg, ...); background-size: 200% auto; animation: gradient-flow 3s linear infinite; } ``` - Shifts background-position for flowing gradient effect --- ## πŸ–±οΈ Hover Effects ### **1. Scale** (Scale up 8%) ```css .hover-scale:hover { transform: scale(1.08); transition: transform 0.4s var(--ease-out-back); } ``` ### **2. Lift** (Raise + shadow) ```css .hover-lift:hover { transform: translateY(-12px); box-shadow: 0 20px 40px rgba(255, 29, 108, 0.2); } ``` ### **3. Glow** (Border + shadow) ```css .hover-glow:hover { box-shadow: 0 0 0 2px var(--hot-pink), 0 0 40px rgba(255, 29, 108, 0.4); } ``` ### **4. Shine** (Light sweep) ```css .hover-shine::before { content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent); transition: left 0.6s ease; } .hover-shine:hover::before { left: 100%; } ``` ### **5. Fill** (Gradient overlay) - Gradient overlay fades from opacity 0 to 1 ### **6. Rotate** (5Β° rotation + scale) ```css .hover-rotate:hover { transform: rotate(5deg) scale(1.05); } ``` ### **7. Border** (Border width grows) - Border grows from 2px to 4px - Uses gradient border technique ### **8. Flip** (3D flip) ```css .hover-flip:hover { transform: rotateY(180deg); transform-style: preserve-3d; } ``` --- ## πŸ”˜ Button Animations ### **1. Pulse** (Shadow pulse) ```css @keyframes btn-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(255, 29, 108, 0.4); } 50% { box-shadow: 0 0 0 15px rgba(255, 29, 108, 0); } } ``` - Shadow expands and fades - 2s infinite loop ### **2. Slide** (Fill from left) ```css .btn-slide::before { width: 0; transition: width 0.4s var(--ease-out-expo); } .btn-slide:hover::before { width: 100%; } ``` - Pseudo-element slides across - Text color changes on hover ### **3. Ripple** (Click ripple) ```css .btn-ripple::after { width: 0; height: 0; background: rgba(255, 255, 255, 0.3); border-radius: 50%; transition: width 0.6s, height 0.6s; } .btn-ripple:hover::after { width: 300px; height: 300px; } ``` ### **4. Gradient Shift** (Animated gradient) ```css @keyframes gradient-shift { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } } ``` - Background position shifts - 200% background-size for smooth loop --- ## 🎨 Icon Animations ### **1. Bounce Arrow** ```css @keyframes bounce-arrow { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-15px); } } ``` ### **2. Spin Gear** ```css @keyframes spin-gear { to { transform: rotate(360deg); } } ``` - 4s linear infinite rotation ### **3. Pulse Heart** ```css @keyframes pulse-heart { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.2); } } ``` ### **4. Wiggle Bell** ```css @keyframes wiggle-bell { 0%, 100% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } } ``` - 0.5s infinite (fast wiggle) ### **5. Float Cloud** ```css @keyframes float-cloud { 0%, 100% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-10px) translateX(5px); } } ``` --- ## 🌟 Background Effects ### **Hero Orbs** (Floating gradients) ```css .hero-orb-1 { width: 600px; height: 600px; background: var(--hot-pink); filter: blur(80px); opacity: 0.4; animation: orb-float-1 15s ease-in-out infinite; } ``` **Orb Float Pattern:** ```css @keyframes orb-float-1 { 0%, 100% { transform: translate(0, 0) scale(1); } 33% { transform: translate(-100px, 100px) scale(1.1); } 66% { transform: translate(50px, -50px) scale(0.9); } } ``` ### **Particles** (10 floating dots) ```css .particle-1 { width: 8px; height: 8px; background: var(--hot-pink); animation: float-particle 15s infinite; left: 10%; top: 20%; } ``` **Particle Path:** ```css @keyframes float-particle { 0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.6; } 25% { transform: translate(50px, -80px) rotate(90deg); opacity: 1; } 50% { transform: translate(-30px, -150px) rotate(180deg); opacity: 0.4; } 75% { transform: translate(80px, -50px) rotate(270deg); opacity: 0.8; } } ``` --- ## 🎬 Sequential Animations ### **Hero Text Slide-Up** ```css .hero h1 .line { opacity: 0; transform: translateY(100%); animation: slide-up 1s var(--ease-out-expo) forwards; } .line:nth-child(1) { animation-delay: 0.2s; } .line:nth-child(2) { animation-delay: 0.35s; } .line:nth-child(3) { animation-delay: 0.5s; } ``` ### **Code Reveal** (Sequential lines) ```css .code-line { opacity: 0; animation: code-appear 0.5s ease forwards; } .code-line:nth-child(1) { animation-delay: 0.2s; } .code-line:nth-child(2) { animation-delay: 0.4s; } /* ... +0.2s each */ ``` ### **Timeline Appear** ```css .timeline-item { opacity: 0; animation: timeline-appear 0.6s var(--ease-out-expo) forwards; } .timeline-item:nth-child(1) { animation-delay: 0.2s; } .timeline-item:nth-child(2) { animation-delay: 0.4s; } /* ... +0.2s each */ ``` --- ## πŸ—οΈ Logo Animations ### **1. Logo Spin** (Full rotation) ```css @keyframes logo-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } ``` - 20s linear infinite - Used on nav logo mark ### **2. Ring Pulse** (Stroke width) ```css @keyframes ring-pulse { 0%, 100% { stroke-width: 8; } 50% { stroke-width: 12; } } ``` - 3s ease-in-out infinite - SVG stroke animation ### **3. Half Rotate** (Top/bottom split) ```css @keyframes half-rotate-top { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } } @keyframes half-rotate-bottom { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(-10deg); } } ``` - 8s ease-in-out infinite - Creates "breathing" effect ### **4. Pupil Look** (Eye movement) ```css @keyframes pupil-look { 0%, 100% { transform: translate(0, 0); } 25% { transform: translate(5px, -3px); } 50% { transform: translate(-5px, 2px); } 75% { transform: translate(3px, 4px); } } ``` - 5s ease-in-out infinite - Simulates looking around --- ## πŸ“± Responsive Behavior ### **Breakpoint: 1200px** ```css @media (max-width: 1200px) { .easing-grid, .hover-grid, .buttons-grid { grid-template-columns: repeat(2, 1fr); } .loaders-grid { grid-template-columns: repeat(3, 1fr); } } ``` ### **Breakpoint: 768px** ```css @media (max-width: 768px) { .easing-grid, .hover-grid, .buttons-grid, .loaders-grid { grid-template-columns: 1fr; } } ``` **Note:** All animations continue to work on mobile β€” only grid layouts change. --- ## 🎯 Best Practices ### **Performance Optimization** 1. **Use Transform & Opacity Only** - GPU-accelerated properties - Avoid animating `width`, `height`, `top`, `left` 2. **Add `will-change` for Heavy Animations** ```css .heavy-animation { will-change: transform; } ``` 3. **Limit Concurrent Animations** - Maximum 3-5 simultaneous animations on screen - Pause animations when out of viewport ### **Duration Guidelines** | Animation Type | Ideal Duration | |----------------|----------------| | Micro-interactions | 200-400ms | | UI transitions | 300-600ms | | Morphing shapes | 6-10s | | Background effects | 10-20s | | Loaders | 1-2s | | Attention-grabbers | 2-4s | ### **Easing Selection** | Use Case | Easing Function | |----------|----------------| | Slide-ins | Ease Out Expo | | Button clicks | Ease Out Back | | Playful interactions | Spring | | Loaders | Linear | | Fades | Ease In Out | --- ## πŸ’‘ Usage Examples ### **Hero Section with Orbs** ```html

Your Title

``` ### **Loading State** ```html
``` ### **Interactive Card** ```html
Hover Me
``` ### **Animated CTA** ```html ``` --- ## πŸ”§ Customization ### **Change Animation Speed** ```css /* Make it slower */ .morph-blob { animation-duration: 12s; /* was 8s */ } /* Make it faster */ .loader-spinner { animation-duration: 0.5s; /* was 1s */ } ``` ### **Change Colors** ```css .loader-spinner { border-top-color: #YOUR_COLOR; } .morph-blob { background: linear-gradient(135deg, #COLOR1, #COLOR2); } ``` ### **Adjust Intensity** ```css /* Less dramatic hover */ .hover-scale:hover { transform: scale(1.03); /* was 1.08 */ } /* More dramatic orb pulse */ .hero-orb-3 { animation-duration: 6s; /* was 10s */ } ``` --- ## πŸ“Š Animation Complexity Chart | Animation | CSS Lines | JavaScript | GPU Intensive | Mobile Safe | |-----------|-----------|------------|---------------|-------------| | Spinner | 10 | No | Yes | βœ… | | Blob Morph | 12 | No | Medium | βœ… | | Glitch | 25 | No | Medium | ⚠️ Use sparingly | | Particles | 15 | No | High | ⚠️ Reduce count | | Hero Orbs | 20 | No | High | ⚠️ Simplify on mobile | | Typewriter | 15 | No | No | βœ… | | Wave Text | 18 | No | Medium | βœ… | | 3D Flip | 8 | No | High | βœ… | **Legend:** - βœ… = No issues - ⚠️ = Test carefully, may need adjustments --- ## πŸš€ Quick Reference ### **Copy-Paste Ready Animations** **Simple Fade In:** ```css @keyframes fade-in { from { opacity: 0; } to { opacity: 1; } } .element { animation: fade-in 0.6s ease; } ``` **Slide Up:** ```css @keyframes slide-up { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } } ``` **Scale Pulse:** ```css @keyframes scale-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } ``` **Rotate 360:** ```css @keyframes spin { to { transform: rotate(360deg); } } ``` --- ## πŸŽ“ Learning Resources ### **Animation Principles** 1. **Easing** β€” Speed curve of animation 2. **Duration** β€” How long it takes 3. **Delay** β€” When it starts 4. **Iteration** β€” How many times (infinite, once, 3x, etc.) ### **Key Properties** - `animation-name` β€” Which @keyframes to use - `animation-duration` β€” How long (1s, 500ms, etc.) - `animation-timing-function` β€” Easing curve - `animation-delay` β€” Wait before starting - `animation-iteration-count` β€” infinite, 1, 2, etc. - `animation-direction` β€” normal, reverse, alternate - `animation-fill-mode` β€” forwards, backwards, both ### **Shorthand Syntax** ```css animation: name duration easing delay iteration direction fill-mode; /* Example */ animation: slide-up 0.6s ease-out 0.2s 1 normal forwards; ``` --- ## πŸ“¦ File Structure ``` schematiq-animation-library.html β”œβ”€β”€ CSS Variables (colors, easing functions) β”œβ”€β”€ Navigation (with logo spin) β”œβ”€β”€ Hero Section (orbs, logo, text slide-up) β”œβ”€β”€ Easing Showcase (4 cards) β”œβ”€β”€ Morphing Shapes (3 types) β”œβ”€β”€ Loaders (10 variants) β”œβ”€β”€ Text Animations (4 effects) β”œβ”€β”€ Hover Effects (8 cards) β”œβ”€β”€ Button Animations (4 buttons) β”œβ”€β”€ Icon Animations (5 icons) β”œβ”€β”€ Particles Section (10 particles) β”œβ”€β”€ Code Reveal β”œβ”€β”€ Timeline └── Footer ``` **Total Size:** ~35KB (HTML + CSS only) --- ## πŸŽ‰ Summary The Schematiq Animation Library provides: βœ… **50+ ready-to-use animations** βœ… **Pure CSS** (no JavaScript dependencies) βœ… **GPU-accelerated** (transform & opacity) βœ… **Fully responsive** (mobile-tested) βœ… **Copy-paste ready** (isolated components) βœ… **Customizable** (CSS variables + classes) βœ… **Production-tested** (optimized for performance) **Use this file as:** - Animation reference library - Copy-paste source for your projects - Learning resource for CSS animations - Visual playground for testing motion --- **Happy animating!** 🎭✨