<div class="coolcard coolcard--1">
<img src="https://github.com/peibol888/PlayingWithCSS/blob/master/src/img/coolcard-img.png?raw=true" class="coolcard__img" />
<div class="coolcard__body">
<h1 class="coolcard__title">COOL CARD 1</h1>
<div class="coolcard__text">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Perspiciatis magnam dolorum.
</div>
</div>
</div>
<div class="coolcard coolcard--2">
<img src="https://github.com/peibol888/PlayingWithCSS/blob/master/src/img/coolcard-img.png?raw=true" class="coolcard__img" />
<div class="coolcard__body">
<h1 class="coolcard__title">COOL CARD 2</h1>
<div class="coolcard__text">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Perspiciatis magnam dolorum.
</div>
</div>
</div>
<div class="coolcard coolcard--3">
<img src="https://github.com/peibol888/PlayingWithCSS/blob/master/src/img/coolcard-img.png?raw=true" class="coolcard__img" />
<div class="coolcard__body">
<h1 class="coolcard__title">COOL CARD 3</h1>
<div class="coolcard__text">
Lorem ipsum dolor sit amet consectetur adipisicing elit. Perspiciatis magnam dolorum.
</div>
</div>
</div>
*,*::after, *::before, p {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
line-height: 1.5;
transition: 0.3s;
font-family: 'Poppins', sans-serif;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
gap: 2rem;
padding: 1rem
}
h1 {
margin: 0;
}
.coolcard {
position: relative;
overflow: hidden;
display: flex;
flex-direction: column;
border-radius: 15px;
color: #ddd;
height: 400px;
width: 300px;
transition: box-shadow 0.8s ease-in-out;
&:hover {
box-shadow: rgba(22,45,91, 0.1) 0px 1px 2px, rgba(22,45,91, 0.1) 0px 2px 4px, rgba(22,45,91, 0.1) 0px 4px 8px, rgba(22,45,91, 0.1) 0px 8px 16px, rgba(22,45,91, 0.1) 0px 16px 32px, rgba(22,45,91, 0.1) 0px 32px 64px;
&::before {
transform: rotate(360deg);
}
}
&::before {
position: absolute;
content: '';
border-radius: inherit;
background: linear-gradient(235deg, #e100ff 0%, #162d5b73 50%, #00bcd4 90%);
top: -44px;
bottom: -44px;
left: -94px;
right: -94px;
transition: transform 1.5s ease-in-out;
}
}
.coolcard__img {
object-fit: cover;
object-position: left;
position: relative;
height: 100%;
opacity: 0;
transition: opacity 1.5s ease-in;
}
.coolcard:hover .coolcard__img {
opacity: 1;
}
.coolcard__body {
padding: 0 1rem 1rem;
background: linear-gradient(#0000 0%, #000000e3 100%);
transform: translateY(92px);
transition: transform 1s ease;
}
.coolcard:hover .coolcard__body {
transform: translateY(0px);
}
.coolcard__title {
z-index: 1;
position: relative;
margin-block: 0.5rem;
width: fit-content;
font-weight: 700;
font-size: 1.8em;
-webkit-text-fill-color: transparent;
-webkit-text-stroke: 1px white;
&::before {
content: '';
position: absolute;
bottom: 6px;
background: white;
height: 2px;
width: 0%;
transition: width 1s ease 0.5s;
}
}
.coolcard:hover .coolcard__title::before {
width: 102%;
}
.coolcard-text {
position: relative;
color: #ddddddde;
text-align: start;
}
/*===== Coolcard nº2 =====*/
.coolcard--2.coolcard::before {
transition: none
}
.coolcard--2 .coolcard__img {
position: absolute;
left: 0;
height: 100%;
opacity: 0.4;
}
.coolcard--2 .coolcard__body {
position: absolute;
bottom: 0;
background: linear-gradient(#0000 0%, #000000e3 100%);
}
/*===== Coolcard nº3 =====*/
.coolcard--3.coolcard::before {
transition: none
}
.coolcard--3 img.coolcard__img {
transform: translateY(-100%);
transition: transform 1s ease 0.5s;
opacity: 0;
transition: opacity 1s ease 0.5s;
}
.coolcard--3:hover img.coolcard__img {
transform: translateY(0%);
opacity: 1
}
.coolcard--3 .coolcard__text{
transform: translateX(-105%);
transition: transform 0.5s ease 1s;
}
.coolcard--3:hover .coolcard__text {
transform: translateX(0%)
}
View Compiled
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.