Scroll & Parallax
Scroll animations, parallax, scroll-driven CSS, scrollytelling, sticky and snap.
How to create immersive scroll experiences? These 64 scroll effects cover all modern patterns: parallax, progressive reveals, progress bars, sticky sections and native CSS scroll-driven animations. From subtle reveals to cinematic scrolling.
Scroll Basics
20 fundamental scroll and parallax effects.
First element
Appears rising up with a fade
Second element
Progressive animation on scroll
Third element
Uses animation-timeline: view()
Fourth element
Each element animates individually
Fifth element
All CSS, zero JavaScript
Fade Up
Elements that appear rising up with a progressive fade via animation-timeline: view().
Scale In
The element progressively grows
Zoom effect
From scale(0.7) to scale(1)
Smooth appearance
Combines opacity and transform
Native CSS
No JavaScript required
Performance
Uses GPU-accelerated properties
Scale In
Elements that scale up from a smaller size with animation-timeline: view().
Slide In
Elements sliding in from left and right alternately via view().
Back layer
The background moves more slowly
Front layer
The content moves at normal speed
Depth effect
Creates a 3D sensation
Parallax
Parallax effect where the background moves at a different speed via scroll(nearest).
Progress Reveal
Text that progressively fills with an animated gradient via scroll(nearest) and @property.
Stagger Cards
Cards appearing in cascade with incremental animation-delay and view().
Horizontal Scroll
Horizontal scrolling with scroll-snap for smooth navigation between elements.
Design
Code
Performance
3D
Fast
Secure
Rotate In
Cards appearing with rotation and scale via view() and animation-delay.
Blur Reveal
Progressive focus effect
Cinematic Effect
From full blur to perfect clarity
Native CSS
Animation via view() without JavaScript
Blur Reveal
Progressive focus effect with blur(20px) animated to blur(0) via view().
Counter Scroll
Animated counters that increment when they enter the container's view.
Scroll-Driven Animation
Native CSS animation driven by scroll
Progressive reveal
The element appears as it enters the view
Entry range
animation-range: entry 0% entry 100%
Zero JavaScript
Everything is handled by CSS
GPU Performance
GPU-optimized animations
Scroll-Driven Fade
Native CSS animation driven by scroll with animation-timeline: view() and entry range.
View Timeline Scale
The element scales up based on its position in the view
Progressive scale
From scale(0.7) to scale(1) smoothly
Cover range
animation-range: entry 0% cover 50%
Pure CSS
No JavaScript dependency
Smooth
Continuous animation linked to scroll
View Timeline Scale
Elements that progressively scale up via animation-timeline: view() and cover range.
Scroll Progress Bar
Sticky progress bar linked to the container scroll via scroll(nearest).
Parallax Layers CSS
Layers moving at different speeds via scroll(nearest) for a depth effect.
Rotate On Scroll
Element performing a 720-degree rotation linked to scroll via scroll(nearest).
Slide In CSS Native
Native CSS left/right slide with animation-timeline: view() and cover range.
Blur to Clear
Progressive transition from blur to clarity
Cover Range
animation-range: entry 0% cover 50%
Cinematic
Pure CSS rack focus effect
Blur to Clear
Transition from blur(10px) to blur(0) for a cinematic effect via view().
Stagger Reveal CSS
Item grid with incremental native CSS animation-delay and view() for a cascade effect.
Clip Path Reveal
Progressive reveal from left to right
Vertical Direction
Content reveals from top to bottom
Reverse Rise
Appearance from the bottom of the frame
Clip Path Reveal
Progressive reveal via clip-path: inset() animated by view() and cover range.
Color Change
Progressive color change (purple, pink, cyan, green) linked to scroll via scroll(nearest).
Progress Bar
Scroll to see the bar fill up. Uses animation-timeline: scroll() to link the animation to the container scroll.
Progress Bar
Progress bar linked to scroll via animation-timeline: scroll(). Fills from 0% to 100% in pure CSS.
First element
Appears sliding up from the bottom
Second element
Reveals on scroll with animation-timeline: view()
Third element
Each card animates individually
Fourth element
animation-range controls the timing
Fifth element
All CSS, zero JavaScript
Fade In Reveal
Elements that progressively appear via animation-timeline: view() and animation-range: entry.
Parallax CSS
Each layer moves at a different speed
Parallax Layers
Parallax layers with different speeds, driven entirely by scroll() in native CSS.
Design System
Appears with a zoom effect
User Experience
Scales from 0.7 to 1 on scroll
Responsive
animation-range: entry 0% entry 50%
Scale on Scroll
Cards that scale from 70% to 100% when entering the view via animation-timeline: view().
Color Shift
The background color changes on scroll
Color Shift
Background gradient that evolves through 5 color palettes while scrolling, via animation-timeline: scroll().
Word-by-word reveal on scroll
animation-timeline: view()
No JavaScript required
Native CSS only
Text Reveal
Words that slide up from the bottom and progressively reveal while scrolling with view().
Rotate on Scroll
Geometric shape with 720-degree rotation linked to scroll. Borders rotate in the opposite direction.
Slide In Cards
Cards that alternately slide in from left and right with view() and animation-range: entry.
Zoom & Blur
Circle that zooms in and unblurs at the scroll center, then continues zooming and reblurs on exit.
Card 1
Vertical scroll
Card 2
→ horizontal movement
Card 3
animation-timeline
Card 4
scroll(nearest)
Card 5
Pure CSS
Horizontal Scroll
Vertical scroll converted into horizontal card scrolling via animation-timeline: scroll().
Chapter 1: Introduction
Welcome to this demonstration of a scroll-linked progress bar. The bar at the top of this container progresses based on your scroll position.
This effect uses the CSS property animation-timeline: scroll() which links a @keyframes animation directly to the container's scroll position.
Chapter 2: How It Works
The scroll-timeline property creates a named timeline on the scrollable container. The progress-bar animation then uses this timeline to animate the transform: scaleX() property.
The result is a smooth progress bar that accurately represents the percentage of content read, without any JavaScript.
Chapter 3: Applications
Ideal for blog posts, documentation pages, tutorials, or any long-form content where the user wants to visualize their reading progress.
Compatible with modern browsers supporting Scroll-Driven Animations (Chrome 115+, Edge 115+).
Chapter 4: Conclusion
Scroll-linked animations open new possibilities for user experience, all in pure CSS with no impact on JavaScript performance.
Progress Bar
Reading progress bar driven by animation-timeline: scroll(), zero JavaScript.
Scroll Fade Gallery
Images that fade in and scale up on viewport entry via animation-timeline: view().
Horizontal Scroll Section
Section scrolling horizontally during vertical scroll, pure CSS with scroll-timeline.
Sticky Reveal Stack
Cards stacking and revealing one by one on scroll with view() timeline.
Text Line Reveal
Each word progressively colorizes while scrolling via animation-range and view().
A second block that also appears with a cinematic zoom.
Zoom Into Content
Content starting zoomed out that scales to 100% on scroll, cinematic opening effect.
Rotation on Scroll
Element rotating proportionally to scroll position, dial/compass effect.
Path Drawing on Scroll
SVG path drawing itself via stroke-dashoffset animated by scroll, pure CSS.
Parallax Layers
Multi-layer parallax entirely controlled by scroll() timeline, no JS.
Snap Gallery with Progress
Snap-scrolling gallery with progress bar and dots linked to scroll, pure CSS.
Progress Bar
Horizontal progress bar that fills proportionally to content scrolling.
Parallax Layers
Three visual layers move at different speeds to create an immersive depth effect.
Design System
Build a solid foundation with reusable tokens, components, and patterns for perfect visual consistency.
Motion Design
Bring your interfaces to life with fluid, meaningful animations that guide the user's attention.
Micro-interactions
Small details make the difference. Every hover, click, and transition contributes to a memorable experience.
Accessibility
Inclusive design ensures every user can navigate and interact with your content without friction.
Performance
Optimize every animation to maintain 60fps and deliver a smooth experience on all devices.
Reveal on Scroll
Elements appear with a fade and vertical slide when they enter the visible area.
Sticky Horizontal
Automatic horizontal scrolling simulating panel navigation, ideal for presenting steps or projects.
Text Highlight on Scroll
Each word progressively lights up as you scroll, creating a guided reading effect.
Zoom on Scroll
An element progressively grows with scrolling, going from a small object to a full-screen view.
Scroll to animate the counters
Number Counter Scroll
Counters animate from zero to their target value proportionally to the scroll position.
Timeline Scroll
Interactive vertical timeline with a line that progressively draws and elements that appear on scroll.
Image Sequence
Frame-by-frame animation simulation driven by scroll, similar to Apple product pages.
Scroll Snap Sections
Full-height sections with magnetic snapping and side pagination indicator.
Sticky Scroll
8 advanced sticky scroll and parallax effects.
First Section
The image stays fixed while content scrolls. Ideal technique for presenting features.
Second Section
Each text section triggers a visual change in the sticky image.
Third Section
Smooth transitions guide the user through content seamlessly.
Fourth Section
A pattern used in interactive journalism and product websites.
Sticky Image Change
Sticky image that changes while content scrolls with panels revealed via view().
Horizontal Scroll
Horizontal scrolling section with snap to navigate between workflow steps.
Card Stack
Cards that stack with position sticky and view() animation in the container.
Step 1: Design
Define your vision and plan your project.
Step 2: Development
Transform your ideas into clean and efficient code.
Step 3: Testing
Ensure product quality and reliability.
Step 4: Launch
Deploy your project and celebrate your success.
Progress Reveal
Sticky progress bar with items progressively revealed via scroll(nearest) and view().
Modern Architecture
Well-designed scalable applications.
- Microservices
- API RESTful
- Cloud Native
Optimal Performance
Optimize every aspect of your app.
- Lazy Loading
- Code Splitting
- Caching
Enhanced Security
Protect your data and users.
- 2FA
- E2E Encryption
- Audits
Split Screen Sticky
Sticky visual with rotating SVG and content revealed by scroll via view() and scroll(nearest).
Zoom In Sticky
Element that progressively zooms from scale(1) to scale(2.2) via scroll(nearest).
Text Highlight Scroll
Words colored sequentially on scroll with JS scoped to the container.
Layered Parallax
5 layers moving at different speeds via scroll(nearest) for a complete parallax effect.
Scroll Snap
6 scroll snap effects for precise navigation.
Section 1
Scroll to move to the next one
Section 2
Scroll stops automatically
Section 3
Smooth and controlled experience
Section 4
Last section
Vertical Snap
Sections automatically snapping to start via scroll-snap-type: y mandatory.
Slide 1
Swipe horizontally
Slide 2
Intuitive navigation
Slide 3
Perfect for galleries
Slide 4
Mobile-optimized experience
Slide 5
Last slide
Horizontal Snap
Horizontal scrolling with automatic snapping via scroll-snap-type: x mandatory.
Project Alpha
Modern interface with smooth animations.
DesignProject Beta
High-performance progressive web app.
DevProject Gamma
Immersive e-commerce platform.
E-commerceProject Delta
Real-time analytics dashboard.
AnalyticsProject Epsilon
Cross-platform mobile application.
MobileProject Zeta
Content management system.
CMSCard Snap Carousel
Card carousel aligning to center with scroll-snap-align: center.
Main Section
Full height
Medium Section
Half-height
Medium Section
Half-height
Small
Compact
Final Section
Back to full height
Mixed Content Snap
Sections of different sizes with scroll-snap-type: y proximity for flexibility.
Step 1
Start your journey
01Step 2
Progress underway
02Step 3
Halfway there
03Step 4
Almost done
04Step 5
Mission accomplished!
05Snap + Progress
Vertical snap with progress bar and indicator dots via JS scoped to the container.
Launch
Start with style and elegance
Innovation
Ideas that transform
Precision
Every detail matters
Excellence
The perfect final result
Smooth Snap
Snap with animations triggered by IntersectionObserver scoped to the container.