3D Buy Card Animation in Framer

Copy component

3D Buy Card 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

3D Buy Card Animation in Framer

This is a 3D buy card interaction in Framer, based on Farrel's original concept. Feel free to remix the project to see how it's built or copy the component into your own project and customize it with component properties.

image of Nandi Muzsik
profile image of Farrel Putra

Created by

3D Buy Card Animation in Framer
3D Buy Card Animation in Framer
3D Buy Card Animation in Framer

About the resource

This interaction can easily be achieved with Framer's 3D transforms functionality. You can apply these transforms to elements to project them in 3D space. That's how the card pack is "modelled." Each face is a different frame with a different 3D rotation.

Once the card pack is created, we can use that component within the purchase card component. It has a default and a hover variant, and we change the Y rotation on hover to 360 so it makes a full flip.

About the resource

This interaction can easily be achieved with Framer's 3D transforms functionality. You can apply these transforms to elements to project them in 3D space. That's how the card pack is "modelled." Each face is a different frame with a different 3D rotation.

Once the card pack is created, we can use that component within the purchase card component. It has a default and a hover variant, and we change the Y rotation on hover to 360 so it makes a full flip.

About the resource

This interaction can easily be achieved with Framer's 3D transforms functionality. You can apply these transforms to elements to project them in 3D space. That's how the card pack is "modelled." Each face is a different frame with a different 3D rotation.

Once the card pack is created, we can use that component within the purchase card component. It has a default and a hover variant, and we change the Y rotation on hover to 360 so it makes a full flip.

3d buy card variants

3D buy card variants.

3d buy card variants

3D buy card variants.

3d buy card variants

3D buy card variants.

A little trick: if you want to further transform components that have 3D transforms within, apply a Preserve 3D override within the component (in this case on the "Card Packaging" component) to make sure it stays in 3D space. You can find the override below.

Preserve 3D override

You can create a code override in your project and replace the auto-generated code with the one below. If you apply this override to the component, it will get the "preserve 3D" style.

This override is useful because you can't natively apply transforms to the primary variants of the components.

A little trick: if you want to further transform components that have 3D transforms within, apply a Preserve 3D override within the component (in this case on the "Card Packaging" component) to make sure it stays in 3D space. You can find the override below.

Preserve 3D override

You can create a code override in your project and replace the auto-generated code with the one below. If you apply this override to the component, it will get the "preserve 3D" style.

This override is useful because you can't natively apply transforms to the primary variants of the components.

A little trick: if you want to further transform components that have 3D transforms within, apply a Preserve 3D override within the component (in this case on the "Card Packaging" component) to make sure it stays in 3D space. You can find the override below.

Preserve 3D override

You can create a code override in your project and replace the auto-generated code with the one below. If you apply this override to the component, it will get the "preserve 3D" style.

This override is useful because you can't natively apply transforms to the primary variants of the components.

import { useState, useEffect, ComponentType } from "react"

export function withPreserve3d(Component): ComponentType {
    return (props) => {
        return (
            <Component {...props} style={{ transformStyle: "preserve-3d" }} />
        )
    }
}
import { useState, useEffect, ComponentType } from "react"

export function withPreserve3d(Component): ComponentType {
    return (props) => {
        return (
            <Component {...props} style={{ transformStyle: "preserve-3d" }} />
        )
    }
}
import { useState, useEffect, ComponentType } from "react"

export function withPreserve3d(Component): ComponentType {
    return (props) => {
        return (
            <Component {...props} style={{ transformStyle: "preserve-3d" }} />
        )
    }
}

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

  • A dark interface showing glitchy text reading "TFXT GLITCH + FRAMEX" with a typing effect and a hovered block of random characters below

    Text Glitch Component for Framer

    Component

    A dark interface showing glitchy text reading "TFXT GLITCH + FRAMEX" with a typing effect and a hovered block of random characters below

    Text Glitch Component for Framer

    Component

    A dark interface showing glitchy text reading "TFXT GLITCH + FRAMEX" with a typing effect and a hovered block of random characters below

    Text Glitch Component for Framer

    Component

  • Blurred portrait with a layered 3D card depth effect

    3D Depth Card Stack Animation in Framer

    Component

    Blurred portrait with a layered 3D card depth effect

    3D Depth Card Stack Animation in Framer

    Component

    Blurred portrait with a layered 3D card depth effect

    3D Depth Card Stack Animation in Framer

    Component