Revolutionize projects with our advanced source code. Elevate innovation, accelerate development, and gain a competitive edge.
source
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Card Hover Effects</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<div class="card">
<div class="imgBx">
<img src="img1.jpg">
</div>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam dolorum voluptatibus id possimus quisquam? Alias, temporibus nisi voluptatum nihil et excepturi id possimus ex sunt!</p>
<h2>Card 01</h2>
</div>
<div class="card">
<div class="imgBx">
<img src="img2.jpg">
</div>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam dolorum voluptatibus id possimus quisquam? Alias, temporibus nisi voluptatum nihil et excepturi id possimus ex sunt!</p>
<h2>Card 02</h2>
</div>
<div class="card">
<div class="imgBx">
<img src="img3.jpg">
</div>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Veniam dolorum voluptatibus id possimus quisquam? Alias, temporibus nisi voluptatum nihil et excepturi id possimus ex sunt!</p>
<h2>Card 03</h2>
</div>
</div>
</body>
</html>
@import url('https://fonts.googleapis.com/css?family=Poppins:200,300,400,500,600,700,800,900&display=swap');
*
{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'Poppins', sans-serif;
}
:root
{
--clr: #222;
}
body
{
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: var(--clr);
}
.container
{
position: relative;
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 60px;
}
.container .card
{
position: relative;
width: 320px;
height: 250px;
background: #fff;
border-radius: 20px;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
cursor: pointer;
transition: 0.5s;
}
.container .card:hover
{
height: 350px;
}
.container .card .imgBx
{
position: absolute;
inset: 20px 20px 50px 20px;
background: #f00;
border-radius: 15px;
transition: 0.5s;
z-index: 1000;
}
.container .card:hover .imgBx
{
inset: -50px 60px 250px 60px;
box-shadow: 0 0 0 10px var(--clr);
}
.container .card .imgBx::before
{
content: '';
position: absolute;
width: 20px;
height: 20px;
background: transparent;
left: -30px;
border-top-right-radius: 20px;
transform: translateY(-100px);
opacity: 0;
box-shadow: 5px -5px 0 4px var(--clr);
pointer-events: none;
transition: 0.5s;
}
.container .card:hover .imgBx::before
{
opacity: 1;
transform: translateY(50px);
}
.container .card .imgBx::after
{
content: '';
position: absolute;
width: 20px;
height: 20px;
background: transparent;
right: -30px;
border-top-left-radius: 20px;
transform: translateY(-100px);
opacity: 0;
box-shadow: -5px -5px 0 4px var(--clr);
pointer-events: none;
transition: 0.5s;
}
.container .card:hover .imgBx::after
{
opacity: 1;
transform: translateY(50px);
}
.container .card .imgBx img
{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 15px;
}
.container .card p
{
position: relative;
padding: 40px;
text-align: center;
opacity: 0;
visibility: hidden;
transform: translateY(-50px);
transition: 0.5s;
}
.container .card:hover p
{
opacity: 1;
visibility: visible;
transform: translateY(40px);
}
.container .card h2
{
position: absolute;
bottom: 8px;
color: #333;
transition: 0.5s;
font-weight: 600;
}
.container .card:hover h2
{
padding: 5px 25px;
background: #65ff50;
bottom: -25px;
border-radius: 15px;
box-shadow: 0 0 0 10px var(--clr);
}

