Vissza az animációkhoz
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
HTML
<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>
CSS
.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);
    }
}
JavaScript
Ehhez az animációhoz nincs külön JavaScript.