Szöveganimációk
Szavak hullámzása
Élő előnézet – az animáció teljes méretben.
Élő előnézet
HTML · CSS · JS
<div class="we-text-wave-card">
<h2 class="we-text-wave">
<span>Fedezd</span>
<span>fel</span>
<span>a</span>
<span>világot</span>
</h2>
</div>
.we-text-wave-card {
display: inline-block;
padding: 32px 42px;
background: #f4f1e9;
border: 1px solid rgba(0, 0, 0, .08);
border-radius: 18px;
box-shadow:
0 18px 45px rgba(0, 0, 0, .22);
overflow: hidden;
}
.we-text-wave {
display: flex;
flex-wrap: wrap;
justify-content: center;
align-items: center;
gap: .3em;
margin: 0;
color: #111111;
font-family: "Bodoni Moda", Georgia, serif;
font-size: clamp(34px, 5.5vw, 68px);
font-weight: 500;
line-height: 1.08;
}
.we-text-wave span {
display: inline-block;
opacity: 0;
transform: translateY(0);
animation:
weRealWave 1.6s cubic-bezier(.45,.05,.55,.95) forwards;
}
.we-text-wave span:nth-child(1) {
animation-delay: .05s;
}
.we-text-wave span:nth-child(2) {
animation-delay: .18s;
}
.we-text-wave span:nth-child(3) {
animation-delay: .31s;
}
.we-text-wave span:nth-child(4) {
animation-delay: .44s;
}
@keyframes weRealWave {
0% {
opacity: 0;
transform: translateY(45px);
}
20% {
opacity: 1;
transform: translateY(-18px);
}
38% {
transform: translateY(14px);
}
55% {
transform: translateY(-9px);
}
72% {
transform: translateY(5px);
}
88% {
transform: translateY(-2px);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
Ehhez az animációhoz nincs külön JavaScript.