3D Buy Card Animation in Framer

Copy component

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

How to Make $10K+ with Framer in 60 days

$10k Undercover Event

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

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" }} />
        )
    }
}

Learn how can one go from 0 to $11.5k with Framer in 60 days.

From no followers, no portfolio, no reputation, to making thousands with a profitable Framer business.

Nandi portrait's background

Learn how can one go from 0 to $11.5k with Framer in 60 days.

From no followers, no portfolio, no reputation, to making thousands with a profitable Framer business.

Nandi portrait's background

Learn how can one go from 0 to $11.5k with Framer in 60 days.

From no followers, no portfolio, no reputation, to making thousands with a profitable Framer business.

Nandi portrait's background

More resources

More resources

  • Music app playlist created screen with artist avatars

    Playlist Generation Circular Animation in Framer

    Component

    Music app playlist created screen with artist avatars

    Playlist Generation Circular Animation in Framer

    Component

  • Customer testimonials section with review letter card

    3D Letter Testimonials in Framer

    Component

    Customer testimonials section with review letter card

    3D Letter Testimonials in Framer

    Component