Animated Card UI Design with Hover Effect | Html CSS Curve Outside

Animated Card UI Design with Hover Effect | Html CSS Curve Outside



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);
}

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *