Hover effektek
Fényvisszaverődés
Élő előnézet – az animáció teljes méretben.
Élő előnézet
HTML · CSS · JS
<div class="we-hover-reflection">
<div class="we-reflection"></div>
<div class="we-reflection-content">
<span>WebElements</span>
<strong>
Fényvisszaverődés
</strong>
<small>
Üvegszerű fényjáték hoverre
</small>
</div>
</div>
.we-hover-reflection {
width: 100%;
max-width: 440px;
height: 190px;
margin: 60px auto;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
padding: 40px;
box-sizing: border-box;
background:
linear-gradient(
135deg,
#10191d 0%,
#0a1114 45%,
#10191d 100%
);
border: 1px solid rgba(142,232,212,.2);
border-radius: 20px;
color: #f2f4f0;
font-family: Arial, sans-serif;
perspective: 900px;
transition:
transform .5s cubic-bezier(.22,1,.36,1),
border-color .5s ease,
box-shadow .5s ease;
}
.we-reflection::before {
content: "";
position: absolute;
inset: 0;
background:
linear-gradient(
115deg,
transparent 30%,
rgba(255,255,255,.04) 42%,
rgba(142,232,212,.28) 49%,
rgba(255,255,255,.08) 53%,
transparent 65%
);
transform:
translateX(-130%)
skewX(-18deg);
transition:
transform 1s cubic-bezier(.16,1,.3,1);
}
.we-reflection::after {
content: "";
position: absolute;
inset: 1px;
border-radius: 19px;
background:
linear-gradient(
120deg,
rgba(255,255,255,.08),
transparent 30%
);
opacity: .35;
pointer-events: none;
}
.we-reflection-content {
position: relative;
z-index: 5;
transform:
translateZ(0);
transition:
transform .6s cubic-bezier(.22,1,.36,1),
filter .6s ease;
}
.we-reflection-content span {
display: block;
margin-bottom: 12px;
font-size: 11px;
letter-spacing: 4px;
text-transform: uppercase;
color: #8ee8d4;
}
.we-reflection-content strong {
display: block;
font-size: 27px;
font-weight: 500;
}
.we-reflection-content small {
display: block;
margin-top: 10px;
font-size: 13px;
color: rgba(242,244,240,.62);
}
.we-hover-reflection:hover {
transform:
translateY(-7px)
rotateX(2deg)
rotateY(-2deg);
border-color:
rgba(142,232,212,.65);
box-shadow:
0 30px 70px rgba(0,0,0,.55),
0 0 45px rgba(142,232,212,.12);
}
.we-hover-reflection:hover::before {
transform:
translateX(130%)
skewX(-18deg);
}
.we-hover-reflection:hover .we-reflection-content {
transform:
translateZ(24px)
translateY(-3px);
filter:
drop-shadow(
0 0 12px rgba(142,232,212,.16)
);
}
Ehhez az animációhoz nincs külön JavaScript.