Kártyák és dobozok
Prémium üvegkártya
Élő előnézet – a komponens teljes méretben.
Élő előnézet
HTML · CSS · JS
<div class="cards-01">
<article class="card-01">
<div class="card-01-top">
<span class="card-01-number">01</span>
<div class="card-01-icon">
<i class="bi bi-stars"></i>
</div>
</div>
<div class="card-01-content">
<span class="card-01-label">KREATÍV</span>
<h3>Új dimenzió</h3>
<p>
Karakteres megoldások és modern részletek,
amelyek egyedivé teszik a digitális megjelenést.
</p>
</div>
<a href="#" class="card-01-link">
Felfedezem
<i class="bi bi-arrow-up-right"></i>
</a>
</article>
<article class="card-01">
<div class="card-01-top">
<span class="card-01-number">02</span>
<div class="card-01-icon">
<i class="bi bi-lightning-charge"></i>
</div>
</div>
<div class="card-01-content">
<span class="card-01-label">TECHNOLÓGIA</span>
<h3>Erőteljes rendszer</h3>
<p>
Letisztult struktúra, gyors működés és
intelligens megoldások egyetlen rendszerben.
</p>
</div>
<a href="#" class="card-01-link">
Megnézem
<i class="bi bi-arrow-up-right"></i>
</a>
</article>
<article class="card-01">
<div class="card-01-top">
<span class="card-01-number">03</span>
<div class="card-01-icon">
<i class="bi bi-gem"></i>
</div>
</div>
<div class="card-01-content">
<span class="card-01-label">PRÉMIUM</span>
<h3>Elegáns részletek</h3>
<p>
Finom animációk, harmonikus arányok és
gondosan megtervezett vizuális részletek.
</p>
</div>
<a href="#" class="card-01-link">
Tovább
<i class="bi bi-arrow-up-right"></i>
</a>
</article>
</div>
.cards-01 {
width: min(1180px, calc(100% - 30px));
margin: 0 auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 22px;
}
/* =========================
KÁRTYA
========================= */
.card-01 {
position: relative;
min-height: 390px;
padding: 32px;
overflow: hidden;
display: flex;
flex-direction: column;
border: 1px solid rgba(255, 255, 255, 0.09);
border-radius: 24px;
background:
linear-gradient(
145deg,
rgba(255,255,255,0.065),
rgba(255,255,255,0.018)
);
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.06),
0 25px 60px rgba(0,0,0,0.28);
backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);
transition:
transform 0.45s ease,
border-color 0.45s ease,
box-shadow 0.45s ease;
}
/* háttérfény */
.card-01::before {
content: "";
position: absolute;
width: 180px;
height: 180px;
top: -90px;
right: -70px;
border-radius: 50%;
background: #2ecc71;
opacity: 0.08;
filter: blur(45px);
transition:
transform 0.6s ease,
opacity 0.6s ease;
}
.card-01:hover {
transform: translateY(-9px);
border-color: rgba(46, 204, 113, 0.38);
box-shadow:
inset 0 1px 0 rgba(255,255,255,0.08),
0 30px 70px rgba(0,0,0,0.38),
0 0 35px rgba(46,204,113,0.06);
}
.card-01:hover::before {
transform: scale(1.7);
opacity: 0.14;
}
/* =========================
FELSŐ RÉSZ
========================= */
.card-01-top {
position: relative;
z-index: 2;
display: flex;
align-items: flex-start;
justify-content: space-between;
}
.card-01-number {
font-family: monospace;
font-size: 11px;
letter-spacing: 2px;
color: rgba(255,255,255,0.28);
}
/* =========================
IKON
========================= */
.card-01-icon {
width: 54px;
height: 54px;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid rgba(46,204,113,0.25);
border-radius: 16px;
color: #2ecc71;
background: rgba(46,204,113,0.055);
box-shadow:
0 0 25px rgba(46,204,113,0.07);
transition:
transform 0.45s ease,
background 0.45s ease,
box-shadow 0.45s ease;
}
.card-01-icon i {
font-size: 21px;
}
.card-01:hover .card-01-icon {
transform: rotate(-8deg) scale(1.08);
background: rgba(46,204,113,0.1);
box-shadow:
0 0 30px rgba(46,204,113,0.15);
}
/* =========================
TARTALOM
========================= */
.card-01-content {
position: relative;
z-index: 2;
margin-top: auto;
padding-top: 55px;
}
.card-01-label {
display: block;
margin-bottom: 14px;
color: #2ecc71;
font-family: monospace;
font-size: 10px;
letter-spacing: 2.5px;
}
.card-01 h3 {
margin: 0 0 15px;
color: #ffffff;
font-family: "Bodoni Moda", Georgia, serif;
font-size: 30px;
font-weight: 500;
line-height: 1.1;
}
.card-01 p {
max-width: 310px;
margin: 0;
color: #87919d;
font-size: 13px;
line-height: 1.8;
}
/* =========================
ALSÓ LINK
========================= */
.card-01-link {
position: relative;
z-index: 2;
align-self: flex-start;
display: flex;
align-items: center;
gap: 10px;
margin-top: 28px;
color: #ffffff;
text-decoration: none;
font-size: 12px;
letter-spacing: 0.5px;
transition:
gap 0.3s ease,
color 0.3s ease;
}
.card-01-link i {
color: #2ecc71;
transition:
transform 0.3s ease;
}
.card-01-link:hover {
gap: 16px;
}
.card-01-link:hover i {
transform: translate(2px, -2px);
}
/* =========================
FINOM FÉNYCSÍK
========================= */
.card-01::after {
content: "";
position: absolute;
left: 28px;
right: 28px;
bottom: 0;
height: 1px;
background:
linear-gradient(
90deg,
transparent,
rgba(46,204,113,0.5),
transparent
);
opacity: 0.35;
transition:
opacity 0.4s ease,
transform 0.4s ease;
}
.card-01:hover::after {
opacity: 0.9;
transform: scaleX(1.08);
}
/* =========================
RESZPONZÍV
========================= */
@media (max-width: 900px) {
.cards-01 {
grid-template-columns: 1fr;
max-width: 520px;
}
}
@media (max-width: 480px) {
.cards-01 {
width: min(100% - 24px, 520px);
}
.card-01 {
min-height: 370px;
padding: 27px;
}
}
document.querySelectorAll(".cards-01").forEach(group => {
group.querySelectorAll(".card-01").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) * -4;
const rotateY = ((x / rect.width) - 0.5) * 4;
card.style.transform =
`translateY(-9px) perspective(900px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;
});
card.addEventListener("mouseleave", () => {
card.style.transform = "";
});
});
});