Where to put the animation

Hello! I was trying to create a cards game following the Stanford University CS193p tutorial and I had a problem, in the tutorial they didn't add any animation and I would like to add one but I can't understand where exactly I have to write the command. Can someone help me?
Thank you very much!

My code:

import SwiftUI
import PlaygroundSupport

struct ContentView: View {
    var body: some View{

        HStack {
            CardView()
            CardView()
            CardView()
            CardView()
        }
        .padding()
        .foregroundColor(Color(.systemRed))
    }
}

struct CardView: View {
    @State var isFaceUp = false
    var body: some View {

        ZStack {
            let shape = RoundedRectangle(cornerRadius: 20)
            if isFaceUp {
                shape.fill().foregroundColor(.white)
                shape.stroke(lineWidth: 3)
                Text("😀").font(.system(size: 80))
            } else {
                shape.fill()
            }
        } 
        .onTapGesture(perform: {
            isFaceUp = !isFaceUp
        })
    }
}



PlaygroundPage.current.setLiveView(ContentView())
Answered by anils in 700937022
struct CardView: View {
    @State var isFaceUp = false
    var body: some View {
        ZStack {
            let shape = RoundedRectangle(cornerRadius: 20)
            if isFaceUp {
                shape.fill().foregroundColor(.white)
                shape.stroke(lineWidth: 3)
                Text("😀").font(.system(size: 80))
            } else {
                shape.fill()
            }
        }
        .rotation3DEffect(Angle(degrees: isFaceUp ? 180 : 0), axis: (x: 0, y: 1, z: 0))
        .animation(.spring(), value: isFaceUp)
        .onTapGesture {
            isFaceUp.toggle()
        }
    }
}
Accepted Answer
struct CardView: View {
    @State var isFaceUp = false
    var body: some View {
        ZStack {
            let shape = RoundedRectangle(cornerRadius: 20)
            if isFaceUp {
                shape.fill().foregroundColor(.white)
                shape.stroke(lineWidth: 3)
                Text("😀").font(.system(size: 80))
            } else {
                shape.fill()
            }
        }
        .rotation3DEffect(Angle(degrees: isFaceUp ? 180 : 0), axis: (x: 0, y: 1, z: 0))
        .animation(.spring(), value: isFaceUp)
        .onTapGesture {
            isFaceUp.toggle()
        }
    }
}

Thank you very much!

Where to put the animation
 
 
Q