Kártyák és dobozok
Aszimmetrikus luxuskártyák
Élő előnézet – a komponens teljes méretben.
Élő előnézet
HTML · CSS · JS
<div class="cards-05">
<article class="card-05">
<div class="card-05-number">01</div>
<div class="card-05-line"></div>
<div class="card-05-icon">
<i class="bi bi-eye"></i>
</div>
<div class="card-05-content">
<span class="card-05-label">VIZUÁLIS KONCEPCIÓ</span>
<h3>Más szemmel<br>nézni.</h3>
<p>
Egy erős vizuális koncepció képes
teljesen megváltoztatni egy oldal hangulatát.
</p>
</div>
<a href="#" class="card-05-link">
<span>Felfedezem</span>
<i class="bi bi-arrow-up-right"></i>
</a>
</article>
<article class="card-05">
<div class="card-05-number">02</div>
<div class="card-05-line"></div>
<div class="card-05-icon">
<i class="bi bi-layers"></i>
</div>
<div class="card-05-content">
<span class="card-05-label">STRUKTÚRA</span>
<h3>Minden részlet<br>számít.</h3>
<p>
A jól megtervezett részletek együtt
hozzák létre az igazán egységes élményt.
</p>
</div>
<a href="#" class="card-05-link">
<span>Megnézem</span>
<i class="bi bi-arrow-up-right"></i>
</a>
</article>
<article class="card-05">
<div class="card-05-number">03</div>
<div class="card-05-line"></div>
<div class="card-05-icon">
<i class="bi bi-infinity"></i>
</div>
<div class="card-05-content">
<span class="card-05-label">KREATÍV IRÁNY</span>
<h3>Nincsenek<br>határok.</h3>
<p>
Szabad gondolkodás, merész ötletek és
olyan megoldások, amelyek kilépnek a megszokottból.
</p>
</div>
<a href="#" class="card-05-link">
<span>Tovább</span>
<i class="bi bi-arrow-up-right"></i>
</a>
</article>
</div>
.cards-05 {
width: min(1180px, calc(100% - 30px));
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 22px;
}
.card-05 {
position: relative;
min-height: 450px;
padding: 34px;
overflow: hidden;
display: flex;
flex-direction: column;
border: 1px solid rgba(255,255,255,0.08);
border-radius: 18px;
background:
linear-gradient(
145deg,
#11171b,
#080c11
);
box-shadow:
0 25px 65px rgba(0,0,0,0.3);
transition:
transform 0.5s ease,
border-color 0.5s ease,
box-shadow 0.5s ease;
}
.card-05:hover {
transform: translateY(-8px);
border-color: rgba(46,204,113,0.35);
box-shadow:
0 35px 80px rgba(0,0,0,0.42),
0 0 35px rgba(46,204,113,0.05);
}
/* nagy háttérszám */
.card-05-number {
position: absolute;
top: -25px;
right: -5px;
color: rgba(255,255,255,0.025);
font-family: "Bodoni Moda", Georgia, serif;
font-size: 190px;
font-weight: 500;
line-height: 1;
transition:
color 0.5s ease,
transform 0.6s ease;
}
.card-05:hover .card-05-number {
color: rgba(46,204,113,0.035);
transform: translateY(8px);
}
/* felső vonal */
.card-05-line {
position: absolute;
top: 0;
left: 34px;
right: 34px;
height: 1px;
background:
linear-gradient(
90deg,
transparent,
rgba(46,204,113,0.6),
transparent
);
opacity: 0.4;
transition:
opacity 0.4s ease,
transform 0.5s ease;
}
.card-05:hover .card-05-line {
opacity: 1;
transform: scaleX(1.08);
}
/* ikon */
.card-05-icon {
position: relative;
z-index: 3;
width: 52px;
height: 52px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid rgba(46,204,113,0.22);
border-radius: 50%;
color: #2ecc71;
background: rgba(46,204,113,0.035);
transition:
transform 0.45s ease,
background 0.45s ease,
box-shadow 0.45s ease;
}
.card-05-icon i {
font-size: 19px;
}
.card-05:hover .card-05-icon {
transform: rotate(12deg);
background: rgba(46,204,113,0.09);
box-shadow:
0 0 25px rgba(46,204,113,0.12);
}
/* tartalom */
.card-05-content {
position: relative;
z-index: 3;
margin-top: auto;
padding-top: 60px;
}
.card-05-label {
display: block;
margin-bottom: 17px;
color: #2ecc71;
font-family: monospace;
font-size: 9px;
letter-spacing: 2.5px;
}
.card-05 h3 {
margin: 0 0 17px;
color: #ffffff;
font-family: "Bodoni Moda", Georgia, serif;
font-size: 34px;
font-weight: 500;
line-height: 1.08;
}
.card-05 p {
max-width: 305px;
margin: 0;
color: #7f8993;
font-size: 12px;
line-height: 1.85;
}
/* link */
.card-05-link {
position: relative;
z-index: 3;
display: flex;
align-items: center;
justify-content: space-between;
margin-top: 28px;
padding-top: 17px;
border-top: 1px solid rgba(255,255,255,0.07);
color: #ffffff;
text-decoration: none;
font-size: 11px;
letter-spacing: 0.8px;
transition:
border-color 0.3s ease;
}
.card-05-link i {
color: #2ecc71;
transition:
transform 0.35s ease;
}
.card-05-link:hover {
border-color: rgba(46,204,113,0.3);
}
.card-05-link:hover i {
transform: translate(4px,-4px);
}
/* alsó sarokfény */
.card-05::after {
content: "";
position: absolute;
width: 140px;
height: 140px;
right: -90px;
bottom: -90px;
border-radius: 50%;
background: #2ecc71;
opacity: 0.035;
filter: blur(35px);
transition:
transform 0.7s ease,
opacity 0.7s ease;
}
.card-05:hover::after {
transform: scale(1.7);
opacity: 0.08;
}
/* reszponzív */
@media (max-width: 900px) {
.cards-05 {
grid-template-columns: 1fr;
max-width: 520px;
}
}
@media (max-width: 480px) {
.cards-05 {
width: calc(100% - 24px);
}
.card-05 {
min-height: 420px;
padding: 28px;
}
.card-05 h3 {
font-size: 30px;
}
}
document.querySelectorAll(".cards-05").forEach(group => {
group.querySelectorAll(".card-05").forEach(card => {
card.addEventListener("mousemove", event => {
const rect = card.getBoundingClientRect();
const x = event.clientX - rect.left;
const y = event.clientY - rect.top;
const rotateX =
((y / rect.height) - 0.5) * -3;
const rotateY =
((x / rect.width) - 0.5) * 3;
card.style.transform =
`translateY(-8px) perspective(1000px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
});
card.addEventListener("mouseleave", () => {
card.style.transform = "";
});
});
});