Dark CSS

How to Make 3D Flip Card using Html and CSS

Facebook
Twitter
WhatsApp

project demo

html code

				
					<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Front-Back Card on Hover</title>
    <link rel="stylesheet" href="style.css">
</head>

<body>
    <div class="container">
        <div class="card">
            <div class="card-front">
                <img decoding="async" src="images/img.jpg" alt="">
            </div>
            <div class="card-back">
                <h3>Card Back</h3>
                <p>This is back page of card</p>
                <p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Non, incidunt!</p>
            </div>
        </div>
    </div>
</body>

</html>
				
			

css code

				
					* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

html,
body {
    display: grid;
    height: 100%;
    place-items: center;
    background: #f7b42c;
    font-family: 'Poppins', sans-serif;
}

/* Flip card styles */
.container {
    perspective: 1000px;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px;
}

.card {
    width: 200px;
    height: 300px;
    position: relative;
    transform-style: preserve-3d;
    transition:
        transform .6s cubic-bezier(.4, 0, .2, 1);
}

.container:hover .card {
    transform: rotateY(180deg);
}

.card-front,
.card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    overflow: hidden;
    border-radius: 12px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    -webkit-box-reflect: below 5px linear-gradient(transparent, rgba(255, 255, 255, 0.2));
}

.card-front img {
    width: 100%;
    height: 100%;
    cursor: pointer;
    object-fit: cover;
}

.card-back {
    background: #212121;
    color: #d4d3d3;
    text-align: center;
    transform: rotateY(180deg);
}

.card-back h2 {
    font-size: 20px;
    margin-bottom: 10px;
    font-weight: 500;
}

p {
    font-size: 12px;
    letter-spacing: 1px;
    margin-top: 15px;
    font-weight: 300;
}