Image Gallery Scroll Animation in Framer

Copy component

Image Gallery Scroll Animation in Framer

Copy component

Nandi Muzsik

How can I improve Framer Uni?

Let me know if there’s a missing feature or something that could be improved.

Share feedback

Nandi Muzsik

How can I improve Framer Uni?

Let me know if there’s a missing feature or something that could be improved.

Share feedback

Component

Image Gallery Scroll Animation in Framer

This is a Framer recreation of a scroll animation inspired by Alex Frison’s work. Feel free to remix the project and discover how easy it is to create this effect using only Framer’s built-in tools.

image of Nandi Muzsik
image of Prianca S.
Image of Alex

Created by

,

and

Desert mountain road with vehicle and side image gallery
Desert mountain road with vehicle and side image gallery
Desert mountain road with vehicle and side image gallery

About the resource

To create this animation, I built a gallery component with 12 variants: 6 image mask variants—one for each image—and 6 image scale variants for each gallery image.

In the default variant, I split the canvas into two sections: the active layer on the left and the sidebar stacked on the right. The active layer nests all 6 images, each with its own mask. The sidebar stacks the images together with spacer frames. I created an image component with two states: active and inactive (minimized). When a particular image is active—like image 1—the sidebar syncs up, highlighting that image as active while keeping the rest minimized.

For the scaled-up variants, I set the opacity of all masks to zero except for the one corresponding to the active image, which is scaled up, while the others stay scaled down. The sidebar shifts right and moves partially off-screen in these variants. To connect the normal and scaled-up variants, I used an appear interaction.

Finally, I added a scroll-triggered effect to the gallery component that switches between variants based on which scroll section is currently in view.

About the resource

To create this animation, I built a gallery component with 12 variants: 6 image mask variants—one for each image—and 6 image scale variants for each gallery image.

In the default variant, I split the canvas into two sections: the active layer on the left and the sidebar stacked on the right. The active layer nests all 6 images, each with its own mask. The sidebar stacks the images together with spacer frames. I created an image component with two states: active and inactive (minimized). When a particular image is active—like image 1—the sidebar syncs up, highlighting that image as active while keeping the rest minimized.

For the scaled-up variants, I set the opacity of all masks to zero except for the one corresponding to the active image, which is scaled up, while the others stay scaled down. The sidebar shifts right and moves partially off-screen in these variants. To connect the normal and scaled-up variants, I used an appear interaction.

Finally, I added a scroll-triggered effect to the gallery component that switches between variants based on which scroll section is currently in view.

About the resource

To create this animation, I built a gallery component with 12 variants: 6 image mask variants—one for each image—and 6 image scale variants for each gallery image.

In the default variant, I split the canvas into two sections: the active layer on the left and the sidebar stacked on the right. The active layer nests all 6 images, each with its own mask. The sidebar stacks the images together with spacer frames. I created an image component with two states: active and inactive (minimized). When a particular image is active—like image 1—the sidebar syncs up, highlighting that image as active while keeping the rest minimized.

For the scaled-up variants, I set the opacity of all masks to zero except for the one corresponding to the active image, which is scaled up, while the others stay scaled down. The sidebar shifts right and moves partially off-screen in these variants. To connect the normal and scaled-up variants, I used an appear interaction.

Finally, I added a scroll-triggered effect to the gallery component that switches between variants based on which scroll section is currently in view.

Image gallery UI with scaling transitions and thumbnails

The 12 variants of the gallery component.

Image gallery UI with scaling transitions and thumbnails

The 12 variants of the gallery component.

Image gallery UI with scaling transitions and thumbnails

The 12 variants of the gallery component.

Framer Navigator

Learn the fundamentals of Framer for free.

Build your ideas with ease by learning the basics of website building with Framer.

Nandi portrait's background
Nandi's portrait

Framer Navigator

Learn the fundamentals of Framer for free.

Build your ideas with ease by learning the basics of website building with Framer.

Nandi portrait's background
Nandi's portrait

Framer Navigator

Learn the fundamentals of Framer for free.

Build your ideas with ease by learning the basics of website building with Framer.

Nandi portrait's background
Nandi's portrait

More resources

More resources

  • Minimalistic white chat interface with input text field reading 'What do you want to build?' and UI buttons for expanding, sending, and adding elements

    Morphing Chat Modal Animation in Framer

    Component

    Minimalistic white chat interface with input text field reading 'What do you want to build?' and UI buttons for expanding, sending, and adding elements

    Morphing Chat Modal Animation in Framer

    Component

    Minimalistic white chat interface with input text field reading 'What do you want to build?' and UI buttons for expanding, sending, and adding elements

    Morphing Chat Modal Animation in Framer

    Component

  • God Rays component interface with dynamic radial light effects and a preset selector including options like Time Travel, Kinetic Field, and Ocean

    God Rays Component for Framer

    Component

    God Rays component interface with dynamic radial light effects and a preset selector including options like Time Travel, Kinetic Field, and Ocean

    God Rays Component for Framer

    Component

    God Rays component interface with dynamic radial light effects and a preset selector including options like Time Travel, Kinetic Field, and Ocean

    God Rays Component for Framer

    Component