<a href="#" class="card">
<img src="https://images.unsplash.com/photo-1526297003708-f5a1c2c9c6e7?crop=entropy&cs=tinysrgb&fm=jpg&ixid=MnwzMjM4NDZ8MHwxfHJhbmRvbXx8fHx8fHx8fDE2NjI0OTY1ODM&ixlib=rb-1.2.1&q=80" alt="balloon with an emoji face" class="card__img">
<span class="card__footer">
<span>Awesome speedy card</span>
<span>2 minutes!</span>
</span>
<span class="card__action">
<svg viewBox="0 0 448 512" title="play">
<path d="M424.4 214.7L72.4 6.6C43.8-10.3 0 6.1 0 47.9V464c0 37.5 40.7 60.1 72.4 41.3l352-208c31.4-18.5 31.5-64.1 0-82.6z" />
</svg>
</span>
</a>
* {
box-sizing: border-box;
}
body {
display: grid;
place-items: center;
min-height: 100vh;
}
.card {
--blur: 16px;
--size: clamp(300px, 50vmin, 600px);
width: var(--size);
aspect-ratio: 4 / 3;
position: relative;
border-radius: 2rem;
overflow: hidden;
color: #000;
transform: translateZ(0);
}
.card__img {
width: 100%;
height: 100%;
object-fit: cover;
transform: scale(calc(1 + (var(--hover, 0) * 0.25))) rotate(calc(var(--hover, 0) * -5deg));
transition: transform 0.2s;
}
.card__footer {
padding: 0 1.5rem;
position: absolute;
bottom: 0;
left: 0;
width: 100%;
background: red;
display: grid;
grid-template-row: auto auto;
gap: 0.5ch;
background: hsl(0 0% 100% / 0.5);
backdrop-filter: blur(var(--blur));
height: 30%;
align-content: center;
}
.card__action {
position: absolute;
aspect-ratio: 1;
width: calc(var(--size) * 0.15);
bottom: 30%;
right: 1.5rem;
transform: translateY(50%)
translateY(
calc(
(var(--size) * 0.4)
)
)
translateY(calc(var(--hover, 0) * (var(--size) * -0.4)));
background: purple;
display: grid;
place-items: center;
border-radius: 0.5rem;
background: hsl(0 0% 100% / 0.5);
/* backdrop-filter: blur(calc(var(--blur) * 0.5)); */
transition: transform 0.2s;
}
.card__action svg {
aspect-ratio: 1;
width: 50%;
}
.card__footer span:nth-of-type(1) {
font-size: calc(var(--size) * 0.065);
}
.card__footer span:nth-of-type(2) {
font-size: calc(var(--size) * 0.035);
}
.card:is(:hover, :focus-visible) {
--hover: 1;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.